{"version":3,"file":"static/js/main.75002083.js","mappings":"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","sources":["../node_modules/@rc-component/portal/es/Context.js","../node_modules/@rc-component/portal/es/useDom.js","../node_modules/@rc-component/portal/es/useScrollLocker.js","../node_modules/@rc-component/portal/es/util.js","../node_modules/@rc-component/portal/es/mock.js","../node_modules/@rc-component/portal/es/Portal.js","../node_modules/@rc-component/portal/es/index.js","../node_modules/@sentry/src/env.ts","../node_modules/@sentry/src/node.ts","../node_modules/date-fns/esm/_lib/defaultLocale/index.js","../node_modules/date-fns/esm/_lib/defaultOptions/index.js","../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/date-fns/esm/addDays/index.js","../node_modules/date-fns/esm/addMonths/index.js","../node_modules/date-fns/esm/addYears/index.js","../node_modules/date-fns/esm/differenceInCalendarDays/index.js","../node_modules/date-fns/esm/differenceInCalendarMonths/index.js","../node_modules/date-fns/esm/differenceInDays/index.js","../node_modules/date-fns/esm/eachDayOfInterval/index.js","../node_modules/date-fns/esm/endOfDay/index.js","../node_modules/date-fns/esm/endOfMonth/index.js","../node_modules/date-fns/esm/endOfWeek/index.js","../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../node_modules/date-fns/esm/_lib/format/formatters/index.js","../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../node_modules/date-fns/esm/format/index.js","../node_modules/date-fns/esm/isAfter/index.js","../node_modules/date-fns/esm/isBefore/index.js","../node_modules/date-fns/esm/isEqual/index.js","../node_modules/date-fns/esm/isSameDay/index.js","../node_modules/date-fns/esm/isSameMonth/index.js","../node_modules/date-fns/esm/isValid/index.js","../node_modules/date-fns/esm/isDate/index.js","../node_modules/date-fns/esm/isWeekend/index.js","../node_modules/date-fns/esm/isWithinInterval/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/max/index.js","../node_modules/date-fns/esm/min/index.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/date-fns/esm/parse/_lib/Setter.js","../node_modules/date-fns/esm/parse/_lib/Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js","../node_modules/date-fns/esm/parse/_lib/constants.js","../node_modules/date-fns/esm/constants/index.js","../node_modules/date-fns/esm/parse/_lib/utils.js","../node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js","../node_modules/date-fns/esm/_lib/setUTCWeek/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js","../node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js","../node_modules/date-fns/esm/_lib/setUTCDay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js","../node_modules/date-fns/esm/_lib/setUTCISODay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/index.js","../node_modules/date-fns/esm/parse/index.js","../node_modules/date-fns/esm/setMonth/index.js","../node_modules/date-fns/esm/getDaysInMonth/index.js","../node_modules/date-fns/esm/setYear/index.js","../node_modules/date-fns/esm/startOfDay/index.js","../node_modules/date-fns/esm/startOfMonth/index.js","../node_modules/date-fns/esm/startOfWeek/index.js","../node_modules/date-fns/esm/subMilliseconds/index.js","../node_modules/date-fns/esm/addMilliseconds/index.js","../node_modules/date-fns/esm/subMonths/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/enquire.js/src/MediaQuery.js","../node_modules/enquire.js/src/MediaQueryDispatch.js","../node_modules/enquire.js/src/QueryHandler.js","../node_modules/enquire.js/src/Util.js","../node_modules/enquire.js/src/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/json2mq/index.js","../node_modules/lodash.debounce/index.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/property-expr/index.js","../node_modules/rc-motion/es/context.js","../node_modules/rc-motion/es/DomWrapper.js","../node_modules/rc-motion/es/interface.js","../node_modules/rc-motion/es/util/motion.js","../node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","../node_modules/rc-motion/es/hooks/useStepQueue.js","../node_modules/rc-motion/es/hooks/useNextFrame.js","../node_modules/rc-motion/es/hooks/useStatus.js","../node_modules/rc-util/es/hooks/useSyncState.js","../node_modules/rc-motion/es/hooks/useDomMotionEvents.js","../node_modules/rc-motion/es/CSSMotion.js","../node_modules/rc-motion/es/util/diff.js","../node_modules/rc-motion/es/CSSMotionList.js","../node_modules/rc-motion/es/index.js","../node_modules/rc-overflow/es/Item.js","../node_modules/rc-overflow/es/hooks/useEffectState.js","../node_modules/rc-overflow/es/hooks/channelUpdate.js","../node_modules/rc-overflow/es/context.js","../node_modules/rc-overflow/es/RawItem.js","../node_modules/rc-overflow/es/Overflow.js","../node_modules/rc-overflow/es/index.js","../node_modules/rc-resize-observer/es/Collection.js","../node_modules/rc-resize-observer/es/utils/observerUtil.js","../node_modules/rc-resize-observer/es/SingleObserver/DomWrapper.js","../node_modules/rc-resize-observer/es/SingleObserver/index.js","../node_modules/rc-resize-observer/es/index.js","../node_modules/rc-tabs/lib/TabContext.js","../node_modules/rc-tabs/lib/TabNavList/AddButton.js","../node_modules/rc-tabs/lib/TabNavList/ExtraContent.js","../node_modules/rc-tabs/lib/TabNavList/OperationNode.js","../node_modules/rc-tabs/lib/TabNavList/TabNode.js","../node_modules/rc-tabs/lib/TabNavList/Wrapper.js","../node_modules/rc-tabs/lib/TabNavList/index.js","../node_modules/rc-tabs/lib/TabPanelList/TabPane.js","../node_modules/rc-tabs/lib/TabPanelList/index.js","../node_modules/rc-tabs/lib/Tabs.js","../node_modules/rc-tabs/lib/hooks/useAnimateConfig.js","../node_modules/rc-tabs/lib/hooks/useIndicator.js","../node_modules/rc-tabs/lib/hooks/useOffsets.js","../node_modules/rc-tabs/lib/hooks/useSyncState.js","../node_modules/rc-tabs/lib/hooks/useTouchMove.js","../node_modules/rc-tabs/lib/hooks/useUpdate.js","../node_modules/rc-tabs/lib/hooks/useVisibleRange.js","../node_modules/rc-tabs/lib/util.js","../node_modules/rc-tabs/node_modules/@rc-component/trigger/es/Popup/Arrow.js","../node_modules/rc-tabs/node_modules/@rc-component/trigger/es/Popup/Mask.js","../node_modules/rc-tabs/node_modules/@rc-component/trigger/es/Popup/PopupContent.js","../node_modules/rc-tabs/node_modules/@rc-component/trigger/es/Popup/index.js","../node_modules/rc-tabs/node_modules/@rc-component/trigger/es/TriggerWrapper.js","../node_modules/rc-tabs/node_modules/@rc-component/trigger/es/context.js","../node_modules/rc-tabs/node_modules/@rc-component/trigger/es/hooks/useAction.js","../node_modules/rc-tabs/node_modules/@rc-component/trigger/es/util.js","../node_modules/rc-tabs/node_modules/@rc-component/trigger/es/hooks/useAlign.js","../node_modules/rc-tabs/node_modules/@rc-component/trigger/es/index.js","../node_modules/rc-tabs/node_modules/@rc-component/trigger/es/hooks/useWatch.js","../node_modules/rc-tabs/node_modules/@rc-component/trigger/es/hooks/useWinClick.js","../node_modules/rc-tabs/node_modules/rc-dropdown/es/hooks/useAccessibility.js","../node_modules/rc-tabs/node_modules/rc-dropdown/es/Overlay.js","../node_modules/rc-tabs/node_modules/rc-dropdown/es/placements.js","../node_modules/rc-tabs/node_modules/rc-dropdown/es/Dropdown.js","../node_modules/rc-tabs/node_modules/rc-dropdown/es/index.js","../node_modules/rc-tabs/node_modules/rc-menu/es/context/IdContext.js","../node_modules/rc-tabs/node_modules/rc-menu/es/context/MenuContext.js","../node_modules/rc-tabs/node_modules/rc-menu/es/context/PathContext.js","../node_modules/rc-tabs/node_modules/rc-menu/es/context/PrivateContext.js","../node_modules/rc-tabs/node_modules/rc-menu/es/hooks/useAccessibility.js","../node_modules/rc-tabs/node_modules/rc-menu/es/hooks/useKeyRecords.js","../node_modules/rc-tabs/node_modules/rc-menu/es/utils/timeUtil.js","../node_modules/rc-tabs/node_modules/rc-menu/es/hooks/useMemoCallback.js","../node_modules/rc-tabs/node_modules/rc-menu/es/hooks/useUUID.js","../node_modules/rc-tabs/node_modules/rc-menu/es/hooks/useActive.js","../node_modules/rc-tabs/node_modules/rc-menu/es/hooks/useDirectionStyle.js","../node_modules/rc-tabs/node_modules/rc-menu/es/Icon.js","../node_modules/rc-tabs/node_modules/rc-menu/es/utils/warnUtil.js","../node_modules/rc-tabs/node_modules/rc-menu/es/MenuItem.js","../node_modules/rc-tabs/node_modules/rc-menu/es/SubMenu/SubMenuList.js","../node_modules/rc-tabs/node_modules/rc-menu/es/utils/commonUtil.js","../node_modules/rc-tabs/node_modules/rc-menu/es/placements.js","../node_modules/rc-tabs/node_modules/rc-menu/es/utils/motionUtil.js","../node_modules/rc-tabs/node_modules/rc-menu/es/SubMenu/PopupTrigger.js","../node_modules/rc-tabs/node_modules/rc-menu/es/SubMenu/InlineSubMenuList.js","../node_modules/rc-tabs/node_modules/rc-menu/es/SubMenu/index.js","../node_modules/rc-tabs/node_modules/rc-menu/es/MenuItemGroup.js","../node_modules/rc-tabs/node_modules/rc-menu/es/Divider.js","../node_modules/rc-tabs/node_modules/rc-menu/es/utils/nodeUtil.js","../node_modules/rc-tabs/node_modules/rc-menu/es/Menu.js","../node_modules/rc-tabs/node_modules/rc-menu/es/index.js","../node_modules/rc-util/es/Children/toArray.js","../node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-util/es/Dom/dynamicCSS.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-util/es/Dom/findDOMNode.js","../node_modules/rc-util/es/Dom/focus.js","../node_modules/rc-util/es/Dom/isVisible.js","../node_modules/rc-util/es/Dom/shadow.js","../node_modules/rc-util/es/KeyCode.js","../node_modules/rc-util/es/getScrollBarSize.js","../node_modules/rc-util/es/hooks/useEvent.js","../node_modules/rc-util/es/hooks/useId.js","../node_modules/rc-util/es/hooks/useLayoutEffect.js","../node_modules/rc-util/es/hooks/useMemo.js","../node_modules/rc-util/es/hooks/useMergedState.js","../node_modules/rc-util/es/hooks/useState.js","../node_modules/rc-util/es/utils/set.js","../node_modules/rc-util/es/isEqual.js","../node_modules/rc-util/es/isMobile.js","../node_modules/rc-util/es/omit.js","../node_modules/rc-util/es/raf.js","../node_modules/rc-util/es/ref.js","../node_modules/rc-util/es/warning.js","../node_modules/rc-util/lib/Dom/canUseDom.js","../node_modules/rc-util/lib/KeyCode.js","../node_modules/rc-util/lib/hooks/useEvent.js","../node_modules/rc-util/lib/hooks/useLayoutEffect.js","../node_modules/rc-util/lib/hooks/useMemo.js","../node_modules/rc-util/lib/hooks/useMergedState.js","../node_modules/rc-util/lib/hooks/useState.js","../node_modules/rc-util/lib/isMobile.js","../node_modules/rc-util/lib/raf.js","../node_modules/rc-util/lib/ref.js","../node_modules/rc-util/lib/warning.js","../node_modules/rc-util/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/rc-util/node_modules/react-is/index.js","../node_modules/react-date-range/dist/accessibility/index.js","../node_modules/react-date-range/dist/components/Calendar/index.js","../node_modules/react-date-range/dist/components/DateInput/index.js","../node_modules/react-date-range/dist/components/DateRangePicker/index.js","../node_modules/react-date-range/dist/components/DateRange/index.js","../node_modules/react-date-range/dist/components/DayCell/index.js","../node_modules/react-date-range/dist/components/DefinedRange/index.js","../node_modules/react-date-range/dist/components/InputRangeField/index.js","../node_modules/react-date-range/dist/components/Month/index.js","../node_modules/react-date-range/dist/defaultRanges.js","../node_modules/react-date-range/dist/index.js","../node_modules/react-date-range/dist/styles.js","../node_modules/react-date-range/dist/utils.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-fast-compare/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-list/react-list.js","../node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-redux/node_modules/react-is/index.js","../node_modules/react-slick/lib/arrows.js","../node_modules/react-slick/lib/default-props.js","../node_modules/react-slick/lib/dots.js","../node_modules/react-slick/lib/index.js","../node_modules/react-slick/lib/initial-state.js","../node_modules/react-slick/lib/inner-slider.js","../node_modules/react-slick/lib/slider.js","../node_modules/react-slick/lib/track.js","../node_modules/react-slick/lib/utils/innerSliderUtils.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/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/shallow-equal/dist/index.esm.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/tiny-case/index.js","../node_modules/toposort/index.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../node_modules/use-sync-external-store/shim/index.js","../node_modules/use-sync-external-store/shim/with-selector.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/interopRequireWildcard.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/objectSpread2.js","../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/toPrimitive.js","../node_modules/@babel/runtime/helpers/toPropertyKey.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/classnames/index.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/harmony module decorator","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/utils/useSyncExternalStore.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/components/connect.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/react-redux/es/index.js","../node_modules/@sentry/src/debug-build.ts","../node_modules/@sentry/src/worldwide.ts","../node_modules/@sentry/src/logger.ts","../node_modules/@sentry/src/is.ts","../node_modules/@sentry/src/browser.ts","../node_modules/@sentry/src/string.ts","../node_modules/@sentry/src/object.ts","../node_modules/@sentry/src/misc.ts","../node_modules/@sentry/src/syncpromise.ts","../node_modules/@sentry/src/eventProcessors.ts","../node_modules/@sentry/src/time.ts","../node_modules/@sentry/src/constants.ts","../node_modules/@sentry/src/session.ts","../node_modules/@sentry/src/stacktrace.ts","../node_modules/@sentry/src/normalize.ts","../node_modules/@sentry/src/memo.ts","../node_modules/@sentry/src/baggage.ts","../node_modules/@sentry/src/tracing.ts","../node_modules/@sentry/src/utils/spanUtils.ts","../node_modules/@sentry/src/utils/prepareEvent.ts","../node_modules/@sentry/src/scope.ts","../node_modules/@sentry/src/exports.ts","../node_modules/@sentry/src/utils/getRootSpan.ts","../node_modules/@sentry/src/tracing/dynamicSamplingContext.ts","../node_modules/@sentry/src/utils/applyScopeDataToEvent.ts","../node_modules/@sentry/src/version.ts","../node_modules/@sentry/src/hub.ts","../node_modules/@sentry/src/integration.ts","../node_modules/@sentry/src/integrations/inboundfilters.ts","../node_modules/@sentry/src/integrations/functiontostring.ts","../node_modules/@sentry/src/sdk.ts","../node_modules/@sentry/src/supports.ts","../node_modules/@sentry/src/vendor/supportsHistory.ts","../node_modules/@sentry/src/instrument/_handlers.ts","../node_modules/@sentry/src/instrument/history.ts","../node_modules/@sentry/src/dsn.ts","../node_modules/@sentry/src/envelope.ts","../node_modules/@sentry/src/error.ts","../node_modules/@sentry/src/api.ts","../node_modules/@sentry/src/metrics/envelope.ts","../node_modules/@sentry/src/metrics/utils.ts","../node_modules/@sentry/src/baseclient.ts","../node_modules/@sentry/src/utils/sdkMetadata.ts","../node_modules/src/debug-build.ts","../node_modules/src/eventbuilder.ts","../node_modules/src/helpers.ts","../node_modules/src/client.ts","../node_modules/src/userfeedback.ts","../node_modules/@sentry/src/clientreport.ts","../node_modules/@sentry/src/instrument/console.ts","../node_modules/@sentry/src/instrument/dom.ts","../node_modules/@sentry/src/instrument/xhr.ts","../node_modules/@sentry/src/instrument/fetch.ts","../node_modules/@sentry/src/severity.ts","../node_modules/@sentry/src/url.ts","../node_modules/src/integrations/breadcrumbs.ts","../node_modules/src/integrations/dedupe.ts","../node_modules/@sentry/src/instrument/globalError.ts","../node_modules/@sentry/src/instrument/globalUnhandledRejection.ts","../node_modules/src/integrations/globalhandlers.ts","../node_modules/src/integrations/httpcontext.ts","../node_modules/@sentry/src/aggregate-errors.ts","../node_modules/src/integrations/linkederrors.ts","../node_modules/src/integrations/trycatch.ts","../node_modules/src/stack-parsers.ts","../node_modules/@sentry/src/promisebuffer.ts","../node_modules/@sentry/src/ratelimit.ts","../node_modules/@sentry/src/transports/base.ts","../node_modules/src/transports/utils.ts","../node_modules/src/transports/fetch.ts","../node_modules/src/transports/xhr.ts","../node_modules/src/sdk.ts","../node_modules/@sentry/src/metrics/metric-summary.ts","../node_modules/@sentry/src/semanticAttributes.ts","../node_modules/@sentry/src/tracing/spanstatus.ts","../node_modules/@sentry/src/tracing/span.ts","../node_modules/@sentry/src/utils/hasTracingEnabled.ts","../node_modules/@sentry/src/tracing/trace.ts","../node_modules/@sentry/src/tracing/transaction.ts","../node_modules/@sentry/src/tracing/idletransaction.ts","../node_modules/@sentry/src/tracing/utils.ts","../node_modules/@sentry/src/tracing/errors.ts","../node_modules/@sentry/src/tracing/sampling.ts","../node_modules/@sentry/src/tracing/hubextensions.ts","../node_modules/@sentry-internal/src/common/debug-build.ts","../node_modules/@sentry-internal/src/browser/types.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/bindReporter.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/getNavigationEntry.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/getActivationStart.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/initMetric.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/generateUniqueID.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/observe.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/onHidden.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/getVisibilityWatcher.ts","../node_modules/@sentry-internal/src/browser/web-vitals/lib/polyfills/interactionCountPolyfill.ts","../node_modules/@sentry-internal/src/browser/web-vitals/getINP.ts","../node_modules/@sentry-internal/src/browser/web-vitals/getLCP.ts","../node_modules/@sentry-internal/src/browser/web-vitals/onTTFB.ts","../node_modules/@sentry-internal/src/browser/instrument.ts","../node_modules/@sentry-internal/src/browser/web-vitals/getCLS.ts","../node_modules/@sentry-internal/src/browser/web-vitals/getFID.ts","../node_modules/@sentry/src/span.ts","../node_modules/@sentry-internal/src/browser/metrics/utils.ts","../node_modules/@sentry-internal/src/browser/metrics/index.ts","../node_modules/@sentry/src/tracing/measurement.ts","../node_modules/@sentry-internal/src/common/fetch.ts","../node_modules/@sentry-internal/src/browser/request.ts","../node_modules/@sentry-internal/src/browser/browsertracing.ts","../node_modules/@sentry-internal/src/browser/router.ts","../node_modules/@sentry/src/buildPolyfills/_optionalChain.ts","../node_modules/@sentry/src/utils/isSentryRequestUrl.ts","../node_modules/@sentry/src/isBrowser.ts","../node_modules/src/constants.ts","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb-snapshot/es/rrweb-snapshot.js","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/utils.js","../node_modules/@sentry/src/buildPolyfills/_nullishCoalesce.ts","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/types/dist/rrweb-types.js","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/mutation.js","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/error-handler.js","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/observer.js","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/cross-origin-iframe-mirror.js","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/iframe-manager.js","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/shadow-dom-manager.js","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas-manager.js","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/stylesheet-manager.js","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/processed-node-manager.js","../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/index.js","../node_modules/src/util/timestamp.ts","../node_modules/src/coreHandlers/util/addBreadcrumbEvent.ts","../node_modules/src/coreHandlers/util/domUtils.ts","../node_modules/src/coreHandlers/util/onWindowOpen.ts","../node_modules/src/coreHandlers/handleClick.ts","../node_modules/src/types/rrweb.ts","../node_modules/src/util/createBreadcrumb.ts","../../node_modules/@sentry-internal/rrweb-snapshot/es/rrweb-snapshot.js","../node_modules/src/coreHandlers/util/getAttributesToRecord.ts","../node_modules/src/coreHandlers/handleDom.ts","../node_modules/src/coreHandlers/handleKeyboardEvent.ts","../node_modules/src/util/createPerformanceEntries.ts","../node_modules/src/coreHandlers/performanceObserver.ts","../node_modules/src/util/log.ts","../node_modules/src/eventBuffer/error.ts","../node_modules/src/eventBuffer/EventBufferArray.ts","../node_modules/src/eventBuffer/WorkerHandler.ts","../node_modules/src/eventBuffer/EventBufferCompressionWorker.ts","../node_modules/src/eventBuffer/EventBufferProxy.ts","../node_modules/src/eventBuffer/index.ts","../replay-worker/build/npm/esm/index.js","../replay-worker/build/npm/esm/worker.ts","../node_modules/src/util/hasSessionStorage.ts","../node_modules/src/session/clearSession.ts","../node_modules/src/util/isSampled.ts","../node_modules/src/session/Session.ts","../node_modules/src/session/saveSession.ts","../node_modules/src/session/createSession.ts","../node_modules/src/util/isExpired.ts","../node_modules/src/util/isSessionExpired.ts","../node_modules/src/session/shouldRefreshSession.ts","../node_modules/src/session/loadOrCreateSession.ts","../node_modules/src/session/fetchSession.ts","../node_modules/src/util/addEvent.ts","../node_modules/src/util/eventUtils.ts","../node_modules/src/coreHandlers/handleAfterSendEvent.ts","../node_modules/src/coreHandlers/handleBeforeSendEvent.ts","../node_modules/src/coreHandlers/handleGlobalEvent.ts","../node_modules/src/coreHandlers/util/addFeedbackBreadcrumb.ts","../node_modules/src/util/isRrwebError.ts","../node_modules/src/coreHandlers/util/shouldSampleForBufferEvent.ts","../node_modules/src/util/createPerformanceSpans.ts","../node_modules/src/coreHandlers/handleHistory.ts","../node_modules/src/coreHandlers/util/addNetworkBreadcrumb.ts","../node_modules/src/util/shouldFilterRequest.ts","../node_modules/src/coreHandlers/handleXhr.ts","../node_modules/src/coreHandlers/util/networkUtils.ts","../node_modules/src/coreHandlers/util/fetchUtils.ts","../node_modules/src/coreHandlers/util/xhrUtils.ts","../node_modules/src/coreHandlers/handleNetworkBreadcrumbs.ts","../node_modules/src/coreHandlers/handleFetch.ts","../node_modules/src/coreHandlers/handleScope.ts","../node_modules/src/util/addGlobalListeners.ts","../node_modules/src/util/addMemoryEntry.ts","../node_modules/src/util/handleRecordingEmit.ts","../node_modules/src/util/sendReplayRequest.ts","../node_modules/src/util/prepareRecordingData.ts","../node_modules/src/util/prepareReplayEvent.ts","../node_modules/src/util/createReplayEnvelope.ts","../node_modules/src/util/sendReplay.ts","../node_modules/src/util/throttle.ts","../node_modules/src/replay.ts","../node_modules/src/util/debounce.ts","../node_modules/src/util/getPrivacyOptions.ts","../node_modules/src/integration.ts","../node_modules/src/util/maskAttribute.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/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","helpers/http.module.ts","pages/AirGateway/AirGateway.tsx","../node_modules/react-google-recaptcha-v3/src/utils.ts","../node_modules/react-google-recaptcha-v3/src/google-recaptcha-provider.tsx","../node_modules/react-google-recaptcha-v3/src/use-google-recaptcha.tsx","../node_modules/react-google-recaptcha-v3/src/google-recaptcha.tsx","../node_modules/react-google-recaptcha-v3/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-google-recaptcha-v3/node_modules/react-is/cjs/react-is.development.js","../node_modules/react-google-recaptcha-v3/node_modules/react-is/index.js","../node_modules/react-google-recaptcha-v3/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/clsx/dist/clsx.m.js","components/Header/Menu.ts","components/Header/NavBarItem.tsx","components/Loader/Loader.tsx","components/Button/Button.tsx","image/icon/location.svg","image/icon/anchor.svg","image/icon/helm.svg","image/icon/ship.svg","image/icon/calendar.svg","image/icon/moon.svg","image/icon/user.svg","image/icon/phone.svg","image/icon/search.svg","image/icon/logo.svg","image/icon/burger.svg","image/icon/arrow-right.svg","image/icon/big-ship.svg","image/icon/gadgets.svg","image/icon/safety-icon.svg","image/icon/email.svg","image/icon/twitter.svg","image/icon/facebook.svg","image/icon/pinterest.svg","image/icon/instagram.svg","image/icon/arrow-slider-left.svg","image/icon/arrow-slider-right.svg","image/icon/twitter-fill.svg","image/icon/facebook-fill.svg","image/icon/pinterest-fill.svg","image/icon/instagram-fill.svg","image/icon/checkbox-check.svg","image/icon/location-road.svg","image/icon/filter.svg","image/icon/percent.svg","image/icon/people.svg","image/icon/cost.svg","image/icon/chat.svg","image/icon/chevron_down.svg","image/icon/check.svg","image/icon/clear.svg","image/icon/includes.svg","image/icon/login-check-list.svg","image/icon/pdf.svg","image/icon/tag.svg","image/icon/blog.svg","image/icon/globe.svg","image/icon/delete.svg","image/icon/sort.svg","image/icon/question.svg","image/icon/share.svg","image/icon/printer.svg","image/icon/fire.svg","image/icon/ellipsis.svg","image/icon/index.ts","components/SearchInput/SearchInput.tsx","objects/BurgerContext.ts","objects/PixelContext.ts","services/contexts/index.ts","components/Header/NavBar.tsx","../node_modules/react-countdown/dist/index.es.js","services/errors/RequestError.ts","services/api.ts","store/MainPage/ListActions.ts","hooks/useSelector.ts","services/phone.ts","components/Anchor/Anchor.tsx","services/EventBus.ts","objects/Anchors.ts","hooks/useDimensions.ts","utilities/RoutePathVars.ts","components/Header/InfoSection.tsx","hooks/useQueryParams.ts","components/SocialIcons/SocialIcons.tsx","../node_modules/yup/index.esm.js","../node_modules/formik/node_modules/deepmerge/dist/es.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/eq.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_ListCache.js","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/isFunction.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_toSource.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_getNative.js","../node_modules/lodash-es/_Map.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_Stack.js","../node_modules/lodash-es/_arrayEach.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/_copyObject.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/isBuffer.js","../node_modules/lodash-es/_isIndex.js","../node_modules/lodash-es/isLength.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/lodash-es/_nodeUtil.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/lodash-es/keys.js","../node_modules/lodash-es/_baseAssign.js","../node_modules/lodash-es/_nativeKeysIn.js","../node_modules/lodash-es/_baseKeysIn.js","../node_modules/lodash-es/keysIn.js","../node_modules/lodash-es/_baseAssignIn.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/lodash-es/_copyArray.js","../node_modules/lodash-es/_arrayFilter.js","../node_modules/lodash-es/stubArray.js","../node_modules/lodash-es/_getSymbols.js","../node_modules/lodash-es/_copySymbols.js","../node_modules/lodash-es/_arrayPush.js","../node_modules/lodash-es/_getSymbolsIn.js","../node_modules/lodash-es/_copySymbolsIn.js","../node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/lodash-es/_getAllKeys.js","../node_modules/lodash-es/_getAllKeysIn.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_Set.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/lodash-es/_initCloneArray.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/lodash-es/_cloneDataView.js","../node_modules/lodash-es/_cloneRegExp.js","../node_modules/lodash-es/_cloneSymbol.js","../node_modules/lodash-es/_cloneTypedArray.js","../node_modules/lodash-es/_initCloneByTag.js","../node_modules/lodash-es/_baseCreate.js","../node_modules/lodash-es/_initCloneObject.js","../node_modules/lodash-es/_baseIsMap.js","../node_modules/lodash-es/isMap.js","../node_modules/lodash-es/_baseIsSet.js","../node_modules/lodash-es/isSet.js","../node_modules/lodash-es/_baseClone.js","../node_modules/lodash-es/cloneDeep.js","../node_modules/tiny-warning/dist/tiny-warning.esm.js","../node_modules/lodash-es/clone.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_toKey.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/lodash-es/toPath.js","../node_modules/formik/src/FormikContext.tsx","../node_modules/formik/src/utils.ts","../node_modules/formik/src/Formik.tsx","../node_modules/formik/src/Field.tsx","../node_modules/formik/src/Form.tsx","../node_modules/formik/src/connect.tsx","../node_modules/formik/src/FieldArray.tsx","../node_modules/react-intersection-observer/src/observe.ts","../node_modules/react-intersection-observer/src/InView.tsx","components/TextField/TextField.tsx","../node_modules/js-cookie/dist/js.cookie.mjs","services/formData.ts","image/icon/error.svg","image/icon/info.svg","image/icon/success.svg","components/Notification/Notification.tsx","objects/Subscribe.tsx","pages/MainPage/Subscribe/Subscribe.tsx","../node_modules/react-intersection-observer/src/useInView.tsx","components/BurgerMenu/BurgerMenu.tsx","pages/MainPage/SearchCard/TrustBox.tsx","pages/MainPage/SearchCard/services.ts","../node_modules/rc-select/es/TransBtn.js","../node_modules/rc-select/es/hooks/useAllowClear.js","../node_modules/rc-select/es/hooks/useBaseProps.js","../node_modules/rc-select/es/hooks/useLock.js","../node_modules/rc-util/es/pickAttrs.js","../node_modules/rc-select/es/Selector/Input.js","../node_modules/rc-select/es/utils/commonUtil.js","../node_modules/rc-select/es/Selector/MultipleSelector.js","../node_modules/rc-select/es/hooks/useLayoutEffect.js","../node_modules/rc-select/es/Selector/SingleSelector.js","../node_modules/rc-select/es/Selector/index.js","../node_modules/rc-select/es/utils/keyUtil.js","../node_modules/@rc-component/trigger/es/Popup/Arrow.js","../node_modules/@rc-component/trigger/es/Popup/Mask.js","../node_modules/@rc-component/trigger/es/Popup/PopupContent.js","../node_modules/@rc-component/trigger/es/Popup/index.js","../node_modules/@rc-component/trigger/es/TriggerWrapper.js","../node_modules/@rc-component/trigger/es/context.js","../node_modules/@rc-component/trigger/es/hooks/useAction.js","../node_modules/@rc-component/trigger/es/util.js","../node_modules/@rc-component/trigger/es/hooks/useAlign.js","../node_modules/@rc-component/trigger/es/index.js","../node_modules/@rc-component/trigger/es/hooks/useWatch.js","../node_modules/@rc-component/trigger/es/hooks/useWinClick.js","../node_modules/rc-select/es/SelectTrigger.js","../node_modules/rc-select/es/utils/valueUtil.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/rc-select/es/SelectContext.js","../node_modules/rc-select/es/BaseSelect/Polite.js","../node_modules/rc-select/es/BaseSelect/index.js","../node_modules/rc-select/es/hooks/useDelayReset.js","../node_modules/rc-select/es/hooks/useSelectTriggerControl.js","../node_modules/rc-select/es/OptGroup.js","../node_modules/rc-select/es/Option.js","../node_modules/rc-virtual-list/es/Filler.js","../node_modules/rc-virtual-list/es/Item.js","../node_modules/rc-virtual-list/es/hooks/useDiffItem.js","../node_modules/rc-virtual-list/es/utils/algorithmUtil.js","../node_modules/rc-virtual-list/es/utils/isFirefox.js","../node_modules/rc-virtual-list/es/hooks/useOriginScroll.js","../node_modules/rc-virtual-list/es/hooks/useFrameWheel.js","../node_modules/rc-virtual-list/es/utils/CacheMap.js","../node_modules/rc-virtual-list/es/hooks/useMobileTouchMove.js","../node_modules/rc-virtual-list/es/ScrollBar.js","../node_modules/rc-virtual-list/es/utils/scrollbarUtil.js","../node_modules/rc-virtual-list/es/List.js","../node_modules/rc-virtual-list/es/hooks/useHeights.js","../node_modules/rc-virtual-list/es/hooks/useScrollTo.js","../node_modules/rc-virtual-list/es/hooks/useGetSize.js","../node_modules/rc-virtual-list/es/hooks/useChildren.js","../node_modules/rc-virtual-list/es/index.js","../node_modules/rc-select/es/OptionList.js","../node_modules/rc-select/es/utils/platformUtil.js","../node_modules/rc-select/es/hooks/useFilterOptions.js","../node_modules/rc-select/es/hooks/useId.js","../node_modules/rc-select/es/utils/legacyUtil.js","../node_modules/rc-select/es/hooks/useOptions.js","../node_modules/rc-select/es/hooks/useRefFunc.js","../node_modules/rc-select/es/Select.js","../node_modules/rc-select/es/hooks/useCache.js","../node_modules/rc-select/es/index.js","components/Selects/SelectProps.ts","hooks/useSelect.tsx","components/Selects/Select.tsx","components/Selects/Option.tsx","odesseus/OdyManager.ts","odesseus/Requests.ts","odesseus/types/Filters.ts","odesseus/FacetChain.ts","odesseus/useOdesseus.ts","objects/Utility.ts","odesseus/FilterServices.ts","pages/MainPage/SearchCard/TabsSearchCard/SearchCruises.tsx","objects/Filters/Packages.ts","objects/Sorter.ts","services/searchPackages/SearchPackagesURLTraverser.ts","services/searchPackages/SearchPackagesURLManager.ts","hooks/useSearchPackagesURLManager.ts","services/searchPackages/FilterURLTraverser.ts","pages/MainPage/SearchCard/TabsSearchCard/SearchPackages.tsx","utilities/string.ts","../node_modules/rc-dropdown/es/hooks/useAccessibility.js","../node_modules/rc-dropdown/es/Overlay.js","../node_modules/rc-dropdown/es/placements.js","../node_modules/rc-dropdown/es/Dropdown.js","../node_modules/rc-dropdown/es/index.js","components/DatePicker/DatePicker.tsx","hooks/useDebounce.ts","components/AutoComplete/AutoComplete.tsx","pages/MainPage/SearchCard/TabsSearchCard/SearchHotel.tsx","pages/MainPage/SearchCard/SearchCard.tsx","components/Header/Header.tsx","components/Footer/text.ts","components/Footer/Footer.tsx","services/path.ts","components/CookiesAlert/CookiesAlert.tsx","../node_modules/@livechat/widget-core/dist/widget-core.esm.js","../node_modules/mitt/src/index.ts","../node_modules/@livechat/widget-react/dist/widget-react.esm.js","components/Chat/Chat.tsx","components/ContactsWidget/ContactsWidget.tsx","components/PixelTracking/PixelTracking.tsx","hooks/usePixel.ts","layout/Layout.tsx","hooks/useAoTracker.ts","hooks/useBurger.ts","pages/StaticPages/NotFound/NotFound.tsx","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/v4.js","components/Pagination/Pagination.tsx","components/Carousel/Carousel.tsx","components/Tag/Tag.tsx","components/Cards/FeaturedDealsCard/FeaturedDealsCard.tsx","pages/MainPage/FeaturedDeals/FeaturedDeals.tsx","components/Cards/DealCard/DealCard.tsx","pages/MainPage/DealSections/DealSections.tsx","components/Bullet/Bullet.tsx","pages/MainPage/WhyUs/WhyUs.tsx","pages/MainPage/WhyUs/text.ts","pages/MainPage/CruiseOptions/CruiseOptions.tsx","pages/MainPage/CruiseOptions/text.ts","pages/MainPage/CruiseLine/objects.ts","pages/MainPage/CruiseLine/CruiseLine.tsx","pages/MainPage/Feedback/Feedback.tsx","pages/MainPage/MainPage.tsx","../node_modules/rc-collapse/es/PanelContent.js","../node_modules/rc-collapse/es/Panel.js","../node_modules/rc-collapse/es/hooks/useItems.js","../node_modules/rc-collapse/es/Collapse.js","../node_modules/rc-collapse/es/index.js","components/Badge/Badge.tsx","components/Loader/LoaderOverlay.tsx","components/Checkbox/Checkbox.tsx","components/SelectableList/SelectableList.tsx","components/Filters/FilterComponents/PanelWrapper.tsx","components/Filters/FilterComponents/FilterComponents.tsx","components/Filters/MobileFilters.tsx","components/Filters/DesktopFilters.tsx","components/Filters/Filters.tsx","pages/SearchPage/SearchBar/SearchBar.tsx","objects/CruisePackages.ts","components/BrandLogo/BrandLogo.tsx","components/Cards/SearchListCard/CardComponents/Price.tsx","components/Cards/SearchListCard/CardComponents/ExpandableList.tsx","../node_modules/rc-tooltip/es/Popup.js","../node_modules/rc-tooltip/es/placements.js","../node_modules/rc-tooltip/es/Tooltip.js","../node_modules/rc-tooltip/es/index.js","components/Modal/Modal.tsx","components/Cards/SearchListCard/CardComponents/Inclusion.tsx","components/Cards/SearchListCard/CardComponents/CardContent.tsx","objects/Routes/Route.ts","components/Image/index.tsx","components/Cards/SearchListCard/SearchListCard.tsx","components/Message/DataNotFound.tsx","../node_modules/rc-menu/es/context/IdContext.js","../node_modules/rc-menu/es/context/MenuContext.js","../node_modules/rc-menu/es/context/PathContext.js","../node_modules/rc-menu/es/context/PrivateContext.js","../node_modules/rc-menu/es/hooks/useAccessibility.js","../node_modules/rc-menu/es/hooks/useKeyRecords.js","../node_modules/rc-menu/es/utils/timeUtil.js","../node_modules/rc-menu/es/hooks/useMemoCallback.js","../node_modules/rc-menu/es/hooks/useUUID.js","../node_modules/rc-menu/es/hooks/useActive.js","../node_modules/rc-menu/es/hooks/useDirectionStyle.js","../node_modules/rc-menu/es/Icon.js","../node_modules/rc-menu/es/utils/warnUtil.js","../node_modules/rc-menu/es/MenuItem.js","../node_modules/rc-menu/es/SubMenu/SubMenuList.js","../node_modules/rc-menu/es/utils/commonUtil.js","../node_modules/rc-menu/es/placements.js","../node_modules/rc-menu/es/utils/motionUtil.js","../node_modules/rc-menu/es/SubMenu/PopupTrigger.js","../node_modules/rc-menu/es/SubMenu/InlineSubMenuList.js","../node_modules/rc-menu/es/SubMenu/index.js","../node_modules/rc-menu/es/Divider.js","../node_modules/rc-menu/es/MenuItemGroup.js","../node_modules/rc-menu/es/utils/nodeUtil.js","../node_modules/rc-menu/es/Menu.js","../node_modules/rc-menu/es/index.js","components/Sorter/DesktopSorter.tsx","components/Checkbox/Radio.tsx","components/Sorter/MobileSorter.tsx","components/Sorter/Sorter.tsx","pages/SearchPage/SorterOptions.ts","pages/SearchPage/SearchList/SearchList.tsx","pages/SearchPage/SearchPackagesPageContent.tsx","objects/Routes/RouteInclusion.ts","services/adaptors/SearchListAdaptor.tsx","utilities/group.ts","services/searchPackages/ListURLTraverser.ts","pages/SearchPage/SearchPackagesPage.tsx","pages/StaticPages/utils.tsx","pages/StaticPages/GeneralTerms/text.tsx","pages/StaticPages/GeneralTerms/GeneralTerms.tsx","pages/StaticPages/PrivacyPolicy/text.tsx","pages/StaticPages/PrivacyPolicy/PrivacyPolicy.tsx","pages/StaticPages/WhyChooseOVC/text.tsx","pages/StaticPages/WhyChooseOVC/WhyChooseOVC.tsx","../node_modules/rc-table/es/constant.js","../node_modules/@rc-component/context/es/context.js","../node_modules/@rc-component/context/es/Immutable.js","../node_modules/@rc-component/context/es/index.js","../node_modules/rc-table/es/context/TableContext.js","../node_modules/rc-util/es/utils/get.js","../node_modules/rc-table/es/context/PerfContext.js","../node_modules/rc-table/es/utils/valueUtil.js","../node_modules/rc-table/es/Cell/useCellRender.js","../node_modules/rc-table/es/Cell/index.js","../node_modules/rc-table/es/Cell/useHoverState.js","../node_modules/rc-table/es/utils/fixUtil.js","../node_modules/rc-table/es/Footer/SummaryContext.js","../node_modules/rc-table/es/Footer/Row.js","../node_modules/rc-table/es/Footer/Summary.js","../node_modules/rc-table/es/Footer/Cell.js","../node_modules/rc-table/es/Footer/index.js","../node_modules/rc-util/es/Dom/styleChecker.js","../node_modules/rc-table/es/hooks/useFlattenRecords.js","../node_modules/rc-table/es/hooks/useRowInfo.js","../node_modules/rc-table/es/Body/ExpandedRow.js","../node_modules/rc-table/es/Body/BodyRow.js","../node_modules/rc-table/es/Body/MeasureCell.js","../node_modules/rc-table/es/Body/MeasureRow.js","../node_modules/rc-table/es/Body/index.js","../node_modules/rc-table/es/utils/legacyUtil.js","../node_modules/rc-table/es/ColGroup.js","../node_modules/rc-table/es/FixedHolder/index.js","../node_modules/rc-table/es/Header/HeaderRow.js","../node_modules/rc-table/es/Header/Header.js","../node_modules/rc-table/es/hooks/useColumns/useWidthColumns.js","../node_modules/rc-table/es/hooks/useColumns/index.js","../node_modules/rc-table/es/utils/expandUtil.js","../node_modules/rc-table/es/hooks/useExpand.js","../node_modules/rc-table/es/hooks/useFrame.js","../node_modules/rc-table/es/hooks/useSticky.js","../node_modules/rc-table/es/hooks/useStickyOffsets.js","../node_modules/rc-table/es/Panel/index.js","../node_modules/rc-util/es/Dom/addEventListener.js","../node_modules/rc-util/es/Dom/css.js","../node_modules/rc-table/es/stickyScrollBar.js","../node_modules/rc-table/es/sugar/Column.js","../node_modules/rc-table/es/sugar/ColumnGroup.js","../node_modules/rc-table/es/Table.js","../node_modules/rc-table/es/hooks/useHover.js","../node_modules/rc-table/es/hooks/useFixedInfo.js","../node_modules/rc-table/es/VirtualTable/context.js","../node_modules/rc-table/es/VirtualTable/VirtualCell.js","../node_modules/rc-table/es/VirtualTable/BodyLine.js","../node_modules/rc-table/es/VirtualTable/BodyGrid.js","../node_modules/rc-table/es/VirtualTable/index.js","../node_modules/rc-table/es/index.js","pages/StaticPages/TravelInsurance/travel-insurance.tsx","pages/StaticPages/TravelInsurance/TravelInsurance.tsx","pages/StaticPages/DocumentationRequirements/requirements.tsx","pages/StaticPages/DocumentationRequirements/DocumentationRequirements.tsx","pages/StaticPages/Managers/managers-text.ts","pages/StaticPages/Managers/Managers.tsx","pages/StaticPages/FAQ/text.tsx","components/DropList/DropList.tsx","pages/StaticPages/FAQ/FAQ.tsx","objects/AboutUsPage.ts","pages/StaticPages/AboutUs/text.tsx","pages/StaticPages/AboutUs/AboutUs.tsx","pages/StaticPages/Careers/text.tsx","pages/StaticPages/Careers/Careers.tsx","../node_modules/rc-tabs/es/TabContext.js","../node_modules/rc-tabs/es/hooks/useIndicator.js","../node_modules/rc-tabs/es/hooks/useOffsets.js","../node_modules/rc-tabs/es/hooks/useSyncState.js","../node_modules/rc-tabs/es/hooks/useTouchMove.js","../node_modules/rc-tabs/es/hooks/useUpdate.js","../node_modules/rc-tabs/es/hooks/useVisibleRange.js","../node_modules/rc-tabs/es/util.js","../node_modules/rc-tabs/es/TabNavList/AddButton.js","../node_modules/rc-tabs/es/TabNavList/ExtraContent.js","../node_modules/rc-tabs/es/TabNavList/OperationNode.js","../node_modules/rc-tabs/es/TabNavList/TabNode.js","../node_modules/rc-tabs/es/TabNavList/index.js","../node_modules/rc-tabs/es/TabPanelList/TabPane.js","../node_modules/rc-tabs/es/TabNavList/Wrapper.js","../node_modules/rc-tabs/es/TabPanelList/index.js","../node_modules/rc-tabs/es/Tabs.js","../node_modules/rc-tabs/es/hooks/useAnimateConfig.js","../node_modules/rc-tabs/es/index.js","pages/StaticPages/Investors/InvestorsTabs/InvestorRelations.tsx","pages/StaticPages/Investors/InvestorsTabs/Templates.tsx","pages/StaticPages/Investors/InvestorsTabs/texts/directors.tsx","pages/StaticPages/Investors/InvestorsTabs/texts/management.tsx","pages/StaticPages/Investors/InvestorsTabs/texts/investorFAQs.tsx","pages/StaticPages/Investors/InvestorsTabs/texts/pressReleases.ts","pages/StaticPages/Investors/InvestorsTabs/texts/financials.ts","pages/StaticPages/Investors/Investors.tsx","services/TableBuilder.tsx","pages/MoreDetailsPage/utils.tsx","pages/MoreDetailsPage/MoreDetailsPage.tsx","pages/Forms/FormTemplate.tsx","services/validationSchemas.ts","components/TextField/TextAreaField.tsx","components/Selects/LocalSelectOptions.tsx","hooks/data/useFetchStore/useItemFetchStore.ts","hooks/data/useData.ts","hooks/data/useFetchStore/useListFetchStore.ts","hooks/data/useListData.ts","hooks/data/useLoadMore.ts","components/Selects/SmartSelects/ManagersSelect.tsx","pages/Forms/Contact.tsx","pages/Forms/Subscribe.tsx","image/valueinclusive/quote-left.svg","pages/MainPage/ValueInclusive/Slider/ClientFeedback.tsx","pages/MainPage/ValueInclusive/Slider/SpecialOffers.tsx","pages/MainPage/ValueInclusive/Slider/PersonalManager.tsx","image/valueinclusive/calander.svg","image/valueinclusive/location.svg","pages/MainPage/ValueInclusive/Slider/TopPackges.tsx","pages/MainPage/ValueInclusive/Slider/FeaturedDestination.tsx","pages/MainPage/ValueInclusive/ValueInclusive.tsx","components/PhoneField/PhoneField.tsx","components/Selects/SmartSelects/DestinationsSelect.tsx","components/Selects/SmartSelects/ShipsSelect.tsx","components/Selects/SmartSelects/SuppliersSelect.tsx","pages/Forms/RequestQuote.tsx","pages/Forms/SpacialHeadlines.tsx","pages/Forms/FriendForward.tsx","pages/Forms/FriendInvite.tsx","objects/SubscribeSettings.ts","pages/Forms/SubscribeSettings.tsx","App.tsx","../node_modules/redux/es/redux.js","../node_modules/redux-thunk/es/index.js","store/MainPage/Reducers.ts","store/index.ts","index.tsx","../node_modules/@sentry-internal/src/browser/backgroundtab.ts"],"sourcesContent":["import * as React from 'react';\nvar OrderContext = /*#__PURE__*/React.createContext(null);\nexport default OrderContext;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport OrderContext from \"./Context\";\nvar EMPTY_LIST = [];\n\n/**\n * Will add `div` to document. Nest call will keep order\n * @param render Render DOM in document\n */\nexport default function useDom(render, debug) {\n var _React$useState = React.useState(function () {\n if (!canUseDom()) {\n return null;\n }\n var defaultEle = document.createElement('div');\n if (process.env.NODE_ENV !== 'production' && debug) {\n defaultEle.setAttribute('data-debug', debug);\n }\n return defaultEle;\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n ele = _React$useState2[0];\n\n // ========================== Order ==========================\n var appendedRef = React.useRef(false);\n var queueCreate = React.useContext(OrderContext);\n var _React$useState3 = React.useState(EMPTY_LIST),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n queue = _React$useState4[0],\n setQueue = _React$useState4[1];\n var mergedQueueCreate = queueCreate || (appendedRef.current ? undefined : function (appendFn) {\n setQueue(function (origin) {\n var newQueue = [appendFn].concat(_toConsumableArray(origin));\n return newQueue;\n });\n });\n\n // =========================== DOM ===========================\n function append() {\n if (!ele.parentElement) {\n document.body.appendChild(ele);\n }\n appendedRef.current = true;\n }\n function cleanup() {\n var _ele$parentElement;\n (_ele$parentElement = ele.parentElement) === null || _ele$parentElement === void 0 ? void 0 : _ele$parentElement.removeChild(ele);\n appendedRef.current = false;\n }\n useLayoutEffect(function () {\n if (render) {\n if (queueCreate) {\n queueCreate(append);\n } else {\n append();\n }\n } else {\n cleanup();\n }\n return cleanup;\n }, [render]);\n useLayoutEffect(function () {\n if (queue.length) {\n queue.forEach(function (appendFn) {\n return appendFn();\n });\n setQueue(EMPTY_LIST);\n }\n }, [queue]);\n return [ele, mergedQueueCreate];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { updateCSS, removeCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { getTargetScrollBarSize } from \"rc-util/es/getScrollBarSize\";\nimport { isBodyOverflowing } from \"./util\";\nvar UNIQUE_ID = \"rc-util-locker-\".concat(Date.now());\nvar uuid = 0;\nexport default function useScrollLocker(lock) {\n var mergedLock = !!lock;\n var _React$useState = React.useState(function () {\n uuid += 1;\n return \"\".concat(UNIQUE_ID, \"_\").concat(uuid);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n id = _React$useState2[0];\n useLayoutEffect(function () {\n if (mergedLock) {\n var scrollbarSize = getTargetScrollBarSize(document.body).width;\n var isOverflow = isBodyOverflowing();\n updateCSS(\"\\nhtml body {\\n overflow-y: hidden;\\n \".concat(isOverflow ? \"width: calc(100% - \".concat(scrollbarSize, \"px);\") : '', \"\\n}\"), id);\n } else {\n removeCSS(id);\n }\n return function () {\n removeCSS(id);\n };\n }, [mergedLock, id]);\n}","/**\n * Test usage export. Do not use in your production\n */\nexport function isBodyOverflowing() {\n return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight) && window.innerWidth > document.body.offsetWidth;\n}","export var inline = false;\nexport function inlineMock(nextInline) {\n if (typeof nextInline === 'boolean') {\n inline = nextInline;\n }\n return inline;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport warning from \"rc-util/es/warning\";\nimport { supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport OrderContext from \"./Context\";\nimport useDom from \"./useDom\";\nimport useScrollLocker from \"./useScrollLocker\";\nimport { inlineMock } from \"./mock\";\nvar getPortalContainer = function getPortalContainer(getContainer) {\n if (getContainer === false) {\n return false;\n }\n if (!canUseDom() || !getContainer) {\n return null;\n }\n if (typeof getContainer === 'string') {\n return document.querySelector(getContainer);\n }\n if (typeof getContainer === 'function') {\n return getContainer();\n }\n return getContainer;\n};\nvar Portal = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var open = props.open,\n autoLock = props.autoLock,\n getContainer = props.getContainer,\n debug = props.debug,\n _props$autoDestroy = props.autoDestroy,\n autoDestroy = _props$autoDestroy === void 0 ? true : _props$autoDestroy,\n children = props.children;\n var _React$useState = React.useState(open),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n shouldRender = _React$useState2[0],\n setShouldRender = _React$useState2[1];\n var mergedRender = shouldRender || open;\n\n // ========================= Warning =========================\n if (process.env.NODE_ENV !== 'production') {\n warning(canUseDom() || !open, \"Portal only work in client side. Please call 'useEffect' to show Portal instead default render in SSR.\");\n }\n\n // ====================== Should Render ======================\n React.useEffect(function () {\n if (autoDestroy || open) {\n setShouldRender(open);\n }\n }, [open, autoDestroy]);\n\n // ======================== Container ========================\n var _React$useState3 = React.useState(function () {\n return getPortalContainer(getContainer);\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n innerContainer = _React$useState4[0],\n setInnerContainer = _React$useState4[1];\n React.useEffect(function () {\n var customizeContainer = getPortalContainer(getContainer);\n\n // Tell component that we check this in effect which is safe to be `null`\n setInnerContainer(customizeContainer !== null && customizeContainer !== void 0 ? customizeContainer : null);\n });\n var _useDom = useDom(mergedRender && !innerContainer, debug),\n _useDom2 = _slicedToArray(_useDom, 2),\n defaultContainer = _useDom2[0],\n queueCreate = _useDom2[1];\n var mergedContainer = innerContainer !== null && innerContainer !== void 0 ? innerContainer : defaultContainer;\n\n // ========================= Locker ==========================\n useScrollLocker(autoLock && open && canUseDom() && (mergedContainer === defaultContainer || mergedContainer === document.body));\n\n // =========================== Ref ===========================\n var childRef = null;\n if (children && supportRef(children) && ref) {\n var _ref = children;\n childRef = _ref.ref;\n }\n var mergedRef = useComposeRef(childRef, ref);\n\n // ========================= Render ==========================\n // Do not render when nothing need render\n // When innerContainer is `undefined`, it may not ready since user use ref in the same render\n if (!mergedRender || !canUseDom() || innerContainer === undefined) {\n return null;\n }\n\n // Render inline\n var renderInline = mergedContainer === false || inlineMock();\n var reffedChildren = children;\n if (ref) {\n reffedChildren = /*#__PURE__*/React.cloneElement(children, {\n ref: mergedRef\n });\n }\n return /*#__PURE__*/React.createElement(OrderContext.Provider, {\n value: queueCreate\n }, renderInline ? reffedChildren : /*#__PURE__*/createPortal(reffedChildren, mergedContainer));\n});\nif (process.env.NODE_ENV !== 'production') {\n Portal.displayName = 'Portal';\n}\nexport default Portal;","import Portal from \"./Portal\";\nimport { inlineMock } from \"./mock\";\nexport { inlineMock };\nexport default Portal;","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These flags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\ndeclare const __SENTRY_BROWSER_BUNDLE__: boolean | undefined;\n\nexport type SdkSource = 'npm' | 'cdn' | 'loader';\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nexport function isBrowserBundle(): boolean {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\n/**\n * Get source of SDK.\n */\nexport function getSDKSource(): SdkSource {\n // @ts-expect-error __SENTRY_SDK_SOURCE__ is injected by rollup during build process\n return __SENTRY_SDK_SOURCE__;\n}\n","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\nimport { isBrowserBundle } from './env';\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nexport function isNodeEnv(): boolean {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (\n !isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n );\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nexport function dynamicRequire(mod: any, request: string): any {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nexport function loadModule(moduleName: string): T | undefined {\n let mod: T | undefined;\n\n try {\n mod = dynamicRequire(module, moduleName);\n } catch (e) {\n // no-empty\n }\n\n try {\n const { cwd } = dynamicRequire(module, 'process');\n mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`) as T;\n } catch (e) {\n // no-empty\n }\n\n return mod;\n}\n","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n date.setDate(date.getDate() + amount);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n var dayOfMonth = date.getDate();\n\n // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\nexport default function addYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, amount * 12);\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight);\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarDays from \"../differenceInCalendarDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // Like `compareAsc` but uses local time not UTC, which is needed\n// for accurate equality comparisons of UTC timestamps that end up\n// having the same representation in local time, e.g. one hour before\n// DST ends vs. the instant that DST ends.\nfunction compareLocalAsc(dateLeft, dateRight) {\n var diff = dateLeft.getFullYear() - dateRight.getFullYear() || dateLeft.getMonth() - dateRight.getMonth() || dateLeft.getDate() - dateRight.getDate() || dateLeft.getHours() - dateRight.getHours() || dateLeft.getMinutes() - dateRight.getMinutes() || dateLeft.getSeconds() - dateRight.getSeconds() || dateLeft.getMilliseconds() - dateRight.getMilliseconds();\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1;\n // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}\n\n/**\n * @name differenceInDays\n * @category Day Helpers\n * @summary Get the number of full days between the given dates.\n *\n * @description\n * Get the number of full day periods between two dates. Fractional days are\n * truncated towards zero.\n *\n * One \"full day\" is the distance between a local time in one day to the same\n * local time on the next or previous day. A full day can sometimes be less than\n * or more than 24 hours if a daylight savings change happens between two dates.\n *\n * To ignore DST and only measure exact 24-hour periods, use this instead:\n * `Math.floor(differenceInHours(dateLeft, dateRight)/24)|0`.\n *\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full days according to the local timezone\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 365\n * // How many full days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 0\n * // How many full days are between\n * // 1 March 2020 0:00 and 1 June 2020 0:00 ?\n * // Note: because local time is used, the\n * // result will always be 92 days, even in\n * // time zones where DST starts and the\n * // period has only 92*24-1 hours.\n * const result = differenceInDays(\n * new Date(2020, 5, 1),\n * new Date(2020, 2, 1)\n * )\n//=> 92\n */\nexport default function differenceInDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareLocalAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarDays(dateLeft, dateRight));\n dateLeft.setDate(dateLeft.getDate() - sign * difference);\n\n // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full\n // If so, result must be decreased by 1 in absolute value\n var isLastDayNotFull = Number(compareLocalAsc(dateLeft, dateRight) === -sign);\n var result = sign * (difference - isLastDayNotFull);\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name eachDayOfInterval\n * @category Interval Helpers\n * @summary Return the array of dates within the specified time interval.\n *\n * @description\n * Return the array of dates within the specified time interval.\n *\n * @param {Interval} interval - the interval. See [Interval]{@link https://date-fns.org/docs/Interval}\n * @param {Object} [options] - an object with options.\n * @param {Number} [options.step=1] - the step to increment by. The value should be more than 1.\n * @returns {Date[]} the array with starts of days from the day of the interval start to the day of the interval end\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.step` must be a number greater than 1\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // Each day between 6 October 2014 and 10 October 2014:\n * const result = eachDayOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 9, 10)\n * })\n * //=> [\n * // Mon Oct 06 2014 00:00:00,\n * // Tue Oct 07 2014 00:00:00,\n * // Wed Oct 08 2014 00:00:00,\n * // Thu Oct 09 2014 00:00:00,\n * // Fri Oct 10 2014 00:00:00\n * // ]\n */\nexport default function eachDayOfInterval(dirtyInterval, options) {\n var _options$step;\n requiredArgs(1, arguments);\n var interval = dirtyInterval || {};\n var startDate = toDate(interval.start);\n var endDate = toDate(interval.end);\n var endTime = endDate.getTime();\n\n // Throw an exception if start date is after end date or if any date is `Invalid Date`\n if (!(startDate.getTime() <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n var dates = [];\n var currentDate = startDate;\n currentDate.setHours(0, 0, 0, 0);\n var step = Number((_options$step = options === null || options === void 0 ? void 0 : options.step) !== null && _options$step !== void 0 ? _options$step : 1);\n if (step < 1 || isNaN(step)) throw new RangeError('`options.step` must be a number greater than 1');\n while (currentDate.getTime() <= endTime) {\n dates.push(toDate(currentDate));\n currentDate.setDate(currentDate.getDate() + step);\n currentDate.setHours(0, 0, 0, 0);\n }\n return dates;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the end of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport default function endOfWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n date.setDate(date.getDate() + diff);\n date.setHours(23, 59, 59, 999);\n return date;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @param {Date|Number} date - the date that should be after the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is after the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nexport default function isAfter(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() > dateToCompare.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @param {Date|Number} date - the date that should be before the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is before the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nexport default function isBefore(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() < dateToCompare.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Boolean} the dates are equal\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * const result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0),\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\nexport default function isEqual(dirtyLeftDate, dirtyRightDate) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyLeftDate);\n var dateRight = toDate(dirtyRightDate);\n return dateLeft.getTime() === dateRight.getTime();\n}","import startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same day (and year and month)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n *\n * @example\n * // Are 4 September and 4 October in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n *\n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\nexport default function isSameDay(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfDay = startOfDay(dirtyDateLeft);\n var dateRightStartOfDay = startOfDay(dirtyDateRight);\n return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameMonth\n * @category Month Helpers\n * @summary Are the given dates in the same month (and year)?\n *\n * @description\n * Are the given dates in the same month (and year)?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same month (and year)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n *\n * @example\n * // Are 2 September 2014 and 25 September 2015 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2015, 8, 25))\n * //=> false\n */\nexport default function isSameMonth(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear() && dateLeft.getMonth() === dateRight.getMonth();\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isWeekend\n * @category Weekday Helpers\n * @summary Does the given date fall on a weekend?\n *\n * @description\n * Does the given date fall on a weekend?\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date falls on a weekend\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Does 5 October 2014 fall on a weekend?\n * const result = isWeekend(new Date(2014, 9, 5))\n * //=> true\n */\nexport default function isWeekend(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var day = date.getDay();\n return day === 0 || day === 6;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isWithinInterval\n * @category Interval Helpers\n * @summary Is the given date within the interval?\n *\n * @description\n * Is the given date within the interval? (Including start and end.)\n *\n * @param {Date|Number} date - the date to check\n * @param {Interval} interval - the interval to check\n * @returns {Boolean} the date is within the interval\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // For the date within the interval:\n * isWithinInterval(new Date(2014, 0, 3), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> true\n *\n * @example\n * // For the date outside of the interval:\n * isWithinInterval(new Date(2014, 0, 10), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> false\n *\n * @example\n * // For date equal to interval start:\n * isWithinInterval(date, { start, end: date }) // => true\n *\n * @example\n * // For date equal to interval end:\n * isWithinInterval(date, { start: date, end }) // => true\n */\nexport default function isWithinInterval(dirtyDate, interval) {\n requiredArgs(2, arguments);\n var time = toDate(dirtyDate).getTime();\n var startTime = toDate(interval.start).getTime();\n var endTime = toDate(interval.end).getTime();\n\n // Throw an exception if start date is after end date or if any date is `Invalid Date`\n if (!(startTime <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n return time >= startTime && time <= endTime;\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name max\n * @category Common Helpers\n * @summary Return the latest of the given dates.\n *\n * @description\n * Return the latest of the given dates.\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} the latest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the latest?\n * const result = max([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Sun Jul 02 1995 00:00:00\n */\nexport default function max(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray;\n // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray;\n\n // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (_typeof(dirtyDatesArray) === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n if (result === undefined || result < currentDate || isNaN(Number(currentDate))) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name min\n * @category Common Helpers\n * @summary Returns the earliest of the given dates.\n *\n * @description\n * Returns the earliest of the given dates.\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} - the earliest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the earliest?\n * const result = min([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Wed Feb 11 1987 00:00:00\n */\nexport default function min(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray;\n // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray;\n // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (_typeof(dirtyDatesArray) === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n if (result === undefined || result > currentDate || isNaN(currentDate.getDate())) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nfunction _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n t && (r = t);\n var _n = 0,\n F = function F() {};\n return {\n s: F,\n n: function n() {\n return _n >= r.length ? {\n done: !0\n } : {\n done: !1,\n value: r[_n++]\n };\n },\n e: function e(r) {\n throw r;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o,\n a = !0,\n u = !1;\n return {\n s: function s() {\n t = t.call(r);\n },\n n: function n() {\n var r = t.next();\n return a = r.done, r;\n },\n e: function e(r) {\n u = !0, o = r;\n },\n f: function f() {\n try {\n a || null == t[\"return\"] || t[\"return\"]();\n } finally {\n if (u) throw o;\n }\n }\n };\n}\nexport { _createForOfIteratorHelper as default };","export default function assign(target, object) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n for (var property in object) {\n if (Object.prototype.hasOwnProperty.call(object, property)) {\n ;\n target[property] = object[property];\n }\n }\n return target;\n}","import _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar TIMEZONE_UNIT_PRIORITY = 10;\nexport var Setter = /*#__PURE__*/function () {\n function Setter() {\n _classCallCheck(this, Setter);\n _defineProperty(this, \"priority\", void 0);\n _defineProperty(this, \"subPriority\", 0);\n }\n _createClass(Setter, [{\n key: \"validate\",\n value: function validate(_utcDate, _options) {\n return true;\n }\n }]);\n return Setter;\n}();\nexport var ValueSetter = /*#__PURE__*/function (_Setter) {\n _inherits(ValueSetter, _Setter);\n var _super = _createSuper(ValueSetter);\n function ValueSetter(value, validateValue, setValue, priority, subPriority) {\n var _this;\n _classCallCheck(this, ValueSetter);\n _this = _super.call(this);\n _this.value = value;\n _this.validateValue = validateValue;\n _this.setValue = setValue;\n _this.priority = priority;\n if (subPriority) {\n _this.subPriority = subPriority;\n }\n return _this;\n }\n _createClass(ValueSetter, [{\n key: \"validate\",\n value: function validate(utcDate, options) {\n return this.validateValue(utcDate, this.value, options);\n }\n }, {\n key: \"set\",\n value: function set(utcDate, flags, options) {\n return this.setValue(utcDate, flags, this.value, options);\n }\n }]);\n return ValueSetter;\n}(Setter);\nexport var DateToSystemTimezoneSetter = /*#__PURE__*/function (_Setter2) {\n _inherits(DateToSystemTimezoneSetter, _Setter2);\n var _super2 = _createSuper(DateToSystemTimezoneSetter);\n function DateToSystemTimezoneSetter() {\n var _this2;\n _classCallCheck(this, DateToSystemTimezoneSetter);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this2 = _super2.call.apply(_super2, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this2), \"priority\", TIMEZONE_UNIT_PRIORITY);\n _defineProperty(_assertThisInitialized(_this2), \"subPriority\", -1);\n return _this2;\n }\n _createClass(DateToSystemTimezoneSetter, [{\n key: \"set\",\n value: function set(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n }\n }]);\n return DateToSystemTimezoneSetter;\n}(Setter);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { ValueSetter } from \"./Setter.js\";\nexport var Parser = /*#__PURE__*/function () {\n function Parser() {\n _classCallCheck(this, Parser);\n _defineProperty(this, \"incompatibleTokens\", void 0);\n _defineProperty(this, \"priority\", void 0);\n _defineProperty(this, \"subPriority\", void 0);\n }\n _createClass(Parser, [{\n key: \"run\",\n value: function run(dateString, token, match, options) {\n var result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n return {\n setter: new ValueSetter(result.value, this.validate, this.set, this.priority, this.subPriority),\n rest: result.rest\n };\n }\n }, {\n key: \"validate\",\n value: function validate(_utcDate, _value, _options) {\n return true;\n }\n }]);\n return Parser;\n}();","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nexport var EraParser = /*#__PURE__*/function (_Parser) {\n _inherits(EraParser, _Parser);\n var _super = _createSuper(EraParser);\n function EraParser() {\n var _this;\n _classCallCheck(this, EraParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 140);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['R', 'u', 't', 'T']);\n return _this;\n }\n _createClass(EraParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n // A, B\n case 'GGGGG':\n return match.era(dateString, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return match.era(dateString, {\n width: 'wide'\n }) || match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return EraParser;\n}(Parser);","export var numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n};\n\nexport var timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n\n/**\n * Days in 1 year\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInYear = 365.2425;\n\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInMinute = 60000;\n\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInHour = 3600000;\n\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInSecond = 1000;\n\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\nexport var minTime = -maxTime;\n\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var minutesInHour = 60;\n\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInQuarter = 3;\n\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInYear = 12;\n\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var quartersInYear = 4;\n\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInHour = 3600;\n\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMinute = 60;\n\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInDay = secondsInHour * 24;\n\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInWeek = secondsInDay * 7;\n\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInYear = secondsInDay * daysInYear;\n\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMonth = secondsInYear / 12;\n\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInQuarter = secondsInMonth * 3;","import { millisecondsInHour, millisecondsInMinute, millisecondsInSecond } from \"../../constants/index.js\";\nimport { numericPatterns } from \"./constants.js\";\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest\n };\n}\nexport function parseNumericPattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n if (!matchResult) {\n return null;\n }\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseTimezonePattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: dateString.slice(1)\n };\n }\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case 'morning':\n return 4;\n case 'evening':\n return 17;\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n return isCommonEra ? result : 1 - result;\n}\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport var YearParser = /*#__PURE__*/function (_Parser) {\n _inherits(YearParser, _Parser);\n var _super = _createSuper(YearParser);\n function YearParser() {\n var _this;\n _classCallCheck(this, YearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(YearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n switch (token) {\n case 'y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case 'yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n var currentYear = date.getUTCFullYear();\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return YearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits, normalizeTwoDigitYear, mapValue } from \"../utils.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\";\n// Local week-numbering year\nexport var LocalWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekYearParser, _Parser);\n var _super = _createSuper(LocalWeekYearParser);\n function LocalWeekYearParser() {\n var _this;\n _classCallCheck(this, LocalWeekYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n return _this;\n }\n _createClass(LocalWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n switch (token) {\n case 'Y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case 'Yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n }]);\n return LocalWeekYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week-numbering year\nexport var ISOWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekYearParser, _Parser);\n var _super = _createSuper(ISOWeekYearParser);\n function ISOWeekYearParser() {\n var _this;\n _classCallCheck(this, ISOWeekYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISOWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'R') {\n return parseNDigitsSigned(4, dateString);\n }\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n }\n }]);\n return ISOWeekYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nexport var ExtendedYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ExtendedYearParser, _Parser);\n var _super = _createSuper(ExtendedYearParser);\n function ExtendedYearParser() {\n var _this;\n _classCallCheck(this, ExtendedYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ExtendedYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'u') {\n return parseNDigitsSigned(4, dateString);\n }\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return ExtendedYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var QuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(QuarterParser, _Parser);\n var _super = _createSuper(QuarterParser);\n function QuarterParser() {\n var _this;\n _classCallCheck(this, QuarterParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(QuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return QuarterParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var StandAloneQuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneQuarterParser, _Parser);\n var _super = _createSuper(StandAloneQuarterParser);\n function StandAloneQuarterParser() {\n var _this;\n _classCallCheck(this, StandAloneQuarterParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneQuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneQuarterParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nexport var MonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(MonthParser, _Parser);\n var _super = _createSuper(MonthParser);\n function MonthParser() {\n var _this;\n _classCallCheck(this, MonthParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n return _this;\n }\n _createClass(MonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n case 'MM':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n case 'MMM':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return MonthParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, mapValue } from \"../utils.js\";\nexport var StandAloneMonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneMonthParser, _Parser);\n var _super = _createSuper(StandAloneMonthParser);\n function StandAloneMonthParser() {\n var _this;\n _classCallCheck(this, StandAloneMonthParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneMonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n case 'LL':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n case 'LLL':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneMonthParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCWeek from \"../../../_lib/setUTCWeek/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\"; // Local week of year\nexport var LocalWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekParser, _Parser);\n var _super = _createSuper(LocalWeekParser);\n function LocalWeekParser() {\n var _this;\n _classCallCheck(this, LocalWeekParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n return _this;\n }\n _createClass(LocalWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, dateString);\n case 'wo':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n }\n }]);\n return LocalWeekParser;\n}(Parser);","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCWeek from \"../getUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCISOWeek from \"../../../_lib/setUTCISOWeek/index.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week of year\nexport var ISOWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekParser, _Parser);\n var _super = _createSuper(ISOWeekParser);\n function ISOWeekParser() {\n var _this;\n _classCallCheck(this, ISOWeekParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISOWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, dateString);\n case 'Io':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value));\n }\n }]);\n return ISOWeekParser;\n}(Parser);","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCISOWeek from \"../getUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { isLeapYearIndex, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n// Day of the month\nexport var DateParser = /*#__PURE__*/function (_Parser) {\n _inherits(DateParser, _Parser);\n var _super = _createSuper(DateParser);\n function DateParser() {\n var _this;\n _classCallCheck(this, DateParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"subPriority\", 1);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DateParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, dateString);\n case 'do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DateParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, isLeapYearIndex } from \"../utils.js\";\nexport var DayOfYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayOfYearParser, _Parser);\n var _super = _createSuper(DayOfYearParser);\n function DayOfYearParser() {\n var _this;\n _classCallCheck(this, DayOfYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"subpriority\", 1);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DayOfYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case 'Do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DayOfYearParser;\n}(Parser);","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function setUTCDay(dirtyDate, dirtyDay, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(2, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Day of week\nexport var DayParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayParser, _Parser);\n var _super = _createSuper(DayParser);\n function DayParser() {\n var _this;\n _classCallCheck(this, DayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Local day of week\nexport var LocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalDayParser, _Parser);\n var _super = _createSuper(LocalDayParser);\n function LocalDayParser() {\n var _this;\n _classCallCheck(this, LocalDayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']);\n return _this;\n }\n _createClass(LocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case 'eo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n case 'eee':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return LocalDayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Stand-alone local day of week\nexport var StandAloneLocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneLocalDayParser, _Parser);\n var _super = _createSuper(StandAloneLocalDayParser);\n function StandAloneLocalDayParser() {\n var _this;\n _classCallCheck(this, StandAloneLocalDayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneLocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case 'co':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n case 'ccc':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneLocalDayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCISODay from \"../../../_lib/setUTCISODay/index.js\"; // ISO day of week\nexport var ISODayParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISODayParser, _Parser);\n var _super = _createSuper(ISODayParser);\n function ISODayParser() {\n var _this;\n _classCallCheck(this, ISODayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISODayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case 'io':\n return match.ordinalNumber(dateString, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return mapValue(match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // T\n case 'iiiii':\n return mapValue(match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tu\n case 'iiiiii':\n return mapValue(match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tuesday\n case 'iiii':\n default:\n return mapValue(match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date = setUTCISODay(date, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return ISODayParser;\n}(Parser);","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n if (day % 7 === 0) {\n day = day - 7;\n }\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMParser, _Parser);\n var _super = _createSuper(AMPMParser);\n function AMPMParser() {\n var _this;\n _classCallCheck(this, AMPMParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['b', 'B', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(AMPMParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaaa':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return AMPMParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMMidnightParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMMidnightParser, _Parser);\n var _super = _createSuper(AMPMMidnightParser);\n function AMPMMidnightParser() {\n var _this;\n _classCallCheck(this, AMPMMidnightParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'B', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(AMPMMidnightParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbbb':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return AMPMMidnightParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\"; // in the morning, in the afternoon, in the evening, at night\nexport var DayPeriodParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayPeriodParser, _Parser);\n var _super = _createSuper(DayPeriodParser);\n function DayPeriodParser() {\n var _this;\n _classCallCheck(this, DayPeriodParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 't', 'T']);\n return _this;\n }\n _createClass(DayPeriodParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBBB':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return DayPeriodParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1to12Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1to12Parser, _Parser);\n var _super = _createSuper(Hour1to12Parser);\n function Hour1to12Parser() {\n var _this;\n _classCallCheck(this, Hour1to12Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['H', 'K', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour1to12Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case 'ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date;\n }\n }]);\n return Hour1to12Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0to23Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0to23Parser, _Parser);\n var _super = _createSuper(Hour0to23Parser);\n function Hour0to23Parser() {\n var _this;\n _classCallCheck(this, Hour0to23Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'K', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour0to23Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case 'Ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n }\n }]);\n return Hour0to23Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0To11Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0To11Parser, _Parser);\n var _super = _createSuper(Hour0To11Parser);\n function Hour0To11Parser() {\n var _this;\n _classCallCheck(this, Hour0To11Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['h', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour0To11Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case 'Ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date;\n }\n }]);\n return Hour0To11Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1To24Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1To24Parser, _Parser);\n var _super = _createSuper(Hour1To24Parser);\n function Hour1To24Parser() {\n var _this;\n _classCallCheck(this, Hour1To24Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'H', 'K', 't', 'T']);\n return _this;\n }\n _createClass(Hour1To24Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case 'ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n }\n }]);\n return Hour1To24Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var MinuteParser = /*#__PURE__*/function (_Parser) {\n _inherits(MinuteParser, _Parser);\n var _super = _createSuper(MinuteParser);\n function MinuteParser() {\n var _this;\n _classCallCheck(this, MinuteParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 60);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(MinuteParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, dateString);\n case 'mo':\n return match.ordinalNumber(dateString, {\n unit: 'minute'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n }\n }]);\n return MinuteParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var SecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(SecondParser, _Parser);\n var _super = _createSuper(SecondParser);\n function SecondParser() {\n var _this;\n _classCallCheck(this, SecondParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 50);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(SecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, dateString);\n case 'so':\n return match.ordinalNumber(dateString, {\n unit: 'second'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCSeconds(value, 0);\n return date;\n }\n }]);\n return SecondParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nexport var FractionOfSecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(FractionOfSecondParser, _Parser);\n var _super = _createSuper(FractionOfSecondParser);\n function FractionOfSecondParser() {\n var _this;\n _classCallCheck(this, FractionOfSecondParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 30);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(FractionOfSecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n var valueCallback = function valueCallback(value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMilliseconds(value);\n return date;\n }\n }]);\n return FractionOfSecondParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601. +00:00 is `'Z'`)\nexport var ISOTimezoneWithZParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneWithZParser, _Parser);\n var _super = _createSuper(ISOTimezoneWithZParser);\n function ISOTimezoneWithZParser() {\n var _this;\n _classCallCheck(this, ISOTimezoneWithZParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'x']);\n return _this;\n }\n _createClass(ISOTimezoneWithZParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n return new Date(date.getTime() - value);\n }\n }]);\n return ISOTimezoneWithZParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601)\nexport var ISOTimezoneParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneParser, _Parser);\n var _super = _createSuper(ISOTimezoneParser);\n function ISOTimezoneParser() {\n var _this;\n _classCallCheck(this, ISOTimezoneParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'X']);\n return _this;\n }\n _createClass(ISOTimezoneParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n return new Date(date.getTime() - value);\n }\n }]);\n return ISOTimezoneParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampSecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampSecondsParser, _Parser);\n var _super = _createSuper(TimestampSecondsParser);\n function TimestampSecondsParser() {\n var _this;\n _classCallCheck(this, TimestampSecondsParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 40);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n return _this;\n }\n _createClass(TimestampSecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n }\n }]);\n return TimestampSecondsParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampMillisecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampMillisecondsParser, _Parser);\n var _super = _createSuper(TimestampMillisecondsParser);\n function TimestampMillisecondsParser() {\n var _this;\n _classCallCheck(this, TimestampMillisecondsParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 20);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n return _this;\n }\n _createClass(TimestampMillisecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n }\n }]);\n return TimestampMillisecondsParser;\n}(Parser);","import { EraParser } from \"./EraParser.js\";\nimport { YearParser } from \"./YearParser.js\";\nimport { LocalWeekYearParser } from \"./LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./ExtendedYearParser.js\";\nimport { QuarterParser } from \"./QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./MonthParser.js\";\nimport { StandAloneMonthParser } from \"./StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./ISOWeekParser.js\";\nimport { DateParser } from \"./DateParser.js\";\nimport { DayOfYearParser } from \"./DayOfYearParser.js\";\nimport { DayParser } from \"./DayParser.js\";\nimport { LocalDayParser } from \"./LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./ISODayParser.js\";\nimport { AMPMParser } from \"./AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./Hour1To24Parser.js\";\nimport { MinuteParser } from \"./MinuteParser.js\";\nimport { SecondParser } from \"./SecondParser.js\";\nimport { FractionOfSecondParser } from \"./FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./TimestampMillisecondsParser.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nexport var parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser()\n};","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _createForOfIteratorHelper from \"@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { DateToSystemTimezoneSetter } from \"./_lib/Setter.js\";\nimport { parsers } from \"./_lib/parsers/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale\n };\n\n // If timezone isn't specified, it will be set to the system timezone\n var setters = [new DateToSystemTimezoneSetter()];\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n var _iterator = _createForOfIteratorHelper(tokens),\n _step;\n try {\n var _loop = function _loop() {\n var token = _step.value;\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = usedTokens.find(function (usedToken) {\n return incompatibleTokens.includes(usedToken.token) || usedToken.token === firstCharacter;\n });\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length > 0) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.run(dateString, token, locale.match, subFnOptions);\n if (!parseResult) {\n return {\n v: new Date(NaN)\n };\n }\n setters.push(parseResult.setter);\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return {\n v: new Date(NaN)\n };\n }\n }\n };\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _ret = _loop();\n if (_typeof(_ret) === \"object\") return _ret.v;\n }\n\n // Check if the remaining input contains something other than whitespace\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).sort(function (a, b) {\n return b.subPriority - a.subPriority;\n });\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n var _iterator2 = _createForOfIteratorHelper(uniquePrioritySetters),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var setter = _step2.value;\n if (!setter.validate(utcDate, subFnOptions)) {\n return new Date(NaN);\n }\n var result = setter.set(utcDate, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n utcDate = result[0];\n assign(flags, result[1]);\n // Result is date\n } else {\n utcDate = result;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n return utcDate;\n}\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport getDaysInMonth from \"../getDaysInMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} month - the month of the new date\n * @returns {Date} the new date with the month set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set February to 1 September 2014:\n * const result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\nexport default function setMonth(dirtyDate, dirtyMonth) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var month = toInteger(dirtyMonth);\n var year = date.getFullYear();\n var day = date.getDate();\n var dateWithDesiredMonth = new Date(0);\n dateWithDesiredMonth.setFullYear(year, month, 15);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth);\n // Set the last day of the new month\n // if the original date was the last day of the longer month\n date.setMonth(month, Math.min(day, daysInMonth));\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the number of days in a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\nexport default function getDaysInMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var monthIndex = date.getMonth();\n var lastDayOfMonth = new Date(0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} year - the year of the new date\n * @returns {Date} the new date with the year set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * const result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\nexport default function setYear(dirtyDate, dirtyYear) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var year = toInteger(dirtyYear);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n date.setFullYear(year);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function startOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function startOfWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function subMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, -amount);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","var QueryHandler = require('./QueryHandler');\nvar each = require('./Util').each;\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n","var MediaQuery = require('./MediaQuery');\nvar Util = require('./Util');\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\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/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\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\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 objectToString = objectProto.toString;\n\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 * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\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 && (type == 'object' || type == 'function');\n}\n\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 && typeof value == 'object';\n}\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) && objectToString.call(value) == symbolTag);\n}\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 = value.replace(reTrim, '');\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 = debounce;\n","//! moment.js\n//! version : 2.30.1\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 var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\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 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 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 D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\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 date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\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 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 match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\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 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 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 function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\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 // 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 // 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 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 if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n }\n\n function set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\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 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 // PARSING\n\n addRegexToken('M', match1to2, match1to2NoLeadingZero);\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 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 var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\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 shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\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\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 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 // PARSING\n\n addRegexToken('w', match1to2, match1to2NoLeadingZero);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2, match1to2NoLeadingZero);\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 // 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\n var day = get(this, 'Day');\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 // 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, match1to2HasZero);\n addRegexToken('h', match1to2, match1to2NoLeadingZero);\n addRegexToken('k', match1to2, match1to2NoLeadingZero);\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 // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\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 erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\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 // 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() + this.localeData()._week.dow,\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 // 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 // PARSING\n\n addRegexToken('D', match1to2, match1to2NoLeadingZero);\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 // 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 // PARSING\n\n addRegexToken('m', match1to2, match1to2HasZero);\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 // PARSING\n\n addRegexToken('s', match1to2, match1to2HasZero);\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 // 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 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 valueOf$1 = asMilliseconds;\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.30.1';\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","/**\n * Based on Kendo UI Core expression code \n */\n'use strict'\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize\n this.clear()\n}\nCache.prototype.clear = function () {\n this._size = 0\n this._values = Object.create(null)\n}\nCache.prototype.get = function (key) {\n return this._values[key]\n}\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear()\n if (!(key in this._values)) this._size++\n\n return (this._values[key] = value)\n}\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n DIGIT_REGEX = /^\\d+$/,\n LEAD_DIGIT_REGEX = /^\\d/,\n SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n MAX_CACHE_SIZE = 512\n\nvar pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE)\n\nvar config\n\nmodule.exports = {\n Cache: Cache,\n\n split: split,\n\n normalizePath: normalizePath,\n\n setter: function (path) {\n var parts = normalizePath(path)\n\n return (\n setCache.get(path) ||\n setCache.set(path, function setter(obj, value) {\n var index = 0\n var len = parts.length\n var data = obj\n\n while (index < len - 1) {\n var part = parts[index]\n if (\n part === '__proto__' ||\n part === 'constructor' ||\n part === 'prototype'\n ) {\n return obj\n }\n\n data = data[parts[index++]]\n }\n data[parts[index]] = value\n })\n )\n },\n\n getter: function (path, safe) {\n var parts = normalizePath(path)\n return (\n getCache.get(path) ||\n getCache.set(path, function getter(data) {\n var index = 0,\n len = parts.length\n while (index < len) {\n if (data != null || !safe) data = data[parts[index++]]\n else return\n }\n return data\n })\n )\n },\n\n join: function (segments) {\n return segments.reduce(function (path, part) {\n return (\n path +\n (isQuoted(part) || DIGIT_REGEX.test(part)\n ? '[' + part + ']'\n : (path ? '.' : '') + part)\n )\n }, '')\n },\n\n forEach: function (path, cb, thisArg) {\n forEach(Array.isArray(path) ? path : split(path), cb, thisArg)\n },\n}\n\nfunction normalizePath(path) {\n return (\n pathCache.get(path) ||\n pathCache.set(\n path,\n split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2')\n })\n )\n )\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX) || ['']\n}\n\nfunction forEach(parts, iter, thisArg) {\n var len = parts.length,\n part,\n idx,\n isArray,\n isBracket\n\n for (idx = 0; idx < len; idx++) {\n part = parts[idx]\n\n if (part) {\n if (shouldBeQuoted(part)) {\n part = '\"' + part + '\"'\n }\n\n isBracket = isQuoted(part)\n isArray = !isBracket && /^\\d+$/.test(part)\n\n iter.call(thisArg, part, isBracket, isArray, idx, parts)\n }\n }\n}\n\nfunction isQuoted(str) {\n return (\n typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1\n )\n}\n\nfunction hasLeadingNumber(part) {\n return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX)\n}\n\nfunction hasSpecialChars(part) {\n return SPEC_CHAR_REGEX.test(part)\n}\n\nfunction shouldBeQuoted(part) {\n return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part))\n}\n","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport * as React from 'react';\nexport var Context = /*#__PURE__*/React.createContext({});\nexport default function MotionProvider(_ref) {\n var children = _ref.children,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: props\n }, children);\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n var _super = _createSuper(DomWrapper);\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n return _super.apply(this, arguments);\n }\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n return DomWrapper;\n}(React.Component);\nexport default DomWrapper;","export var STATUS_NONE = 'none';\nexport var STATUS_APPEAR = 'appear';\nexport var STATUS_ENTER = 'enter';\nexport var STATUS_LEAVE = 'leave';\nexport var STEP_NONE = 'none';\nexport var STEP_PREPARE = 'prepare';\nexport var STEP_START = 'start';\nexport var STEP_ACTIVE = 'active';\nexport var STEP_ACTIVATED = 'end';\n/**\n * Used for disabled motion case.\n * Prepare stage will still work but start & active will be skipped.\n */\nexport var STEP_PREPARED = 'prepared';","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport canUseDOM from \"rc-util/es/Dom/canUseDom\";\n// ================= Transition =================\n// Event wrapper. Copy from react source code\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\".concat(styleProp)] = \"webkit\".concat(eventName);\n prefixes[\"Moz\".concat(styleProp)] = \"moz\".concat(eventName);\n prefixes[\"ms\".concat(styleProp)] = \"MS\".concat(eventName);\n prefixes[\"O\".concat(styleProp)] = \"o\".concat(eventName.toLowerCase());\n return prefixes;\n}\nexport function getVendorPrefixes(domSupport, win) {\n var prefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n };\n if (domSupport) {\n if (!('AnimationEvent' in win)) {\n delete prefixes.animationend.animation;\n }\n if (!('TransitionEvent' in win)) {\n delete prefixes.transitionend.transition;\n }\n }\n return prefixes;\n}\nvar vendorPrefixes = getVendorPrefixes(canUseDOM(), typeof window !== 'undefined' ? window : {});\nvar style = {};\nif (canUseDOM()) {\n var _document$createEleme = document.createElement('div');\n style = _document$createEleme.style;\n}\nvar prefixedEventNames = {};\nexport function getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n }\n var prefixMap = vendorPrefixes[eventName];\n if (prefixMap) {\n var stylePropList = Object.keys(prefixMap);\n var len = stylePropList.length;\n for (var i = 0; i < len; i += 1) {\n var styleProp = stylePropList[i];\n if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {\n prefixedEventNames[eventName] = prefixMap[styleProp];\n return prefixedEventNames[eventName];\n }\n }\n }\n return '';\n}\nvar internalAnimationEndName = getVendorPrefixedEventName('animationend');\nvar internalTransitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(internalAnimationEndName && internalTransitionEndName);\nexport var animationEndName = internalAnimationEndName || 'animationend';\nexport var transitionEndName = internalTransitionEndName || 'transitionend';\nexport function getTransitionName(transitionName, transitionType) {\n if (!transitionName) return null;\n if (_typeof(transitionName) === 'object') {\n var type = transitionType.replace(/-\\w/g, function (match) {\n return match[1].toUpperCase();\n });\n return transitionName[type];\n }\n return \"\".concat(transitionName, \"-\").concat(transitionType);\n}","import canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { useEffect, useLayoutEffect } from 'react';\n\n// It's safe to use `useLayoutEffect` but the warning is annoying\nvar useIsomorphicLayoutEffect = canUseDom() ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useState from \"rc-util/es/hooks/useState\";\nimport * as React from 'react';\nimport { STEP_ACTIVATED, STEP_ACTIVE, STEP_NONE, STEP_PREPARE, STEP_PREPARED, STEP_START } from \"../interface\";\nimport useIsomorphicLayoutEffect from \"./useIsomorphicLayoutEffect\";\nimport useNextFrame from \"./useNextFrame\";\nvar FULL_STEP_QUEUE = [STEP_PREPARE, STEP_START, STEP_ACTIVE, STEP_ACTIVATED];\nvar SIMPLE_STEP_QUEUE = [STEP_PREPARE, STEP_PREPARED];\n\n/** Skip current step */\nexport var SkipStep = false;\n/** Current step should be update in */\nexport var DoStep = true;\nexport function isActive(step) {\n return step === STEP_ACTIVE || step === STEP_ACTIVATED;\n}\nexport default (function (status, prepareOnly, callback) {\n var _useState = useState(STEP_NONE),\n _useState2 = _slicedToArray(_useState, 2),\n step = _useState2[0],\n setStep = _useState2[1];\n var _useNextFrame = useNextFrame(),\n _useNextFrame2 = _slicedToArray(_useNextFrame, 2),\n nextFrame = _useNextFrame2[0],\n cancelNextFrame = _useNextFrame2[1];\n function startQueue() {\n setStep(STEP_PREPARE, true);\n }\n var STEP_QUEUE = prepareOnly ? SIMPLE_STEP_QUEUE : FULL_STEP_QUEUE;\n useIsomorphicLayoutEffect(function () {\n if (step !== STEP_NONE && step !== STEP_ACTIVATED) {\n var index = STEP_QUEUE.indexOf(step);\n var nextStep = STEP_QUEUE[index + 1];\n var result = callback(step);\n if (result === SkipStep) {\n // Skip when no needed\n setStep(nextStep, true);\n } else if (nextStep) {\n // Do as frame for step update\n nextFrame(function (info) {\n function doNext() {\n // Skip since current queue is ood\n if (info.isCanceled()) return;\n setStep(nextStep, true);\n }\n if (result === true) {\n doNext();\n } else {\n // Only promise should be async\n Promise.resolve(result).then(doNext);\n }\n });\n }\n }\n }, [status, step]);\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [startQueue, step];\n});","import raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nexport default (function () {\n var nextFrameRef = React.useRef(null);\n function cancelNextFrame() {\n raf.cancel(nextFrameRef.current);\n }\n function nextFrame(callback) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n cancelNextFrame();\n var nextFrameId = raf(function () {\n if (delay <= 1) {\n callback({\n isCanceled: function isCanceled() {\n return nextFrameId !== nextFrameRef.current;\n }\n });\n } else {\n nextFrame(callback, delay - 1);\n }\n });\n nextFrameRef.current = nextFrameId;\n }\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [nextFrame, cancelNextFrame];\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEvent } from 'rc-util';\nimport useState from \"rc-util/es/hooks/useState\";\nimport useSyncState from \"rc-util/es/hooks/useSyncState\";\nimport * as React from 'react';\nimport { useEffect, useRef } from 'react';\nimport { STATUS_APPEAR, STATUS_ENTER, STATUS_LEAVE, STATUS_NONE, STEP_ACTIVE, STEP_PREPARE, STEP_PREPARED, STEP_START } from \"../interface\";\nimport useDomMotionEvents from \"./useDomMotionEvents\";\nimport useIsomorphicLayoutEffect from \"./useIsomorphicLayoutEffect\";\nimport useStepQueue, { DoStep, isActive, SkipStep } from \"./useStepQueue\";\nexport default function useStatus(supportMotion, visible, getElement, _ref) {\n var _ref$motionEnter = _ref.motionEnter,\n motionEnter = _ref$motionEnter === void 0 ? true : _ref$motionEnter,\n _ref$motionAppear = _ref.motionAppear,\n motionAppear = _ref$motionAppear === void 0 ? true : _ref$motionAppear,\n _ref$motionLeave = _ref.motionLeave,\n motionLeave = _ref$motionLeave === void 0 ? true : _ref$motionLeave,\n motionDeadline = _ref.motionDeadline,\n motionLeaveImmediately = _ref.motionLeaveImmediately,\n onAppearPrepare = _ref.onAppearPrepare,\n onEnterPrepare = _ref.onEnterPrepare,\n onLeavePrepare = _ref.onLeavePrepare,\n onAppearStart = _ref.onAppearStart,\n onEnterStart = _ref.onEnterStart,\n onLeaveStart = _ref.onLeaveStart,\n onAppearActive = _ref.onAppearActive,\n onEnterActive = _ref.onEnterActive,\n onLeaveActive = _ref.onLeaveActive,\n onAppearEnd = _ref.onAppearEnd,\n onEnterEnd = _ref.onEnterEnd,\n onLeaveEnd = _ref.onLeaveEnd,\n onVisibleChanged = _ref.onVisibleChanged;\n // Used for outer render usage to avoid `visible: false & status: none` to render nothing\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n asyncVisible = _useState2[0],\n setAsyncVisible = _useState2[1];\n var _useSyncState = useSyncState(STATUS_NONE),\n _useSyncState2 = _slicedToArray(_useSyncState, 2),\n getStatus = _useSyncState2[0],\n setStatus = _useSyncState2[1];\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n style = _useState4[0],\n setStyle = _useState4[1];\n var currentStatus = getStatus();\n var mountedRef = useRef(false);\n var deadlineRef = useRef(null);\n\n // =========================== Dom Node ===========================\n function getDomElement() {\n return getElement();\n }\n\n // ========================== Motion End ==========================\n var activeRef = useRef(false);\n\n /**\n * Clean up status & style\n */\n function updateMotionEndStatus() {\n setStatus(STATUS_NONE);\n setStyle(null, true);\n }\n var onInternalMotionEnd = useEvent(function (event) {\n var status = getStatus();\n // Do nothing since not in any transition status.\n // This may happen when `motionDeadline` trigger.\n if (status === STATUS_NONE) {\n return;\n }\n var element = getDomElement();\n if (event && !event.deadline && event.target !== element) {\n // event exists\n // not initiated by deadline\n // transitionEnd not fired by inner elements\n return;\n }\n var currentActive = activeRef.current;\n var canEnd;\n if (status === STATUS_APPEAR && currentActive) {\n canEnd = onAppearEnd === null || onAppearEnd === void 0 ? void 0 : onAppearEnd(element, event);\n } else if (status === STATUS_ENTER && currentActive) {\n canEnd = onEnterEnd === null || onEnterEnd === void 0 ? void 0 : onEnterEnd(element, event);\n } else if (status === STATUS_LEAVE && currentActive) {\n canEnd = onLeaveEnd === null || onLeaveEnd === void 0 ? void 0 : onLeaveEnd(element, event);\n }\n\n // Only update status when `canEnd` and not destroyed\n if (currentActive && canEnd !== false) {\n updateMotionEndStatus();\n }\n });\n var _useDomMotionEvents = useDomMotionEvents(onInternalMotionEnd),\n _useDomMotionEvents2 = _slicedToArray(_useDomMotionEvents, 1),\n patchMotionEvents = _useDomMotionEvents2[0];\n\n // ============================= Step =============================\n var getEventHandlers = function getEventHandlers(targetStatus) {\n switch (targetStatus) {\n case STATUS_APPEAR:\n return _defineProperty(_defineProperty(_defineProperty({}, STEP_PREPARE, onAppearPrepare), STEP_START, onAppearStart), STEP_ACTIVE, onAppearActive);\n case STATUS_ENTER:\n return _defineProperty(_defineProperty(_defineProperty({}, STEP_PREPARE, onEnterPrepare), STEP_START, onEnterStart), STEP_ACTIVE, onEnterActive);\n case STATUS_LEAVE:\n return _defineProperty(_defineProperty(_defineProperty({}, STEP_PREPARE, onLeavePrepare), STEP_START, onLeaveStart), STEP_ACTIVE, onLeaveActive);\n default:\n return {};\n }\n };\n var eventHandlers = React.useMemo(function () {\n return getEventHandlers(currentStatus);\n }, [currentStatus]);\n var _useStepQueue = useStepQueue(currentStatus, !supportMotion, function (newStep) {\n // Only prepare step can be skip\n if (newStep === STEP_PREPARE) {\n var onPrepare = eventHandlers[STEP_PREPARE];\n if (!onPrepare) {\n return SkipStep;\n }\n return onPrepare(getDomElement());\n }\n\n // Rest step is sync update\n if (step in eventHandlers) {\n var _eventHandlers$step;\n setStyle(((_eventHandlers$step = eventHandlers[step]) === null || _eventHandlers$step === void 0 ? void 0 : _eventHandlers$step.call(eventHandlers, getDomElement(), null)) || null);\n }\n if (step === STEP_ACTIVE && currentStatus !== STATUS_NONE) {\n // Patch events when motion needed\n patchMotionEvents(getDomElement());\n if (motionDeadline > 0) {\n clearTimeout(deadlineRef.current);\n deadlineRef.current = setTimeout(function () {\n onInternalMotionEnd({\n deadline: true\n });\n }, motionDeadline);\n }\n }\n if (step === STEP_PREPARED) {\n updateMotionEndStatus();\n }\n return DoStep;\n }),\n _useStepQueue2 = _slicedToArray(_useStepQueue, 2),\n startStep = _useStepQueue2[0],\n step = _useStepQueue2[1];\n var active = isActive(step);\n activeRef.current = active;\n\n // ============================ Status ============================\n // Update with new status\n useIsomorphicLayoutEffect(function () {\n setAsyncVisible(visible);\n var isMounted = mountedRef.current;\n mountedRef.current = true;\n\n // if (!supportMotion) {\n // return;\n // }\n\n var nextStatus;\n\n // Appear\n if (!isMounted && visible && motionAppear) {\n nextStatus = STATUS_APPEAR;\n }\n\n // Enter\n if (isMounted && visible && motionEnter) {\n nextStatus = STATUS_ENTER;\n }\n\n // Leave\n if (isMounted && !visible && motionLeave || !isMounted && motionLeaveImmediately && !visible && motionLeave) {\n nextStatus = STATUS_LEAVE;\n }\n var nextEventHandlers = getEventHandlers(nextStatus);\n\n // Update to next status\n if (nextStatus && (supportMotion || nextEventHandlers[STEP_PREPARE])) {\n setStatus(nextStatus);\n startStep();\n } else {\n // Set back in case no motion but prev status has prepare step\n setStatus(STATUS_NONE);\n }\n }, [visible]);\n\n // ============================ Effect ============================\n // Reset when motion changed\n useEffect(function () {\n if (\n // Cancel appear\n currentStatus === STATUS_APPEAR && !motionAppear ||\n // Cancel enter\n currentStatus === STATUS_ENTER && !motionEnter ||\n // Cancel leave\n currentStatus === STATUS_LEAVE && !motionLeave) {\n setStatus(STATUS_NONE);\n }\n }, [motionAppear, motionEnter, motionLeave]);\n useEffect(function () {\n return function () {\n mountedRef.current = false;\n clearTimeout(deadlineRef.current);\n };\n }, []);\n\n // Trigger `onVisibleChanged`\n var firstMountChangeRef = React.useRef(false);\n useEffect(function () {\n // [visible & motion not end] => [!visible & motion end] still need trigger onVisibleChanged\n if (asyncVisible) {\n firstMountChangeRef.current = true;\n }\n if (asyncVisible !== undefined && currentStatus === STATUS_NONE) {\n // Skip first render is invisible since it's nothing changed\n if (firstMountChangeRef.current || asyncVisible) {\n onVisibleChanged === null || onVisibleChanged === void 0 || onVisibleChanged(asyncVisible);\n }\n firstMountChangeRef.current = true;\n }\n }, [asyncVisible, currentStatus]);\n\n // ============================ Styles ============================\n var mergedStyle = style;\n if (eventHandlers[STEP_PREPARE] && step === STEP_START) {\n mergedStyle = _objectSpread({\n transition: 'none'\n }, mergedStyle);\n }\n return [currentStatus, step, mergedStyle, asyncVisible !== null && asyncVisible !== void 0 ? asyncVisible : visible];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useEvent from \"./useEvent\";\n/**\n * Same as React.useState but will always get latest state.\n * This is useful when React merge multiple state updates into one.\n * e.g. onTransitionEnd trigger multiple event at once will be merged state update in React.\n */\nexport default function useSyncState(defaultValue) {\n var _React$useReducer = React.useReducer(function (x) {\n return x + 1;\n }, 0),\n _React$useReducer2 = _slicedToArray(_React$useReducer, 2),\n forceUpdate = _React$useReducer2[1];\n var currentValueRef = React.useRef(defaultValue);\n var getValue = useEvent(function () {\n return currentValueRef.current;\n });\n var setValue = useEvent(function (updater) {\n currentValueRef.current = typeof updater === 'function' ? updater(currentValueRef.current) : updater;\n forceUpdate();\n });\n return [getValue, setValue];\n}","import * as React from 'react';\nimport { useRef } from 'react';\nimport { animationEndName, transitionEndName } from \"../util/motion\";\nexport default (function (onInternalMotionEnd) {\n var cacheElementRef = useRef();\n\n // Remove events\n function removeMotionEvents(element) {\n if (element) {\n element.removeEventListener(transitionEndName, onInternalMotionEnd);\n element.removeEventListener(animationEndName, onInternalMotionEnd);\n }\n }\n\n // Patch events\n function patchMotionEvents(element) {\n if (cacheElementRef.current && cacheElementRef.current !== element) {\n removeMotionEvents(cacheElementRef.current);\n }\n if (element && element !== cacheElementRef.current) {\n element.addEventListener(transitionEndName, onInternalMotionEnd);\n element.addEventListener(animationEndName, onInternalMotionEnd);\n\n // Save as cache in case dom removed trigger by `motionDeadline`\n cacheElementRef.current = element;\n }\n }\n\n // Clean up when removed\n React.useEffect(function () {\n return function () {\n removeMotionEvents(cacheElementRef.current);\n };\n }, []);\n return [patchMotionEvents, removeMotionEvents];\n});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */\nimport classNames from 'classnames';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { fillRef, supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport { Context } from \"./context\";\nimport DomWrapper from \"./DomWrapper\";\nimport useStatus from \"./hooks/useStatus\";\nimport { isActive } from \"./hooks/useStepQueue\";\nimport { STATUS_NONE, STEP_PREPARE, STEP_START } from \"./interface\";\nimport { getTransitionName, supportTransition } from \"./util/motion\";\n/**\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\nexport function genCSSMotion(config) {\n var transitionSupport = config;\n if (_typeof(config) === 'object') {\n transitionSupport = config.transitionSupport;\n }\n function isSupportTransition(props, contextMotion) {\n return !!(props.motionName && transitionSupport && contextMotion !== false);\n }\n var CSSMotion = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible,\n _props$removeOnLeave = props.removeOnLeave,\n removeOnLeave = _props$removeOnLeave === void 0 ? true : _props$removeOnLeave,\n forceRender = props.forceRender,\n children = props.children,\n motionName = props.motionName,\n leavedClassName = props.leavedClassName,\n eventProps = props.eventProps;\n var _React$useContext = React.useContext(Context),\n contextMotion = _React$useContext.motion;\n var supportMotion = isSupportTransition(props, contextMotion);\n\n // Ref to the react node, it may be a HTMLElement\n var nodeRef = useRef();\n // Ref to the dom wrapper in case ref can not pass to HTMLElement\n var wrapperNodeRef = useRef();\n function getDomElement() {\n try {\n // Here we're avoiding call for findDOMNode since it's deprecated\n // in strict mode. We're calling it only when node ref is not\n // an instance of DOM HTMLElement. Otherwise use\n // findDOMNode as a final resort\n return nodeRef.current instanceof HTMLElement ? nodeRef.current : findDOMNode(wrapperNodeRef.current);\n } catch (e) {\n // Only happen when `motionDeadline` trigger but element removed.\n return null;\n }\n }\n var _useStatus = useStatus(supportMotion, visible, getDomElement, props),\n _useStatus2 = _slicedToArray(_useStatus, 4),\n status = _useStatus2[0],\n statusStep = _useStatus2[1],\n statusStyle = _useStatus2[2],\n mergedVisible = _useStatus2[3];\n\n // Record whether content has rendered\n // Will return null for un-rendered even when `removeOnLeave={false}`\n var renderedRef = React.useRef(mergedVisible);\n if (mergedVisible) {\n renderedRef.current = true;\n }\n\n // ====================== Refs ======================\n var setNodeRef = React.useCallback(function (node) {\n nodeRef.current = node;\n fillRef(ref, node);\n }, [ref]);\n\n // ===================== Render =====================\n var motionChildren;\n var mergedProps = _objectSpread(_objectSpread({}, eventProps), {}, {\n visible: visible\n });\n if (!children) {\n // No children\n motionChildren = null;\n } else if (status === STATUS_NONE) {\n // Stable children\n if (mergedVisible) {\n motionChildren = children(_objectSpread({}, mergedProps), setNodeRef);\n } else if (!removeOnLeave && renderedRef.current && leavedClassName) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: leavedClassName\n }), setNodeRef);\n } else if (forceRender || !removeOnLeave && !leavedClassName) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n style: {\n display: 'none'\n }\n }), setNodeRef);\n } else {\n motionChildren = null;\n }\n } else {\n // In motion\n var statusSuffix;\n if (statusStep === STEP_PREPARE) {\n statusSuffix = 'prepare';\n } else if (isActive(statusStep)) {\n statusSuffix = 'active';\n } else if (statusStep === STEP_START) {\n statusSuffix = 'start';\n }\n var motionCls = getTransitionName(motionName, \"\".concat(status, \"-\").concat(statusSuffix));\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: classNames(getTransitionName(motionName, status), _defineProperty(_defineProperty({}, motionCls, motionCls && statusSuffix), motionName, typeof motionName === 'string')),\n style: statusStyle\n }), setNodeRef);\n }\n\n // Auto inject ref if child node not have `ref` props\n if ( /*#__PURE__*/React.isValidElement(motionChildren) && supportRef(motionChildren)) {\n var _ref = motionChildren,\n originNodeRef = _ref.ref;\n if (!originNodeRef) {\n motionChildren = /*#__PURE__*/React.cloneElement(motionChildren, {\n ref: setNodeRef\n });\n }\n }\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperNodeRef\n }, motionChildren);\n });\n CSSMotion.displayName = 'CSSMotion';\n return CSSMotion;\n}\nexport default genCSSMotion(supportTransition);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport var STATUS_ADD = 'add';\nexport var STATUS_KEEP = 'keep';\nexport var STATUS_REMOVE = 'remove';\nexport var STATUS_REMOVED = 'removed';\nexport function wrapKeyToObject(key) {\n var keyObj;\n if (key && _typeof(key) === 'object' && 'key' in key) {\n keyObj = key;\n } else {\n keyObj = {\n key: key\n };\n }\n return _objectSpread(_objectSpread({}, keyObj), {}, {\n key: String(keyObj.key)\n });\n}\nexport function parseKeys() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return keys.map(wrapKeyToObject);\n}\nexport function diffKeys() {\n var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var list = [];\n var currentIndex = 0;\n var currentLen = currentKeys.length;\n var prevKeyObjects = parseKeys(prevKeys);\n var currentKeyObjects = parseKeys(currentKeys);\n\n // Check prev keys to insert or keep\n prevKeyObjects.forEach(function (keyObj) {\n var hit = false;\n for (var i = currentIndex; i < currentLen; i += 1) {\n var currentKeyObj = currentKeyObjects[i];\n if (currentKeyObj.key === keyObj.key) {\n // New added keys should add before current key\n if (currentIndex < i) {\n list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n currentIndex = i;\n }\n list.push(_objectSpread(_objectSpread({}, currentKeyObj), {}, {\n status: STATUS_KEEP\n }));\n currentIndex += 1;\n hit = true;\n break;\n }\n }\n\n // If not hit, it means key is removed\n if (!hit) {\n list.push(_objectSpread(_objectSpread({}, keyObj), {}, {\n status: STATUS_REMOVE\n }));\n }\n });\n\n // Add rest to the list\n if (currentIndex < currentLen) {\n list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n }\n\n /**\n * Merge same key when it remove and add again:\n * [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep]\n */\n var keys = {};\n list.forEach(function (_ref) {\n var key = _ref.key;\n keys[key] = (keys[key] || 0) + 1;\n });\n var duplicatedKeys = Object.keys(keys).filter(function (key) {\n return keys[key] > 1;\n });\n duplicatedKeys.forEach(function (matchKey) {\n // Remove `STATUS_REMOVE` node.\n list = list.filter(function (_ref2) {\n var key = _ref2.key,\n status = _ref2.status;\n return key !== matchKey || status !== STATUS_REMOVE;\n });\n\n // Update `STATUS_ADD` to `STATUS_KEEP`\n list.forEach(function (node) {\n if (node.key === matchKey) {\n // eslint-disable-next-line no-param-reassign\n node.status = STATUS_KEEP;\n }\n });\n });\n return list;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"component\", \"children\", \"onVisibleChanged\", \"onAllRemoved\"],\n _excluded2 = [\"status\"];\n/* eslint react/prop-types: 0 */\nimport * as React from 'react';\nimport OriginCSSMotion from \"./CSSMotion\";\nimport { diffKeys, parseKeys, STATUS_ADD, STATUS_KEEP, STATUS_REMOVE, STATUS_REMOVED } from \"./util/diff\";\nimport { supportTransition } from \"./util/motion\";\nvar MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearPrepare', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd'];\n/**\n * Generate a CSSMotionList component with config\n * @param transitionSupport No need since CSSMotionList no longer depends on transition support\n * @param CSSMotion CSSMotion component\n */\nexport function genCSSMotionList(transitionSupport) {\n var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OriginCSSMotion;\n var CSSMotionList = /*#__PURE__*/function (_React$Component) {\n _inherits(CSSMotionList, _React$Component);\n var _super = _createSuper(CSSMotionList);\n function CSSMotionList() {\n var _this;\n _classCallCheck(this, CSSMotionList);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n keyEntities: []\n });\n // ZombieJ: Return the count of rest keys. It's safe to refactor if need more info.\n _defineProperty(_assertThisInitialized(_this), \"removeKey\", function (removeKey) {\n _this.setState(function (prevState) {\n var nextKeyEntities = prevState.keyEntities.map(function (entity) {\n if (entity.key !== removeKey) return entity;\n return _objectSpread(_objectSpread({}, entity), {}, {\n status: STATUS_REMOVED\n });\n });\n return {\n keyEntities: nextKeyEntities\n };\n }, function () {\n var keyEntities = _this.state.keyEntities;\n var restKeysCount = keyEntities.filter(function (_ref) {\n var status = _ref.status;\n return status !== STATUS_REMOVED;\n }).length;\n if (restKeysCount === 0 && _this.props.onAllRemoved) {\n _this.props.onAllRemoved();\n }\n });\n });\n return _this;\n }\n _createClass(CSSMotionList, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var keyEntities = this.state.keyEntities;\n var _this$props = this.props,\n component = _this$props.component,\n children = _this$props.children,\n _onVisibleChanged = _this$props.onVisibleChanged,\n onAllRemoved = _this$props.onAllRemoved,\n restProps = _objectWithoutProperties(_this$props, _excluded);\n var Component = component || React.Fragment;\n var motionProps = {};\n MOTION_PROP_NAMES.forEach(function (prop) {\n motionProps[prop] = restProps[prop];\n delete restProps[prop];\n });\n delete restProps.keys;\n return /*#__PURE__*/React.createElement(Component, restProps, keyEntities.map(function (_ref2, index) {\n var status = _ref2.status,\n eventProps = _objectWithoutProperties(_ref2, _excluded2);\n var visible = status === STATUS_ADD || status === STATUS_KEEP;\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motionProps, {\n key: eventProps.key,\n visible: visible,\n eventProps: eventProps,\n onVisibleChanged: function onVisibleChanged(changedVisible) {\n _onVisibleChanged === null || _onVisibleChanged === void 0 || _onVisibleChanged(changedVisible, {\n key: eventProps.key\n });\n if (!changedVisible) {\n _this2.removeKey(eventProps.key);\n }\n }\n }), function (props, ref) {\n return children(_objectSpread(_objectSpread({}, props), {}, {\n index: index\n }), ref);\n });\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref3, _ref4) {\n var keys = _ref3.keys;\n var keyEntities = _ref4.keyEntities;\n var parsedKeyObjects = parseKeys(keys);\n var mixedKeyEntities = diffKeys(keyEntities, parsedKeyObjects);\n return {\n keyEntities: mixedKeyEntities.filter(function (entity) {\n var prevEntity = keyEntities.find(function (_ref5) {\n var key = _ref5.key;\n return entity.key === key;\n });\n\n // Remove if already mark as removed\n if (prevEntity && prevEntity.status === STATUS_REMOVED && entity.status === STATUS_REMOVE) {\n return false;\n }\n return true;\n })\n };\n }\n }]);\n return CSSMotionList;\n }(React.Component);\n _defineProperty(CSSMotionList, \"defaultProps\", {\n component: 'div'\n });\n return CSSMotionList;\n}\nexport default genCSSMotionList(supportTransition);","import CSSMotion from \"./CSSMotion\";\nimport CSSMotionList from \"./CSSMotionList\";\nexport { default as Provider } from \"./context\";\nexport { CSSMotionList };\nexport default CSSMotion;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"invalidate\", \"item\", \"renderItem\", \"responsive\", \"responsiveDisabled\", \"registerSize\", \"itemKey\", \"className\", \"style\", \"children\", \"display\", \"order\", \"component\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\n// Use shared variable to save bundle size\nvar UNDEFINED = undefined;\nfunction InternalItem(props, ref) {\n var prefixCls = props.prefixCls,\n invalidate = props.invalidate,\n item = props.item,\n renderItem = props.renderItem,\n responsive = props.responsive,\n responsiveDisabled = props.responsiveDisabled,\n registerSize = props.registerSize,\n itemKey = props.itemKey,\n className = props.className,\n style = props.style,\n children = props.children,\n display = props.display,\n order = props.order,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n restProps = _objectWithoutProperties(props, _excluded);\n var mergedHidden = responsive && !display;\n // ================================ Effect ================================\n function internalRegisterSize(width) {\n registerSize(itemKey, width);\n }\n React.useEffect(function () {\n return function () {\n internalRegisterSize(null);\n };\n }, []);\n // ================================ Render ================================\n var childNode = renderItem && item !== UNDEFINED ? renderItem(item) : children;\n var overflowStyle;\n if (!invalidate) {\n overflowStyle = {\n opacity: mergedHidden ? 0 : 1,\n height: mergedHidden ? 0 : UNDEFINED,\n overflowY: mergedHidden ? 'hidden' : UNDEFINED,\n order: responsive ? order : UNDEFINED,\n pointerEvents: mergedHidden ? 'none' : UNDEFINED,\n position: mergedHidden ? 'absolute' : UNDEFINED\n };\n }\n var overflowProps = {};\n if (mergedHidden) {\n overflowProps['aria-hidden'] = true;\n }\n var itemNode = /*#__PURE__*/React.createElement(Component, _extends({\n className: classNames(!invalidate && prefixCls, className),\n style: _objectSpread(_objectSpread({}, overflowStyle), style)\n }, overflowProps, restProps, {\n ref: ref\n }), childNode);\n if (responsive) {\n itemNode = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: function onResize(_ref) {\n var offsetWidth = _ref.offsetWidth;\n internalRegisterSize(offsetWidth);\n },\n disabled: responsiveDisabled\n }, itemNode);\n }\n return itemNode;\n}\nvar Item = /*#__PURE__*/React.forwardRef(InternalItem);\nItem.displayName = 'Item';\nexport default Item;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport * as React from 'react';\nimport { unstable_batchedUpdates } from 'react-dom';\nimport channelUpdate from './channelUpdate';\n/**\n * Batcher for record any `useEffectState` need update.\n */\nexport function useBatcher() {\n // Updater Trigger\n var updateFuncRef = React.useRef(null);\n // Notify update\n var notifyEffectUpdate = function notifyEffectUpdate(callback) {\n if (!updateFuncRef.current) {\n updateFuncRef.current = [];\n channelUpdate(function () {\n unstable_batchedUpdates(function () {\n updateFuncRef.current.forEach(function (fn) {\n fn();\n });\n updateFuncRef.current = null;\n });\n });\n }\n updateFuncRef.current.push(callback);\n };\n return notifyEffectUpdate;\n}\n/**\n * Trigger state update by `useLayoutEffect` to save perf.\n */\nexport default function useEffectState(notifyEffectUpdate, defaultValue) {\n // Value\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n stateValue = _React$useState2[0],\n setStateValue = _React$useState2[1];\n // Set State\n var setEffectVal = useEvent(function (nextValue) {\n notifyEffectUpdate(function () {\n setStateValue(nextValue);\n });\n });\n return [stateValue, setEffectVal];\n}","import raf from \"rc-util/es/raf\";\nexport default function channelUpdate(callback) {\n if (typeof MessageChannel === 'undefined') {\n raf(callback);\n } else {\n var channel = new MessageChannel();\n channel.port1.onmessage = function () {\n return callback();\n };\n channel.port2.postMessage(undefined);\n }\n}","import React from 'react';\nexport var OverflowContext = /*#__PURE__*/React.createContext(null);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"component\"],\n _excluded2 = [\"className\"],\n _excluded3 = [\"className\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Item from './Item';\nimport { OverflowContext } from './context';\nvar InternalRawItem = function InternalRawItem(props, ref) {\n var context = React.useContext(OverflowContext);\n // Render directly when context not provided\n if (!context) {\n var _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _restProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/React.createElement(Component, _extends({}, _restProps, {\n ref: ref\n }));\n }\n var contextClassName = context.className,\n restContext = _objectWithoutProperties(context, _excluded2);\n var className = props.className,\n restProps = _objectWithoutProperties(props, _excluded3);\n // Do not pass context to sub item to avoid multiple measure\n return /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(Item, _extends({\n ref: ref,\n className: classNames(contextClassName, className)\n }, restContext, restProps)));\n};\nvar RawItem = /*#__PURE__*/React.forwardRef(InternalRawItem);\nRawItem.displayName = 'RawItem';\nexport default RawItem;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"data\", \"renderItem\", \"renderRawItem\", \"itemKey\", \"itemWidth\", \"ssr\", \"style\", \"className\", \"maxCount\", \"renderRest\", \"renderRawRest\", \"suffix\", \"component\", \"itemComponent\", \"onVisibleChange\"];\nimport * as React from 'react';\nimport { useState, useMemo, useCallback } from 'react';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport Item from './Item';\nimport useEffectState, { useBatcher } from './hooks/useEffectState';\nimport RawItem from './RawItem';\nimport { OverflowContext } from './context';\nvar RESPONSIVE = 'responsive';\nvar INVALIDATE = 'invalidate';\nexport { OverflowContext } from './context';\nfunction defaultRenderRest(omittedItems) {\n return \"+ \".concat(omittedItems.length, \" ...\");\n}\nfunction Overflow(props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-overflow' : _props$prefixCls,\n _props$data = props.data,\n data = _props$data === void 0 ? [] : _props$data,\n renderItem = props.renderItem,\n renderRawItem = props.renderRawItem,\n itemKey = props.itemKey,\n _props$itemWidth = props.itemWidth,\n itemWidth = _props$itemWidth === void 0 ? 10 : _props$itemWidth,\n ssr = props.ssr,\n style = props.style,\n className = props.className,\n maxCount = props.maxCount,\n renderRest = props.renderRest,\n renderRawRest = props.renderRawRest,\n suffix = props.suffix,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n itemComponent = props.itemComponent,\n onVisibleChange = props.onVisibleChange,\n restProps = _objectWithoutProperties(props, _excluded);\n var fullySSR = ssr === 'full';\n var notifyEffectUpdate = useBatcher();\n var _useEffectState = useEffectState(notifyEffectUpdate, null),\n _useEffectState2 = _slicedToArray(_useEffectState, 2),\n containerWidth = _useEffectState2[0],\n setContainerWidth = _useEffectState2[1];\n var mergedContainerWidth = containerWidth || 0;\n var _useEffectState3 = useEffectState(notifyEffectUpdate, new Map()),\n _useEffectState4 = _slicedToArray(_useEffectState3, 2),\n itemWidths = _useEffectState4[0],\n setItemWidths = _useEffectState4[1];\n var _useEffectState5 = useEffectState(notifyEffectUpdate, 0),\n _useEffectState6 = _slicedToArray(_useEffectState5, 2),\n prevRestWidth = _useEffectState6[0],\n setPrevRestWidth = _useEffectState6[1];\n var _useEffectState7 = useEffectState(notifyEffectUpdate, 0),\n _useEffectState8 = _slicedToArray(_useEffectState7, 2),\n restWidth = _useEffectState8[0],\n setRestWidth = _useEffectState8[1];\n var _useEffectState9 = useEffectState(notifyEffectUpdate, 0),\n _useEffectState10 = _slicedToArray(_useEffectState9, 2),\n suffixWidth = _useEffectState10[0],\n setSuffixWidth = _useEffectState10[1];\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n suffixFixedStart = _useState2[0],\n setSuffixFixedStart = _useState2[1];\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n displayCount = _useState4[0],\n setDisplayCount = _useState4[1];\n var mergedDisplayCount = React.useMemo(function () {\n if (displayCount === null && fullySSR) {\n return Number.MAX_SAFE_INTEGER;\n }\n return displayCount || 0;\n }, [displayCount, containerWidth]);\n var _useState5 = useState(false),\n _useState6 = _slicedToArray(_useState5, 2),\n restReady = _useState6[0],\n setRestReady = _useState6[1];\n var itemPrefixCls = \"\".concat(prefixCls, \"-item\");\n // Always use the max width to avoid blink\n var mergedRestWidth = Math.max(prevRestWidth, restWidth);\n // ================================= Data =================================\n var isResponsive = maxCount === RESPONSIVE;\n var shouldResponsive = data.length && isResponsive;\n var invalidate = maxCount === INVALIDATE;\n /**\n * When is `responsive`, we will always render rest node to get the real width of it for calculation\n */\n var showRest = shouldResponsive || typeof maxCount === 'number' && data.length > maxCount;\n var mergedData = useMemo(function () {\n var items = data;\n if (shouldResponsive) {\n if (containerWidth === null && fullySSR) {\n items = data;\n } else {\n items = data.slice(0, Math.min(data.length, mergedContainerWidth / itemWidth));\n }\n } else if (typeof maxCount === 'number') {\n items = data.slice(0, maxCount);\n }\n return items;\n }, [data, itemWidth, containerWidth, maxCount, shouldResponsive]);\n var omittedItems = useMemo(function () {\n if (shouldResponsive) {\n return data.slice(mergedDisplayCount + 1);\n }\n return data.slice(mergedData.length);\n }, [data, mergedData, shouldResponsive, mergedDisplayCount]);\n // ================================= Item =================================\n var getKey = useCallback(function (item, index) {\n var _ref;\n if (typeof itemKey === 'function') {\n return itemKey(item);\n }\n return (_ref = itemKey && (item === null || item === void 0 ? void 0 : item[itemKey])) !== null && _ref !== void 0 ? _ref : index;\n }, [itemKey]);\n var mergedRenderItem = useCallback(renderItem || function (item) {\n return item;\n }, [renderItem]);\n function updateDisplayCount(count, suffixFixedStartVal, notReady) {\n // React 18 will sync render even when the value is same in some case.\n // We take `mergedData` as deps which may cause dead loop if it's dynamic generate.\n // ref: https://github.com/ant-design/ant-design/issues/36559\n if (displayCount === count && (suffixFixedStartVal === undefined || suffixFixedStartVal === suffixFixedStart)) {\n return;\n }\n setDisplayCount(count);\n if (!notReady) {\n setRestReady(count < data.length - 1);\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(count);\n }\n if (suffixFixedStartVal !== undefined) {\n setSuffixFixedStart(suffixFixedStartVal);\n }\n }\n // ================================= Size =================================\n function onOverflowResize(_, element) {\n setContainerWidth(element.clientWidth);\n }\n function registerSize(key, width) {\n setItemWidths(function (origin) {\n var clone = new Map(origin);\n if (width === null) {\n clone.delete(key);\n } else {\n clone.set(key, width);\n }\n return clone;\n });\n }\n function registerOverflowSize(_, width) {\n setRestWidth(width);\n setPrevRestWidth(restWidth);\n }\n function registerSuffixSize(_, width) {\n setSuffixWidth(width);\n }\n // ================================ Effect ================================\n function getItemWidth(index) {\n return itemWidths.get(getKey(mergedData[index], index));\n }\n useLayoutEffect(function () {\n if (mergedContainerWidth && typeof mergedRestWidth === 'number' && mergedData) {\n var totalWidth = suffixWidth;\n var len = mergedData.length;\n var lastIndex = len - 1;\n // When data count change to 0, reset this since not loop will reach\n if (!len) {\n updateDisplayCount(0, null);\n return;\n }\n for (var i = 0; i < len; i += 1) {\n var currentItemWidth = getItemWidth(i);\n // Fully will always render\n if (fullySSR) {\n currentItemWidth = currentItemWidth || 0;\n }\n // Break since data not ready\n if (currentItemWidth === undefined) {\n updateDisplayCount(i - 1, undefined, true);\n break;\n }\n // Find best match\n totalWidth += currentItemWidth;\n if (\n // Only one means `totalWidth` is the final width\n lastIndex === 0 && totalWidth <= mergedContainerWidth ||\n // Last two width will be the final width\n i === lastIndex - 1 && totalWidth + getItemWidth(lastIndex) <= mergedContainerWidth) {\n // Additional check if match the end\n updateDisplayCount(lastIndex, null);\n break;\n } else if (totalWidth + mergedRestWidth > mergedContainerWidth) {\n // Can not hold all the content to show rest\n updateDisplayCount(i - 1, totalWidth - currentItemWidth - suffixWidth + restWidth);\n break;\n }\n }\n if (suffix && getItemWidth(0) + suffixWidth > mergedContainerWidth) {\n setSuffixFixedStart(null);\n }\n }\n }, [mergedContainerWidth, itemWidths, restWidth, suffixWidth, getKey, mergedData]);\n // ================================ Render ================================\n var displayRest = restReady && !!omittedItems.length;\n var suffixStyle = {};\n if (suffixFixedStart !== null && shouldResponsive) {\n suffixStyle = {\n position: 'absolute',\n left: suffixFixedStart,\n top: 0\n };\n }\n var itemSharedProps = {\n prefixCls: itemPrefixCls,\n responsive: shouldResponsive,\n component: itemComponent,\n invalidate: invalidate\n };\n // >>>>> Choice render fun by `renderRawItem`\n var internalRenderItemNode = renderRawItem ? function (item, index) {\n var key = getKey(item, index);\n return /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n key: key,\n value: _objectSpread(_objectSpread({}, itemSharedProps), {}, {\n order: index,\n item: item,\n itemKey: key,\n registerSize: registerSize,\n display: index <= mergedDisplayCount\n })\n }, renderRawItem(item, index));\n } : function (item, index) {\n var key = getKey(item, index);\n return /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, {\n order: index,\n key: key,\n item: item,\n renderItem: mergedRenderItem,\n itemKey: key,\n registerSize: registerSize,\n display: index <= mergedDisplayCount\n }));\n };\n // >>>>> Rest node\n var restNode;\n var restContextProps = {\n order: displayRest ? mergedDisplayCount : Number.MAX_SAFE_INTEGER,\n className: \"\".concat(itemPrefixCls, \"-rest\"),\n registerSize: registerOverflowSize,\n display: displayRest\n };\n if (!renderRawRest) {\n var mergedRenderRest = renderRest || defaultRenderRest;\n restNode = /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, restContextProps), typeof mergedRenderRest === 'function' ? mergedRenderRest(omittedItems) : mergedRenderRest);\n } else if (renderRawRest) {\n restNode = /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n value: _objectSpread(_objectSpread({}, itemSharedProps), restContextProps)\n }, renderRawRest(omittedItems));\n }\n var overflowNode = /*#__PURE__*/React.createElement(Component, _extends({\n className: classNames(!invalidate && prefixCls, className),\n style: style,\n ref: ref\n }, restProps), mergedData.map(internalRenderItemNode), showRest ? restNode : null, suffix && /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, {\n responsive: isResponsive,\n responsiveDisabled: !shouldResponsive,\n order: mergedDisplayCount,\n className: \"\".concat(itemPrefixCls, \"-suffix\"),\n registerSize: registerSuffixSize,\n display: true,\n style: suffixStyle\n }), suffix));\n if (isResponsive) {\n overflowNode = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onOverflowResize,\n disabled: !shouldResponsive\n }, overflowNode);\n }\n return overflowNode;\n}\nvar ForwardOverflow = /*#__PURE__*/React.forwardRef(Overflow);\nForwardOverflow.displayName = 'Overflow';\nForwardOverflow.Item = RawItem;\nForwardOverflow.RESPONSIVE = RESPONSIVE;\nForwardOverflow.INVALIDATE = INVALIDATE;\n// Convert to generic type\nexport default ForwardOverflow;","import Overflow from './Overflow';\nexport default Overflow;","import * as React from 'react';\nexport var CollectionContext = /*#__PURE__*/React.createContext(null);\n/**\n * Collect all the resize event from children ResizeObserver\n */\nexport function Collection(_ref) {\n var children = _ref.children,\n onBatchResize = _ref.onBatchResize;\n var resizeIdRef = React.useRef(0);\n var resizeInfosRef = React.useRef([]);\n var onCollectionResize = React.useContext(CollectionContext);\n var onResize = React.useCallback(function (size, element, data) {\n resizeIdRef.current += 1;\n var currentId = resizeIdRef.current;\n resizeInfosRef.current.push({\n size: size,\n element: element,\n data: data\n });\n Promise.resolve().then(function () {\n if (currentId === resizeIdRef.current) {\n onBatchResize === null || onBatchResize === void 0 || onBatchResize(resizeInfosRef.current);\n resizeInfosRef.current = [];\n }\n });\n\n // Continue bubbling if parent exist\n onCollectionResize === null || onCollectionResize === void 0 || onCollectionResize(size, element, data);\n }, [onBatchResize, onCollectionResize]);\n return /*#__PURE__*/React.createElement(CollectionContext.Provider, {\n value: onResize\n }, children);\n}","import ResizeObserver from 'resize-observer-polyfill';\n// =============================== Const ===============================\nvar elementListeners = new Map();\nfunction onResize(entities) {\n entities.forEach(function (entity) {\n var _elementListeners$get;\n var target = entity.target;\n (_elementListeners$get = elementListeners.get(target)) === null || _elementListeners$get === void 0 || _elementListeners$get.forEach(function (listener) {\n return listener(target);\n });\n });\n}\n\n// Note: ResizeObserver polyfill not support option to measure border-box resize\nvar resizeObserver = new ResizeObserver(onResize);\n\n// Dev env only\nexport var _el = process.env.NODE_ENV !== 'production' ? elementListeners : null; // eslint-disable-line\nexport var _rs = process.env.NODE_ENV !== 'production' ? onResize : null; // eslint-disable-line\n\n// ============================== Observe ==============================\nexport function observe(element, callback) {\n if (!elementListeners.has(element)) {\n elementListeners.set(element, new Set());\n resizeObserver.observe(element);\n }\n elementListeners.get(element).add(callback);\n}\nexport function unobserve(element, callback) {\n if (elementListeners.has(element)) {\n elementListeners.get(element).delete(callback);\n if (!elementListeners.get(element).size) {\n resizeObserver.unobserve(element);\n elementListeners.delete(element);\n }\n }\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n/**\n * Fallback to findDOMNode if origin ref do not provide any dom element\n */\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n var _super = _createSuper(DomWrapper);\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n return _super.apply(this, arguments);\n }\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n return DomWrapper;\n}(React.Component);\nexport { DomWrapper as default };","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { CollectionContext } from \"../Collection\";\nimport { observe, unobserve } from \"../utils/observerUtil\";\nimport DomWrapper from \"./DomWrapper\";\nfunction SingleObserver(props, ref) {\n var children = props.children,\n disabled = props.disabled;\n var elementRef = React.useRef(null);\n var wrapperRef = React.useRef(null);\n var onCollectionResize = React.useContext(CollectionContext);\n\n // =========================== Children ===========================\n var isRenderProps = typeof children === 'function';\n var mergedChildren = isRenderProps ? children(elementRef) : children;\n\n // ============================= Size =============================\n var sizeRef = React.useRef({\n width: -1,\n height: -1,\n offsetWidth: -1,\n offsetHeight: -1\n });\n\n // ============================= Ref ==============================\n var canRef = !isRenderProps && /*#__PURE__*/React.isValidElement(mergedChildren) && supportRef(mergedChildren);\n var originRef = canRef ? mergedChildren.ref : null;\n var mergedRef = useComposeRef(originRef, elementRef);\n var getDom = function getDom() {\n var _elementRef$current;\n return findDOMNode(elementRef.current) || (\n // Support `nativeElement` format\n elementRef.current && _typeof(elementRef.current) === 'object' ? findDOMNode((_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 ? void 0 : _elementRef$current.nativeElement) : null) || findDOMNode(wrapperRef.current);\n };\n React.useImperativeHandle(ref, function () {\n return getDom();\n });\n\n // =========================== Observe ============================\n var propsRef = React.useRef(props);\n propsRef.current = props;\n\n // Handler\n var onInternalResize = React.useCallback(function (target) {\n var _propsRef$current = propsRef.current,\n onResize = _propsRef$current.onResize,\n data = _propsRef$current.data;\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n var offsetWidth = target.offsetWidth,\n offsetHeight = target.offsetHeight;\n\n /**\n * Resize observer trigger when content size changed.\n * In most case we just care about element size,\n * let's use `boundary` instead of `contentRect` here to avoid shaking.\n */\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n if (sizeRef.current.width !== fixedWidth || sizeRef.current.height !== fixedHeight || sizeRef.current.offsetWidth !== offsetWidth || sizeRef.current.offsetHeight !== offsetHeight) {\n var size = {\n width: fixedWidth,\n height: fixedHeight,\n offsetWidth: offsetWidth,\n offsetHeight: offsetHeight\n };\n sizeRef.current = size;\n\n // IE is strange, right?\n var mergedOffsetWidth = offsetWidth === Math.round(width) ? width : offsetWidth;\n var mergedOffsetHeight = offsetHeight === Math.round(height) ? height : offsetHeight;\n var sizeInfo = _objectSpread(_objectSpread({}, size), {}, {\n offsetWidth: mergedOffsetWidth,\n offsetHeight: mergedOffsetHeight\n });\n\n // Let collection know what happened\n onCollectionResize === null || onCollectionResize === void 0 || onCollectionResize(sizeInfo, target, data);\n if (onResize) {\n // defer the callback but not defer to next frame\n Promise.resolve().then(function () {\n onResize(sizeInfo, target);\n });\n }\n }\n }, []);\n\n // Dynamic observe\n React.useEffect(function () {\n var currentElement = getDom();\n if (currentElement && !disabled) {\n observe(currentElement, onInternalResize);\n }\n return function () {\n return unobserve(currentElement, onInternalResize);\n };\n }, [elementRef.current, disabled]);\n\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperRef\n }, canRef ? /*#__PURE__*/React.cloneElement(mergedChildren, {\n ref: mergedRef\n }) : mergedChildren);\n}\nvar RefSingleObserver = /*#__PURE__*/React.forwardRef(SingleObserver);\nif (process.env.NODE_ENV !== 'production') {\n RefSingleObserver.displayName = 'SingleObserver';\n}\nexport default RefSingleObserver;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { warning } from \"rc-util/es/warning\";\nimport SingleObserver from \"./SingleObserver\";\nimport { Collection } from \"./Collection\";\nvar INTERNAL_PREFIX_KEY = 'rc-observer-key';\nimport { _rs } from \"./utils/observerUtil\";\nexport { /** @private Test only for mock trigger resize event */\n_rs };\nfunction ResizeObserver(props, ref) {\n var children = props.children;\n var childNodes = typeof children === 'function' ? [children] : toArray(children);\n if (process.env.NODE_ENV !== 'production') {\n if (childNodes.length > 1) {\n warning(false, 'Find more than one child node with `children` in ResizeObserver. Please use ResizeObserver.Collection instead.');\n } else if (childNodes.length === 0) {\n warning(false, '`children` of ResizeObserver is empty. Nothing is in observe.');\n }\n }\n return childNodes.map(function (child, index) {\n var key = (child === null || child === void 0 ? void 0 : child.key) || \"\".concat(INTERNAL_PREFIX_KEY, \"-\").concat(index);\n return /*#__PURE__*/React.createElement(SingleObserver, _extends({}, props, {\n key: key,\n ref: index === 0 ? ref : undefined\n }), child);\n });\n}\nvar RefResizeObserver = /*#__PURE__*/React.forwardRef(ResizeObserver);\nif (process.env.NODE_ENV !== 'production') {\n RefResizeObserver.displayName = 'ResizeObserver';\n}\nRefResizeObserver.Collection = Collection;\nexport default RefResizeObserver;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _react = require(\"react\");\nvar _default = exports.default = /*#__PURE__*/(0, _react.createContext)(null);","\"use strict\";\n\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nvar AddButton = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n editable = props.editable,\n locale = props.locale,\n style = props.style;\n if (!editable || editable.showAdd === false) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"button\", {\n ref: ref,\n type: \"button\",\n className: \"\".concat(prefixCls, \"-nav-add\"),\n style: style,\n \"aria-label\": (locale === null || locale === void 0 ? void 0 : locale.addAriaLabel) || 'Add tab',\n onClick: function onClick(event) {\n editable.onEdit('add', {\n event: event\n });\n }\n }, editable.addIcon || '+');\n});\nvar _default = exports.default = AddButton;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof3 = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof3(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nvar ExtraContent = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var position = props.position,\n prefixCls = props.prefixCls,\n extra = props.extra;\n if (!extra) {\n return null;\n }\n var content;\n\n // Parse extra\n var assertExtra = {};\n if ((0, _typeof2.default)(extra) === 'object' && ! /*#__PURE__*/React.isValidElement(extra)) {\n assertExtra = extra;\n } else {\n assertExtra.right = extra;\n }\n if (position === 'right') {\n content = assertExtra.right;\n }\n if (position === 'left') {\n content = assertExtra.left;\n }\n return content ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra-content\"),\n ref: ref\n }, content) : null;\n});\nif (process.env.NODE_ENV !== 'production') {\n ExtraContent.displayName = 'ExtraContent';\n}\nvar _default = exports.default = ExtraContent;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _rcDropdown = _interopRequireDefault(require(\"rc-dropdown\"));\nvar _rcMenu = _interopRequireWildcard(require(\"rc-menu\"));\nvar _KeyCode = _interopRequireDefault(require(\"rc-util/lib/KeyCode\"));\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar React = _react;\nvar _util = require(\"../util\");\nvar _AddButton = _interopRequireDefault(require(\"./AddButton\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nvar OperationNode = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n id = props.id,\n tabs = props.tabs,\n locale = props.locale,\n mobile = props.mobile,\n _props$moreIcon = props.moreIcon,\n moreIcon = _props$moreIcon === void 0 ? 'More' : _props$moreIcon,\n moreTransitionName = props.moreTransitionName,\n style = props.style,\n className = props.className,\n editable = props.editable,\n tabBarGutter = props.tabBarGutter,\n rtl = props.rtl,\n removeAriaLabel = props.removeAriaLabel,\n onTabClick = props.onTabClick,\n getPopupContainer = props.getPopupContainer,\n popupClassName = props.popupClassName;\n // ======================== Dropdown ========================\n var _useState = (0, _react.useState)(false),\n _useState2 = (0, _slicedToArray2.default)(_useState, 2),\n open = _useState2[0],\n setOpen = _useState2[1];\n var _useState3 = (0, _react.useState)(null),\n _useState4 = (0, _slicedToArray2.default)(_useState3, 2),\n selectedKey = _useState4[0],\n setSelectedKey = _useState4[1];\n var popupId = \"\".concat(id, \"-more-popup\");\n var dropdownPrefix = \"\".concat(prefixCls, \"-dropdown\");\n var selectedItemId = selectedKey !== null ? \"\".concat(popupId, \"-\").concat(selectedKey) : null;\n var dropdownAriaLabel = locale === null || locale === void 0 ? void 0 : locale.dropdownAriaLabel;\n function onRemoveTab(event, key) {\n event.preventDefault();\n event.stopPropagation();\n editable.onEdit('remove', {\n key: key,\n event: event\n });\n }\n var menu = /*#__PURE__*/React.createElement(_rcMenu.default, {\n onClick: function onClick(_ref) {\n var key = _ref.key,\n domEvent = _ref.domEvent;\n onTabClick(key, domEvent);\n setOpen(false);\n },\n prefixCls: \"\".concat(dropdownPrefix, \"-menu\"),\n id: popupId,\n tabIndex: -1,\n role: \"listbox\",\n \"aria-activedescendant\": selectedItemId,\n selectedKeys: [selectedKey],\n \"aria-label\": dropdownAriaLabel !== undefined ? dropdownAriaLabel : 'expanded dropdown'\n }, tabs.map(function (tab) {\n var closable = tab.closable,\n disabled = tab.disabled,\n closeIcon = tab.closeIcon,\n key = tab.key,\n label = tab.label;\n var removable = (0, _util.getRemovable)(closable, closeIcon, editable, disabled);\n return /*#__PURE__*/React.createElement(_rcMenu.MenuItem, {\n key: key,\n id: \"\".concat(popupId, \"-\").concat(key),\n role: \"option\",\n \"aria-controls\": id && \"\".concat(id, \"-panel-\").concat(key),\n disabled: disabled\n }, /*#__PURE__*/React.createElement(\"span\", null, label), removable && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": removeAriaLabel || 'remove',\n tabIndex: 0,\n className: \"\".concat(dropdownPrefix, \"-menu-item-remove\"),\n onClick: function onClick(e) {\n e.stopPropagation();\n onRemoveTab(e, key);\n }\n }, closeIcon || editable.removeIcon || '×'));\n }));\n function selectOffset(offset) {\n var enabledTabs = tabs.filter(function (tab) {\n return !tab.disabled;\n });\n var selectedIndex = enabledTabs.findIndex(function (tab) {\n return tab.key === selectedKey;\n }) || 0;\n var len = enabledTabs.length;\n for (var i = 0; i < len; i += 1) {\n selectedIndex = (selectedIndex + offset + len) % len;\n var tab = enabledTabs[selectedIndex];\n if (!tab.disabled) {\n setSelectedKey(tab.key);\n return;\n }\n }\n }\n function onKeyDown(e) {\n var which = e.which;\n if (!open) {\n if ([_KeyCode.default.DOWN, _KeyCode.default.SPACE, _KeyCode.default.ENTER].includes(which)) {\n setOpen(true);\n e.preventDefault();\n }\n return;\n }\n switch (which) {\n case _KeyCode.default.UP:\n selectOffset(-1);\n e.preventDefault();\n break;\n case _KeyCode.default.DOWN:\n selectOffset(1);\n e.preventDefault();\n break;\n case _KeyCode.default.ESC:\n setOpen(false);\n break;\n case _KeyCode.default.SPACE:\n case _KeyCode.default.ENTER:\n if (selectedKey !== null) {\n onTabClick(selectedKey, e);\n }\n break;\n }\n }\n\n // ========================= Effect =========================\n (0, _react.useEffect)(function () {\n // We use query element here to avoid React strict warning\n var ele = document.getElementById(selectedItemId);\n if (ele && ele.scrollIntoView) {\n ele.scrollIntoView(false);\n }\n }, [selectedKey]);\n (0, _react.useEffect)(function () {\n if (!open) {\n setSelectedKey(null);\n }\n }, [open]);\n\n // ========================= Render =========================\n var moreStyle = (0, _defineProperty2.default)({}, rtl ? 'marginRight' : 'marginLeft', tabBarGutter);\n if (!tabs.length) {\n moreStyle.visibility = 'hidden';\n moreStyle.order = 1;\n }\n var overlayClassName = (0, _classnames.default)((0, _defineProperty2.default)({}, \"\".concat(dropdownPrefix, \"-rtl\"), rtl));\n var moreNode = mobile ? null : /*#__PURE__*/React.createElement(_rcDropdown.default, {\n prefixCls: dropdownPrefix,\n overlay: menu,\n trigger: ['hover'],\n visible: tabs.length ? open : false,\n transitionName: moreTransitionName,\n onVisibleChange: setOpen,\n overlayClassName: (0, _classnames.default)(overlayClassName, popupClassName),\n mouseEnterDelay: 0.1,\n mouseLeaveDelay: 0.1,\n getPopupContainer: getPopupContainer\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"\".concat(prefixCls, \"-nav-more\"),\n style: moreStyle,\n tabIndex: -1,\n \"aria-hidden\": \"true\",\n \"aria-haspopup\": \"listbox\",\n \"aria-controls\": popupId,\n id: \"\".concat(id, \"-more\"),\n \"aria-expanded\": open,\n onKeyDown: onKeyDown\n }, moreIcon));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: (0, _classnames.default)(\"\".concat(prefixCls, \"-nav-operations\"), className),\n style: style,\n ref: ref\n }, moreNode, /*#__PURE__*/React.createElement(_AddButton.default, {\n prefixCls: prefixCls,\n locale: locale,\n editable: editable\n }));\n});\nvar _default = exports.default = /*#__PURE__*/React.memo(OperationNode, function (_, next) {\n return (\n // https://github.com/ant-design/ant-design/issues/32544\n // We'd better remove syntactic sugar in `rc-menu` since this has perf issue\n next.tabMoving\n );\n});","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _KeyCode = _interopRequireDefault(require(\"rc-util/lib/KeyCode\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _util = require(\"../util\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nvar TabNode = function TabNode(props) {\n var _classNames;\n var prefixCls = props.prefixCls,\n id = props.id,\n active = props.active,\n _props$tab = props.tab,\n key = _props$tab.key,\n label = _props$tab.label,\n disabled = _props$tab.disabled,\n closeIcon = _props$tab.closeIcon,\n icon = _props$tab.icon,\n closable = props.closable,\n renderWrapper = props.renderWrapper,\n removeAriaLabel = props.removeAriaLabel,\n editable = props.editable,\n onClick = props.onClick,\n onFocus = props.onFocus,\n style = props.style;\n var tabPrefix = \"\".concat(prefixCls, \"-tab\");\n var removable = (0, _util.getRemovable)(closable, closeIcon, editable, disabled);\n function onInternalClick(e) {\n if (disabled) {\n return;\n }\n onClick(e);\n }\n function onRemoveTab(event) {\n event.preventDefault();\n event.stopPropagation();\n editable.onEdit('remove', {\n key: key,\n event: event\n });\n }\n var labelNode = React.useMemo(function () {\n return icon && typeof label === 'string' ? /*#__PURE__*/React.createElement(\"span\", null, label) : label;\n }, [label, icon]);\n var node = /*#__PURE__*/React.createElement(\"div\", {\n key: key\n // ref={ref}\n ,\n \"data-node-key\": (0, _util.genDataNodeKey)(key),\n className: (0, _classnames.default)(tabPrefix, (_classNames = {}, (0, _defineProperty2.default)(_classNames, \"\".concat(tabPrefix, \"-with-remove\"), removable), (0, _defineProperty2.default)(_classNames, \"\".concat(tabPrefix, \"-active\"), active), (0, _defineProperty2.default)(_classNames, \"\".concat(tabPrefix, \"-disabled\"), disabled), _classNames)),\n style: style,\n onClick: onInternalClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n role: \"tab\",\n \"aria-selected\": active,\n id: id && \"\".concat(id, \"-tab-\").concat(key),\n className: \"\".concat(tabPrefix, \"-btn\"),\n \"aria-controls\": id && \"\".concat(id, \"-panel-\").concat(key),\n \"aria-disabled\": disabled,\n tabIndex: disabled ? null : 0,\n onClick: function onClick(e) {\n e.stopPropagation();\n onInternalClick(e);\n },\n onKeyDown: function onKeyDown(e) {\n if ([_KeyCode.default.SPACE, _KeyCode.default.ENTER].includes(e.which)) {\n e.preventDefault();\n onInternalClick(e);\n }\n },\n onFocus: onFocus\n }, icon && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(tabPrefix, \"-icon\")\n }, icon), label && labelNode), removable && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": removeAriaLabel || 'remove',\n tabIndex: 0,\n className: \"\".concat(tabPrefix, \"-remove\"),\n onClick: function onClick(e) {\n e.stopPropagation();\n onRemoveTab(e);\n }\n }, closeIcon || editable.removeIcon || '×'));\n return renderWrapper ? renderWrapper(node) : node;\n};\nvar _default = exports.default = TabNode;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _ = _interopRequireDefault(require(\".\"));\nvar _TabContext = _interopRequireDefault(require(\"../TabContext\"));\nvar _TabPane = _interopRequireDefault(require(\"../TabPanelList/TabPane\"));\nvar _excluded = [\"renderTabBar\"],\n _excluded2 = [\"label\", \"key\"]; // zombieJ: To compatible with `renderTabBar` usage.\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\n// We have to create a TabNavList components.\nvar TabNavListWrapper = function TabNavListWrapper(_ref) {\n var renderTabBar = _ref.renderTabBar,\n restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);\n var _React$useContext = React.useContext(_TabContext.default),\n tabs = _React$useContext.tabs;\n if (renderTabBar) {\n var tabNavBarProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, restProps), {}, {\n // Legacy support. We do not use this actually\n panes: tabs.map(function (_ref2) {\n var label = _ref2.label,\n key = _ref2.key,\n restTabProps = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);\n return /*#__PURE__*/React.createElement(_TabPane.default, (0, _extends2.default)({\n tab: label,\n key: key,\n tabKey: key\n }, restTabProps));\n })\n });\n return renderTabBar(tabNavBarProps, _.default);\n }\n return /*#__PURE__*/React.createElement(_.default, restProps);\n};\nif (process.env.NODE_ENV !== 'production') {\n TabNavListWrapper.displayName = 'TabNavListWrapper';\n}\nvar _default = exports.default = TabNavListWrapper;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _rcResizeObserver = _interopRequireDefault(require(\"rc-resize-observer\"));\nvar _useEvent = _interopRequireDefault(require(\"rc-util/lib/hooks/useEvent\"));\nvar _ref3 = require(\"rc-util/lib/ref\");\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar React = _react;\nvar _TabContext = _interopRequireDefault(require(\"../TabContext\"));\nvar _useIndicator2 = _interopRequireDefault(require(\"../hooks/useIndicator\"));\nvar _useOffsets = _interopRequireDefault(require(\"../hooks/useOffsets\"));\nvar _useSyncState5 = _interopRequireDefault(require(\"../hooks/useSyncState\"));\nvar _useTouchMove = _interopRequireDefault(require(\"../hooks/useTouchMove\"));\nvar _useUpdate = _interopRequireWildcard(require(\"../hooks/useUpdate\"));\nvar _useVisibleRange3 = _interopRequireDefault(require(\"../hooks/useVisibleRange\"));\nvar _util = require(\"../util\");\nvar _AddButton = _interopRequireDefault(require(\"./AddButton\"));\nvar _ExtraContent = _interopRequireDefault(require(\"./ExtraContent\"));\nvar _OperationNode = _interopRequireDefault(require(\"./OperationNode\"));\nvar _TabNode = _interopRequireDefault(require(\"./TabNode\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\n/* eslint-disable react-hooks/exhaustive-deps */\n\nvar getTabSize = function getTabSize(tab, containerRect) {\n // tabListRef\n var offsetWidth = tab.offsetWidth,\n offsetHeight = tab.offsetHeight,\n offsetTop = tab.offsetTop,\n offsetLeft = tab.offsetLeft;\n var _tab$getBoundingClien = tab.getBoundingClientRect(),\n width = _tab$getBoundingClien.width,\n height = _tab$getBoundingClien.height,\n x = _tab$getBoundingClien.x,\n y = _tab$getBoundingClien.y;\n\n // Use getBoundingClientRect to avoid decimal inaccuracy\n if (Math.abs(width - offsetWidth) < 1) {\n return [width, height, x - containerRect.x, y - containerRect.y];\n }\n return [offsetWidth, offsetHeight, offsetLeft, offsetTop];\n};\nvar getSize = function getSize(refObj) {\n var _ref = refObj.current || {},\n _ref$offsetWidth = _ref.offsetWidth,\n offsetWidth = _ref$offsetWidth === void 0 ? 0 : _ref$offsetWidth,\n _ref$offsetHeight = _ref.offsetHeight,\n offsetHeight = _ref$offsetHeight === void 0 ? 0 : _ref$offsetHeight;\n\n // Use getBoundingClientRect to avoid decimal inaccuracy\n if (refObj.current) {\n var _refObj$current$getBo = refObj.current.getBoundingClientRect(),\n width = _refObj$current$getBo.width,\n height = _refObj$current$getBo.height;\n if (Math.abs(width - offsetWidth) < 1) {\n return [width, height];\n }\n }\n return [offsetWidth, offsetHeight];\n};\n\n/**\n * Convert `SizeInfo` to unit value. Such as [123, 456] with `top` position get `123`\n */\nvar getUnitValue = function getUnitValue(size, tabPositionTopOrBottom) {\n return size[tabPositionTopOrBottom ? 0 : 1];\n};\nvar TabNavList = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var className = props.className,\n style = props.style,\n id = props.id,\n animated = props.animated,\n activeKey = props.activeKey,\n rtl = props.rtl,\n extra = props.extra,\n editable = props.editable,\n locale = props.locale,\n tabPosition = props.tabPosition,\n tabBarGutter = props.tabBarGutter,\n children = props.children,\n onTabClick = props.onTabClick,\n onTabScroll = props.onTabScroll,\n indicatorSize = props.indicatorSize,\n indicatorAlign = props.indicatorAlign;\n var _React$useContext = React.useContext(_TabContext.default),\n prefixCls = _React$useContext.prefixCls,\n tabs = _React$useContext.tabs;\n var containerRef = (0, _react.useRef)(null);\n var extraLeftRef = (0, _react.useRef)(null);\n var extraRightRef = (0, _react.useRef)(null);\n var tabsWrapperRef = (0, _react.useRef)(null);\n var tabListRef = (0, _react.useRef)(null);\n var operationsRef = (0, _react.useRef)(null);\n var innerAddButtonRef = (0, _react.useRef)(null);\n var tabPositionTopOrBottom = tabPosition === 'top' || tabPosition === 'bottom';\n var _useSyncState = (0, _useSyncState5.default)(0, function (next, prev) {\n if (tabPositionTopOrBottom && onTabScroll) {\n onTabScroll({\n direction: next > prev ? 'left' : 'right'\n });\n }\n }),\n _useSyncState2 = (0, _slicedToArray2.default)(_useSyncState, 2),\n transformLeft = _useSyncState2[0],\n setTransformLeft = _useSyncState2[1];\n var _useSyncState3 = (0, _useSyncState5.default)(0, function (next, prev) {\n if (!tabPositionTopOrBottom && onTabScroll) {\n onTabScroll({\n direction: next > prev ? 'top' : 'bottom'\n });\n }\n }),\n _useSyncState4 = (0, _slicedToArray2.default)(_useSyncState3, 2),\n transformTop = _useSyncState4[0],\n setTransformTop = _useSyncState4[1];\n var _useState = (0, _react.useState)([0, 0]),\n _useState2 = (0, _slicedToArray2.default)(_useState, 2),\n containerExcludeExtraSize = _useState2[0],\n setContainerExcludeExtraSize = _useState2[1];\n var _useState3 = (0, _react.useState)([0, 0]),\n _useState4 = (0, _slicedToArray2.default)(_useState3, 2),\n tabContentSize = _useState4[0],\n setTabContentSize = _useState4[1];\n var _useState5 = (0, _react.useState)([0, 0]),\n _useState6 = (0, _slicedToArray2.default)(_useState5, 2),\n addSize = _useState6[0],\n setAddSize = _useState6[1];\n var _useState7 = (0, _react.useState)([0, 0]),\n _useState8 = (0, _slicedToArray2.default)(_useState7, 2),\n operationSize = _useState8[0],\n setOperationSize = _useState8[1];\n var _useUpdateState = (0, _useUpdate.useUpdateState)(new Map()),\n _useUpdateState2 = (0, _slicedToArray2.default)(_useUpdateState, 2),\n tabSizes = _useUpdateState2[0],\n setTabSizes = _useUpdateState2[1];\n var tabOffsets = (0, _useOffsets.default)(tabs, tabSizes, tabContentSize[0]);\n\n // ========================== Unit =========================\n var containerExcludeExtraSizeValue = getUnitValue(containerExcludeExtraSize, tabPositionTopOrBottom);\n var tabContentSizeValue = getUnitValue(tabContentSize, tabPositionTopOrBottom);\n var addSizeValue = getUnitValue(addSize, tabPositionTopOrBottom);\n var operationSizeValue = getUnitValue(operationSize, tabPositionTopOrBottom);\n var needScroll = containerExcludeExtraSizeValue < tabContentSizeValue + addSizeValue;\n var visibleTabContentValue = needScroll ? containerExcludeExtraSizeValue - operationSizeValue : containerExcludeExtraSizeValue - addSizeValue;\n\n // ========================== Util =========================\n var operationsHiddenClassName = \"\".concat(prefixCls, \"-nav-operations-hidden\");\n var transformMin = 0;\n var transformMax = 0;\n if (!tabPositionTopOrBottom) {\n transformMin = Math.min(0, visibleTabContentValue - tabContentSizeValue);\n transformMax = 0;\n } else if (rtl) {\n transformMin = 0;\n transformMax = Math.max(0, tabContentSizeValue - visibleTabContentValue);\n } else {\n transformMin = Math.min(0, visibleTabContentValue - tabContentSizeValue);\n transformMax = 0;\n }\n function alignInRange(value) {\n if (value < transformMin) {\n return transformMin;\n }\n if (value > transformMax) {\n return transformMax;\n }\n return value;\n }\n\n // ========================= Mobile ========================\n var touchMovingRef = (0, _react.useRef)(null);\n var _useState9 = (0, _react.useState)(),\n _useState10 = (0, _slicedToArray2.default)(_useState9, 2),\n lockAnimation = _useState10[0],\n setLockAnimation = _useState10[1];\n function doLockAnimation() {\n setLockAnimation(Date.now());\n }\n function clearTouchMoving() {\n if (touchMovingRef.current) {\n clearTimeout(touchMovingRef.current);\n }\n }\n (0, _useTouchMove.default)(tabsWrapperRef, function (offsetX, offsetY) {\n function doMove(setState, offset) {\n setState(function (value) {\n var newValue = alignInRange(value + offset);\n return newValue;\n });\n }\n\n // Skip scroll if place is enough\n if (!needScroll) {\n return false;\n }\n if (tabPositionTopOrBottom) {\n doMove(setTransformLeft, offsetX);\n } else {\n doMove(setTransformTop, offsetY);\n }\n clearTouchMoving();\n doLockAnimation();\n return true;\n });\n (0, _react.useEffect)(function () {\n clearTouchMoving();\n if (lockAnimation) {\n touchMovingRef.current = setTimeout(function () {\n setLockAnimation(0);\n }, 100);\n }\n return clearTouchMoving;\n }, [lockAnimation]);\n\n // ===================== Visible Range =====================\n // Render tab node & collect tab offset\n var _useVisibleRange = (0, _useVisibleRange3.default)(tabOffsets,\n // Container\n visibleTabContentValue,\n // Transform\n tabPositionTopOrBottom ? transformLeft : transformTop,\n // Tabs\n tabContentSizeValue,\n // Add\n addSizeValue,\n // Operation\n operationSizeValue, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n tabs: tabs\n })),\n _useVisibleRange2 = (0, _slicedToArray2.default)(_useVisibleRange, 2),\n visibleStart = _useVisibleRange2[0],\n visibleEnd = _useVisibleRange2[1];\n\n // ========================= Scroll ========================\n var scrollToTab = (0, _useEvent.default)(function () {\n var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : activeKey;\n var tabOffset = tabOffsets.get(key) || {\n width: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0\n };\n if (tabPositionTopOrBottom) {\n // ============ Align with top & bottom ============\n var newTransform = transformLeft;\n\n // RTL\n if (rtl) {\n if (tabOffset.right < transformLeft) {\n newTransform = tabOffset.right;\n } else if (tabOffset.right + tabOffset.width > transformLeft + visibleTabContentValue) {\n newTransform = tabOffset.right + tabOffset.width - visibleTabContentValue;\n }\n }\n // LTR\n else if (tabOffset.left < -transformLeft) {\n newTransform = -tabOffset.left;\n } else if (tabOffset.left + tabOffset.width > -transformLeft + visibleTabContentValue) {\n newTransform = -(tabOffset.left + tabOffset.width - visibleTabContentValue);\n }\n setTransformTop(0);\n setTransformLeft(alignInRange(newTransform));\n } else {\n // ============ Align with left & right ============\n var _newTransform = transformTop;\n if (tabOffset.top < -transformTop) {\n _newTransform = -tabOffset.top;\n } else if (tabOffset.top + tabOffset.height > -transformTop + visibleTabContentValue) {\n _newTransform = -(tabOffset.top + tabOffset.height - visibleTabContentValue);\n }\n setTransformLeft(0);\n setTransformTop(alignInRange(_newTransform));\n }\n });\n\n // ========================== Tab ==========================\n var tabNodeStyle = {};\n if (tabPosition === 'top' || tabPosition === 'bottom') {\n tabNodeStyle[rtl ? 'marginRight' : 'marginLeft'] = tabBarGutter;\n } else {\n tabNodeStyle.marginTop = tabBarGutter;\n }\n var tabNodes = tabs.map(function (tab, i) {\n var key = tab.key;\n return /*#__PURE__*/React.createElement(_TabNode.default, {\n id: id,\n prefixCls: prefixCls,\n key: key,\n tab: tab\n /* first node should not have margin left */,\n style: i === 0 ? undefined : tabNodeStyle,\n closable: tab.closable,\n editable: editable,\n active: key === activeKey,\n renderWrapper: children,\n removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n onClick: function onClick(e) {\n onTabClick(key, e);\n },\n onFocus: function onFocus() {\n scrollToTab(key);\n doLockAnimation();\n if (!tabsWrapperRef.current) {\n return;\n }\n // Focus element will make scrollLeft change which we should reset back\n if (!rtl) {\n tabsWrapperRef.current.scrollLeft = 0;\n }\n tabsWrapperRef.current.scrollTop = 0;\n }\n });\n });\n\n // Update buttons records\n var updateTabSizes = function updateTabSizes() {\n return setTabSizes(function () {\n var _tabListRef$current;\n var newSizes = new Map();\n var listRect = (_tabListRef$current = tabListRef.current) === null || _tabListRef$current === void 0 ? void 0 : _tabListRef$current.getBoundingClientRect();\n tabs.forEach(function (_ref2) {\n var _tabListRef$current2;\n var key = _ref2.key;\n var btnNode = (_tabListRef$current2 = tabListRef.current) === null || _tabListRef$current2 === void 0 ? void 0 : _tabListRef$current2.querySelector(\"[data-node-key=\\\"\".concat((0, _util.genDataNodeKey)(key), \"\\\"]\"));\n if (btnNode) {\n var _getTabSize = getTabSize(btnNode, listRect),\n _getTabSize2 = (0, _slicedToArray2.default)(_getTabSize, 4),\n width = _getTabSize2[0],\n height = _getTabSize2[1],\n left = _getTabSize2[2],\n top = _getTabSize2[3];\n newSizes.set(key, {\n width: width,\n height: height,\n left: left,\n top: top\n });\n }\n });\n return newSizes;\n });\n };\n (0, _react.useEffect)(function () {\n updateTabSizes();\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_')]);\n var onListHolderResize = (0, _useUpdate.default)(function () {\n // Update wrapper records\n var containerSize = getSize(containerRef);\n var extraLeftSize = getSize(extraLeftRef);\n var extraRightSize = getSize(extraRightRef);\n setContainerExcludeExtraSize([containerSize[0] - extraLeftSize[0] - extraRightSize[0], containerSize[1] - extraLeftSize[1] - extraRightSize[1]]);\n var newAddSize = getSize(innerAddButtonRef);\n setAddSize(newAddSize);\n var newOperationSize = getSize(operationsRef);\n setOperationSize(newOperationSize);\n\n // Which includes add button size\n var tabContentFullSize = getSize(tabListRef);\n setTabContentSize([tabContentFullSize[0] - newAddSize[0], tabContentFullSize[1] - newAddSize[1]]);\n\n // Update buttons records\n updateTabSizes();\n });\n\n // ======================== Dropdown =======================\n var startHiddenTabs = tabs.slice(0, visibleStart);\n var endHiddenTabs = tabs.slice(visibleEnd + 1);\n var hiddenTabs = [].concat((0, _toConsumableArray2.default)(startHiddenTabs), (0, _toConsumableArray2.default)(endHiddenTabs));\n\n // =================== Link & Operations ===================\n var activeTabOffset = tabOffsets.get(activeKey);\n var _useIndicator = (0, _useIndicator2.default)({\n activeTabOffset: activeTabOffset,\n horizontal: tabPositionTopOrBottom,\n rtl: rtl,\n indicatorSize: indicatorSize,\n indicatorAlign: indicatorAlign\n }),\n indicatorStyle = _useIndicator.style;\n\n // ========================= Effect ========================\n (0, _react.useEffect)(function () {\n scrollToTab();\n }, [activeKey, transformMin, transformMax, (0, _util.stringify)(activeTabOffset), (0, _util.stringify)(tabOffsets), tabPositionTopOrBottom]);\n\n // Should recalculate when rtl changed\n (0, _react.useEffect)(function () {\n onListHolderResize();\n // eslint-disable-next-line\n }, [rtl]);\n\n // ========================= Render ========================\n var hasDropdown = !!hiddenTabs.length;\n var wrapPrefix = \"\".concat(prefixCls, \"-nav-wrap\");\n var pingLeft;\n var pingRight;\n var pingTop;\n var pingBottom;\n if (tabPositionTopOrBottom) {\n if (rtl) {\n pingRight = transformLeft > 0;\n pingLeft = transformLeft !== transformMax;\n } else {\n pingLeft = transformLeft < 0;\n pingRight = transformLeft !== transformMin;\n }\n } else {\n pingTop = transformTop < 0;\n pingBottom = transformTop !== transformMin;\n }\n return /*#__PURE__*/React.createElement(_rcResizeObserver.default, {\n onResize: onListHolderResize\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: (0, _ref3.useComposeRef)(ref, containerRef),\n role: \"tablist\",\n className: (0, _classnames.default)(\"\".concat(prefixCls, \"-nav\"), className),\n style: style,\n onKeyDown: function onKeyDown() {\n // No need animation when use keyboard\n doLockAnimation();\n }\n }, /*#__PURE__*/React.createElement(_ExtraContent.default, {\n ref: extraLeftRef,\n position: \"left\",\n extra: extra,\n prefixCls: prefixCls\n }), /*#__PURE__*/React.createElement(_rcResizeObserver.default, {\n onResize: onListHolderResize\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: (0, _classnames.default)(wrapPrefix, (_classNames = {}, (0, _defineProperty2.default)(_classNames, \"\".concat(wrapPrefix, \"-ping-left\"), pingLeft), (0, _defineProperty2.default)(_classNames, \"\".concat(wrapPrefix, \"-ping-right\"), pingRight), (0, _defineProperty2.default)(_classNames, \"\".concat(wrapPrefix, \"-ping-top\"), pingTop), (0, _defineProperty2.default)(_classNames, \"\".concat(wrapPrefix, \"-ping-bottom\"), pingBottom), _classNames)),\n ref: tabsWrapperRef\n }, /*#__PURE__*/React.createElement(_rcResizeObserver.default, {\n onResize: onListHolderResize\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: tabListRef,\n className: \"\".concat(prefixCls, \"-nav-list\"),\n style: {\n transform: \"translate(\".concat(transformLeft, \"px, \").concat(transformTop, \"px)\"),\n transition: lockAnimation ? 'none' : undefined\n }\n }, tabNodes, /*#__PURE__*/React.createElement(_AddButton.default, {\n ref: innerAddButtonRef,\n prefixCls: prefixCls,\n locale: locale,\n editable: editable,\n style: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, tabNodes.length === 0 ? undefined : tabNodeStyle), {}, {\n visibility: hasDropdown ? 'hidden' : null\n })\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: (0, _classnames.default)(\"\".concat(prefixCls, \"-ink-bar\"), (0, _defineProperty2.default)({}, \"\".concat(prefixCls, \"-ink-bar-animated\"), animated.inkBar)),\n style: indicatorStyle\n }))))), /*#__PURE__*/React.createElement(_OperationNode.default, (0, _extends2.default)({}, props, {\n removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n ref: operationsRef,\n prefixCls: prefixCls,\n tabs: hiddenTabs,\n className: !hasDropdown && operationsHiddenClassName,\n tabMoving: !!lockAnimation\n })), /*#__PURE__*/React.createElement(_ExtraContent.default, {\n ref: extraRightRef,\n position: \"right\",\n extra: extra,\n prefixCls: prefixCls\n })));\n /* eslint-enable */\n});\nvar _default = exports.default = TabNavList;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nvar TabPane = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n id = props.id,\n active = props.active,\n tabKey = props.tabKey,\n children = props.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id && \"\".concat(id, \"-panel-\").concat(tabKey),\n role: \"tabpanel\",\n tabIndex: active ? 0 : -1,\n \"aria-labelledby\": id && \"\".concat(id, \"-tab-\").concat(tabKey),\n \"aria-hidden\": !active,\n style: style,\n className: (0, _classnames.default)(prefixCls, active && \"\".concat(prefixCls, \"-active\"), className),\n ref: ref\n }, children);\n});\nif (process.env.NODE_ENV !== 'production') {\n TabPane.displayName = 'TabPane';\n}\nvar _default = exports.default = TabPane;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _rcMotion = _interopRequireDefault(require(\"rc-motion\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _TabContext = _interopRequireDefault(require(\"../TabContext\"));\nvar _TabPane = _interopRequireDefault(require(\"./TabPane\"));\nvar _excluded = [\"key\", \"forceRender\", \"style\", \"className\", \"destroyInactiveTabPane\"];\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nvar TabPanelList = function TabPanelList(props) {\n var id = props.id,\n activeKey = props.activeKey,\n animated = props.animated,\n tabPosition = props.tabPosition,\n destroyInactiveTabPane = props.destroyInactiveTabPane;\n var _React$useContext = React.useContext(_TabContext.default),\n prefixCls = _React$useContext.prefixCls,\n tabs = _React$useContext.tabs;\n var tabPaneAnimated = animated.tabPane;\n var tabPanePrefixCls = \"\".concat(prefixCls, \"-tabpane\");\n return /*#__PURE__*/React.createElement(\"div\", {\n className: (0, _classnames.default)(\"\".concat(prefixCls, \"-content-holder\"))\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: (0, _classnames.default)(\"\".concat(prefixCls, \"-content\"), \"\".concat(prefixCls, \"-content-\").concat(tabPosition), (0, _defineProperty2.default)({}, \"\".concat(prefixCls, \"-content-animated\"), tabPaneAnimated))\n }, tabs.map(function (item) {\n var key = item.key,\n forceRender = item.forceRender,\n paneStyle = item.style,\n paneClassName = item.className,\n itemDestroyInactiveTabPane = item.destroyInactiveTabPane,\n restTabProps = (0, _objectWithoutProperties2.default)(item, _excluded);\n var active = key === activeKey;\n return /*#__PURE__*/React.createElement(_rcMotion.default, (0, _extends2.default)({\n key: key,\n visible: active,\n forceRender: forceRender,\n removeOnLeave: !!(destroyInactiveTabPane || itemDestroyInactiveTabPane),\n leavedClassName: \"\".concat(tabPanePrefixCls, \"-hidden\")\n }, animated.tabPaneMotion), function (_ref, ref) {\n var motionStyle = _ref.style,\n motionClassName = _ref.className;\n return /*#__PURE__*/React.createElement(_TabPane.default, (0, _extends2.default)({}, restTabProps, {\n prefixCls: tabPanePrefixCls,\n id: id,\n tabKey: key,\n animated: tabPaneAnimated,\n active: active,\n style: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, paneStyle), motionStyle),\n className: (0, _classnames.default)(paneClassName, motionClassName),\n ref: ref\n }));\n });\n })));\n};\nvar _default = exports.default = TabPanelList;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof3 = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _useMergedState5 = _interopRequireDefault(require(\"rc-util/lib/hooks/useMergedState\"));\nvar _isMobile = _interopRequireDefault(require(\"rc-util/lib/isMobile\"));\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar React = _react;\nvar _TabContext = _interopRequireDefault(require(\"./TabContext\"));\nvar _Wrapper = _interopRequireDefault(require(\"./TabNavList/Wrapper\"));\nvar _TabPanelList = _interopRequireDefault(require(\"./TabPanelList\"));\nvar _useAnimateConfig = _interopRequireDefault(require(\"./hooks/useAnimateConfig\"));\nvar _excluded = [\"id\", \"prefixCls\", \"className\", \"items\", \"direction\", \"activeKey\", \"defaultActiveKey\", \"editable\", \"animated\", \"tabPosition\", \"tabBarGutter\", \"tabBarStyle\", \"tabBarExtraContent\", \"locale\", \"moreIcon\", \"moreTransitionName\", \"destroyInactiveTabPane\", \"renderTabBar\", \"onChange\", \"onTabClick\", \"onTabScroll\", \"getPopupContainer\", \"popupClassName\", \"indicatorSize\", \"indicatorAlign\"]; // Accessibility https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Tab_Role\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof3(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\n/**\n * Should added antd:\n * - type\n *\n * Removed:\n * - onNextClick\n * - onPrevClick\n * - keyboard\n */ // Used for accessibility\nvar uuid = 0;\nvar Tabs = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var id = props.id,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tabs' : _props$prefixCls,\n className = props.className,\n items = props.items,\n direction = props.direction,\n activeKey = props.activeKey,\n defaultActiveKey = props.defaultActiveKey,\n editable = props.editable,\n animated = props.animated,\n _props$tabPosition = props.tabPosition,\n tabPosition = _props$tabPosition === void 0 ? 'top' : _props$tabPosition,\n tabBarGutter = props.tabBarGutter,\n tabBarStyle = props.tabBarStyle,\n tabBarExtraContent = props.tabBarExtraContent,\n locale = props.locale,\n moreIcon = props.moreIcon,\n moreTransitionName = props.moreTransitionName,\n destroyInactiveTabPane = props.destroyInactiveTabPane,\n renderTabBar = props.renderTabBar,\n onChange = props.onChange,\n onTabClick = props.onTabClick,\n onTabScroll = props.onTabScroll,\n getPopupContainer = props.getPopupContainer,\n popupClassName = props.popupClassName,\n indicatorSize = props.indicatorSize,\n _props$indicatorAlign = props.indicatorAlign,\n indicatorAlign = _props$indicatorAlign === void 0 ? 'center' : _props$indicatorAlign,\n restProps = (0, _objectWithoutProperties2.default)(props, _excluded);\n var tabs = React.useMemo(function () {\n return (items || []).filter(function (item) {\n return item && (0, _typeof2.default)(item) === 'object' && 'key' in item;\n });\n }, [items]);\n var rtl = direction === 'rtl';\n var mergedAnimated = (0, _useAnimateConfig.default)(animated);\n\n // ======================== Mobile ========================\n var _useState = (0, _react.useState)(false),\n _useState2 = (0, _slicedToArray2.default)(_useState, 2),\n mobile = _useState2[0],\n setMobile = _useState2[1];\n (0, _react.useEffect)(function () {\n // Only update on the client side\n setMobile((0, _isMobile.default)());\n }, []);\n\n // ====================== Active Key ======================\n var _useMergedState = (0, _useMergedState5.default)(function () {\n var _tabs$;\n return (_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key;\n }, {\n value: activeKey,\n defaultValue: defaultActiveKey\n }),\n _useMergedState2 = (0, _slicedToArray2.default)(_useMergedState, 2),\n mergedActiveKey = _useMergedState2[0],\n setMergedActiveKey = _useMergedState2[1];\n var _useState3 = (0, _react.useState)(function () {\n return tabs.findIndex(function (tab) {\n return tab.key === mergedActiveKey;\n });\n }),\n _useState4 = (0, _slicedToArray2.default)(_useState3, 2),\n activeIndex = _useState4[0],\n setActiveIndex = _useState4[1];\n\n // Reset active key if not exist anymore\n (0, _react.useEffect)(function () {\n var newActiveIndex = tabs.findIndex(function (tab) {\n return tab.key === mergedActiveKey;\n });\n if (newActiveIndex === -1) {\n var _tabs$newActiveIndex;\n newActiveIndex = Math.max(0, Math.min(activeIndex, tabs.length - 1));\n setMergedActiveKey((_tabs$newActiveIndex = tabs[newActiveIndex]) === null || _tabs$newActiveIndex === void 0 ? void 0 : _tabs$newActiveIndex.key);\n }\n setActiveIndex(newActiveIndex);\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_'), mergedActiveKey, activeIndex]);\n\n // ===================== Accessibility ====================\n var _useMergedState3 = (0, _useMergedState5.default)(null, {\n value: id\n }),\n _useMergedState4 = (0, _slicedToArray2.default)(_useMergedState3, 2),\n mergedId = _useMergedState4[0],\n setMergedId = _useMergedState4[1];\n\n // Async generate id to avoid ssr mapping failed\n (0, _react.useEffect)(function () {\n if (!id) {\n setMergedId(\"rc-tabs-\".concat(process.env.NODE_ENV === 'test' ? 'test' : uuid));\n uuid += 1;\n }\n }, []);\n\n // ======================== Events ========================\n function onInternalTabClick(key, e) {\n onTabClick === null || onTabClick === void 0 || onTabClick(key, e);\n var isActiveChanged = key !== mergedActiveKey;\n setMergedActiveKey(key);\n if (isActiveChanged) {\n onChange === null || onChange === void 0 || onChange(key);\n }\n }\n\n // ======================== Render ========================\n var sharedProps = {\n id: mergedId,\n activeKey: mergedActiveKey,\n animated: mergedAnimated,\n tabPosition: tabPosition,\n rtl: rtl,\n mobile: mobile\n };\n var tabNavBarProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, sharedProps), {}, {\n editable: editable,\n locale: locale,\n moreIcon: moreIcon,\n moreTransitionName: moreTransitionName,\n tabBarGutter: tabBarGutter,\n onTabClick: onInternalTabClick,\n onTabScroll: onTabScroll,\n extra: tabBarExtraContent,\n style: tabBarStyle,\n panes: null,\n getPopupContainer: getPopupContainer,\n popupClassName: popupClassName,\n indicatorSize: indicatorSize,\n indicatorAlign: indicatorAlign\n });\n return /*#__PURE__*/React.createElement(_TabContext.default.Provider, {\n value: {\n tabs: tabs,\n prefixCls: prefixCls\n }\n }, /*#__PURE__*/React.createElement(\"div\", (0, _extends2.default)({\n ref: ref,\n id: id,\n className: (0, _classnames.default)(prefixCls, \"\".concat(prefixCls, \"-\").concat(tabPosition), (_classNames = {}, (0, _defineProperty2.default)(_classNames, \"\".concat(prefixCls, \"-mobile\"), mobile), (0, _defineProperty2.default)(_classNames, \"\".concat(prefixCls, \"-editable\"), editable), (0, _defineProperty2.default)(_classNames, \"\".concat(prefixCls, \"-rtl\"), rtl), _classNames), className)\n }, restProps), /*#__PURE__*/React.createElement(_Wrapper.default, (0, _extends2.default)({}, tabNavBarProps, {\n renderTabBar: renderTabBar\n })), /*#__PURE__*/React.createElement(_TabPanelList.default, (0, _extends2.default)({\n destroyInactiveTabPane: destroyInactiveTabPane\n }, sharedProps, {\n animated: mergedAnimated\n }))));\n});\nif (process.env.NODE_ENV !== 'production') {\n Tabs.displayName = 'Tabs';\n}\nvar _default = exports.default = Tabs;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useAnimateConfig;\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _warning = _interopRequireDefault(require(\"rc-util/lib/warning\"));\nfunction useAnimateConfig() {\n var animated = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n inkBar: true,\n tabPane: false\n };\n var mergedAnimated;\n if (animated === false) {\n mergedAnimated = {\n inkBar: false,\n tabPane: false\n };\n } else if (animated === true) {\n mergedAnimated = {\n inkBar: true,\n tabPane: false\n };\n } else {\n mergedAnimated = (0, _objectSpread2.default)({\n inkBar: true\n }, (0, _typeof2.default)(animated) === 'object' ? animated : {});\n }\n\n // Enable tabPane animation if provide motion\n if (mergedAnimated.tabPaneMotion && mergedAnimated.tabPane === undefined) {\n mergedAnimated.tabPane = true;\n }\n if (!mergedAnimated.tabPaneMotion && mergedAnimated.tabPane) {\n if (process.env.NODE_ENV !== 'production') {\n (0, _warning.default)(false, '`animated.tabPane` is true but `animated.tabPaneMotion` is not provided. Motion will not work.');\n }\n mergedAnimated.tabPane = false;\n }\n return mergedAnimated;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar _raf = _interopRequireDefault(require(\"rc-util/lib/raf\"));\nvar _react = _interopRequireWildcard(require(\"react\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nvar useIndicator = function useIndicator(options) {\n var activeTabOffset = options.activeTabOffset,\n horizontal = options.horizontal,\n rtl = options.rtl,\n indicatorSize = options.indicatorSize,\n indicatorAlign = options.indicatorAlign;\n var _useState = (0, _react.useState)(),\n _useState2 = (0, _slicedToArray2.default)(_useState, 2),\n inkStyle = _useState2[0],\n setInkStyle = _useState2[1];\n var inkBarRafRef = (0, _react.useRef)();\n var getLength = _react.default.useCallback(function (origin) {\n if (typeof indicatorSize === 'function') {\n return indicatorSize(origin);\n }\n if (typeof indicatorSize === 'number') {\n return indicatorSize;\n }\n return origin;\n }, [indicatorSize]);\n\n // Delay set ink style to avoid remove tab blink\n function cleanInkBarRaf() {\n _raf.default.cancel(inkBarRafRef.current);\n }\n (0, _react.useEffect)(function () {\n var newInkStyle = {};\n if (activeTabOffset) {\n if (horizontal) {\n newInkStyle.width = getLength(activeTabOffset.width);\n var key = rtl ? 'right' : 'left';\n if (indicatorAlign === 'start') {\n newInkStyle[key] = activeTabOffset[key];\n }\n if (indicatorAlign === 'center') {\n newInkStyle[key] = activeTabOffset[key] + activeTabOffset.width / 2;\n newInkStyle.transform = rtl ? 'translateX(50%)' : 'translateX(-50%)';\n }\n if (indicatorAlign === 'end') {\n newInkStyle[key] = activeTabOffset[key] + activeTabOffset.width;\n newInkStyle.transform = 'translateX(-100%)';\n }\n } else {\n newInkStyle.height = getLength(activeTabOffset.height);\n if (indicatorAlign === 'start') {\n newInkStyle.top = activeTabOffset.top;\n }\n if (indicatorAlign === 'center') {\n newInkStyle.top = activeTabOffset.top + activeTabOffset.height / 2;\n newInkStyle.transform = 'translateY(-50%)';\n }\n if (indicatorAlign === 'end') {\n newInkStyle.top = activeTabOffset.top + activeTabOffset.height;\n newInkStyle.transform = 'translateY(-100%)';\n }\n }\n }\n cleanInkBarRaf();\n inkBarRafRef.current = (0, _raf.default)(function () {\n setInkStyle(newInkStyle);\n });\n return cleanInkBarRaf;\n }, [activeTabOffset, horizontal, rtl, indicatorSize, indicatorAlign, getLength]);\n return {\n style: inkStyle\n };\n};\nvar _default = exports.default = useIndicator;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useOffsets;\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _react = require(\"react\");\nvar DEFAULT_SIZE = {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n};\nfunction useOffsets(tabs, tabSizes, holderScrollWidth) {\n return (0, _react.useMemo)(function () {\n var _tabs$;\n var map = new Map();\n var lastOffset = tabSizes.get((_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key) || DEFAULT_SIZE;\n var rightOffset = lastOffset.left + lastOffset.width;\n for (var i = 0; i < tabs.length; i += 1) {\n var key = tabs[i].key;\n var data = tabSizes.get(key);\n\n // Reuse last one when not exist yet\n if (!data) {\n var _tabs;\n data = tabSizes.get((_tabs = tabs[i - 1]) === null || _tabs === void 0 ? void 0 : _tabs.key) || DEFAULT_SIZE;\n }\n var entity = map.get(key) || (0, _objectSpread2.default)({}, data);\n\n // Right\n entity.right = rightOffset - entity.left - entity.width;\n\n // Update entity\n map.set(key, entity);\n }\n return map;\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_'), tabSizes, holderScrollWidth]);\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useSyncState;\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction useSyncState(defaultState, onChange) {\n var stateRef = React.useRef(defaultState);\n var _React$useState = React.useState({}),\n _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n function setState(updater) {\n var newValue = typeof updater === 'function' ? updater(stateRef.current) : updater;\n if (newValue !== stateRef.current) {\n onChange(newValue, stateRef.current);\n }\n stateRef.current = newValue;\n forceUpdate({});\n }\n return [stateRef.current, setState];\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useTouchMove;\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar React = _react;\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nvar MIN_SWIPE_DISTANCE = 0.1;\nvar STOP_SWIPE_DISTANCE = 0.01;\nvar REFRESH_INTERVAL = 20;\nvar SPEED_OFF_MULTIPLE = Math.pow(0.995, REFRESH_INTERVAL);\n\n// ================================= Hook =================================\nfunction useTouchMove(ref, onOffset) {\n var _useState = (0, _react.useState)(),\n _useState2 = (0, _slicedToArray2.default)(_useState, 2),\n touchPosition = _useState2[0],\n setTouchPosition = _useState2[1];\n var _useState3 = (0, _react.useState)(0),\n _useState4 = (0, _slicedToArray2.default)(_useState3, 2),\n lastTimestamp = _useState4[0],\n setLastTimestamp = _useState4[1];\n var _useState5 = (0, _react.useState)(0),\n _useState6 = (0, _slicedToArray2.default)(_useState5, 2),\n lastTimeDiff = _useState6[0],\n setLastTimeDiff = _useState6[1];\n var _useState7 = (0, _react.useState)(),\n _useState8 = (0, _slicedToArray2.default)(_useState7, 2),\n lastOffset = _useState8[0],\n setLastOffset = _useState8[1];\n var motionRef = (0, _react.useRef)();\n\n // ========================= Events =========================\n // >>> Touch events\n function onTouchStart(e) {\n var _e$touches$ = e.touches[0],\n screenX = _e$touches$.screenX,\n screenY = _e$touches$.screenY;\n setTouchPosition({\n x: screenX,\n y: screenY\n });\n window.clearInterval(motionRef.current);\n }\n function onTouchMove(e) {\n if (!touchPosition) return;\n e.preventDefault();\n var _e$touches$2 = e.touches[0],\n screenX = _e$touches$2.screenX,\n screenY = _e$touches$2.screenY;\n setTouchPosition({\n x: screenX,\n y: screenY\n });\n var offsetX = screenX - touchPosition.x;\n var offsetY = screenY - touchPosition.y;\n onOffset(offsetX, offsetY);\n var now = Date.now();\n setLastTimestamp(now);\n setLastTimeDiff(now - lastTimestamp);\n setLastOffset({\n x: offsetX,\n y: offsetY\n });\n }\n function onTouchEnd() {\n if (!touchPosition) return;\n setTouchPosition(null);\n setLastOffset(null);\n\n // Swipe if needed\n if (lastOffset) {\n var distanceX = lastOffset.x / lastTimeDiff;\n var distanceY = lastOffset.y / lastTimeDiff;\n var absX = Math.abs(distanceX);\n var absY = Math.abs(distanceY);\n\n // Skip swipe if low distance\n if (Math.max(absX, absY) < MIN_SWIPE_DISTANCE) return;\n var currentX = distanceX;\n var currentY = distanceY;\n motionRef.current = window.setInterval(function () {\n if (Math.abs(currentX) < STOP_SWIPE_DISTANCE && Math.abs(currentY) < STOP_SWIPE_DISTANCE) {\n window.clearInterval(motionRef.current);\n return;\n }\n currentX *= SPEED_OFF_MULTIPLE;\n currentY *= SPEED_OFF_MULTIPLE;\n onOffset(currentX * REFRESH_INTERVAL, currentY * REFRESH_INTERVAL);\n }, REFRESH_INTERVAL);\n }\n }\n\n // >>> Wheel event\n var lastWheelDirectionRef = (0, _react.useRef)();\n function onWheel(e) {\n var deltaX = e.deltaX,\n deltaY = e.deltaY;\n\n // Convert both to x & y since wheel only happened on PC\n var mixed = 0;\n var absX = Math.abs(deltaX);\n var absY = Math.abs(deltaY);\n if (absX === absY) {\n mixed = lastWheelDirectionRef.current === 'x' ? deltaX : deltaY;\n } else if (absX > absY) {\n mixed = deltaX;\n lastWheelDirectionRef.current = 'x';\n } else {\n mixed = deltaY;\n lastWheelDirectionRef.current = 'y';\n }\n if (onOffset(-mixed, -mixed)) {\n e.preventDefault();\n }\n }\n\n // ========================= Effect =========================\n var touchEventsRef = (0, _react.useRef)(null);\n touchEventsRef.current = {\n onTouchStart: onTouchStart,\n onTouchMove: onTouchMove,\n onTouchEnd: onTouchEnd,\n onWheel: onWheel\n };\n React.useEffect(function () {\n function onProxyTouchStart(e) {\n touchEventsRef.current.onTouchStart(e);\n }\n function onProxyTouchMove(e) {\n touchEventsRef.current.onTouchMove(e);\n }\n function onProxyTouchEnd(e) {\n touchEventsRef.current.onTouchEnd(e);\n }\n function onProxyWheel(e) {\n touchEventsRef.current.onWheel(e);\n }\n document.addEventListener('touchmove', onProxyTouchMove, {\n passive: false\n });\n document.addEventListener('touchend', onProxyTouchEnd, {\n passive: false\n });\n\n // No need to clean up since element removed\n ref.current.addEventListener('touchstart', onProxyTouchStart, {\n passive: false\n });\n ref.current.addEventListener('wheel', onProxyWheel);\n return function () {\n document.removeEventListener('touchmove', onProxyTouchMove);\n document.removeEventListener('touchend', onProxyTouchEnd);\n };\n }, []);\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useUpdate;\nexports.useUpdateState = useUpdateState;\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar _useLayoutEffect = require(\"rc-util/lib/hooks/useLayoutEffect\");\nvar _react = require(\"react\");\n/**\n * Help to merge callback with `useLayoutEffect`.\n * One time will only trigger once.\n */\nfunction useUpdate(callback) {\n var _useState = (0, _react.useState)(0),\n _useState2 = (0, _slicedToArray2.default)(_useState, 2),\n count = _useState2[0],\n setCount = _useState2[1];\n var effectRef = (0, _react.useRef)(0);\n var callbackRef = (0, _react.useRef)();\n callbackRef.current = callback;\n\n // Trigger on `useLayoutEffect`\n (0, _useLayoutEffect.useLayoutUpdateEffect)(function () {\n var _callbackRef$current;\n (_callbackRef$current = callbackRef.current) === null || _callbackRef$current === void 0 || _callbackRef$current.call(callbackRef);\n }, [count]);\n\n // Trigger to update count\n return function () {\n if (effectRef.current !== count) {\n return;\n }\n effectRef.current += 1;\n setCount(effectRef.current);\n };\n}\nfunction useUpdateState(defaultState) {\n var batchRef = (0, _react.useRef)([]);\n var _useState3 = (0, _react.useState)({}),\n _useState4 = (0, _slicedToArray2.default)(_useState3, 2),\n forceUpdate = _useState4[1];\n var state = (0, _react.useRef)(typeof defaultState === 'function' ? defaultState() : defaultState);\n var flushUpdate = useUpdate(function () {\n var current = state.current;\n batchRef.current.forEach(function (callback) {\n current = callback(current);\n });\n batchRef.current = [];\n state.current = current;\n forceUpdate({});\n });\n function updater(callback) {\n batchRef.current.push(callback);\n flushUpdate();\n }\n return [state.current, updater];\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useVisibleRange;\nvar _react = require(\"react\");\nvar DEFAULT_SIZE = {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n right: 0\n};\nfunction useVisibleRange(tabOffsets, visibleTabContentValue, transform, tabContentSizeValue, addNodeSizeValue, operationNodeSizeValue, _ref) {\n var tabs = _ref.tabs,\n tabPosition = _ref.tabPosition,\n rtl = _ref.rtl;\n var charUnit;\n var position;\n var transformSize;\n if (['top', 'bottom'].includes(tabPosition)) {\n charUnit = 'width';\n position = rtl ? 'right' : 'left';\n transformSize = Math.abs(transform);\n } else {\n charUnit = 'height';\n position = 'top';\n transformSize = -transform;\n }\n return (0, _react.useMemo)(function () {\n if (!tabs.length) {\n return [0, 0];\n }\n var len = tabs.length;\n var endIndex = len;\n for (var i = 0; i < len; i += 1) {\n var offset = tabOffsets.get(tabs[i].key) || DEFAULT_SIZE;\n if (offset[position] + offset[charUnit] > transformSize + visibleTabContentValue) {\n endIndex = i - 1;\n break;\n }\n }\n var startIndex = 0;\n for (var _i = len - 1; _i >= 0; _i -= 1) {\n var _offset = tabOffsets.get(tabs[_i].key) || DEFAULT_SIZE;\n if (_offset[position] < transformSize) {\n startIndex = _i + 1;\n break;\n }\n }\n return startIndex >= endIndex ? [0, 0] : [startIndex, endIndex];\n }, [tabOffsets, visibleTabContentValue, tabContentSizeValue, addNodeSizeValue, operationNodeSizeValue, transformSize, tabPosition, tabs.map(function (tab) {\n return tab.key;\n }).join('_'), rtl]);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.genDataNodeKey = genDataNodeKey;\nexports.getRemovable = getRemovable;\nexports.stringify = stringify;\n/**\n * We trade Map as deps which may change with same value but different ref object.\n * We should make it as hash for deps\n * */\nfunction stringify(obj) {\n var tgt;\n if (obj instanceof Map) {\n tgt = {};\n obj.forEach(function (v, k) {\n tgt[k] = v;\n });\n } else {\n tgt = obj;\n }\n return JSON.stringify(tgt);\n}\nvar RC_TABS_DOUBLE_QUOTE = 'TABS_DQ';\nfunction genDataNodeKey(key) {\n return String(key).replace(/\"/g, RC_TABS_DOUBLE_QUOTE);\n}\nfunction getRemovable(closable, closeIcon, editable, disabled) {\n if (\n // Only editable tabs can be removed\n !editable ||\n // Tabs cannot be removed when disabled\n disabled ||\n // closable is false\n closable === false ||\n // If closable is undefined, the remove button should be hidden when closeIcon is null or false\n closable === undefined && (closeIcon === false || closeIcon === null)) {\n return false;\n }\n return true;\n}","import classNames from 'classnames';\nimport * as React from 'react';\nexport default function Arrow(props) {\n var prefixCls = props.prefixCls,\n align = props.align,\n arrow = props.arrow,\n arrowPos = props.arrowPos;\n var _ref = arrow || {},\n className = _ref.className,\n content = _ref.content;\n var _arrowPos$x = arrowPos.x,\n x = _arrowPos$x === void 0 ? 0 : _arrowPos$x,\n _arrowPos$y = arrowPos.y,\n y = _arrowPos$y === void 0 ? 0 : _arrowPos$y;\n var arrowRef = React.useRef();\n\n // Skip if no align\n if (!align || !align.points) {\n return null;\n }\n var alignStyle = {\n position: 'absolute'\n };\n\n // Skip if no need to align\n if (align.autoArrow !== false) {\n var popupPoints = align.points[0];\n var targetPoints = align.points[1];\n var popupTB = popupPoints[0];\n var popupLR = popupPoints[1];\n var targetTB = targetPoints[0];\n var targetLR = targetPoints[1];\n\n // Top & Bottom\n if (popupTB === targetTB || !['t', 'b'].includes(popupTB)) {\n alignStyle.top = y;\n } else if (popupTB === 't') {\n alignStyle.top = 0;\n } else {\n alignStyle.bottom = 0;\n }\n\n // Left & Right\n if (popupLR === targetLR || !['l', 'r'].includes(popupLR)) {\n alignStyle.left = x;\n } else if (popupLR === 'l') {\n alignStyle.left = 0;\n } else {\n alignStyle.right = 0;\n }\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: arrowRef,\n className: classNames(\"\".concat(prefixCls, \"-arrow\"), className),\n style: alignStyle\n }, content);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport * as React from 'react';\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n open = props.open,\n zIndex = props.zIndex,\n mask = props.mask,\n motion = props.motion;\n if (!mask) {\n return null;\n }\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motion, {\n motionAppear: true,\n visible: open,\n removeOnLeave: true\n }), function (_ref) {\n var className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n zIndex: zIndex\n },\n className: classNames(\"\".concat(prefixCls, \"-mask\"), className)\n });\n });\n}","import * as React from 'react';\nvar PopupContent = /*#__PURE__*/React.memo(function (_ref) {\n var children = _ref.children;\n return children;\n}, function (_, next) {\n return next.cache;\n});\nif (process.env.NODE_ENV !== 'production') {\n PopupContent.displayName = 'PopupContent';\n}\nexport default PopupContent;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport ResizeObserver from 'rc-resize-observer';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport Arrow from \"./Arrow\";\nimport Mask from \"./Mask\";\nimport PopupContent from \"./PopupContent\";\nvar Popup = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var popup = props.popup,\n className = props.className,\n prefixCls = props.prefixCls,\n style = props.style,\n target = props.target,\n _onVisibleChanged = props.onVisibleChanged,\n open = props.open,\n keepDom = props.keepDom,\n fresh = props.fresh,\n onClick = props.onClick,\n mask = props.mask,\n arrow = props.arrow,\n arrowPos = props.arrowPos,\n align = props.align,\n motion = props.motion,\n maskMotion = props.maskMotion,\n forceRender = props.forceRender,\n getPopupContainer = props.getPopupContainer,\n autoDestroy = props.autoDestroy,\n Portal = props.portal,\n zIndex = props.zIndex,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onPointerEnter = props.onPointerEnter,\n ready = props.ready,\n offsetX = props.offsetX,\n offsetY = props.offsetY,\n offsetR = props.offsetR,\n offsetB = props.offsetB,\n onAlign = props.onAlign,\n onPrepare = props.onPrepare,\n stretch = props.stretch,\n targetWidth = props.targetWidth,\n targetHeight = props.targetHeight;\n var childNode = typeof popup === 'function' ? popup() : popup;\n\n // We can not remove holder only when motion finished.\n var isNodeVisible = open || keepDom;\n\n // ======================= Container ========================\n var getPopupContainerNeedParams = (getPopupContainer === null || getPopupContainer === void 0 ? void 0 : getPopupContainer.length) > 0;\n var _React$useState = React.useState(!getPopupContainer || !getPopupContainerNeedParams),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n show = _React$useState2[0],\n setShow = _React$useState2[1];\n\n // Delay to show since `getPopupContainer` need target element\n useLayoutEffect(function () {\n if (!show && getPopupContainerNeedParams && target) {\n setShow(true);\n }\n }, [show, getPopupContainerNeedParams, target]);\n\n // ========================= Render =========================\n if (!show) {\n return null;\n }\n\n // >>>>> Offset\n var AUTO = 'auto';\n var offsetStyle = {\n left: '-1000vw',\n top: '-1000vh',\n right: AUTO,\n bottom: AUTO\n };\n\n // Set align style\n if (ready || !open) {\n var _experimental;\n var points = align.points;\n var dynamicInset = align.dynamicInset || ((_experimental = align._experimental) === null || _experimental === void 0 ? void 0 : _experimental.dynamicInset);\n var alignRight = dynamicInset && points[0][1] === 'r';\n var alignBottom = dynamicInset && points[0][0] === 'b';\n if (alignRight) {\n offsetStyle.right = offsetR;\n offsetStyle.left = AUTO;\n } else {\n offsetStyle.left = offsetX;\n offsetStyle.right = AUTO;\n }\n if (alignBottom) {\n offsetStyle.bottom = offsetB;\n offsetStyle.top = AUTO;\n } else {\n offsetStyle.top = offsetY;\n offsetStyle.bottom = AUTO;\n }\n }\n\n // >>>>> Misc\n var miscStyle = {};\n if (stretch) {\n if (stretch.includes('height') && targetHeight) {\n miscStyle.height = targetHeight;\n } else if (stretch.includes('minHeight') && targetHeight) {\n miscStyle.minHeight = targetHeight;\n }\n if (stretch.includes('width') && targetWidth) {\n miscStyle.width = targetWidth;\n } else if (stretch.includes('minWidth') && targetWidth) {\n miscStyle.minWidth = targetWidth;\n }\n }\n if (!open) {\n miscStyle.pointerEvents = 'none';\n }\n return /*#__PURE__*/React.createElement(Portal, {\n open: forceRender || isNodeVisible,\n getContainer: getPopupContainer && function () {\n return getPopupContainer(target);\n },\n autoDestroy: autoDestroy\n }, /*#__PURE__*/React.createElement(Mask, {\n prefixCls: prefixCls,\n open: open,\n zIndex: zIndex,\n mask: mask,\n motion: maskMotion\n }), /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onAlign,\n disabled: !open\n }, function (resizeObserverRef) {\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n motionAppear: true,\n motionEnter: true,\n motionLeave: true,\n removeOnLeave: false,\n forceRender: forceRender,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }, motion, {\n onAppearPrepare: onPrepare,\n onEnterPrepare: onPrepare,\n visible: open,\n onVisibleChanged: function onVisibleChanged(nextVisible) {\n var _motion$onVisibleChan;\n motion === null || motion === void 0 || (_motion$onVisibleChan = motion.onVisibleChanged) === null || _motion$onVisibleChan === void 0 || _motion$onVisibleChan.call(motion, nextVisible);\n _onVisibleChanged(nextVisible);\n }\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var cls = classNames(prefixCls, motionClassName, className);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: composeRef(resizeObserverRef, ref, motionRef),\n className: cls,\n style: _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n '--arrow-x': \"\".concat(arrowPos.x || 0, \"px\"),\n '--arrow-y': \"\".concat(arrowPos.y || 0, \"px\")\n }, offsetStyle), miscStyle), motionStyle), {}, {\n boxSizing: 'border-box',\n zIndex: zIndex\n }, style),\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onPointerEnter: onPointerEnter,\n onClick: onClick\n }, arrow && /*#__PURE__*/React.createElement(Arrow, {\n prefixCls: prefixCls,\n arrow: arrow,\n arrowPos: arrowPos,\n align: align\n }), /*#__PURE__*/React.createElement(PopupContent, {\n cache: !open && !fresh\n }, childNode));\n });\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Popup.displayName = 'Popup';\n}\nexport default Popup;","import { fillRef, supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nvar TriggerWrapper = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var children = props.children,\n getTriggerDOMNode = props.getTriggerDOMNode;\n var canUseRef = supportRef(children);\n\n // When use `getTriggerDOMNode`, we should do additional work to get the real dom\n var setRef = React.useCallback(function (node) {\n fillRef(ref, getTriggerDOMNode ? getTriggerDOMNode(node) : node);\n }, [getTriggerDOMNode]);\n var mergedRef = useComposeRef(setRef, children.ref);\n return canUseRef ? /*#__PURE__*/React.cloneElement(children, {\n ref: mergedRef\n }) : children;\n});\nif (process.env.NODE_ENV !== 'production') {\n TriggerWrapper.displayName = 'TriggerWrapper';\n}\nexport default TriggerWrapper;","import * as React from 'react';\nvar TriggerContext = /*#__PURE__*/React.createContext(null);\nexport default TriggerContext;","import * as React from 'react';\nfunction toArray(val) {\n return val ? Array.isArray(val) ? val : [val] : [];\n}\nexport default function useAction(mobile, action, showAction, hideAction) {\n return React.useMemo(function () {\n var mergedShowAction = toArray(showAction !== null && showAction !== void 0 ? showAction : action);\n var mergedHideAction = toArray(hideAction !== null && hideAction !== void 0 ? hideAction : action);\n var showActionSet = new Set(mergedShowAction);\n var hideActionSet = new Set(mergedHideAction);\n if (mobile) {\n if (showActionSet.has('hover')) {\n showActionSet.delete('hover');\n showActionSet.add('click');\n }\n if (hideActionSet.has('hover')) {\n hideActionSet.delete('hover');\n hideActionSet.add('click');\n }\n }\n return [showActionSet, hideActionSet];\n }, [mobile, action, showAction, hideAction]);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nfunction isPointsEq() {\n var a1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var a2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var isAlignPoint = arguments.length > 2 ? arguments[2] : undefined;\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n var placements = Object.keys(builtinPlacements);\n for (var i = 0; i < placements.length; i += 1) {\n var _builtinPlacements$pl;\n var placement = placements[i];\n if (isPointsEq((_builtinPlacements$pl = builtinPlacements[placement]) === null || _builtinPlacements$pl === void 0 ? void 0 : _builtinPlacements$pl.points, points, isAlignPoint)) {\n return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n }\n }\n return '';\n}\n\n/** @deprecated We should not use this if we can refactor all deps */\nexport function getMotion(prefixCls, motion, animation, transitionName) {\n if (motion) {\n return motion;\n }\n if (animation) {\n return {\n motionName: \"\".concat(prefixCls, \"-\").concat(animation)\n };\n }\n if (transitionName) {\n return {\n motionName: transitionName\n };\n }\n return null;\n}\nexport function getWin(ele) {\n return ele.ownerDocument.defaultView;\n}\n\n/**\n * Get all the scrollable parent elements of the element\n * @param ele The element to be detected\n * @param areaOnly Only return the parent which will cut visible area\n */\nexport function collectScroller(ele) {\n var scrollerList = [];\n var current = ele === null || ele === void 0 ? void 0 : ele.parentElement;\n var scrollStyle = ['hidden', 'scroll', 'clip', 'auto'];\n while (current) {\n var _getWin$getComputedSt = getWin(current).getComputedStyle(current),\n overflowX = _getWin$getComputedSt.overflowX,\n overflowY = _getWin$getComputedSt.overflowY,\n overflow = _getWin$getComputedSt.overflow;\n if ([overflowX, overflowY, overflow].some(function (o) {\n return scrollStyle.includes(o);\n })) {\n scrollerList.push(current);\n }\n current = current.parentElement;\n }\n return scrollerList;\n}\nexport function toNum(num) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n return Number.isNaN(num) ? defaultValue : num;\n}\nfunction getPxValue(val) {\n return toNum(parseFloat(val), 0);\n}\n/**\n *\n *\n * **************************************\n * * Border *\n * * ************************** *\n * * * * * *\n * * B * * S * B *\n * * o * * c * o *\n * * r * Content * r * r *\n * * d * * o * d *\n * * e * * l * e *\n * * r ******************** l * r *\n * * * Scroll * *\n * * ************************** *\n * * Border *\n * **************************************\n *\n */\n/**\n * Get visible area of element\n */\nexport function getVisibleArea(initArea, scrollerList) {\n var visibleArea = _objectSpread({}, initArea);\n (scrollerList || []).forEach(function (ele) {\n if (ele instanceof HTMLBodyElement || ele instanceof HTMLHtmlElement) {\n return;\n }\n\n // Skip if static position which will not affect visible area\n var _getWin$getComputedSt2 = getWin(ele).getComputedStyle(ele),\n overflow = _getWin$getComputedSt2.overflow,\n overflowClipMargin = _getWin$getComputedSt2.overflowClipMargin,\n borderTopWidth = _getWin$getComputedSt2.borderTopWidth,\n borderBottomWidth = _getWin$getComputedSt2.borderBottomWidth,\n borderLeftWidth = _getWin$getComputedSt2.borderLeftWidth,\n borderRightWidth = _getWin$getComputedSt2.borderRightWidth;\n var eleRect = ele.getBoundingClientRect();\n var eleOutHeight = ele.offsetHeight,\n eleInnerHeight = ele.clientHeight,\n eleOutWidth = ele.offsetWidth,\n eleInnerWidth = ele.clientWidth;\n var borderTopNum = getPxValue(borderTopWidth);\n var borderBottomNum = getPxValue(borderBottomWidth);\n var borderLeftNum = getPxValue(borderLeftWidth);\n var borderRightNum = getPxValue(borderRightWidth);\n var scaleX = toNum(Math.round(eleRect.width / eleOutWidth * 1000) / 1000);\n var scaleY = toNum(Math.round(eleRect.height / eleOutHeight * 1000) / 1000);\n\n // Original visible area\n var eleScrollWidth = (eleOutWidth - eleInnerWidth - borderLeftNum - borderRightNum) * scaleX;\n var eleScrollHeight = (eleOutHeight - eleInnerHeight - borderTopNum - borderBottomNum) * scaleY;\n\n // Cut border size\n var scaledBorderTopWidth = borderTopNum * scaleY;\n var scaledBorderBottomWidth = borderBottomNum * scaleY;\n var scaledBorderLeftWidth = borderLeftNum * scaleX;\n var scaledBorderRightWidth = borderRightNum * scaleX;\n\n // Clip margin\n var clipMarginWidth = 0;\n var clipMarginHeight = 0;\n if (overflow === 'clip') {\n var clipNum = getPxValue(overflowClipMargin);\n clipMarginWidth = clipNum * scaleX;\n clipMarginHeight = clipNum * scaleY;\n }\n\n // Region\n var eleLeft = eleRect.x + scaledBorderLeftWidth - clipMarginWidth;\n var eleTop = eleRect.y + scaledBorderTopWidth - clipMarginHeight;\n var eleRight = eleLeft + eleRect.width + 2 * clipMarginWidth - scaledBorderLeftWidth - scaledBorderRightWidth - eleScrollWidth;\n var eleBottom = eleTop + eleRect.height + 2 * clipMarginHeight - scaledBorderTopWidth - scaledBorderBottomWidth - eleScrollHeight;\n visibleArea.left = Math.max(visibleArea.left, eleLeft);\n visibleArea.top = Math.max(visibleArea.top, eleTop);\n visibleArea.right = Math.min(visibleArea.right, eleRight);\n visibleArea.bottom = Math.min(visibleArea.bottom, eleBottom);\n });\n return visibleArea;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { isDOM } from \"rc-util/es/Dom/findDOMNode\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nimport { collectScroller, getVisibleArea, getWin, toNum } from \"../util\";\nfunction getUnitOffset(size) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var offsetStr = \"\".concat(offset);\n var cells = offsetStr.match(/^(.*)\\%$/);\n if (cells) {\n return size * (parseFloat(cells[1]) / 100);\n }\n return parseFloat(offsetStr);\n}\nfunction getNumberOffset(rect, offset) {\n var _ref = offset || [],\n _ref2 = _slicedToArray(_ref, 2),\n offsetX = _ref2[0],\n offsetY = _ref2[1];\n return [getUnitOffset(rect.width, offsetX), getUnitOffset(rect.height, offsetY)];\n}\nfunction splitPoints() {\n var points = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return [points[0], points[1]];\n}\nfunction getAlignPoint(rect, points) {\n var topBottom = points[0];\n var leftRight = points[1];\n var x;\n var y;\n\n // Top & Bottom\n if (topBottom === 't') {\n y = rect.y;\n } else if (topBottom === 'b') {\n y = rect.y + rect.height;\n } else {\n y = rect.y + rect.height / 2;\n }\n\n // Left & Right\n if (leftRight === 'l') {\n x = rect.x;\n } else if (leftRight === 'r') {\n x = rect.x + rect.width;\n } else {\n x = rect.x + rect.width / 2;\n }\n return {\n x: x,\n y: y\n };\n}\nfunction reversePoints(points, index) {\n var reverseMap = {\n t: 'b',\n b: 't',\n l: 'r',\n r: 'l'\n };\n return points.map(function (point, i) {\n if (i === index) {\n return reverseMap[point] || 'c';\n }\n return point;\n }).join('');\n}\nexport default function useAlign(open, popupEle, target, placement, builtinPlacements, popupAlign, onPopupAlign) {\n var _React$useState = React.useState({\n ready: false,\n offsetX: 0,\n offsetY: 0,\n offsetR: 0,\n offsetB: 0,\n arrowX: 0,\n arrowY: 0,\n scaleX: 1,\n scaleY: 1,\n align: builtinPlacements[placement] || {}\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n offsetInfo = _React$useState2[0],\n setOffsetInfo = _React$useState2[1];\n var alignCountRef = React.useRef(0);\n var scrollerList = React.useMemo(function () {\n if (!popupEle) {\n return [];\n }\n return collectScroller(popupEle);\n }, [popupEle]);\n\n // ========================= Flip ==========================\n // We will memo flip info.\n // If size change to make flip, it will memo the flip info and use it in next align.\n var prevFlipRef = React.useRef({});\n var resetFlipCache = function resetFlipCache() {\n prevFlipRef.current = {};\n };\n if (!open) {\n resetFlipCache();\n }\n\n // ========================= Align =========================\n var onAlign = useEvent(function () {\n if (popupEle && target && open) {\n var _popupElement$parentE, _popupElement$parentE2;\n var popupElement = popupEle;\n var doc = popupElement.ownerDocument;\n var win = getWin(popupElement);\n var _win$getComputedStyle = win.getComputedStyle(popupElement),\n width = _win$getComputedStyle.width,\n height = _win$getComputedStyle.height,\n popupPosition = _win$getComputedStyle.position;\n var originLeft = popupElement.style.left;\n var originTop = popupElement.style.top;\n var originRight = popupElement.style.right;\n var originBottom = popupElement.style.bottom;\n var originOverflow = popupElement.style.overflow;\n\n // Placement\n var placementInfo = _objectSpread(_objectSpread({}, builtinPlacements[placement]), popupAlign);\n\n // placeholder element\n var placeholderElement = doc.createElement('div');\n (_popupElement$parentE = popupElement.parentElement) === null || _popupElement$parentE === void 0 || _popupElement$parentE.appendChild(placeholderElement);\n placeholderElement.style.left = \"\".concat(popupElement.offsetLeft, \"px\");\n placeholderElement.style.top = \"\".concat(popupElement.offsetTop, \"px\");\n placeholderElement.style.position = popupPosition;\n placeholderElement.style.height = \"\".concat(popupElement.offsetHeight, \"px\");\n placeholderElement.style.width = \"\".concat(popupElement.offsetWidth, \"px\");\n\n // Reset first\n popupElement.style.left = '0';\n popupElement.style.top = '0';\n popupElement.style.right = 'auto';\n popupElement.style.bottom = 'auto';\n popupElement.style.overflow = 'hidden';\n\n // Calculate align style, we should consider `transform` case\n var targetRect;\n if (Array.isArray(target)) {\n targetRect = {\n x: target[0],\n y: target[1],\n width: 0,\n height: 0\n };\n } else {\n var rect = target.getBoundingClientRect();\n targetRect = {\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n };\n }\n var popupRect = popupElement.getBoundingClientRect();\n var _doc$documentElement = doc.documentElement,\n clientWidth = _doc$documentElement.clientWidth,\n clientHeight = _doc$documentElement.clientHeight,\n scrollWidth = _doc$documentElement.scrollWidth,\n scrollHeight = _doc$documentElement.scrollHeight,\n scrollTop = _doc$documentElement.scrollTop,\n scrollLeft = _doc$documentElement.scrollLeft;\n var popupHeight = popupRect.height;\n var popupWidth = popupRect.width;\n var targetHeight = targetRect.height;\n var targetWidth = targetRect.width;\n\n // Get bounding of visible area\n var visibleRegion = {\n left: 0,\n top: 0,\n right: clientWidth,\n bottom: clientHeight\n };\n var scrollRegion = {\n left: -scrollLeft,\n top: -scrollTop,\n right: scrollWidth - scrollLeft,\n bottom: scrollHeight - scrollTop\n };\n var htmlRegion = placementInfo.htmlRegion;\n var VISIBLE = 'visible';\n var VISIBLE_FIRST = 'visibleFirst';\n if (htmlRegion !== 'scroll' && htmlRegion !== VISIBLE_FIRST) {\n htmlRegion = VISIBLE;\n }\n var isVisibleFirst = htmlRegion === VISIBLE_FIRST;\n var scrollRegionArea = getVisibleArea(scrollRegion, scrollerList);\n var visibleRegionArea = getVisibleArea(visibleRegion, scrollerList);\n var visibleArea = htmlRegion === VISIBLE ? visibleRegionArea : scrollRegionArea;\n\n // When set to `visibleFirst`,\n // the check `adjust` logic will use `visibleRegion` for check first.\n var adjustCheckVisibleArea = isVisibleFirst ? visibleRegionArea : visibleArea;\n\n // Record right & bottom align data\n popupElement.style.left = 'auto';\n popupElement.style.top = 'auto';\n popupElement.style.right = '0';\n popupElement.style.bottom = '0';\n var popupMirrorRect = popupElement.getBoundingClientRect();\n\n // Reset back\n popupElement.style.left = originLeft;\n popupElement.style.top = originTop;\n popupElement.style.right = originRight;\n popupElement.style.bottom = originBottom;\n popupElement.style.overflow = originOverflow;\n (_popupElement$parentE2 = popupElement.parentElement) === null || _popupElement$parentE2 === void 0 || _popupElement$parentE2.removeChild(placeholderElement);\n\n // Calculate scale\n var _scaleX = toNum(Math.round(popupWidth / parseFloat(width) * 1000) / 1000);\n var _scaleY = toNum(Math.round(popupHeight / parseFloat(height) * 1000) / 1000);\n\n // No need to align since it's not visible in view\n if (_scaleX === 0 || _scaleY === 0 || isDOM(target) && !isVisible(target)) {\n return;\n }\n\n // Offset\n var offset = placementInfo.offset,\n targetOffset = placementInfo.targetOffset;\n var _getNumberOffset = getNumberOffset(popupRect, offset),\n _getNumberOffset2 = _slicedToArray(_getNumberOffset, 2),\n popupOffsetX = _getNumberOffset2[0],\n popupOffsetY = _getNumberOffset2[1];\n var _getNumberOffset3 = getNumberOffset(targetRect, targetOffset),\n _getNumberOffset4 = _slicedToArray(_getNumberOffset3, 2),\n targetOffsetX = _getNumberOffset4[0],\n targetOffsetY = _getNumberOffset4[1];\n targetRect.x -= targetOffsetX;\n targetRect.y -= targetOffsetY;\n\n // Points\n var _ref3 = placementInfo.points || [],\n _ref4 = _slicedToArray(_ref3, 2),\n popupPoint = _ref4[0],\n targetPoint = _ref4[1];\n var targetPoints = splitPoints(targetPoint);\n var popupPoints = splitPoints(popupPoint);\n var targetAlignPoint = getAlignPoint(targetRect, targetPoints);\n var popupAlignPoint = getAlignPoint(popupRect, popupPoints);\n\n // Real align info may not same as origin one\n var nextAlignInfo = _objectSpread({}, placementInfo);\n\n // Next Offset\n var nextOffsetX = targetAlignPoint.x - popupAlignPoint.x + popupOffsetX;\n var nextOffsetY = targetAlignPoint.y - popupAlignPoint.y + popupOffsetY;\n\n // ============== Intersection ===============\n // Get area by position. Used for check if flip area is better\n function getIntersectionVisibleArea(offsetX, offsetY) {\n var area = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : visibleArea;\n var l = popupRect.x + offsetX;\n var t = popupRect.y + offsetY;\n var r = l + popupWidth;\n var b = t + popupHeight;\n var visibleL = Math.max(l, area.left);\n var visibleT = Math.max(t, area.top);\n var visibleR = Math.min(r, area.right);\n var visibleB = Math.min(b, area.bottom);\n return Math.max(0, (visibleR - visibleL) * (visibleB - visibleT));\n }\n var originIntersectionVisibleArea = getIntersectionVisibleArea(nextOffsetX, nextOffsetY);\n\n // As `visibleFirst`, we prepare this for check\n var originIntersectionRecommendArea = getIntersectionVisibleArea(nextOffsetX, nextOffsetY, visibleRegionArea);\n\n // ========================== Overflow ===========================\n var targetAlignPointTL = getAlignPoint(targetRect, ['t', 'l']);\n var popupAlignPointTL = getAlignPoint(popupRect, ['t', 'l']);\n var targetAlignPointBR = getAlignPoint(targetRect, ['b', 'r']);\n var popupAlignPointBR = getAlignPoint(popupRect, ['b', 'r']);\n var overflow = placementInfo.overflow || {};\n var adjustX = overflow.adjustX,\n adjustY = overflow.adjustY,\n shiftX = overflow.shiftX,\n shiftY = overflow.shiftY;\n var supportAdjust = function supportAdjust(val) {\n if (typeof val === 'boolean') {\n return val;\n }\n return val >= 0;\n };\n\n // Prepare position\n var nextPopupY;\n var nextPopupBottom;\n var nextPopupX;\n var nextPopupRight;\n function syncNextPopupPosition() {\n nextPopupY = popupRect.y + nextOffsetY;\n nextPopupBottom = nextPopupY + popupHeight;\n nextPopupX = popupRect.x + nextOffsetX;\n nextPopupRight = nextPopupX + popupWidth;\n }\n syncNextPopupPosition();\n\n // >>>>>>>>>> Top & Bottom\n var needAdjustY = supportAdjust(adjustY);\n var sameTB = popupPoints[0] === targetPoints[0];\n\n // Bottom to Top\n if (needAdjustY && popupPoints[0] === 't' && (nextPopupBottom > adjustCheckVisibleArea.bottom || prevFlipRef.current.bt)) {\n var tmpNextOffsetY = nextOffsetY;\n if (sameTB) {\n tmpNextOffsetY -= popupHeight - targetHeight;\n } else {\n tmpNextOffsetY = targetAlignPointTL.y - popupAlignPointBR.y - popupOffsetY;\n }\n var newVisibleArea = getIntersectionVisibleArea(nextOffsetX, tmpNextOffsetY);\n var newVisibleRecommendArea = getIntersectionVisibleArea(nextOffsetX, tmpNextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n newVisibleArea > originIntersectionVisibleArea || newVisibleArea === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n newVisibleRecommendArea >= originIntersectionRecommendArea)) {\n prevFlipRef.current.bt = true;\n nextOffsetY = tmpNextOffsetY;\n popupOffsetY = -popupOffsetY;\n nextAlignInfo.points = [reversePoints(popupPoints, 0), reversePoints(targetPoints, 0)];\n } else {\n prevFlipRef.current.bt = false;\n }\n }\n\n // Top to Bottom\n if (needAdjustY && popupPoints[0] === 'b' && (nextPopupY < adjustCheckVisibleArea.top || prevFlipRef.current.tb)) {\n var _tmpNextOffsetY = nextOffsetY;\n if (sameTB) {\n _tmpNextOffsetY += popupHeight - targetHeight;\n } else {\n _tmpNextOffsetY = targetAlignPointBR.y - popupAlignPointTL.y - popupOffsetY;\n }\n var _newVisibleArea = getIntersectionVisibleArea(nextOffsetX, _tmpNextOffsetY);\n var _newVisibleRecommendArea = getIntersectionVisibleArea(nextOffsetX, _tmpNextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n _newVisibleArea > originIntersectionVisibleArea || _newVisibleArea === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n _newVisibleRecommendArea >= originIntersectionRecommendArea)) {\n prevFlipRef.current.tb = true;\n nextOffsetY = _tmpNextOffsetY;\n popupOffsetY = -popupOffsetY;\n nextAlignInfo.points = [reversePoints(popupPoints, 0), reversePoints(targetPoints, 0)];\n } else {\n prevFlipRef.current.tb = false;\n }\n }\n\n // >>>>>>>>>> Left & Right\n var needAdjustX = supportAdjust(adjustX);\n\n // >>>>> Flip\n var sameLR = popupPoints[1] === targetPoints[1];\n\n // Right to Left\n if (needAdjustX && popupPoints[1] === 'l' && (nextPopupRight > adjustCheckVisibleArea.right || prevFlipRef.current.rl)) {\n var tmpNextOffsetX = nextOffsetX;\n if (sameLR) {\n tmpNextOffsetX -= popupWidth - targetWidth;\n } else {\n tmpNextOffsetX = targetAlignPointTL.x - popupAlignPointBR.x - popupOffsetX;\n }\n var _newVisibleArea2 = getIntersectionVisibleArea(tmpNextOffsetX, nextOffsetY);\n var _newVisibleRecommendArea2 = getIntersectionVisibleArea(tmpNextOffsetX, nextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n _newVisibleArea2 > originIntersectionVisibleArea || _newVisibleArea2 === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n _newVisibleRecommendArea2 >= originIntersectionRecommendArea)) {\n prevFlipRef.current.rl = true;\n nextOffsetX = tmpNextOffsetX;\n popupOffsetX = -popupOffsetX;\n nextAlignInfo.points = [reversePoints(popupPoints, 1), reversePoints(targetPoints, 1)];\n } else {\n prevFlipRef.current.rl = false;\n }\n }\n\n // Left to Right\n if (needAdjustX && popupPoints[1] === 'r' && (nextPopupX < adjustCheckVisibleArea.left || prevFlipRef.current.lr)) {\n var _tmpNextOffsetX = nextOffsetX;\n if (sameLR) {\n _tmpNextOffsetX += popupWidth - targetWidth;\n } else {\n _tmpNextOffsetX = targetAlignPointBR.x - popupAlignPointTL.x - popupOffsetX;\n }\n var _newVisibleArea3 = getIntersectionVisibleArea(_tmpNextOffsetX, nextOffsetY);\n var _newVisibleRecommendArea3 = getIntersectionVisibleArea(_tmpNextOffsetX, nextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n _newVisibleArea3 > originIntersectionVisibleArea || _newVisibleArea3 === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n _newVisibleRecommendArea3 >= originIntersectionRecommendArea)) {\n prevFlipRef.current.lr = true;\n nextOffsetX = _tmpNextOffsetX;\n popupOffsetX = -popupOffsetX;\n nextAlignInfo.points = [reversePoints(popupPoints, 1), reversePoints(targetPoints, 1)];\n } else {\n prevFlipRef.current.lr = false;\n }\n }\n\n // ============================ Shift ============================\n syncNextPopupPosition();\n var numShiftX = shiftX === true ? 0 : shiftX;\n if (typeof numShiftX === 'number') {\n // Left\n if (nextPopupX < visibleRegionArea.left) {\n nextOffsetX -= nextPopupX - visibleRegionArea.left - popupOffsetX;\n if (targetRect.x + targetWidth < visibleRegionArea.left + numShiftX) {\n nextOffsetX += targetRect.x - visibleRegionArea.left + targetWidth - numShiftX;\n }\n }\n\n // Right\n if (nextPopupRight > visibleRegionArea.right) {\n nextOffsetX -= nextPopupRight - visibleRegionArea.right - popupOffsetX;\n if (targetRect.x > visibleRegionArea.right - numShiftX) {\n nextOffsetX += targetRect.x - visibleRegionArea.right + numShiftX;\n }\n }\n }\n var numShiftY = shiftY === true ? 0 : shiftY;\n if (typeof numShiftY === 'number') {\n // Top\n if (nextPopupY < visibleRegionArea.top) {\n nextOffsetY -= nextPopupY - visibleRegionArea.top - popupOffsetY;\n\n // When target if far away from visible area\n // Stop shift\n if (targetRect.y + targetHeight < visibleRegionArea.top + numShiftY) {\n nextOffsetY += targetRect.y - visibleRegionArea.top + targetHeight - numShiftY;\n }\n }\n\n // Bottom\n if (nextPopupBottom > visibleRegionArea.bottom) {\n nextOffsetY -= nextPopupBottom - visibleRegionArea.bottom - popupOffsetY;\n if (targetRect.y > visibleRegionArea.bottom - numShiftY) {\n nextOffsetY += targetRect.y - visibleRegionArea.bottom + numShiftY;\n }\n }\n }\n\n // ============================ Arrow ============================\n // Arrow center align\n var popupLeft = popupRect.x + nextOffsetX;\n var popupRight = popupLeft + popupWidth;\n var popupTop = popupRect.y + nextOffsetY;\n var popupBottom = popupTop + popupHeight;\n var targetLeft = targetRect.x;\n var targetRight = targetLeft + targetWidth;\n var targetTop = targetRect.y;\n var targetBottom = targetTop + targetHeight;\n var maxLeft = Math.max(popupLeft, targetLeft);\n var minRight = Math.min(popupRight, targetRight);\n var xCenter = (maxLeft + minRight) / 2;\n var nextArrowX = xCenter - popupLeft;\n var maxTop = Math.max(popupTop, targetTop);\n var minBottom = Math.min(popupBottom, targetBottom);\n var yCenter = (maxTop + minBottom) / 2;\n var nextArrowY = yCenter - popupTop;\n onPopupAlign === null || onPopupAlign === void 0 || onPopupAlign(popupEle, nextAlignInfo);\n\n // Additional calculate right & bottom position\n var offsetX4Right = popupMirrorRect.right - popupRect.x - (nextOffsetX + popupRect.width);\n var offsetY4Bottom = popupMirrorRect.bottom - popupRect.y - (nextOffsetY + popupRect.height);\n setOffsetInfo({\n ready: true,\n offsetX: nextOffsetX / _scaleX,\n offsetY: nextOffsetY / _scaleY,\n offsetR: offsetX4Right / _scaleX,\n offsetB: offsetY4Bottom / _scaleY,\n arrowX: nextArrowX / _scaleX,\n arrowY: nextArrowY / _scaleY,\n scaleX: _scaleX,\n scaleY: _scaleY,\n align: nextAlignInfo\n });\n }\n });\n var triggerAlign = function triggerAlign() {\n alignCountRef.current += 1;\n var id = alignCountRef.current;\n\n // Merge all align requirement into one frame\n Promise.resolve().then(function () {\n if (alignCountRef.current === id) {\n onAlign();\n }\n });\n };\n\n // Reset ready status when placement & open changed\n var resetReady = function resetReady() {\n setOffsetInfo(function (ori) {\n return _objectSpread(_objectSpread({}, ori), {}, {\n ready: false\n });\n });\n };\n useLayoutEffect(resetReady, [placement]);\n useLayoutEffect(function () {\n if (!open) {\n resetReady();\n }\n }, [open]);\n return [offsetInfo.ready, offsetInfo.offsetX, offsetInfo.offsetY, offsetInfo.offsetR, offsetInfo.offsetB, offsetInfo.arrowX, offsetInfo.arrowY, offsetInfo.scaleX, offsetInfo.scaleY, offsetInfo.align, triggerAlign];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"children\", \"action\", \"showAction\", \"hideAction\", \"popupVisible\", \"defaultPopupVisible\", \"onPopupVisibleChange\", \"afterPopupVisibleChange\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"focusDelay\", \"blurDelay\", \"mask\", \"maskClosable\", \"getPopupContainer\", \"forceRender\", \"autoDestroy\", \"destroyPopupOnHide\", \"popup\", \"popupClassName\", \"popupStyle\", \"popupPlacement\", \"builtinPlacements\", \"popupAlign\", \"zIndex\", \"stretch\", \"getPopupClassNameFromAlign\", \"fresh\", \"alignPoint\", \"onPopupClick\", \"onPopupAlign\", \"arrow\", \"popupMotion\", \"maskMotion\", \"popupTransitionName\", \"popupAnimation\", \"maskTransitionName\", \"maskAnimation\", \"className\", \"getTriggerDOMNode\"];\nimport Portal from '@rc-component/portal';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport { isDOM } from \"rc-util/es/Dom/findDOMNode\";\nimport { getShadowRoot } from \"rc-util/es/Dom/shadow\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useId from \"rc-util/es/hooks/useId\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport isMobile from \"rc-util/es/isMobile\";\nimport * as React from 'react';\nimport Popup from \"./Popup\";\nimport TriggerWrapper from \"./TriggerWrapper\";\nimport TriggerContext from \"./context\";\nimport useAction from \"./hooks/useAction\";\nimport useAlign from \"./hooks/useAlign\";\nimport useWatch from \"./hooks/useWatch\";\nimport useWinClick from \"./hooks/useWinClick\";\nimport { getAlignPopupClassName, getMotion } from \"./util\";\n\n// Removed Props List\n// Seems this can be auto\n// getDocument?: (element?: HTMLElement) => Document;\n\n// New version will not wrap popup with `rc-trigger-popup-content` when multiple children\n\nexport function generateTrigger() {\n var PortalComponent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Portal;\n var Trigger = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-trigger-popup' : _props$prefixCls,\n children = props.children,\n _props$action = props.action,\n action = _props$action === void 0 ? 'hover' : _props$action,\n showAction = props.showAction,\n hideAction = props.hideAction,\n popupVisible = props.popupVisible,\n defaultPopupVisible = props.defaultPopupVisible,\n onPopupVisibleChange = props.onPopupVisibleChange,\n afterPopupVisibleChange = props.afterPopupVisibleChange,\n mouseEnterDelay = props.mouseEnterDelay,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n focusDelay = props.focusDelay,\n blurDelay = props.blurDelay,\n mask = props.mask,\n _props$maskClosable = props.maskClosable,\n maskClosable = _props$maskClosable === void 0 ? true : _props$maskClosable,\n getPopupContainer = props.getPopupContainer,\n forceRender = props.forceRender,\n autoDestroy = props.autoDestroy,\n destroyPopupOnHide = props.destroyPopupOnHide,\n popup = props.popup,\n popupClassName = props.popupClassName,\n popupStyle = props.popupStyle,\n popupPlacement = props.popupPlacement,\n _props$builtinPlaceme = props.builtinPlacements,\n builtinPlacements = _props$builtinPlaceme === void 0 ? {} : _props$builtinPlaceme,\n popupAlign = props.popupAlign,\n zIndex = props.zIndex,\n stretch = props.stretch,\n getPopupClassNameFromAlign = props.getPopupClassNameFromAlign,\n fresh = props.fresh,\n alignPoint = props.alignPoint,\n onPopupClick = props.onPopupClick,\n onPopupAlign = props.onPopupAlign,\n arrow = props.arrow,\n popupMotion = props.popupMotion,\n maskMotion = props.maskMotion,\n popupTransitionName = props.popupTransitionName,\n popupAnimation = props.popupAnimation,\n maskTransitionName = props.maskTransitionName,\n maskAnimation = props.maskAnimation,\n className = props.className,\n getTriggerDOMNode = props.getTriggerDOMNode,\n restProps = _objectWithoutProperties(props, _excluded);\n var mergedAutoDestroy = autoDestroy || destroyPopupOnHide || false;\n\n // =========================== Mobile ===========================\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n mobile = _React$useState2[0],\n setMobile = _React$useState2[1];\n useLayoutEffect(function () {\n setMobile(isMobile());\n }, []);\n\n // ========================== Context ===========================\n var subPopupElements = React.useRef({});\n var parentContext = React.useContext(TriggerContext);\n var context = React.useMemo(function () {\n return {\n registerSubPopup: function registerSubPopup(id, subPopupEle) {\n subPopupElements.current[id] = subPopupEle;\n parentContext === null || parentContext === void 0 || parentContext.registerSubPopup(id, subPopupEle);\n }\n };\n }, [parentContext]);\n\n // =========================== Popup ============================\n var id = useId();\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n popupEle = _React$useState4[0],\n setPopupEle = _React$useState4[1];\n var setPopupRef = useEvent(function (node) {\n if (isDOM(node) && popupEle !== node) {\n setPopupEle(node);\n }\n parentContext === null || parentContext === void 0 || parentContext.registerSubPopup(id, node);\n });\n\n // =========================== Target ===========================\n // Use state to control here since `useRef` update not trigger render\n var _React$useState5 = React.useState(null),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n targetEle = _React$useState6[0],\n setTargetEle = _React$useState6[1];\n\n // Used for forwardRef target. Not use internal\n var externalForwardRef = React.useRef(null);\n var setTargetRef = useEvent(function (node) {\n if (isDOM(node) && targetEle !== node) {\n setTargetEle(node);\n externalForwardRef.current = node;\n }\n });\n\n // ========================== Children ==========================\n var child = React.Children.only(children);\n var originChildProps = (child === null || child === void 0 ? void 0 : child.props) || {};\n var cloneProps = {};\n var inPopupOrChild = useEvent(function (ele) {\n var _getShadowRoot, _getShadowRoot2;\n var childDOM = targetEle;\n return (childDOM === null || childDOM === void 0 ? void 0 : childDOM.contains(ele)) || ((_getShadowRoot = getShadowRoot(childDOM)) === null || _getShadowRoot === void 0 ? void 0 : _getShadowRoot.host) === ele || ele === childDOM || (popupEle === null || popupEle === void 0 ? void 0 : popupEle.contains(ele)) || ((_getShadowRoot2 = getShadowRoot(popupEle)) === null || _getShadowRoot2 === void 0 ? void 0 : _getShadowRoot2.host) === ele || ele === popupEle || Object.values(subPopupElements.current).some(function (subPopupEle) {\n return (subPopupEle === null || subPopupEle === void 0 ? void 0 : subPopupEle.contains(ele)) || ele === subPopupEle;\n });\n });\n\n // =========================== Motion ===========================\n var mergePopupMotion = getMotion(prefixCls, popupMotion, popupAnimation, popupTransitionName);\n var mergeMaskMotion = getMotion(prefixCls, maskMotion, maskAnimation, maskTransitionName);\n\n // ============================ Open ============================\n var _React$useState7 = React.useState(defaultPopupVisible || false),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n internalOpen = _React$useState8[0],\n setInternalOpen = _React$useState8[1];\n\n // Render still use props as first priority\n var mergedOpen = popupVisible !== null && popupVisible !== void 0 ? popupVisible : internalOpen;\n\n // We use effect sync here in case `popupVisible` back to `undefined`\n var setMergedOpen = useEvent(function (nextOpen) {\n if (popupVisible === undefined) {\n setInternalOpen(nextOpen);\n }\n });\n useLayoutEffect(function () {\n setInternalOpen(popupVisible || false);\n }, [popupVisible]);\n var openRef = React.useRef(mergedOpen);\n openRef.current = mergedOpen;\n var lastTriggerRef = React.useRef([]);\n lastTriggerRef.current = [];\n var internalTriggerOpen = useEvent(function (nextOpen) {\n var _lastTriggerRef$curre;\n setMergedOpen(nextOpen);\n\n // Enter or Pointer will both trigger open state change\n // We only need take one to avoid duplicated change event trigger\n // Use `lastTriggerRef` to record last open type\n if (((_lastTriggerRef$curre = lastTriggerRef.current[lastTriggerRef.current.length - 1]) !== null && _lastTriggerRef$curre !== void 0 ? _lastTriggerRef$curre : mergedOpen) !== nextOpen) {\n lastTriggerRef.current.push(nextOpen);\n onPopupVisibleChange === null || onPopupVisibleChange === void 0 || onPopupVisibleChange(nextOpen);\n }\n });\n\n // Trigger for delay\n var delayRef = React.useRef();\n var clearDelay = function clearDelay() {\n clearTimeout(delayRef.current);\n };\n var triggerOpen = function triggerOpen(nextOpen) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n clearDelay();\n if (delay === 0) {\n internalTriggerOpen(nextOpen);\n } else {\n delayRef.current = setTimeout(function () {\n internalTriggerOpen(nextOpen);\n }, delay * 1000);\n }\n };\n React.useEffect(function () {\n return clearDelay;\n }, []);\n\n // ========================== Motion ============================\n var _React$useState9 = React.useState(false),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n inMotion = _React$useState10[0],\n setInMotion = _React$useState10[1];\n useLayoutEffect(function (firstMount) {\n if (!firstMount || mergedOpen) {\n setInMotion(true);\n }\n }, [mergedOpen]);\n var _React$useState11 = React.useState(null),\n _React$useState12 = _slicedToArray(_React$useState11, 2),\n motionPrepareResolve = _React$useState12[0],\n setMotionPrepareResolve = _React$useState12[1];\n\n // =========================== Align ============================\n var _React$useState13 = React.useState([0, 0]),\n _React$useState14 = _slicedToArray(_React$useState13, 2),\n mousePos = _React$useState14[0],\n setMousePos = _React$useState14[1];\n var setMousePosByEvent = function setMousePosByEvent(event) {\n setMousePos([event.clientX, event.clientY]);\n };\n var _useAlign = useAlign(mergedOpen, popupEle, alignPoint ? mousePos : targetEle, popupPlacement, builtinPlacements, popupAlign, onPopupAlign),\n _useAlign2 = _slicedToArray(_useAlign, 11),\n ready = _useAlign2[0],\n offsetX = _useAlign2[1],\n offsetY = _useAlign2[2],\n offsetR = _useAlign2[3],\n offsetB = _useAlign2[4],\n arrowX = _useAlign2[5],\n arrowY = _useAlign2[6],\n scaleX = _useAlign2[7],\n scaleY = _useAlign2[8],\n alignInfo = _useAlign2[9],\n onAlign = _useAlign2[10];\n var _useAction = useAction(mobile, action, showAction, hideAction),\n _useAction2 = _slicedToArray(_useAction, 2),\n showActions = _useAction2[0],\n hideActions = _useAction2[1];\n var clickToShow = showActions.has('click');\n var clickToHide = hideActions.has('click') || hideActions.has('contextMenu');\n var triggerAlign = useEvent(function () {\n if (!inMotion) {\n onAlign();\n }\n });\n var onScroll = function onScroll() {\n if (openRef.current && alignPoint && clickToHide) {\n triggerOpen(false);\n }\n };\n useWatch(mergedOpen, targetEle, popupEle, triggerAlign, onScroll);\n useLayoutEffect(function () {\n triggerAlign();\n }, [mousePos, popupPlacement]);\n\n // When no builtinPlacements and popupAlign changed\n useLayoutEffect(function () {\n if (mergedOpen && !(builtinPlacements !== null && builtinPlacements !== void 0 && builtinPlacements[popupPlacement])) {\n triggerAlign();\n }\n }, [JSON.stringify(popupAlign)]);\n var alignedClassName = React.useMemo(function () {\n var baseClassName = getAlignPopupClassName(builtinPlacements, prefixCls, alignInfo, alignPoint);\n return classNames(baseClassName, getPopupClassNameFromAlign === null || getPopupClassNameFromAlign === void 0 ? void 0 : getPopupClassNameFromAlign(alignInfo));\n }, [alignInfo, getPopupClassNameFromAlign, builtinPlacements, prefixCls, alignPoint]);\n\n // ============================ Refs ============================\n React.useImperativeHandle(ref, function () {\n return {\n nativeElement: externalForwardRef.current,\n forceAlign: triggerAlign\n };\n });\n\n // ========================== Stretch ===========================\n var _React$useState15 = React.useState(0),\n _React$useState16 = _slicedToArray(_React$useState15, 2),\n targetWidth = _React$useState16[0],\n setTargetWidth = _React$useState16[1];\n var _React$useState17 = React.useState(0),\n _React$useState18 = _slicedToArray(_React$useState17, 2),\n targetHeight = _React$useState18[0],\n setTargetHeight = _React$useState18[1];\n var syncTargetSize = function syncTargetSize() {\n if (stretch && targetEle) {\n var rect = targetEle.getBoundingClientRect();\n setTargetWidth(rect.width);\n setTargetHeight(rect.height);\n }\n };\n var onTargetResize = function onTargetResize() {\n syncTargetSize();\n triggerAlign();\n };\n\n // ========================== Motion ============================\n var onVisibleChanged = function onVisibleChanged(visible) {\n setInMotion(false);\n onAlign();\n afterPopupVisibleChange === null || afterPopupVisibleChange === void 0 || afterPopupVisibleChange(visible);\n };\n\n // We will trigger align when motion is in prepare\n var onPrepare = function onPrepare() {\n return new Promise(function (resolve) {\n syncTargetSize();\n setMotionPrepareResolve(function () {\n return resolve;\n });\n });\n };\n useLayoutEffect(function () {\n if (motionPrepareResolve) {\n onAlign();\n motionPrepareResolve();\n setMotionPrepareResolve(null);\n }\n }, [motionPrepareResolve]);\n\n // =========================== Action ===========================\n /**\n * Util wrapper for trigger action\n */\n function wrapperAction(eventName, nextOpen, delay, preEvent) {\n cloneProps[eventName] = function (event) {\n var _originChildProps$eve;\n preEvent === null || preEvent === void 0 || preEvent(event);\n triggerOpen(nextOpen, delay);\n\n // Pass to origin\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 (_originChildProps$eve = originChildProps[eventName]) === null || _originChildProps$eve === void 0 || _originChildProps$eve.call.apply(_originChildProps$eve, [originChildProps, event].concat(args));\n };\n }\n\n // ======================= Action: Click ========================\n if (clickToShow || clickToHide) {\n cloneProps.onClick = function (event) {\n var _originChildProps$onC;\n if (openRef.current && clickToHide) {\n triggerOpen(false);\n } else if (!openRef.current && clickToShow) {\n setMousePosByEvent(event);\n triggerOpen(true);\n }\n\n // Pass to origin\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n (_originChildProps$onC = originChildProps.onClick) === null || _originChildProps$onC === void 0 || _originChildProps$onC.call.apply(_originChildProps$onC, [originChildProps, event].concat(args));\n };\n }\n\n // Click to hide is special action since click popup element should not hide\n useWinClick(mergedOpen, clickToHide, targetEle, popupEle, mask, maskClosable, inPopupOrChild, triggerOpen);\n\n // ======================= Action: Hover ========================\n var hoverToShow = showActions.has('hover');\n var hoverToHide = hideActions.has('hover');\n var onPopupMouseEnter;\n var onPopupMouseLeave;\n if (hoverToShow) {\n // Compatible with old browser which not support pointer event\n wrapperAction('onMouseEnter', true, mouseEnterDelay, function (event) {\n setMousePosByEvent(event);\n });\n wrapperAction('onPointerEnter', true, mouseEnterDelay, function (event) {\n setMousePosByEvent(event);\n });\n onPopupMouseEnter = function onPopupMouseEnter(event) {\n // Only trigger re-open when popup is visible\n if ((mergedOpen || inMotion) && popupEle !== null && popupEle !== void 0 && popupEle.contains(event.target)) {\n triggerOpen(true, mouseEnterDelay);\n }\n };\n\n // Align Point\n if (alignPoint) {\n cloneProps.onMouseMove = function (event) {\n var _originChildProps$onM;\n // setMousePosByEvent(event);\n (_originChildProps$onM = originChildProps.onMouseMove) === null || _originChildProps$onM === void 0 || _originChildProps$onM.call(originChildProps, event);\n };\n }\n }\n if (hoverToHide) {\n wrapperAction('onMouseLeave', false, mouseLeaveDelay);\n wrapperAction('onPointerLeave', false, mouseLeaveDelay);\n onPopupMouseLeave = function onPopupMouseLeave() {\n triggerOpen(false, mouseLeaveDelay);\n };\n }\n\n // ======================= Action: Focus ========================\n if (showActions.has('focus')) {\n wrapperAction('onFocus', true, focusDelay);\n }\n if (hideActions.has('focus')) {\n wrapperAction('onBlur', false, blurDelay);\n }\n\n // ==================== Action: ContextMenu =====================\n if (showActions.has('contextMenu')) {\n cloneProps.onContextMenu = function (event) {\n var _originChildProps$onC2;\n if (openRef.current && hideActions.has('contextMenu')) {\n triggerOpen(false);\n } else {\n setMousePosByEvent(event);\n triggerOpen(true);\n }\n event.preventDefault();\n\n // Pass to origin\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n (_originChildProps$onC2 = originChildProps.onContextMenu) === null || _originChildProps$onC2 === void 0 || _originChildProps$onC2.call.apply(_originChildProps$onC2, [originChildProps, event].concat(args));\n };\n }\n\n // ========================= ClassName ==========================\n if (className) {\n cloneProps.className = classNames(originChildProps.className, className);\n }\n\n // =========================== Render ===========================\n var mergedChildrenProps = _objectSpread(_objectSpread({}, originChildProps), cloneProps);\n\n // Pass props into cloneProps for nest usage\n var passedProps = {};\n var passedEventList = ['onContextMenu', 'onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur'];\n passedEventList.forEach(function (eventName) {\n if (restProps[eventName]) {\n passedProps[eventName] = function () {\n var _mergedChildrenProps$;\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n (_mergedChildrenProps$ = mergedChildrenProps[eventName]) === null || _mergedChildrenProps$ === void 0 || _mergedChildrenProps$.call.apply(_mergedChildrenProps$, [mergedChildrenProps].concat(args));\n restProps[eventName].apply(restProps, args);\n };\n }\n });\n\n // Child Node\n var triggerNode = /*#__PURE__*/React.cloneElement(child, _objectSpread(_objectSpread({}, mergedChildrenProps), passedProps));\n var arrowPos = {\n x: arrowX,\n y: arrowY\n };\n var innerArrow = arrow ? _objectSpread({}, arrow !== true ? arrow : {}) : null;\n\n // Render\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ResizeObserver, {\n disabled: !mergedOpen,\n ref: setTargetRef,\n onResize: onTargetResize\n }, /*#__PURE__*/React.createElement(TriggerWrapper, {\n getTriggerDOMNode: getTriggerDOMNode\n }, triggerNode)), /*#__PURE__*/React.createElement(TriggerContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(Popup, {\n portal: PortalComponent,\n ref: setPopupRef,\n prefixCls: prefixCls,\n popup: popup,\n className: classNames(popupClassName, alignedClassName),\n style: popupStyle,\n target: targetEle,\n onMouseEnter: onPopupMouseEnter,\n onMouseLeave: onPopupMouseLeave\n // https://github.com/ant-design/ant-design/issues/43924\n ,\n onPointerEnter: onPopupMouseEnter,\n zIndex: zIndex\n // Open\n ,\n open: mergedOpen,\n keepDom: inMotion,\n fresh: fresh\n // Click\n ,\n onClick: onPopupClick\n // Mask\n ,\n mask: mask\n // Motion\n ,\n motion: mergePopupMotion,\n maskMotion: mergeMaskMotion,\n onVisibleChanged: onVisibleChanged,\n onPrepare: onPrepare\n // Portal\n ,\n forceRender: forceRender,\n autoDestroy: mergedAutoDestroy,\n getPopupContainer: getPopupContainer\n // Arrow\n ,\n align: alignInfo,\n arrow: innerArrow,\n arrowPos: arrowPos\n // Align\n ,\n ready: ready,\n offsetX: offsetX,\n offsetY: offsetY,\n offsetR: offsetR,\n offsetB: offsetB,\n onAlign: triggerAlign\n // Stretch\n ,\n stretch: stretch,\n targetWidth: targetWidth / scaleX,\n targetHeight: targetHeight / scaleY\n })));\n });\n if (process.env.NODE_ENV !== 'production') {\n Trigger.displayName = 'Trigger';\n }\n return Trigger;\n}\nexport default generateTrigger(Portal);","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { collectScroller, getWin } from \"../util\";\nexport default function useWatch(open, target, popup, onAlign, onScroll) {\n useLayoutEffect(function () {\n if (open && target && popup) {\n var targetElement = target;\n var popupElement = popup;\n var targetScrollList = collectScroller(targetElement);\n var popupScrollList = collectScroller(popupElement);\n var win = getWin(popupElement);\n var mergedList = new Set([win].concat(_toConsumableArray(targetScrollList), _toConsumableArray(popupScrollList)));\n function notifyScroll() {\n onAlign();\n onScroll();\n }\n mergedList.forEach(function (scroller) {\n scroller.addEventListener('scroll', notifyScroll, {\n passive: true\n });\n });\n win.addEventListener('resize', notifyScroll, {\n passive: true\n });\n\n // First time always do align\n onAlign();\n return function () {\n mergedList.forEach(function (scroller) {\n scroller.removeEventListener('scroll', notifyScroll);\n win.removeEventListener('resize', notifyScroll);\n });\n };\n }\n }, [open, target, popup]);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { warning } from \"rc-util/es/warning\";\nimport { getShadowRoot } from \"rc-util/es/Dom/shadow\";\nimport raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nimport { getWin } from \"../util\";\nexport default function useWinClick(open, clickToHide, targetEle, popupEle, mask, maskClosable, inPopupOrChild, triggerOpen) {\n var openRef = React.useRef(open);\n\n // Window click to hide should be lock to avoid trigger lock immediately\n var lockRef = React.useRef(false);\n if (openRef.current !== open) {\n lockRef.current = true;\n openRef.current = open;\n }\n React.useEffect(function () {\n var id = raf(function () {\n lockRef.current = false;\n });\n return function () {\n raf.cancel(id);\n };\n }, [open]);\n\n // Click to hide is special action since click popup element should not hide\n React.useEffect(function () {\n if (clickToHide && popupEle && (!mask || maskClosable)) {\n var genClickEvents = function genClickEvents() {\n var clickInside = false;\n\n // User may mouseDown inside and drag out of popup and mouse up\n // Record here to prevent close\n var onWindowMouseDown = function onWindowMouseDown(_ref) {\n var target = _ref.target;\n clickInside = inPopupOrChild(target);\n };\n var onWindowClick = function onWindowClick(_ref2) {\n var target = _ref2.target;\n if (!lockRef.current && openRef.current && !clickInside && !inPopupOrChild(target)) {\n triggerOpen(false);\n }\n };\n return [onWindowMouseDown, onWindowClick];\n };\n\n // Events\n var _genClickEvents = genClickEvents(),\n _genClickEvents2 = _slicedToArray(_genClickEvents, 2),\n onWinMouseDown = _genClickEvents2[0],\n onWinClick = _genClickEvents2[1];\n var _genClickEvents3 = genClickEvents(),\n _genClickEvents4 = _slicedToArray(_genClickEvents3, 2),\n onShadowMouseDown = _genClickEvents4[0],\n onShadowClick = _genClickEvents4[1];\n var win = getWin(popupEle);\n win.addEventListener('mousedown', onWinMouseDown, true);\n win.addEventListener('click', onWinClick, true);\n win.addEventListener('contextmenu', onWinClick, true);\n\n // shadow root\n var targetShadowRoot = getShadowRoot(targetEle);\n if (targetShadowRoot) {\n targetShadowRoot.addEventListener('mousedown', onShadowMouseDown, true);\n targetShadowRoot.addEventListener('click', onShadowClick, true);\n targetShadowRoot.addEventListener('contextmenu', onShadowClick, true);\n }\n\n // Warning if target and popup not in same root\n if (process.env.NODE_ENV !== 'production') {\n var _targetEle$getRootNod, _popupEle$getRootNode;\n var targetRoot = targetEle === null || targetEle === void 0 || (_targetEle$getRootNod = targetEle.getRootNode) === null || _targetEle$getRootNod === void 0 ? void 0 : _targetEle$getRootNod.call(targetEle);\n var popupRoot = (_popupEle$getRootNode = popupEle.getRootNode) === null || _popupEle$getRootNode === void 0 ? void 0 : _popupEle$getRootNode.call(popupEle);\n warning(targetRoot === popupRoot, \"trigger element and popup element should in same shadow root.\");\n }\n return function () {\n win.removeEventListener('mousedown', onWinMouseDown, true);\n win.removeEventListener('click', onWinClick, true);\n win.removeEventListener('contextmenu', onWinClick, true);\n if (targetShadowRoot) {\n targetShadowRoot.removeEventListener('mousedown', onShadowMouseDown, true);\n targetShadowRoot.removeEventListener('click', onShadowClick, true);\n targetShadowRoot.removeEventListener('contextmenu', onShadowClick, true);\n }\n };\n }\n }, [clickToHide, targetEle, popupEle, mask, maskClosable]);\n}","import KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport * as React from \"react\";\nvar ESC = KeyCode.ESC,\n TAB = KeyCode.TAB;\nexport default function useAccessibility(_ref) {\n var visible = _ref.visible,\n triggerRef = _ref.triggerRef,\n onVisibleChange = _ref.onVisibleChange,\n autoFocus = _ref.autoFocus,\n overlayRef = _ref.overlayRef;\n var focusMenuRef = React.useRef(false);\n var handleCloseMenuAndReturnFocus = function handleCloseMenuAndReturnFocus() {\n if (visible) {\n var _triggerRef$current, _triggerRef$current$f;\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$f = _triggerRef$current.focus) === null || _triggerRef$current$f === void 0 ? void 0 : _triggerRef$current$f.call(_triggerRef$current);\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(false);\n }\n };\n var focusMenu = function focusMenu() {\n var _overlayRef$current;\n if ((_overlayRef$current = overlayRef.current) !== null && _overlayRef$current !== void 0 && _overlayRef$current.focus) {\n overlayRef.current.focus();\n focusMenuRef.current = true;\n return true;\n }\n return false;\n };\n var handleKeyDown = function handleKeyDown(event) {\n switch (event.keyCode) {\n case ESC:\n handleCloseMenuAndReturnFocus();\n break;\n case TAB:\n {\n var focusResult = false;\n if (!focusMenuRef.current) {\n focusResult = focusMenu();\n }\n if (focusResult) {\n event.preventDefault();\n } else {\n handleCloseMenuAndReturnFocus();\n }\n break;\n }\n }\n };\n React.useEffect(function () {\n if (visible) {\n window.addEventListener(\"keydown\", handleKeyDown);\n if (autoFocus) {\n // FIXME: hack with raf\n raf(focusMenu, 3);\n }\n return function () {\n window.removeEventListener(\"keydown\", handleKeyDown);\n focusMenuRef.current = false;\n };\n }\n return function () {\n focusMenuRef.current = false;\n };\n }, [visible]); // eslint-disable-line react-hooks/exhaustive-deps\n}","import React, { forwardRef, useMemo } from 'react';\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nvar Overlay = /*#__PURE__*/forwardRef(function (props, ref) {\n var overlay = props.overlay,\n arrow = props.arrow,\n prefixCls = props.prefixCls;\n var overlayNode = useMemo(function () {\n var overlayElement;\n if (typeof overlay === 'function') {\n overlayElement = overlay();\n } else {\n overlayElement = overlay;\n }\n return overlayElement;\n }, [overlay]);\n var composedRef = composeRef(ref, overlayNode === null || overlayNode === void 0 ? void 0 : overlayNode.ref);\n return /*#__PURE__*/React.createElement(React.Fragment, null, arrow && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\")\n }), /*#__PURE__*/React.cloneElement(overlayNode, {\n ref: supportRef(overlayNode) ? composedRef : undefined\n }));\n});\nexport default Overlay;","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nvar placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n }\n};\nexport default placements;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"arrow\", \"prefixCls\", \"transitionName\", \"animation\", \"align\", \"placement\", \"placements\", \"getPopupContainer\", \"showAction\", \"hideAction\", \"overlayClassName\", \"overlayStyle\", \"visible\", \"trigger\", \"autoFocus\", \"overlay\", \"children\", \"onVisibleChange\"];\nimport Trigger from '@rc-component/trigger';\nimport classNames from 'classnames';\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport React from 'react';\nimport useAccessibility from \"./hooks/useAccessibility\";\nimport Overlay from \"./Overlay\";\nimport Placements from \"./placements\";\nfunction Dropdown(props, ref) {\n var _children$props;\n var _props$arrow = props.arrow,\n arrow = _props$arrow === void 0 ? false : _props$arrow,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-dropdown' : _props$prefixCls,\n transitionName = props.transitionName,\n animation = props.animation,\n align = props.align,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomLeft' : _props$placement,\n _props$placements = props.placements,\n placements = _props$placements === void 0 ? Placements : _props$placements,\n getPopupContainer = props.getPopupContainer,\n showAction = props.showAction,\n hideAction = props.hideAction,\n overlayClassName = props.overlayClassName,\n overlayStyle = props.overlayStyle,\n visible = props.visible,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n autoFocus = props.autoFocus,\n overlay = props.overlay,\n children = props.children,\n onVisibleChange = props.onVisibleChange,\n otherProps = _objectWithoutProperties(props, _excluded);\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n triggerVisible = _React$useState2[0],\n setTriggerVisible = _React$useState2[1];\n var mergedVisible = 'visible' in props ? visible : triggerVisible;\n var triggerRef = React.useRef(null);\n var overlayRef = React.useRef(null);\n var childRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return triggerRef.current;\n });\n var handleVisibleChange = function handleVisibleChange(newVisible) {\n setTriggerVisible(newVisible);\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(newVisible);\n };\n useAccessibility({\n visible: mergedVisible,\n triggerRef: childRef,\n onVisibleChange: handleVisibleChange,\n autoFocus: autoFocus,\n overlayRef: overlayRef\n });\n var onClick = function onClick(e) {\n var onOverlayClick = props.onOverlayClick;\n setTriggerVisible(false);\n if (onOverlayClick) {\n onOverlayClick(e);\n }\n };\n var getMenuElement = function getMenuElement() {\n return /*#__PURE__*/React.createElement(Overlay, {\n ref: overlayRef,\n overlay: overlay,\n prefixCls: prefixCls,\n arrow: arrow\n });\n };\n var getMenuElementOrLambda = function getMenuElementOrLambda() {\n if (typeof overlay === 'function') {\n return getMenuElement;\n }\n return getMenuElement();\n };\n var getMinOverlayWidthMatchTrigger = function getMinOverlayWidthMatchTrigger() {\n var minOverlayWidthMatchTrigger = props.minOverlayWidthMatchTrigger,\n alignPoint = props.alignPoint;\n if ('minOverlayWidthMatchTrigger' in props) {\n return minOverlayWidthMatchTrigger;\n }\n return !alignPoint;\n };\n var getOpenClassName = function getOpenClassName() {\n var openClassName = props.openClassName;\n if (openClassName !== undefined) {\n return openClassName;\n }\n return \"\".concat(prefixCls, \"-open\");\n };\n var childrenNode = /*#__PURE__*/React.cloneElement(children, {\n className: classNames((_children$props = children.props) === null || _children$props === void 0 ? void 0 : _children$props.className, mergedVisible && getOpenClassName()),\n ref: supportRef(children) ? composeRef(childRef, children.ref) : undefined\n });\n var triggerHideAction = hideAction;\n if (!triggerHideAction && trigger.indexOf('contextMenu') !== -1) {\n triggerHideAction = ['click'];\n }\n return /*#__PURE__*/React.createElement(Trigger, _extends({\n builtinPlacements: placements\n }, otherProps, {\n prefixCls: prefixCls,\n ref: triggerRef,\n popupClassName: classNames(overlayClassName, _defineProperty({}, \"\".concat(prefixCls, \"-show-arrow\"), arrow)),\n popupStyle: overlayStyle,\n action: trigger,\n showAction: showAction,\n hideAction: triggerHideAction,\n popupPlacement: placement,\n popupAlign: align,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupVisible: mergedVisible,\n stretch: getMinOverlayWidthMatchTrigger() ? 'minWidth' : '',\n popup: getMenuElementOrLambda(),\n onPopupVisibleChange: handleVisibleChange,\n onPopupClick: onClick,\n getPopupContainer: getPopupContainer\n }), childrenNode);\n}\nexport default /*#__PURE__*/React.forwardRef(Dropdown);","import Dropdown from \"./Dropdown\";\nexport default Dropdown;","import * as React from 'react';\nexport var IdContext = /*#__PURE__*/React.createContext(null);\nexport function getMenuId(uuid, eventKey) {\n if (uuid === undefined) {\n return null;\n }\n return \"\".concat(uuid, \"-\").concat(eventKey);\n}\n\n/**\n * Get `data-menu-id`\n */\nexport function useMenuId(eventKey) {\n var id = React.useContext(IdContext);\n return getMenuId(id, eventKey);\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"children\", \"locked\"];\nimport * as React from 'react';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nexport var MenuContext = /*#__PURE__*/React.createContext(null);\nfunction mergeProps(origin, target) {\n var clone = _objectSpread({}, origin);\n Object.keys(target).forEach(function (key) {\n var value = target[key];\n if (value !== undefined) {\n clone[key] = value;\n }\n });\n return clone;\n}\nexport default function InheritableContextProvider(_ref) {\n var children = _ref.children,\n locked = _ref.locked,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var context = React.useContext(MenuContext);\n var inheritableContext = useMemo(function () {\n return mergeProps(context, restProps);\n }, [context, restProps], function (prev, next) {\n return !locked && (prev[0] !== next[0] || !isEqual(prev[1], next[1], true));\n });\n return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: inheritableContext\n }, children);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nvar EmptyList = [];\n\n// ========================= Path Register =========================\n\nexport var PathRegisterContext = /*#__PURE__*/React.createContext(null);\nexport function useMeasure() {\n return React.useContext(PathRegisterContext);\n}\n\n// ========================= Path Tracker ==========================\nexport var PathTrackerContext = /*#__PURE__*/React.createContext(EmptyList);\nexport function useFullPath(eventKey) {\n var parentKeyPath = React.useContext(PathTrackerContext);\n return React.useMemo(function () {\n return eventKey !== undefined ? [].concat(_toConsumableArray(parentKeyPath), [eventKey]) : parentKeyPath;\n }, [parentKeyPath, eventKey]);\n}\n\n// =========================== Path User ===========================\n\nexport var PathUserContext = /*#__PURE__*/React.createContext(null);","import * as React from 'react';\nvar PrivateContext = /*#__PURE__*/React.createContext({});\nexport default PrivateContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { getFocusNodeList } from \"rc-util/es/Dom/focus\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nimport { getMenuId } from \"../context/IdContext\";\n// destruct to reduce minify size\nvar LEFT = KeyCode.LEFT,\n RIGHT = KeyCode.RIGHT,\n UP = KeyCode.UP,\n DOWN = KeyCode.DOWN,\n ENTER = KeyCode.ENTER,\n ESC = KeyCode.ESC,\n HOME = KeyCode.HOME,\n END = KeyCode.END;\nvar ArrowKeys = [UP, DOWN, LEFT, RIGHT];\nfunction getOffset(mode, isRootLevel, isRtl, which) {\n var _inline, _horizontal, _vertical, _offsets;\n var prev = 'prev';\n var next = 'next';\n var children = 'children';\n var parent = 'parent';\n\n // Inline enter is special that we use unique operation\n if (mode === 'inline' && which === ENTER) {\n return {\n inlineTrigger: true\n };\n }\n var inline = (_inline = {}, _defineProperty(_inline, UP, prev), _defineProperty(_inline, DOWN, next), _inline);\n var horizontal = (_horizontal = {}, _defineProperty(_horizontal, LEFT, isRtl ? next : prev), _defineProperty(_horizontal, RIGHT, isRtl ? prev : next), _defineProperty(_horizontal, DOWN, children), _defineProperty(_horizontal, ENTER, children), _horizontal);\n var vertical = (_vertical = {}, _defineProperty(_vertical, UP, prev), _defineProperty(_vertical, DOWN, next), _defineProperty(_vertical, ENTER, children), _defineProperty(_vertical, ESC, parent), _defineProperty(_vertical, LEFT, isRtl ? children : parent), _defineProperty(_vertical, RIGHT, isRtl ? parent : children), _vertical);\n var offsets = {\n inline: inline,\n horizontal: horizontal,\n vertical: vertical,\n inlineSub: inline,\n horizontalSub: vertical,\n verticalSub: vertical\n };\n var type = (_offsets = offsets[\"\".concat(mode).concat(isRootLevel ? '' : 'Sub')]) === null || _offsets === void 0 ? void 0 : _offsets[which];\n switch (type) {\n case prev:\n return {\n offset: -1,\n sibling: true\n };\n case next:\n return {\n offset: 1,\n sibling: true\n };\n case parent:\n return {\n offset: -1,\n sibling: false\n };\n case children:\n return {\n offset: 1,\n sibling: false\n };\n default:\n return null;\n }\n}\nfunction findContainerUL(element) {\n var current = element;\n while (current) {\n if (current.getAttribute('data-menu-list')) {\n return current;\n }\n current = current.parentElement;\n }\n\n // Normally should not reach this line\n /* istanbul ignore next */\n return null;\n}\n\n/**\n * Find focused element within element set provided\n */\nfunction getFocusElement(activeElement, elements) {\n var current = activeElement || document.activeElement;\n while (current) {\n if (elements.has(current)) {\n return current;\n }\n current = current.parentElement;\n }\n return null;\n}\n\n/**\n * Get focusable elements from the element set under provided container\n */\nexport function getFocusableElements(container, elements) {\n var list = getFocusNodeList(container, true);\n return list.filter(function (ele) {\n return elements.has(ele);\n });\n}\nfunction getNextFocusElement(parentQueryContainer, elements, focusMenuElement) {\n var offset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n // Key on the menu item will not get validate parent container\n if (!parentQueryContainer) {\n return null;\n }\n\n // List current level menu item elements\n var sameLevelFocusableMenuElementList = getFocusableElements(parentQueryContainer, elements);\n\n // Find next focus index\n var count = sameLevelFocusableMenuElementList.length;\n var focusIndex = sameLevelFocusableMenuElementList.findIndex(function (ele) {\n return focusMenuElement === ele;\n });\n if (offset < 0) {\n if (focusIndex === -1) {\n focusIndex = count - 1;\n } else {\n focusIndex -= 1;\n }\n } else if (offset > 0) {\n focusIndex += 1;\n }\n focusIndex = (focusIndex + count) % count;\n\n // Focus menu item\n return sameLevelFocusableMenuElementList[focusIndex];\n}\nexport var refreshElements = function refreshElements(keys, id) {\n var elements = new Set();\n var key2element = new Map();\n var element2key = new Map();\n keys.forEach(function (key) {\n var element = document.querySelector(\"[data-menu-id='\".concat(getMenuId(id, key), \"']\"));\n if (element) {\n elements.add(element);\n element2key.set(element, key);\n key2element.set(key, element);\n }\n });\n return {\n elements: elements,\n key2element: key2element,\n element2key: element2key\n };\n};\nexport function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKeys, getKeyPath, triggerActiveKey, triggerAccessibilityOpen, originOnKeyDown) {\n var rafRef = React.useRef();\n var activeRef = React.useRef();\n activeRef.current = activeKey;\n var cleanRaf = function cleanRaf() {\n raf.cancel(rafRef.current);\n };\n React.useEffect(function () {\n return function () {\n cleanRaf();\n };\n }, []);\n return function (e) {\n var which = e.which;\n if ([].concat(ArrowKeys, [ENTER, ESC, HOME, END]).includes(which)) {\n var keys = getKeys();\n var refreshedElements = refreshElements(keys, id);\n var _refreshedElements = refreshedElements,\n elements = _refreshedElements.elements,\n key2element = _refreshedElements.key2element,\n element2key = _refreshedElements.element2key;\n\n // First we should find current focused MenuItem/SubMenu element\n var activeElement = key2element.get(activeKey);\n var focusMenuElement = getFocusElement(activeElement, elements);\n var focusMenuKey = element2key.get(focusMenuElement);\n var offsetObj = getOffset(mode, getKeyPath(focusMenuKey, true).length === 1, isRtl, which);\n\n // Some mode do not have fully arrow operation like inline\n if (!offsetObj && which !== HOME && which !== END) {\n return;\n }\n\n // Arrow prevent default to avoid page scroll\n if (ArrowKeys.includes(which) || [HOME, END].includes(which)) {\n e.preventDefault();\n }\n var tryFocus = function tryFocus(menuElement) {\n if (menuElement) {\n var focusTargetElement = menuElement;\n\n // Focus to link instead of menu item if possible\n var link = menuElement.querySelector('a');\n if (link !== null && link !== void 0 && link.getAttribute('href')) {\n focusTargetElement = link;\n }\n var targetKey = element2key.get(menuElement);\n triggerActiveKey(targetKey);\n\n /**\n * Do not `useEffect` here since `tryFocus` may trigger async\n * which makes React sync update the `activeKey`\n * that force render before `useRef` set the next activeKey\n */\n cleanRaf();\n rafRef.current = raf(function () {\n if (activeRef.current === targetKey) {\n focusTargetElement.focus();\n }\n });\n }\n };\n if ([HOME, END].includes(which) || offsetObj.sibling || !focusMenuElement) {\n // ========================== Sibling ==========================\n // Find walkable focus menu element container\n var parentQueryContainer;\n if (!focusMenuElement || mode === 'inline') {\n parentQueryContainer = containerRef.current;\n } else {\n parentQueryContainer = findContainerUL(focusMenuElement);\n }\n\n // Get next focus element\n var targetElement;\n var focusableElements = getFocusableElements(parentQueryContainer, elements);\n if (which === HOME) {\n targetElement = focusableElements[0];\n } else if (which === END) {\n targetElement = focusableElements[focusableElements.length - 1];\n } else {\n targetElement = getNextFocusElement(parentQueryContainer, elements, focusMenuElement, offsetObj.offset);\n }\n // Focus menu item\n tryFocus(targetElement);\n\n // ======================= InlineTrigger =======================\n } else if (offsetObj.inlineTrigger) {\n // Inline trigger no need switch to sub menu item\n triggerAccessibilityOpen(focusMenuKey);\n // =========================== Level ===========================\n } else if (offsetObj.offset > 0) {\n triggerAccessibilityOpen(focusMenuKey, true);\n cleanRaf();\n rafRef.current = raf(function () {\n // Async should resync elements\n refreshedElements = refreshElements(keys, id);\n var controlId = focusMenuElement.getAttribute('aria-controls');\n var subQueryContainer = document.getElementById(controlId);\n\n // Get sub focusable menu item\n var targetElement = getNextFocusElement(subQueryContainer, refreshedElements.elements);\n\n // Focus menu item\n tryFocus(targetElement);\n }, 5);\n } else if (offsetObj.offset < 0) {\n var keyPath = getKeyPath(focusMenuKey, true);\n var parentKey = keyPath[keyPath.length - 2];\n var parentMenuElement = key2element.get(parentKey);\n\n // Focus menu item\n triggerAccessibilityOpen(parentKey, false);\n tryFocus(parentMenuElement);\n }\n }\n\n // Pass origin key down event\n originOnKeyDown === null || originOnKeyDown === void 0 || originOnKeyDown(e);\n };\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useCallback } from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { nextSlice } from \"../utils/timeUtil\";\nvar PATH_SPLIT = '__RC_UTIL_PATH_SPLIT__';\nvar getPathStr = function getPathStr(keyPath) {\n return keyPath.join(PATH_SPLIT);\n};\nvar getPathKeys = function getPathKeys(keyPathStr) {\n return keyPathStr.split(PATH_SPLIT);\n};\nexport var OVERFLOW_KEY = 'rc-menu-more';\nexport default function useKeyRecords() {\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n internalForceUpdate = _React$useState2[1];\n var key2pathRef = useRef(new Map());\n var path2keyRef = useRef(new Map());\n var _React$useState3 = React.useState([]),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n overflowKeys = _React$useState4[0],\n setOverflowKeys = _React$useState4[1];\n var updateRef = useRef(0);\n var destroyRef = useRef(false);\n var forceUpdate = function forceUpdate() {\n if (!destroyRef.current) {\n internalForceUpdate({});\n }\n };\n var registerPath = useCallback(function (key, keyPath) {\n // Warning for invalidate or duplicated `key`\n if (process.env.NODE_ENV !== 'production') {\n warning(!key2pathRef.current.has(key), \"Duplicated key '\".concat(key, \"' used in Menu by path [\").concat(keyPath.join(' > '), \"]\"));\n }\n\n // Fill map\n var connectedPath = getPathStr(keyPath);\n path2keyRef.current.set(connectedPath, key);\n key2pathRef.current.set(key, connectedPath);\n updateRef.current += 1;\n var id = updateRef.current;\n nextSlice(function () {\n if (id === updateRef.current) {\n forceUpdate();\n }\n });\n }, []);\n var unregisterPath = useCallback(function (key, keyPath) {\n var connectedPath = getPathStr(keyPath);\n path2keyRef.current.delete(connectedPath);\n key2pathRef.current.delete(key);\n }, []);\n var refreshOverflowKeys = useCallback(function (keys) {\n setOverflowKeys(keys);\n }, []);\n var getKeyPath = useCallback(function (eventKey, includeOverflow) {\n var fullPath = key2pathRef.current.get(eventKey) || '';\n var keys = getPathKeys(fullPath);\n if (includeOverflow && overflowKeys.includes(keys[0])) {\n keys.unshift(OVERFLOW_KEY);\n }\n return keys;\n }, [overflowKeys]);\n var isSubPathKey = useCallback(function (pathKeys, eventKey) {\n return pathKeys.some(function (pathKey) {\n var pathKeyList = getKeyPath(pathKey, true);\n return pathKeyList.includes(eventKey);\n });\n }, [getKeyPath]);\n var getKeys = function getKeys() {\n var keys = _toConsumableArray(key2pathRef.current.keys());\n if (overflowKeys.length) {\n keys.push(OVERFLOW_KEY);\n }\n return keys;\n };\n\n /**\n * Find current key related child path keys\n */\n var getSubPathKeys = useCallback(function (key) {\n var connectedPath = \"\".concat(key2pathRef.current.get(key)).concat(PATH_SPLIT);\n var pathKeys = new Set();\n _toConsumableArray(path2keyRef.current.keys()).forEach(function (pathKey) {\n if (pathKey.startsWith(connectedPath)) {\n pathKeys.add(path2keyRef.current.get(pathKey));\n }\n });\n return pathKeys;\n }, []);\n React.useEffect(function () {\n return function () {\n destroyRef.current = true;\n };\n }, []);\n return {\n // Register\n registerPath: registerPath,\n unregisterPath: unregisterPath,\n refreshOverflowKeys: refreshOverflowKeys,\n // Util\n isSubPathKey: isSubPathKey,\n getKeyPath: getKeyPath,\n getKeys: getKeys,\n getSubPathKeys: getSubPathKeys\n };\n}","export function nextSlice(callback) {\n /* istanbul ignore next */\n Promise.resolve().then(callback);\n}","import * as React from 'react';\n\n/**\n * Cache callback function that always return same ref instead.\n * This is used for context optimization.\n */\nexport default function useMemoCallback(func) {\n var funRef = React.useRef(func);\n funRef.current = func;\n var callback = React.useCallback(function () {\n var _funRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_funRef$current = funRef.current) === null || _funRef$current === void 0 ? void 0 : _funRef$current.call.apply(_funRef$current, [funRef].concat(args));\n }, []);\n return func ? callback : undefined;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nvar uniquePrefix = Math.random().toFixed(5).toString().slice(2);\nvar internalId = 0;\nexport default function useUUID(id) {\n var _useMergedState = useMergedState(id, {\n value: id\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n uuid = _useMergedState2[0],\n setUUID = _useMergedState2[1];\n React.useEffect(function () {\n internalId += 1;\n var newId = process.env.NODE_ENV === 'test' ? 'test' : \"\".concat(uniquePrefix, \"-\").concat(internalId);\n setUUID(\"rc-menu-uuid-\".concat(newId));\n }, []);\n return uuid;\n}","import * as React from 'react';\nimport { MenuContext } from \"../context/MenuContext\";\nexport default function useActive(eventKey, disabled, onMouseEnter, onMouseLeave) {\n var _React$useContext = React.useContext(MenuContext),\n activeKey = _React$useContext.activeKey,\n onActive = _React$useContext.onActive,\n onInactive = _React$useContext.onInactive;\n var ret = {\n active: activeKey === eventKey\n };\n\n // Skip when disabled\n if (!disabled) {\n ret.onMouseEnter = function (domEvent) {\n onMouseEnter === null || onMouseEnter === void 0 || onMouseEnter({\n key: eventKey,\n domEvent: domEvent\n });\n onActive(eventKey);\n };\n ret.onMouseLeave = function (domEvent) {\n onMouseLeave === null || onMouseLeave === void 0 || onMouseLeave({\n key: eventKey,\n domEvent: domEvent\n });\n onInactive(eventKey);\n };\n }\n return ret;\n}","import * as React from 'react';\nimport { MenuContext } from \"../context/MenuContext\";\nexport default function useDirectionStyle(level) {\n var _React$useContext = React.useContext(MenuContext),\n mode = _React$useContext.mode,\n rtl = _React$useContext.rtl,\n inlineIndent = _React$useContext.inlineIndent;\n if (mode !== 'inline') {\n return null;\n }\n var len = level;\n return rtl ? {\n paddingRight: len * inlineIndent\n } : {\n paddingLeft: len * inlineIndent\n };\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nexport default function Icon(_ref) {\n var icon = _ref.icon,\n props = _ref.props,\n children = _ref.children;\n var iconNode;\n if (icon === null || icon === false) {\n return null;\n }\n if (typeof icon === 'function') {\n iconNode = /*#__PURE__*/React.createElement(icon, _objectSpread({}, props));\n } else if (typeof icon !== \"boolean\") {\n // Compatible for origin definition\n iconNode = icon;\n }\n return iconNode || children || null;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"item\"];\nimport warning from \"rc-util/es/warning\";\n\n/**\n * `onClick` event return `info.item` which point to react node directly.\n * We should warning this since it will not work on FC.\n */\nexport function warnItemProp(_ref) {\n var item = _ref.item,\n restInfo = _objectWithoutProperties(_ref, _excluded);\n Object.defineProperty(restInfo, 'item', {\n get: function get() {\n warning(false, '`info.item` is deprecated since we will move to function component that not provides React Node instance in future.');\n return item;\n }\n });\n return restInfo;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"title\", \"attribute\", \"elementRef\"],\n _excluded2 = [\"style\", \"className\", \"eventKey\", \"warnKey\", \"disabled\", \"itemIcon\", \"children\", \"role\", \"onMouseEnter\", \"onMouseLeave\", \"onClick\", \"onKeyDown\", \"onFocus\"],\n _excluded3 = [\"active\"];\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport omit from \"rc-util/es/omit\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { useMenuId } from \"./context/IdContext\";\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useFullPath, useMeasure } from \"./context/PathContext\";\nimport PrivateContext from \"./context/PrivateContext\";\nimport useActive from \"./hooks/useActive\";\nimport useDirectionStyle from \"./hooks/useDirectionStyle\";\nimport Icon from \"./Icon\";\nimport { warnItemProp } from \"./utils/warnUtil\";\n// Since Menu event provide the `info.item` which point to the MenuItem node instance.\n// We have to use class component here.\n// This should be removed from doc & api in future.\nvar LegacyMenuItem = /*#__PURE__*/function (_React$Component) {\n _inherits(LegacyMenuItem, _React$Component);\n var _super = _createSuper(LegacyMenuItem);\n function LegacyMenuItem() {\n _classCallCheck(this, LegacyMenuItem);\n return _super.apply(this, arguments);\n }\n _createClass(LegacyMenuItem, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n title = _this$props.title,\n attribute = _this$props.attribute,\n elementRef = _this$props.elementRef,\n restProps = _objectWithoutProperties(_this$props, _excluded);\n\n // Here the props are eventually passed to the DOM element.\n // React does not recognize non-standard attributes.\n // Therefore, remove the props that is not used here.\n // ref: https://github.com/ant-design/ant-design/issues/41395\n var passedProps = omit(restProps, ['eventKey', 'popupClassName', 'popupOffset', 'onTitleClick']);\n warning(!attribute, '`attribute` of Menu.Item is deprecated. Please pass attribute directly.');\n return /*#__PURE__*/React.createElement(Overflow.Item, _extends({}, attribute, {\n title: typeof title === 'string' ? title : undefined\n }, passedProps, {\n ref: elementRef\n }));\n }\n }]);\n return LegacyMenuItem;\n}(React.Component);\n/**\n * Real Menu Item component\n */\nvar InternalMenuItem = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var style = props.style,\n className = props.className,\n eventKey = props.eventKey,\n warnKey = props.warnKey,\n disabled = props.disabled,\n itemIcon = props.itemIcon,\n children = props.children,\n role = props.role,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onClick = props.onClick,\n onKeyDown = props.onKeyDown,\n onFocus = props.onFocus,\n restProps = _objectWithoutProperties(props, _excluded2);\n var domDataId = useMenuId(eventKey);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n onItemClick = _React$useContext.onItemClick,\n contextDisabled = _React$useContext.disabled,\n overflowDisabled = _React$useContext.overflowDisabled,\n contextItemIcon = _React$useContext.itemIcon,\n selectedKeys = _React$useContext.selectedKeys,\n onActive = _React$useContext.onActive;\n var _React$useContext2 = React.useContext(PrivateContext),\n _internalRenderMenuItem = _React$useContext2._internalRenderMenuItem;\n var itemCls = \"\".concat(prefixCls, \"-item\");\n var legacyMenuItemRef = React.useRef();\n var elementRef = React.useRef();\n var mergedDisabled = contextDisabled || disabled;\n var mergedEleRef = useComposeRef(ref, elementRef);\n var connectedKeys = useFullPath(eventKey);\n\n // ================================ Warn ================================\n if (process.env.NODE_ENV !== 'production' && warnKey) {\n warning(false, 'MenuItem should not leave undefined `key`.');\n }\n\n // ============================= Info =============================\n var getEventInfo = function getEventInfo(e) {\n return {\n key: eventKey,\n // Note: For legacy code is reversed which not like other antd component\n keyPath: _toConsumableArray(connectedKeys).reverse(),\n item: legacyMenuItemRef.current,\n domEvent: e\n };\n };\n\n // ============================= Icon =============================\n var mergedItemIcon = itemIcon || contextItemIcon;\n\n // ============================ Active ============================\n var _useActive = useActive(eventKey, mergedDisabled, onMouseEnter, onMouseLeave),\n active = _useActive.active,\n activeProps = _objectWithoutProperties(_useActive, _excluded3);\n\n // ============================ Select ============================\n var selected = selectedKeys.includes(eventKey);\n\n // ======================== DirectionStyle ========================\n var directionStyle = useDirectionStyle(connectedKeys.length);\n\n // ============================ Events ============================\n var onInternalClick = function onInternalClick(e) {\n if (mergedDisabled) {\n return;\n }\n var info = getEventInfo(e);\n onClick === null || onClick === void 0 || onClick(warnItemProp(info));\n onItemClick(info);\n };\n var onInternalKeyDown = function onInternalKeyDown(e) {\n onKeyDown === null || onKeyDown === void 0 || onKeyDown(e);\n if (e.which === KeyCode.ENTER) {\n var info = getEventInfo(e);\n\n // Legacy. Key will also trigger click event\n onClick === null || onClick === void 0 || onClick(warnItemProp(info));\n onItemClick(info);\n }\n };\n\n /**\n * Used for accessibility. Helper will focus element without key board.\n * We should manually trigger an active\n */\n var onInternalFocus = function onInternalFocus(e) {\n onActive(eventKey);\n onFocus === null || onFocus === void 0 || onFocus(e);\n };\n\n // ============================ Render ============================\n var optionRoleProps = {};\n if (props.role === 'option') {\n optionRoleProps['aria-selected'] = selected;\n }\n var renderNode = /*#__PURE__*/React.createElement(LegacyMenuItem, _extends({\n ref: legacyMenuItemRef,\n elementRef: mergedEleRef,\n role: role === null ? 'none' : role || 'menuitem',\n tabIndex: disabled ? null : -1,\n \"data-menu-id\": overflowDisabled && domDataId ? null : domDataId\n }, restProps, activeProps, optionRoleProps, {\n component: \"li\",\n \"aria-disabled\": disabled,\n style: _objectSpread(_objectSpread({}, directionStyle), style),\n className: classNames(itemCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(itemCls, \"-active\"), active), _defineProperty(_classNames, \"\".concat(itemCls, \"-selected\"), selected), _defineProperty(_classNames, \"\".concat(itemCls, \"-disabled\"), mergedDisabled), _classNames), className),\n onClick: onInternalClick,\n onKeyDown: onInternalKeyDown,\n onFocus: onInternalFocus\n }), children, /*#__PURE__*/React.createElement(Icon, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n isSelected: selected\n }),\n icon: mergedItemIcon\n }));\n if (_internalRenderMenuItem) {\n renderNode = _internalRenderMenuItem(renderNode, props, {\n selected: selected\n });\n }\n return renderNode;\n});\nfunction MenuItem(props, ref) {\n var eventKey = props.eventKey;\n\n // ==================== Record KeyPath ====================\n var measure = useMeasure();\n var connectedKeyPath = useFullPath(eventKey);\n\n // eslint-disable-next-line consistent-return\n React.useEffect(function () {\n if (measure) {\n measure.registerPath(eventKey, connectedKeyPath);\n return function () {\n measure.unregisterPath(eventKey, connectedKeyPath);\n };\n }\n }, [connectedKeyPath]);\n if (measure) {\n return null;\n }\n\n // ======================== Render ========================\n return /*#__PURE__*/React.createElement(InternalMenuItem, _extends({}, props, {\n ref: ref\n }));\n}\nexport default /*#__PURE__*/React.forwardRef(MenuItem);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"children\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from \"../context/MenuContext\";\nvar InternalSubMenuList = function InternalSubMenuList(_ref, ref) {\n var className = _ref.className,\n children = _ref.children,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n mode = _React$useContext.mode,\n rtl = _React$useContext.rtl;\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, rtl && \"\".concat(prefixCls, \"-rtl\"), \"\".concat(prefixCls, \"-sub\"), \"\".concat(prefixCls, \"-\").concat(mode === 'inline' ? 'inline' : 'vertical'), className),\n role: \"menu\"\n }, restProps, {\n \"data-menu-list\": true,\n ref: ref\n }), children);\n};\nvar SubMenuList = /*#__PURE__*/React.forwardRef(InternalSubMenuList);\nSubMenuList.displayName = 'SubMenuList';\nexport default SubMenuList;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nexport function parseChildren(children, keyPath) {\n return toArray(children).map(function (child, index) {\n if ( /*#__PURE__*/React.isValidElement(child)) {\n var _eventKey, _child$props;\n var key = child.key;\n var eventKey = (_eventKey = (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.eventKey) !== null && _eventKey !== void 0 ? _eventKey : key;\n var emptyKey = eventKey === null || eventKey === undefined;\n if (emptyKey) {\n eventKey = \"tmp_key-\".concat([].concat(_toConsumableArray(keyPath), [index]).join('-'));\n }\n var cloneProps = {\n key: eventKey,\n eventKey: eventKey\n };\n if (process.env.NODE_ENV !== 'production' && emptyKey) {\n cloneProps.warnKey = true;\n }\n return /*#__PURE__*/React.cloneElement(child, cloneProps);\n }\n return child;\n });\n}","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nexport var placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflow\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflow\n }\n};\nexport var placementsRtl = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow\n },\n rightTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow\n },\n rightBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflow\n },\n leftTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow\n },\n leftBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflow\n }\n};\nexport default placements;","export function getMotion(mode, motion, defaultMotions) {\n if (motion) {\n return motion;\n }\n if (defaultMotions) {\n return defaultMotions[mode] || defaultMotions.other;\n }\n return undefined;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Trigger from '@rc-component/trigger';\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nimport { MenuContext } from \"../context/MenuContext\";\nimport { placements, placementsRtl } from \"../placements\";\nimport { getMotion } from \"../utils/motionUtil\";\nvar popupPlacementMap = {\n horizontal: 'bottomLeft',\n vertical: 'rightTop',\n 'vertical-left': 'rightTop',\n 'vertical-right': 'leftTop'\n};\nexport default function PopupTrigger(_ref) {\n var prefixCls = _ref.prefixCls,\n visible = _ref.visible,\n children = _ref.children,\n popup = _ref.popup,\n popupStyle = _ref.popupStyle,\n popupClassName = _ref.popupClassName,\n popupOffset = _ref.popupOffset,\n disabled = _ref.disabled,\n mode = _ref.mode,\n onVisibleChange = _ref.onVisibleChange;\n var _React$useContext = React.useContext(MenuContext),\n getPopupContainer = _React$useContext.getPopupContainer,\n rtl = _React$useContext.rtl,\n subMenuOpenDelay = _React$useContext.subMenuOpenDelay,\n subMenuCloseDelay = _React$useContext.subMenuCloseDelay,\n builtinPlacements = _React$useContext.builtinPlacements,\n triggerSubMenuAction = _React$useContext.triggerSubMenuAction,\n forceSubMenuRender = _React$useContext.forceSubMenuRender,\n rootClassName = _React$useContext.rootClassName,\n motion = _React$useContext.motion,\n defaultMotions = _React$useContext.defaultMotions;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerVisible = _React$useState2[0],\n setInnerVisible = _React$useState2[1];\n var placement = rtl ? _objectSpread(_objectSpread({}, placementsRtl), builtinPlacements) : _objectSpread(_objectSpread({}, placements), builtinPlacements);\n var popupPlacement = popupPlacementMap[mode];\n var targetMotion = getMotion(mode, motion, defaultMotions);\n var targetMotionRef = React.useRef(targetMotion);\n if (mode !== 'inline') {\n /**\n * PopupTrigger is only used for vertical and horizontal types.\n * When collapsed is unfolded, the inline animation will destroy the vertical animation.\n */\n targetMotionRef.current = targetMotion;\n }\n var mergedMotion = _objectSpread(_objectSpread({}, targetMotionRef.current), {}, {\n leavedClassName: \"\".concat(prefixCls, \"-hidden\"),\n removeOnLeave: false,\n motionAppear: true\n });\n\n // Delay to change visible\n var visibleRef = React.useRef();\n React.useEffect(function () {\n visibleRef.current = raf(function () {\n setInnerVisible(visible);\n });\n return function () {\n raf.cancel(visibleRef.current);\n };\n }, [visible]);\n return /*#__PURE__*/React.createElement(Trigger, {\n prefixCls: prefixCls,\n popupClassName: classNames(\"\".concat(prefixCls, \"-popup\"), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), rtl), popupClassName, rootClassName),\n stretch: mode === 'horizontal' ? 'minWidth' : null,\n getPopupContainer: getPopupContainer,\n builtinPlacements: placement,\n popupPlacement: popupPlacement,\n popupVisible: innerVisible,\n popup: popup,\n popupStyle: popupStyle,\n popupAlign: popupOffset && {\n offset: popupOffset\n },\n action: disabled ? [] : [triggerSubMenuAction],\n mouseEnterDelay: subMenuOpenDelay,\n mouseLeaveDelay: subMenuCloseDelay,\n onPopupVisibleChange: onVisibleChange,\n forceRender: forceSubMenuRender,\n popupMotion: mergedMotion,\n fresh: true\n }, children);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from \"../utils/motionUtil\";\nimport MenuContextProvider, { MenuContext } from \"../context/MenuContext\";\nimport SubMenuList from \"./SubMenuList\";\nexport default function InlineSubMenuList(_ref) {\n var id = _ref.id,\n open = _ref.open,\n keyPath = _ref.keyPath,\n children = _ref.children;\n var fixedMode = 'inline';\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n forceSubMenuRender = _React$useContext.forceSubMenuRender,\n motion = _React$useContext.motion,\n defaultMotions = _React$useContext.defaultMotions,\n mode = _React$useContext.mode;\n\n // Always use latest mode check\n var sameModeRef = React.useRef(false);\n sameModeRef.current = mode === fixedMode;\n\n // We record `destroy` mark here since when mode change from `inline` to others.\n // The inline list should remove when motion end.\n var _React$useState = React.useState(!sameModeRef.current),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n destroy = _React$useState2[0],\n setDestroy = _React$useState2[1];\n var mergedOpen = sameModeRef.current ? open : false;\n\n // ================================= Effect =================================\n // Reset destroy state when mode change back\n React.useEffect(function () {\n if (sameModeRef.current) {\n setDestroy(false);\n }\n }, [mode]);\n\n // ================================= Render =================================\n var mergedMotion = _objectSpread({}, getMotion(fixedMode, motion, defaultMotions));\n\n // No need appear since nest inlineCollapse changed\n if (keyPath.length > 1) {\n mergedMotion.motionAppear = false;\n }\n\n // Hide inline list when mode changed and motion end\n var originOnVisibleChanged = mergedMotion.onVisibleChanged;\n mergedMotion.onVisibleChanged = function (newVisible) {\n if (!sameModeRef.current && !newVisible) {\n setDestroy(true);\n }\n return originOnVisibleChanged === null || originOnVisibleChanged === void 0 ? void 0 : originOnVisibleChanged(newVisible);\n };\n if (destroy) {\n return null;\n }\n return /*#__PURE__*/React.createElement(MenuContextProvider, {\n mode: fixedMode,\n locked: !sameModeRef.current\n }, /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: mergedOpen\n }, mergedMotion, {\n forceRender: forceSubMenuRender,\n removeOnLeave: false,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }), function (_ref2) {\n var motionClassName = _ref2.className,\n motionStyle = _ref2.style;\n return /*#__PURE__*/React.createElement(SubMenuList, {\n id: id,\n className: motionClassName,\n style: motionStyle\n }, children);\n }));\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"style\", \"className\", \"title\", \"eventKey\", \"warnKey\", \"disabled\", \"internalPopupClose\", \"children\", \"itemIcon\", \"expandIcon\", \"popupClassName\", \"popupOffset\", \"popupStyle\", \"onClick\", \"onMouseEnter\", \"onMouseLeave\", \"onTitleClick\", \"onTitleMouseEnter\", \"onTitleMouseLeave\"],\n _excluded2 = [\"active\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport warning from \"rc-util/es/warning\";\nimport SubMenuList from \"./SubMenuList\";\nimport { parseChildren } from \"../utils/commonUtil\";\nimport MenuContextProvider, { MenuContext } from \"../context/MenuContext\";\nimport useMemoCallback from \"../hooks/useMemoCallback\";\nimport PopupTrigger from \"./PopupTrigger\";\nimport Icon from \"../Icon\";\nimport useActive from \"../hooks/useActive\";\nimport { warnItemProp } from \"../utils/warnUtil\";\nimport useDirectionStyle from \"../hooks/useDirectionStyle\";\nimport InlineSubMenuList from \"./InlineSubMenuList\";\nimport { PathTrackerContext, PathUserContext, useFullPath, useMeasure } from \"../context/PathContext\";\nimport { useMenuId } from \"../context/IdContext\";\nimport PrivateContext from \"../context/PrivateContext\";\nvar InternalSubMenu = function InternalSubMenu(props) {\n var _classNames;\n var style = props.style,\n className = props.className,\n title = props.title,\n eventKey = props.eventKey,\n warnKey = props.warnKey,\n disabled = props.disabled,\n internalPopupClose = props.internalPopupClose,\n children = props.children,\n itemIcon = props.itemIcon,\n expandIcon = props.expandIcon,\n popupClassName = props.popupClassName,\n popupOffset = props.popupOffset,\n popupStyle = props.popupStyle,\n onClick = props.onClick,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onTitleClick = props.onTitleClick,\n onTitleMouseEnter = props.onTitleMouseEnter,\n onTitleMouseLeave = props.onTitleMouseLeave,\n restProps = _objectWithoutProperties(props, _excluded);\n var domDataId = useMenuId(eventKey);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n mode = _React$useContext.mode,\n openKeys = _React$useContext.openKeys,\n contextDisabled = _React$useContext.disabled,\n overflowDisabled = _React$useContext.overflowDisabled,\n activeKey = _React$useContext.activeKey,\n selectedKeys = _React$useContext.selectedKeys,\n contextItemIcon = _React$useContext.itemIcon,\n contextExpandIcon = _React$useContext.expandIcon,\n onItemClick = _React$useContext.onItemClick,\n onOpenChange = _React$useContext.onOpenChange,\n onActive = _React$useContext.onActive;\n var _React$useContext2 = React.useContext(PrivateContext),\n _internalRenderSubMenuItem = _React$useContext2._internalRenderSubMenuItem;\n var _React$useContext3 = React.useContext(PathUserContext),\n isSubPathKey = _React$useContext3.isSubPathKey;\n var connectedPath = useFullPath();\n var subMenuPrefixCls = \"\".concat(prefixCls, \"-submenu\");\n var mergedDisabled = contextDisabled || disabled;\n var elementRef = React.useRef();\n var popupRef = React.useRef();\n\n // ================================ Warn ================================\n if (process.env.NODE_ENV !== 'production' && warnKey) {\n warning(false, 'SubMenu should not leave undefined `key`.');\n }\n\n // ================================ Icon ================================\n var mergedItemIcon = itemIcon !== null && itemIcon !== void 0 ? itemIcon : contextItemIcon;\n var mergedExpandIcon = expandIcon !== null && expandIcon !== void 0 ? expandIcon : contextExpandIcon;\n\n // ================================ Open ================================\n var originOpen = openKeys.includes(eventKey);\n var open = !overflowDisabled && originOpen;\n\n // =============================== Select ===============================\n var childrenSelected = isSubPathKey(selectedKeys, eventKey);\n\n // =============================== Active ===============================\n var _useActive = useActive(eventKey, mergedDisabled, onTitleMouseEnter, onTitleMouseLeave),\n active = _useActive.active,\n activeProps = _objectWithoutProperties(_useActive, _excluded2);\n\n // Fallback of active check to avoid hover on menu title or disabled item\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n childrenActive = _React$useState2[0],\n setChildrenActive = _React$useState2[1];\n var triggerChildrenActive = function triggerChildrenActive(newActive) {\n if (!mergedDisabled) {\n setChildrenActive(newActive);\n }\n };\n var onInternalMouseEnter = function onInternalMouseEnter(domEvent) {\n triggerChildrenActive(true);\n onMouseEnter === null || onMouseEnter === void 0 || onMouseEnter({\n key: eventKey,\n domEvent: domEvent\n });\n };\n var onInternalMouseLeave = function onInternalMouseLeave(domEvent) {\n triggerChildrenActive(false);\n onMouseLeave === null || onMouseLeave === void 0 || onMouseLeave({\n key: eventKey,\n domEvent: domEvent\n });\n };\n var mergedActive = React.useMemo(function () {\n if (active) {\n return active;\n }\n if (mode !== 'inline') {\n return childrenActive || isSubPathKey([activeKey], eventKey);\n }\n return false;\n }, [mode, active, activeKey, childrenActive, eventKey, isSubPathKey]);\n\n // ========================== DirectionStyle ==========================\n var directionStyle = useDirectionStyle(connectedPath.length);\n\n // =============================== Events ===============================\n // >>>> Title click\n var onInternalTitleClick = function onInternalTitleClick(e) {\n // Skip if disabled\n if (mergedDisabled) {\n return;\n }\n onTitleClick === null || onTitleClick === void 0 || onTitleClick({\n key: eventKey,\n domEvent: e\n });\n\n // Trigger open by click when mode is `inline`\n if (mode === 'inline') {\n onOpenChange(eventKey, !originOpen);\n }\n };\n\n // >>>> Context for children click\n var onMergedItemClick = useMemoCallback(function (info) {\n onClick === null || onClick === void 0 || onClick(warnItemProp(info));\n onItemClick(info);\n });\n\n // >>>>> Visible change\n var onPopupVisibleChange = function onPopupVisibleChange(newVisible) {\n if (mode !== 'inline') {\n onOpenChange(eventKey, newVisible);\n }\n };\n\n /**\n * Used for accessibility. Helper will focus element without key board.\n * We should manually trigger an active\n */\n var onInternalFocus = function onInternalFocus() {\n onActive(eventKey);\n };\n\n // =============================== Render ===============================\n var popupId = domDataId && \"\".concat(domDataId, \"-popup\");\n\n // >>>>> Title\n var titleNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n role: \"menuitem\",\n style: directionStyle,\n className: \"\".concat(subMenuPrefixCls, \"-title\"),\n tabIndex: mergedDisabled ? null : -1,\n ref: elementRef,\n title: typeof title === 'string' ? title : null,\n \"data-menu-id\": overflowDisabled && domDataId ? null : domDataId,\n \"aria-expanded\": open,\n \"aria-haspopup\": true,\n \"aria-controls\": popupId,\n \"aria-disabled\": mergedDisabled,\n onClick: onInternalTitleClick,\n onFocus: onInternalFocus\n }, activeProps), title, /*#__PURE__*/React.createElement(Icon, {\n icon: mode !== 'horizontal' ? mergedExpandIcon : undefined,\n props: _objectSpread(_objectSpread({}, props), {}, {\n isOpen: open,\n // [Legacy] Not sure why need this mark\n isSubMenu: true\n })\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(subMenuPrefixCls, \"-arrow\")\n })));\n\n // Cache mode if it change to `inline` which do not have popup motion\n var triggerModeRef = React.useRef(mode);\n if (mode !== 'inline' && connectedPath.length > 1) {\n triggerModeRef.current = 'vertical';\n } else {\n triggerModeRef.current = mode;\n }\n if (!overflowDisabled) {\n var triggerMode = triggerModeRef.current;\n\n // Still wrap with Trigger here since we need avoid react re-mount dom node\n // Which makes motion failed\n titleNode = /*#__PURE__*/React.createElement(PopupTrigger, {\n mode: triggerMode,\n prefixCls: subMenuPrefixCls,\n visible: !internalPopupClose && open && mode !== 'inline',\n popupClassName: popupClassName,\n popupOffset: popupOffset,\n popupStyle: popupStyle,\n popup: /*#__PURE__*/React.createElement(MenuContextProvider\n // Special handle of horizontal mode\n , {\n mode: triggerMode === 'horizontal' ? 'vertical' : triggerMode\n }, /*#__PURE__*/React.createElement(SubMenuList, {\n id: popupId,\n ref: popupRef\n }, children)),\n disabled: mergedDisabled,\n onVisibleChange: onPopupVisibleChange\n }, titleNode);\n }\n\n // >>>>> List node\n var listNode = /*#__PURE__*/React.createElement(Overflow.Item, _extends({\n role: \"none\"\n }, restProps, {\n component: \"li\",\n style: style,\n className: classNames(subMenuPrefixCls, \"\".concat(subMenuPrefixCls, \"-\").concat(mode), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-open\"), open), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-active\"), mergedActive), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-selected\"), childrenSelected), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-disabled\"), mergedDisabled), _classNames)),\n onMouseEnter: onInternalMouseEnter,\n onMouseLeave: onInternalMouseLeave\n }), titleNode, !overflowDisabled && /*#__PURE__*/React.createElement(InlineSubMenuList, {\n id: popupId,\n open: open,\n keyPath: connectedPath\n }, children));\n if (_internalRenderSubMenuItem) {\n listNode = _internalRenderSubMenuItem(listNode, props, {\n selected: childrenSelected,\n active: mergedActive,\n open: open,\n disabled: mergedDisabled\n });\n }\n\n // >>>>> Render\n return /*#__PURE__*/React.createElement(MenuContextProvider, {\n onItemClick: onMergedItemClick,\n mode: mode === 'horizontal' ? 'vertical' : mode,\n itemIcon: mergedItemIcon,\n expandIcon: mergedExpandIcon\n }, listNode);\n};\nexport default function SubMenu(props) {\n var eventKey = props.eventKey,\n children = props.children;\n var connectedKeyPath = useFullPath(eventKey);\n var childList = parseChildren(children, connectedKeyPath);\n\n // ==================== Record KeyPath ====================\n var measure = useMeasure();\n\n // eslint-disable-next-line consistent-return\n React.useEffect(function () {\n if (measure) {\n measure.registerPath(eventKey, connectedKeyPath);\n return function () {\n measure.unregisterPath(eventKey, connectedKeyPath);\n };\n }\n }, [connectedKeyPath]);\n var renderNode;\n\n // ======================== Render ========================\n if (measure) {\n renderNode = childList;\n } else {\n renderNode = /*#__PURE__*/React.createElement(InternalSubMenu, props, childList);\n }\n return /*#__PURE__*/React.createElement(PathTrackerContext.Provider, {\n value: connectedKeyPath\n }, renderNode);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"title\", \"eventKey\", \"children\"],\n _excluded2 = [\"children\"];\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useFullPath, useMeasure } from \"./context/PathContext\";\nimport { parseChildren } from \"./utils/commonUtil\";\nvar InternalMenuItemGroup = function InternalMenuItemGroup(_ref) {\n var className = _ref.className,\n title = _ref.title,\n eventKey = _ref.eventKey,\n children = _ref.children,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls;\n var groupPrefixCls = \"\".concat(prefixCls, \"-item-group\");\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n role: \"presentation\"\n }, restProps, {\n onClick: function onClick(e) {\n return e.stopPropagation();\n },\n className: classNames(groupPrefixCls, className)\n }), /*#__PURE__*/React.createElement(\"div\", {\n role: \"presentation\",\n className: \"\".concat(groupPrefixCls, \"-title\"),\n title: typeof title === 'string' ? title : undefined\n }, title), /*#__PURE__*/React.createElement(\"ul\", {\n role: \"group\",\n className: \"\".concat(groupPrefixCls, \"-list\")\n }, children));\n};\nexport default function MenuItemGroup(_ref2) {\n var children = _ref2.children,\n props = _objectWithoutProperties(_ref2, _excluded2);\n var connectedKeyPath = useFullPath(props.eventKey);\n var childList = parseChildren(children, connectedKeyPath);\n var measure = useMeasure();\n if (measure) {\n return childList;\n }\n return /*#__PURE__*/React.createElement(InternalMenuItemGroup, omit(props, ['warnKey']), childList);\n}","import * as React from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useMeasure } from \"./context/PathContext\";\nexport default function Divider(_ref) {\n var className = _ref.className,\n style = _ref.style;\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls;\n var measure = useMeasure();\n if (measure) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"li\", {\n role: \"separator\",\n className: classNames(\"\".concat(prefixCls, \"-item-divider\"), className),\n style: style\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"label\", \"children\", \"key\", \"type\"];\nimport * as React from 'react';\nimport MenuItemGroup from \"../MenuItemGroup\";\nimport SubMenu from \"../SubMenu\";\nimport Divider from \"../Divider\";\nimport MenuItem from \"../MenuItem\";\nimport { parseChildren } from \"./commonUtil\";\nfunction convertItemsToNodes(list) {\n return (list || []).map(function (opt, index) {\n if (opt && _typeof(opt) === 'object') {\n var _ref = opt,\n label = _ref.label,\n children = _ref.children,\n key = _ref.key,\n type = _ref.type,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var mergedKey = key !== null && key !== void 0 ? key : \"tmp-\".concat(index);\n\n // MenuItemGroup & SubMenuItem\n if (children || type === 'group') {\n if (type === 'group') {\n // Group\n return /*#__PURE__*/React.createElement(MenuItemGroup, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n\n // Sub Menu\n return /*#__PURE__*/React.createElement(SubMenu, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n\n // MenuItem & Divider\n if (type === 'divider') {\n return /*#__PURE__*/React.createElement(Divider, _extends({\n key: mergedKey\n }, restProps));\n }\n return /*#__PURE__*/React.createElement(MenuItem, _extends({\n key: mergedKey\n }, restProps), label);\n }\n return null;\n }).filter(function (opt) {\n return opt;\n });\n}\nexport function parseItems(children, items, keyPath) {\n var childNodes = children;\n if (items) {\n childNodes = convertItemsToNodes(items);\n }\n return parseChildren(childNodes, keyPath);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"rootClassName\", \"style\", \"className\", \"tabIndex\", \"items\", \"children\", \"direction\", \"id\", \"mode\", \"inlineCollapsed\", \"disabled\", \"disabledOverflow\", \"subMenuOpenDelay\", \"subMenuCloseDelay\", \"forceSubMenuRender\", \"defaultOpenKeys\", \"openKeys\", \"activeKey\", \"defaultActiveFirst\", \"selectable\", \"multiple\", \"defaultSelectedKeys\", \"selectedKeys\", \"onSelect\", \"onDeselect\", \"inlineIndent\", \"motion\", \"defaultMotions\", \"triggerSubMenuAction\", \"builtinPlacements\", \"itemIcon\", \"expandIcon\", \"overflowedIndicator\", \"overflowedIndicatorPopupClassName\", \"getPopupContainer\", \"onClick\", \"onOpenChange\", \"onKeyDown\", \"openAnimation\", \"openTransitionName\", \"_internalRenderMenuItem\", \"_internalRenderSubMenuItem\"];\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { useImperativeHandle } from 'react';\nimport { flushSync } from 'react-dom';\nimport { IdContext } from \"./context/IdContext\";\nimport MenuContextProvider from \"./context/MenuContext\";\nimport { PathRegisterContext, PathUserContext } from \"./context/PathContext\";\nimport PrivateContext from \"./context/PrivateContext\";\nimport { getFocusableElements, refreshElements, useAccessibility } from \"./hooks/useAccessibility\";\nimport useKeyRecords, { OVERFLOW_KEY } from \"./hooks/useKeyRecords\";\nimport useMemoCallback from \"./hooks/useMemoCallback\";\nimport useUUID from \"./hooks/useUUID\";\nimport MenuItem from \"./MenuItem\";\nimport SubMenu from \"./SubMenu\";\nimport { parseItems } from \"./utils/nodeUtil\";\nimport { warnItemProp } from \"./utils/warnUtil\";\n\n/**\n * Menu modify after refactor:\n * ## Add\n * - disabled\n *\n * ## Remove\n * - openTransitionName\n * - openAnimation\n * - onDestroy\n * - siderCollapsed: Seems antd do not use this prop (Need test in antd)\n * - collapsedWidth: Seems this logic should be handle by antd Layout.Sider\n */\n\n// optimize for render\nvar EMPTY_LIST = [];\nvar Menu = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _childList$, _classNames;\n var _ref = props,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-menu' : _ref$prefixCls,\n rootClassName = _ref.rootClassName,\n style = _ref.style,\n className = _ref.className,\n _ref$tabIndex = _ref.tabIndex,\n tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,\n items = _ref.items,\n children = _ref.children,\n direction = _ref.direction,\n id = _ref.id,\n _ref$mode = _ref.mode,\n mode = _ref$mode === void 0 ? 'vertical' : _ref$mode,\n inlineCollapsed = _ref.inlineCollapsed,\n disabled = _ref.disabled,\n disabledOverflow = _ref.disabledOverflow,\n _ref$subMenuOpenDelay = _ref.subMenuOpenDelay,\n subMenuOpenDelay = _ref$subMenuOpenDelay === void 0 ? 0.1 : _ref$subMenuOpenDelay,\n _ref$subMenuCloseDela = _ref.subMenuCloseDelay,\n subMenuCloseDelay = _ref$subMenuCloseDela === void 0 ? 0.1 : _ref$subMenuCloseDela,\n forceSubMenuRender = _ref.forceSubMenuRender,\n defaultOpenKeys = _ref.defaultOpenKeys,\n openKeys = _ref.openKeys,\n activeKey = _ref.activeKey,\n defaultActiveFirst = _ref.defaultActiveFirst,\n _ref$selectable = _ref.selectable,\n selectable = _ref$selectable === void 0 ? true : _ref$selectable,\n _ref$multiple = _ref.multiple,\n multiple = _ref$multiple === void 0 ? false : _ref$multiple,\n defaultSelectedKeys = _ref.defaultSelectedKeys,\n selectedKeys = _ref.selectedKeys,\n onSelect = _ref.onSelect,\n onDeselect = _ref.onDeselect,\n _ref$inlineIndent = _ref.inlineIndent,\n inlineIndent = _ref$inlineIndent === void 0 ? 24 : _ref$inlineIndent,\n motion = _ref.motion,\n defaultMotions = _ref.defaultMotions,\n _ref$triggerSubMenuAc = _ref.triggerSubMenuAction,\n triggerSubMenuAction = _ref$triggerSubMenuAc === void 0 ? 'hover' : _ref$triggerSubMenuAc,\n builtinPlacements = _ref.builtinPlacements,\n itemIcon = _ref.itemIcon,\n expandIcon = _ref.expandIcon,\n _ref$overflowedIndica = _ref.overflowedIndicator,\n overflowedIndicator = _ref$overflowedIndica === void 0 ? '...' : _ref$overflowedIndica,\n overflowedIndicatorPopupClassName = _ref.overflowedIndicatorPopupClassName,\n getPopupContainer = _ref.getPopupContainer,\n onClick = _ref.onClick,\n onOpenChange = _ref.onOpenChange,\n onKeyDown = _ref.onKeyDown,\n openAnimation = _ref.openAnimation,\n openTransitionName = _ref.openTransitionName,\n _internalRenderMenuItem = _ref._internalRenderMenuItem,\n _internalRenderSubMenuItem = _ref._internalRenderSubMenuItem,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var childList = React.useMemo(function () {\n return parseItems(children, items, EMPTY_LIST);\n }, [children, items]);\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n mounted = _React$useState2[0],\n setMounted = _React$useState2[1];\n var containerRef = React.useRef();\n var uuid = useUUID(id);\n var isRtl = direction === 'rtl';\n\n // ========================= Warn =========================\n if (process.env.NODE_ENV !== 'production') {\n warning(!openAnimation && !openTransitionName, '`openAnimation` and `openTransitionName` is removed. Please use `motion` or `defaultMotion` instead.');\n }\n\n // ========================= Open =========================\n var _useMergedState = useMergedState(defaultOpenKeys, {\n value: openKeys,\n postState: function postState(keys) {\n return keys || EMPTY_LIST;\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedOpenKeys = _useMergedState2[0],\n setMergedOpenKeys = _useMergedState2[1];\n\n // React 18 will merge mouse event which means we open key will not sync\n // ref: https://github.com/ant-design/ant-design/issues/38818\n var triggerOpenKeys = function triggerOpenKeys(keys) {\n var forceFlush = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n function doUpdate() {\n setMergedOpenKeys(keys);\n onOpenChange === null || onOpenChange === void 0 || onOpenChange(keys);\n }\n if (forceFlush) {\n flushSync(doUpdate);\n } else {\n doUpdate();\n }\n };\n\n // >>>>> Cache & Reset open keys when inlineCollapsed changed\n var _React$useState3 = React.useState(mergedOpenKeys),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n inlineCacheOpenKeys = _React$useState4[0],\n setInlineCacheOpenKeys = _React$useState4[1];\n var mountRef = React.useRef(false);\n\n // ========================= Mode =========================\n var _React$useMemo = React.useMemo(function () {\n if ((mode === 'inline' || mode === 'vertical') && inlineCollapsed) {\n return ['vertical', inlineCollapsed];\n }\n return [mode, false];\n }, [mode, inlineCollapsed]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n mergedMode = _React$useMemo2[0],\n mergedInlineCollapsed = _React$useMemo2[1];\n var isInlineMode = mergedMode === 'inline';\n var _React$useState5 = React.useState(mergedMode),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n internalMode = _React$useState6[0],\n setInternalMode = _React$useState6[1];\n var _React$useState7 = React.useState(mergedInlineCollapsed),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n internalInlineCollapsed = _React$useState8[0],\n setInternalInlineCollapsed = _React$useState8[1];\n React.useEffect(function () {\n setInternalMode(mergedMode);\n setInternalInlineCollapsed(mergedInlineCollapsed);\n if (!mountRef.current) {\n return;\n }\n // Synchronously update MergedOpenKeys\n if (isInlineMode) {\n setMergedOpenKeys(inlineCacheOpenKeys);\n } else {\n // Trigger open event in case its in control\n triggerOpenKeys(EMPTY_LIST);\n }\n }, [mergedMode, mergedInlineCollapsed]);\n\n // ====================== Responsive ======================\n var _React$useState9 = React.useState(0),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n lastVisibleIndex = _React$useState10[0],\n setLastVisibleIndex = _React$useState10[1];\n var allVisible = lastVisibleIndex >= childList.length - 1 || internalMode !== 'horizontal' || disabledOverflow;\n\n // Cache\n React.useEffect(function () {\n if (isInlineMode) {\n setInlineCacheOpenKeys(mergedOpenKeys);\n }\n }, [mergedOpenKeys]);\n React.useEffect(function () {\n mountRef.current = true;\n return function () {\n mountRef.current = false;\n };\n }, []);\n\n // ========================= Path =========================\n var _useKeyRecords = useKeyRecords(),\n registerPath = _useKeyRecords.registerPath,\n unregisterPath = _useKeyRecords.unregisterPath,\n refreshOverflowKeys = _useKeyRecords.refreshOverflowKeys,\n isSubPathKey = _useKeyRecords.isSubPathKey,\n getKeyPath = _useKeyRecords.getKeyPath,\n getKeys = _useKeyRecords.getKeys,\n getSubPathKeys = _useKeyRecords.getSubPathKeys;\n var registerPathContext = React.useMemo(function () {\n return {\n registerPath: registerPath,\n unregisterPath: unregisterPath\n };\n }, [registerPath, unregisterPath]);\n var pathUserContext = React.useMemo(function () {\n return {\n isSubPathKey: isSubPathKey\n };\n }, [isSubPathKey]);\n React.useEffect(function () {\n refreshOverflowKeys(allVisible ? EMPTY_LIST : childList.slice(lastVisibleIndex + 1).map(function (child) {\n return child.key;\n }));\n }, [lastVisibleIndex, allVisible]);\n\n // ======================== Active ========================\n var _useMergedState3 = useMergedState(activeKey || defaultActiveFirst && ((_childList$ = childList[0]) === null || _childList$ === void 0 ? void 0 : _childList$.key), {\n value: activeKey\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedActiveKey = _useMergedState4[0],\n setMergedActiveKey = _useMergedState4[1];\n var onActive = useMemoCallback(function (key) {\n setMergedActiveKey(key);\n });\n var onInactive = useMemoCallback(function () {\n setMergedActiveKey(undefined);\n });\n useImperativeHandle(ref, function () {\n return {\n list: containerRef.current,\n focus: function focus(options) {\n var _childList$find;\n var keys = getKeys();\n var _refreshElements = refreshElements(keys, uuid),\n elements = _refreshElements.elements,\n key2element = _refreshElements.key2element,\n element2key = _refreshElements.element2key;\n var focusableElements = getFocusableElements(containerRef.current, elements);\n var shouldFocusKey = mergedActiveKey !== null && mergedActiveKey !== void 0 ? mergedActiveKey : focusableElements[0] ? element2key.get(focusableElements[0]) : (_childList$find = childList.find(function (node) {\n return !node.props.disabled;\n })) === null || _childList$find === void 0 ? void 0 : _childList$find.key;\n var elementToFocus = key2element.get(shouldFocusKey);\n if (shouldFocusKey && elementToFocus) {\n var _elementToFocus$focus;\n elementToFocus === null || elementToFocus === void 0 || (_elementToFocus$focus = elementToFocus.focus) === null || _elementToFocus$focus === void 0 || _elementToFocus$focus.call(elementToFocus, options);\n }\n }\n };\n });\n\n // ======================== Select ========================\n // >>>>> Select keys\n var _useMergedState5 = useMergedState(defaultSelectedKeys || [], {\n value: selectedKeys,\n // Legacy convert key to array\n postState: function postState(keys) {\n if (Array.isArray(keys)) {\n return keys;\n }\n if (keys === null || keys === undefined) {\n return EMPTY_LIST;\n }\n return [keys];\n }\n }),\n _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n mergedSelectKeys = _useMergedState6[0],\n setMergedSelectKeys = _useMergedState6[1];\n\n // >>>>> Trigger select\n var triggerSelection = function triggerSelection(info) {\n if (selectable) {\n // Insert or Remove\n var targetKey = info.key;\n var exist = mergedSelectKeys.includes(targetKey);\n var newSelectKeys;\n if (multiple) {\n if (exist) {\n newSelectKeys = mergedSelectKeys.filter(function (key) {\n return key !== targetKey;\n });\n } else {\n newSelectKeys = [].concat(_toConsumableArray(mergedSelectKeys), [targetKey]);\n }\n } else {\n newSelectKeys = [targetKey];\n }\n setMergedSelectKeys(newSelectKeys);\n\n // Trigger event\n var selectInfo = _objectSpread(_objectSpread({}, info), {}, {\n selectedKeys: newSelectKeys\n });\n if (exist) {\n onDeselect === null || onDeselect === void 0 || onDeselect(selectInfo);\n } else {\n onSelect === null || onSelect === void 0 || onSelect(selectInfo);\n }\n }\n\n // Whatever selectable, always close it\n if (!multiple && mergedOpenKeys.length && internalMode !== 'inline') {\n triggerOpenKeys(EMPTY_LIST);\n }\n };\n\n // ========================= Open =========================\n /**\n * Click for item. SubMenu do not have selection status\n */\n var onInternalClick = useMemoCallback(function (info) {\n onClick === null || onClick === void 0 || onClick(warnItemProp(info));\n triggerSelection(info);\n });\n var onInternalOpenChange = useMemoCallback(function (key, open) {\n var newOpenKeys = mergedOpenKeys.filter(function (k) {\n return k !== key;\n });\n if (open) {\n newOpenKeys.push(key);\n } else if (internalMode !== 'inline') {\n // We need find all related popup to close\n var subPathKeys = getSubPathKeys(key);\n newOpenKeys = newOpenKeys.filter(function (k) {\n return !subPathKeys.has(k);\n });\n }\n if (!isEqual(mergedOpenKeys, newOpenKeys, true)) {\n triggerOpenKeys(newOpenKeys, true);\n }\n });\n\n // ==================== Accessibility =====================\n var triggerAccessibilityOpen = function triggerAccessibilityOpen(key, open) {\n var nextOpen = open !== null && open !== void 0 ? open : !mergedOpenKeys.includes(key);\n onInternalOpenChange(key, nextOpen);\n };\n var onInternalKeyDown = useAccessibility(internalMode, mergedActiveKey, isRtl, uuid, containerRef, getKeys, getKeyPath, setMergedActiveKey, triggerAccessibilityOpen, onKeyDown);\n\n // ======================== Effect ========================\n React.useEffect(function () {\n setMounted(true);\n }, []);\n\n // ======================= Context ========================\n var privateContext = React.useMemo(function () {\n return {\n _internalRenderMenuItem: _internalRenderMenuItem,\n _internalRenderSubMenuItem: _internalRenderSubMenuItem\n };\n }, [_internalRenderMenuItem, _internalRenderSubMenuItem]);\n\n // ======================== Render ========================\n\n // >>>>> Children\n var wrappedChildList = internalMode !== 'horizontal' || disabledOverflow ? childList :\n // Need wrap for overflow dropdown that do not response for open\n childList.map(function (child, index) {\n return (\n /*#__PURE__*/\n // Always wrap provider to avoid sub node re-mount\n React.createElement(MenuContextProvider, {\n key: child.key,\n overflowDisabled: index > lastVisibleIndex\n }, child)\n );\n });\n\n // >>>>> Container\n var container = /*#__PURE__*/React.createElement(Overflow, _extends({\n id: id,\n ref: containerRef,\n prefixCls: \"\".concat(prefixCls, \"-overflow\"),\n component: \"ul\",\n itemComponent: MenuItem,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-root\"), \"\".concat(prefixCls, \"-\").concat(internalMode), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-inline-collapsed\"), internalInlineCollapsed), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), isRtl), _classNames), rootClassName),\n dir: direction,\n style: style,\n role: \"menu\",\n tabIndex: tabIndex,\n data: wrappedChildList,\n renderRawItem: function renderRawItem(node) {\n return node;\n },\n renderRawRest: function renderRawRest(omitItems) {\n // We use origin list since wrapped list use context to prevent open\n var len = omitItems.length;\n var originOmitItems = len ? childList.slice(-len) : null;\n return /*#__PURE__*/React.createElement(SubMenu, {\n eventKey: OVERFLOW_KEY,\n title: overflowedIndicator,\n disabled: allVisible,\n internalPopupClose: len === 0,\n popupClassName: overflowedIndicatorPopupClassName\n }, originOmitItems);\n },\n maxCount: internalMode !== 'horizontal' || disabledOverflow ? Overflow.INVALIDATE : Overflow.RESPONSIVE,\n ssr: \"full\",\n \"data-menu-list\": true,\n onVisibleChange: function onVisibleChange(newLastIndex) {\n setLastVisibleIndex(newLastIndex);\n },\n onKeyDown: onInternalKeyDown\n }, restProps));\n\n // >>>>> Render\n return /*#__PURE__*/React.createElement(PrivateContext.Provider, {\n value: privateContext\n }, /*#__PURE__*/React.createElement(IdContext.Provider, {\n value: uuid\n }, /*#__PURE__*/React.createElement(MenuContextProvider, {\n prefixCls: prefixCls,\n rootClassName: rootClassName,\n mode: internalMode,\n openKeys: mergedOpenKeys,\n rtl: isRtl\n // Disabled\n ,\n disabled: disabled\n // Motion\n ,\n motion: mounted ? motion : null,\n defaultMotions: mounted ? defaultMotions : null\n // Active\n ,\n activeKey: mergedActiveKey,\n onActive: onActive,\n onInactive: onInactive\n // Selection\n ,\n selectedKeys: mergedSelectKeys\n // Level\n ,\n inlineIndent: inlineIndent\n // Popup\n ,\n subMenuOpenDelay: subMenuOpenDelay,\n subMenuCloseDelay: subMenuCloseDelay,\n forceSubMenuRender: forceSubMenuRender,\n builtinPlacements: builtinPlacements,\n triggerSubMenuAction: triggerSubMenuAction,\n getPopupContainer: getPopupContainer\n // Icon\n ,\n itemIcon: itemIcon,\n expandIcon: expandIcon\n // Events\n ,\n onItemClick: onInternalClick,\n onOpenChange: onInternalOpenChange\n }, /*#__PURE__*/React.createElement(PathUserContext.Provider, {\n value: pathUserContext\n }, container), /*#__PURE__*/React.createElement(\"div\", {\n style: {\n display: 'none'\n },\n \"aria-hidden\": true\n }, /*#__PURE__*/React.createElement(PathRegisterContext.Provider, {\n value: registerPathContext\n }, childList)))));\n});\nexport default Menu;","import Menu from \"./Menu\";\nimport MenuItem from \"./MenuItem\";\nimport SubMenu from \"./SubMenu\";\nimport MenuItemGroup from \"./MenuItemGroup\";\nimport { useFullPath } from \"./context/PathContext\";\nimport Divider from \"./Divider\";\nexport { SubMenu, MenuItem as Item, MenuItem, MenuItemGroup, MenuItemGroup as ItemGroup, Divider, /** @private Only used for antd internal. Do not use in your production. */\nuseFullPath };\nvar ExportMenu = Menu;\nExportMenu.Item = MenuItem;\nExportMenu.SubMenu = SubMenu;\nExportMenu.ItemGroup = MenuItemGroup;\nExportMenu.Divider = Divider;\nexport default ExportMenu;","import React from 'react';\nimport { isFragment } from 'react-is';\nexport default function toArray(children) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var ret = [];\n React.Children.forEach(children, function (child) {\n if ((child === undefined || child === null) && !option.keepEmpty) {\n return;\n }\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if (isFragment(child) && child.props) {\n ret = ret.concat(toArray(child.props.children, option));\n } else {\n ret.push(child);\n }\n });\n return ret;\n}","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport canUseDom from \"./canUseDom\";\nimport contains from \"./contains\";\nvar APPEND_ORDER = 'data-rc-order';\nvar APPEND_PRIORITY = 'data-rc-priority';\nvar MARK_KEY = \"rc-util-key\";\nvar containerCache = new Map();\nfunction getMark() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mark = _ref.mark;\n if (mark) {\n return mark.startsWith('data-') ? mark : \"data-\".concat(mark);\n }\n return MARK_KEY;\n}\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n var head = document.querySelector('head');\n return head || document.body;\n}\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n return prepend ? 'prepend' : 'append';\n}\n\n/**\n * Find style which inject by rc-util\n */\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(function (node) {\n return node.tagName === 'STYLE';\n });\n}\nexport function injectCSS(css) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!canUseDom()) {\n return null;\n }\n var csp = option.csp,\n prepend = option.prepend,\n _option$priority = option.priority,\n priority = _option$priority === void 0 ? 0 : _option$priority;\n var mergedOrder = getOrder(prepend);\n var isPrependQueue = mergedOrder === 'prependQueue';\n var styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, mergedOrder);\n if (isPrependQueue && priority) {\n styleNode.setAttribute(APPEND_PRIORITY, \"\".concat(priority));\n }\n if (csp !== null && csp !== void 0 && csp.nonce) {\n styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;\n }\n styleNode.innerHTML = css;\n var container = getContainer(option);\n var firstChild = container.firstChild;\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (isPrependQueue) {\n var existStyle = (option.styles || findStyles(container)).filter(function (node) {\n // Ignore style which not injected by rc-util with prepend\n if (!['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER))) {\n return false;\n }\n\n // Ignore style which priority less then new style\n var nodePriority = Number(node.getAttribute(APPEND_PRIORITY) || 0);\n return priority >= nodePriority;\n });\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n }\n\n // Use `insertBefore` as `prepend`\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n return styleNode;\n}\nfunction findExistNode(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var container = getContainer(option);\n return (option.styles || findStyles(container)).find(function (node) {\n return node.getAttribute(getMark(option)) === key;\n });\n}\nexport function removeCSS(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var existNode = findExistNode(key, option);\n if (existNode) {\n var container = getContainer(option);\n container.removeChild(existNode);\n }\n}\n\n/**\n * qiankun will inject `appendChild` to insert into other\n */\nfunction syncRealContainer(container, option) {\n var cachedRealContainer = containerCache.get(container);\n\n // Find real container when not cached or cached container removed\n if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n var placeholderStyle = injectCSS('', option);\n var parentNode = placeholderStyle.parentNode;\n containerCache.set(container, parentNode);\n container.removeChild(placeholderStyle);\n }\n}\n\n/**\n * manually clear container cache to avoid global cache in unit testes\n */\nexport function clearContainerCache() {\n containerCache.clear();\n}\nexport function updateCSS(css, key) {\n var originOption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var container = getContainer(originOption);\n var styles = findStyles(container);\n var option = _objectSpread(_objectSpread({}, originOption), {}, {\n styles: styles\n });\n\n // Sync real parent\n syncRealContainer(container, option);\n var existNode = findExistNode(key, option);\n if (existNode) {\n var _option$csp, _option$csp2;\n if ((_option$csp = option.csp) !== null && _option$csp !== void 0 && _option$csp.nonce && existNode.nonce !== ((_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce)) {\n var _option$csp3;\n existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;\n }\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n return existNode;\n }\n var newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n // Use native if support\n if (root.contains) {\n return root.contains(n);\n }\n\n // `document.contains` not support with IE11\n var node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nexport function isDOM(node) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Element\n // Since XULElement is also subclass of Element, we only need HTMLElement and SVGElement\n return node instanceof HTMLElement || node instanceof SVGElement;\n}\n\n/**\n * Retrieves a DOM node via a ref, and does not invoke `findDOMNode`.\n */\nexport function getDOM(node) {\n if (node && _typeof(node) === 'object' && isDOM(node.nativeElement)) {\n return node.nativeElement;\n }\n if (isDOM(node)) {\n return node;\n }\n return null;\n}\n\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\nexport default function findDOMNode(node) {\n var domNode = getDOM(node);\n if (domNode) {\n return domNode;\n }\n if (node instanceof React.Component) {\n var _ReactDOM$findDOMNode;\n return (_ReactDOM$findDOMNode = ReactDOM.findDOMNode) === null || _ReactDOM$findDOMNode === void 0 ? void 0 : _ReactDOM$findDOMNode.call(ReactDOM, node);\n }\n return null;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport isVisible from \"./isVisible\";\nfunction focusable(node) {\n var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (isVisible(node)) {\n var nodeName = node.nodeName.toLowerCase();\n var isFocusableElement =\n // Focusable element\n ['input', 'select', 'textarea', 'button'].includes(nodeName) ||\n // Editable element\n node.isContentEditable ||\n // Anchor with href element\n nodeName === 'a' && !!node.getAttribute('href');\n\n // Get tabIndex\n var tabIndexAttr = node.getAttribute('tabindex');\n var tabIndexNum = Number(tabIndexAttr);\n\n // Parse as number if validate\n var tabIndex = null;\n if (tabIndexAttr && !Number.isNaN(tabIndexNum)) {\n tabIndex = tabIndexNum;\n } else if (isFocusableElement && tabIndex === null) {\n tabIndex = 0;\n }\n\n // Block focusable if disabled\n if (isFocusableElement && node.disabled) {\n tabIndex = null;\n }\n return tabIndex !== null && (tabIndex >= 0 || includePositive && tabIndex < 0);\n }\n return false;\n}\nexport function getFocusNodeList(node) {\n var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var res = _toConsumableArray(node.querySelectorAll('*')).filter(function (child) {\n return focusable(child, includePositive);\n });\n if (focusable(node, includePositive)) {\n res.unshift(node);\n }\n return res;\n}\nvar lastFocusElement = null;\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function saveLastFocusNode() {\n lastFocusElement = document.activeElement;\n}\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function clearLastFocusNode() {\n lastFocusElement = null;\n}\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function backLastFocusNode() {\n if (lastFocusElement) {\n try {\n // 元素可能已经被移动了\n lastFocusElement.focus();\n\n /* eslint-disable no-empty */\n } catch (e) {\n // empty\n }\n /* eslint-enable no-empty */\n }\n}\nexport function limitTabRange(node, e) {\n if (e.keyCode === 9) {\n var tabNodeList = getFocusNodeList(node);\n var lastTabNode = tabNodeList[e.shiftKey ? 0 : tabNodeList.length - 1];\n var leavingTab = lastTabNode === document.activeElement || node === document.activeElement;\n if (leavingTab) {\n var target = tabNodeList[e.shiftKey ? tabNodeList.length - 1 : 0];\n target.focus();\n e.preventDefault();\n }\n }\n}","export default (function (element) {\n if (!element) {\n return false;\n }\n if (element instanceof Element) {\n if (element.offsetParent) {\n return true;\n }\n if (element.getBBox) {\n var _getBBox = element.getBBox(),\n width = _getBBox.width,\n height = _getBBox.height;\n if (width || height) {\n return true;\n }\n }\n if (element.getBoundingClientRect) {\n var _element$getBoundingC = element.getBoundingClientRect(),\n _width = _element$getBoundingC.width,\n _height = _element$getBoundingC.height;\n if (_width || _height) {\n return true;\n }\n }\n }\n return false;\n});","function getRoot(ele) {\n var _ele$getRootNode;\n return ele === null || ele === void 0 || (_ele$getRootNode = ele.getRootNode) === null || _ele$getRootNode === void 0 ? void 0 : _ele$getRootNode.call(ele);\n}\n\n/**\n * Check if is in shadowRoot\n */\nexport function inShadow(ele) {\n return getRoot(ele) instanceof ShadowRoot;\n}\n\n/**\n * Return shadowRoot if possible\n */\nexport function getShadowRoot(ele) {\n return inShadow(ele) ? getRoot(ele) : null;\n}","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\n\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n /**\n * TAB\n */\n TAB: 9,\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n // NUMLOCK on FF/Safari Mac\n /**\n * ENTER\n */\n ENTER: 13,\n /**\n * SHIFT\n */\n SHIFT: 16,\n /**\n * CTRL\n */\n CTRL: 17,\n /**\n * ALT\n */\n ALT: 18,\n /**\n * PAUSE\n */\n PAUSE: 19,\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n /**\n * ESC\n */\n ESC: 27,\n /**\n * SPACE\n */\n SPACE: 32,\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n // also NUM_NORTH_EAST\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n // also NUM_SOUTH_EAST\n /**\n * END\n */\n END: 35,\n // also NUM_SOUTH_WEST\n /**\n * HOME\n */\n HOME: 36,\n // also NUM_NORTH_WEST\n /**\n * LEFT\n */\n LEFT: 37,\n // also NUM_WEST\n /**\n * UP\n */\n UP: 38,\n // also NUM_NORTH\n /**\n * RIGHT\n */\n RIGHT: 39,\n // also NUM_EAST\n /**\n * DOWN\n */\n DOWN: 40,\n // also NUM_SOUTH\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n /**\n * INSERT\n */\n INSERT: 45,\n // also NUM_INSERT\n /**\n * DELETE\n */\n DELETE: 46,\n // also NUM_DELETE\n /**\n * ZERO\n */\n ZERO: 48,\n /**\n * ONE\n */\n ONE: 49,\n /**\n * TWO\n */\n TWO: 50,\n /**\n * THREE\n */\n THREE: 51,\n /**\n * FOUR\n */\n FOUR: 52,\n /**\n * FIVE\n */\n FIVE: 53,\n /**\n * SIX\n */\n SIX: 54,\n /**\n * SEVEN\n */\n SEVEN: 55,\n /**\n * EIGHT\n */\n EIGHT: 56,\n /**\n * NINE\n */\n NINE: 57,\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n // needs localization\n /**\n * A\n */\n A: 65,\n /**\n * B\n */\n B: 66,\n /**\n * C\n */\n C: 67,\n /**\n * D\n */\n D: 68,\n /**\n * E\n */\n E: 69,\n /**\n * F\n */\n F: 70,\n /**\n * G\n */\n G: 71,\n /**\n * H\n */\n H: 72,\n /**\n * I\n */\n I: 73,\n /**\n * J\n */\n J: 74,\n /**\n * K\n */\n K: 75,\n /**\n * L\n */\n L: 76,\n /**\n * M\n */\n M: 77,\n /**\n * N\n */\n N: 78,\n /**\n * O\n */\n O: 79,\n /**\n * P\n */\n P: 80,\n /**\n * Q\n */\n Q: 81,\n /**\n * R\n */\n R: 82,\n /**\n * S\n */\n S: 83,\n /**\n * T\n */\n T: 84,\n /**\n * U\n */\n U: 85,\n /**\n * V\n */\n V: 86,\n /**\n * W\n */\n W: 87,\n /**\n * X\n */\n X: 88,\n /**\n * Y\n */\n Y: 89,\n /**\n * Z\n */\n Z: 90,\n /**\n * META\n */\n META: 91,\n // WIN_KEY_LEFT\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n /**\n * F1\n */\n F1: 112,\n /**\n * F2\n */\n F2: 113,\n /**\n * F3\n */\n F3: 114,\n /**\n * F4\n */\n F4: 115,\n /**\n * F5\n */\n F5: 116,\n /**\n * F6\n */\n F6: 117,\n /**\n * F7\n */\n F7: 118,\n /**\n * F8\n */\n F8: 119,\n /**\n * F9\n */\n F9: 120,\n /**\n * F10\n */\n F10: 121,\n /**\n * F11\n */\n F11: 122,\n /**\n * F12\n */\n F12: 123,\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n // needs localization\n /**\n * DASH\n */\n DASH: 189,\n // needs localization\n /**\n * EQUALS\n */\n EQUALS: 187,\n // needs localization\n /**\n * COMMA\n */\n COMMA: 188,\n // needs localization\n /**\n * PERIOD\n */\n PERIOD: 190,\n // needs localization\n /**\n * SLASH\n */\n SLASH: 191,\n // needs localization\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n // needs localization\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n // needs localization\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n // needs localization\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n // needs localization\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n // needs localization\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n // Firefox (Gecko) fires this for the meta key instead of 91\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n if (e.altKey && !e.ctrlKey || e.metaKey ||\n // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n }\n\n // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n default:\n return true;\n }\n },\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n }\n\n // Safari sends zero key code for non-latin characters.\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","/* eslint-disable no-param-reassign */\nimport { removeCSS, updateCSS } from \"./Dom/dynamicCSS\";\nvar cached;\nfunction measureScrollbarSize(ele) {\n var randomId = \"rc-scrollbar-measure-\".concat(Math.random().toString(36).substring(7));\n var measureEle = document.createElement('div');\n measureEle.id = randomId;\n\n // Create Style\n var measureStyle = measureEle.style;\n measureStyle.position = 'absolute';\n measureStyle.left = '0';\n measureStyle.top = '0';\n measureStyle.width = '100px';\n measureStyle.height = '100px';\n measureStyle.overflow = 'scroll';\n\n // Clone Style if needed\n var fallbackWidth;\n var fallbackHeight;\n if (ele) {\n var targetStyle = getComputedStyle(ele);\n measureStyle.scrollbarColor = targetStyle.scrollbarColor;\n measureStyle.scrollbarWidth = targetStyle.scrollbarWidth;\n\n // Set Webkit style\n var webkitScrollbarStyle = getComputedStyle(ele, '::-webkit-scrollbar');\n var width = parseInt(webkitScrollbarStyle.width, 10);\n var height = parseInt(webkitScrollbarStyle.height, 10);\n\n // Try wrap to handle CSP case\n try {\n var widthStyle = width ? \"width: \".concat(webkitScrollbarStyle.width, \";\") : '';\n var heightStyle = height ? \"height: \".concat(webkitScrollbarStyle.height, \";\") : '';\n updateCSS(\"\\n#\".concat(randomId, \"::-webkit-scrollbar {\\n\").concat(widthStyle, \"\\n\").concat(heightStyle, \"\\n}\"), randomId);\n } catch (e) {\n // Can't wrap, just log error\n console.error(e);\n\n // Get from style directly\n fallbackWidth = width;\n fallbackHeight = height;\n }\n }\n document.body.appendChild(measureEle);\n\n // Measure. Get fallback style if provided\n var scrollWidth = ele && fallbackWidth && !isNaN(fallbackWidth) ? fallbackWidth : measureEle.offsetWidth - measureEle.clientWidth;\n var scrollHeight = ele && fallbackHeight && !isNaN(fallbackHeight) ? fallbackHeight : measureEle.offsetHeight - measureEle.clientHeight;\n\n // Clean up\n document.body.removeChild(measureEle);\n removeCSS(randomId);\n return {\n width: scrollWidth,\n height: scrollHeight\n };\n}\nexport default function getScrollBarSize(fresh) {\n if (typeof document === 'undefined') {\n return 0;\n }\n if (fresh || cached === undefined) {\n cached = measureScrollbarSize();\n }\n return cached.width;\n}\nexport function getTargetScrollBarSize(target) {\n if (typeof document === 'undefined' || !target || !(target instanceof Element)) {\n return {\n width: 0,\n height: 0\n };\n }\n return measureScrollbarSize(target);\n}","import * as React from 'react';\nexport default function useEvent(callback) {\n var fnRef = React.useRef();\n fnRef.current = callback;\n var memoFn = React.useCallback(function () {\n var _fnRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));\n }, []);\n return memoFn;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nfunction getUseId() {\n // We need fully clone React function here to avoid webpack warning React 17 do not export `useId`\n var fullClone = _objectSpread({}, React);\n return fullClone.useId;\n}\nvar uuid = 0;\n\n/** @private Note only worked in develop env. Not work in production. */\nexport function resetUuid() {\n if (process.env.NODE_ENV !== 'production') {\n uuid = 0;\n }\n}\nvar useOriginId = getUseId();\nexport default useOriginId ?\n// Use React `useId`\nfunction useId(id) {\n var reactId = useOriginId();\n\n // Developer passed id is single source of truth\n if (id) {\n return id;\n }\n\n // Test env always return mock id\n if (process.env.NODE_ENV === 'test') {\n return 'test-id';\n }\n return reactId;\n} :\n// Use compatible of `useId`\nfunction useCompatId(id) {\n // Inner id for accessibility usage. Only work in client side\n var _React$useState = React.useState('ssr-id'),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerId = _React$useState2[0],\n setInnerId = _React$useState2[1];\n React.useEffect(function () {\n var nextId = uuid;\n uuid += 1;\n setInnerId(\"rc_unique_\".concat(nextId));\n }, []);\n\n // Developer passed id is single source of truth\n if (id) {\n return id;\n }\n\n // Test env always return mock id\n if (process.env.NODE_ENV === 'test') {\n return 'test-id';\n }\n\n // Return react native id or inner id\n return innerId;\n};","import * as React from 'react';\nimport canUseDom from \"../Dom/canUseDom\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useInternalLayoutEffect = process.env.NODE_ENV !== 'test' && canUseDom() ? React.useLayoutEffect : React.useEffect;\nvar useLayoutEffect = function useLayoutEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useInternalLayoutEffect(function () {\n return callback(firstMountRef.current);\n }, deps);\n\n // We tell react that first mount has passed\n useInternalLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};\nexport var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n useLayoutEffect(function (firstMount) {\n if (!firstMount) {\n return callback();\n }\n }, deps);\n};\nexport default useLayoutEffect;","import * as React from 'react';\nexport default function useMemo(getValue, condition, shouldUpdate) {\n var cacheRef = React.useRef({});\n if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {\n cacheRef.current.value = getValue();\n cacheRef.current.condition = condition;\n }\n return cacheRef.current.value;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"./useEvent\";\nimport { useLayoutUpdateEffect } from \"./useLayoutEffect\";\nimport useState from \"./useState\";\n/** We only think `undefined` is empty */\nfunction hasValue(value) {\n return value !== undefined;\n}\n\n/**\n * Similar to `useState` but will use props value if provided.\n * Note that internal use rc-util `useState` hook.\n */\nexport default function useMergedState(defaultStateValue, option) {\n var _ref = option || {},\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n onChange = _ref.onChange,\n postState = _ref.postState;\n\n // ======================= Init =======================\n var _useState = useState(function () {\n if (hasValue(value)) {\n return value;\n } else if (hasValue(defaultValue)) {\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n } else {\n return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n }\n }),\n _useState2 = _slicedToArray(_useState, 2),\n innerValue = _useState2[0],\n setInnerValue = _useState2[1];\n var mergedValue = value !== undefined ? value : innerValue;\n var postMergedValue = postState ? postState(mergedValue) : mergedValue;\n\n // ====================== Change ======================\n var onChangeFn = useEvent(onChange);\n var _useState3 = useState([mergedValue]),\n _useState4 = _slicedToArray(_useState3, 2),\n prevValue = _useState4[0],\n setPrevValue = _useState4[1];\n useLayoutUpdateEffect(function () {\n var prev = prevValue[0];\n if (innerValue !== prev) {\n onChangeFn(innerValue, prev);\n }\n }, [prevValue]);\n\n // Sync value back to `undefined` when it from control to un-control\n useLayoutUpdateEffect(function () {\n if (!hasValue(value)) {\n setInnerValue(value);\n }\n }, [value]);\n\n // ====================== Update ======================\n var triggerChange = useEvent(function (updater, ignoreDestroy) {\n setInnerValue(updater, ignoreDestroy);\n setPrevValue([mergedValue], ignoreDestroy);\n });\n return [postMergedValue, triggerChange];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\nexport default function useSafeState(defaultValue) {\n var destroyRef = React.useRef(false);\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n };\n }, []);\n function safeSetState(updater, ignoreDestroy) {\n if (ignoreDestroy && destroyRef.current) {\n return;\n }\n setValue(updater);\n }\n return [value, safeSetState];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport get from \"./get\";\nfunction internalSet(entity, paths, value, removeIfUndefined) {\n if (!paths.length) {\n return value;\n }\n var _paths = _toArray(paths),\n path = _paths[0],\n restPath = _paths.slice(1);\n var clone;\n if (!entity && typeof path === 'number') {\n clone = [];\n } else if (Array.isArray(entity)) {\n clone = _toConsumableArray(entity);\n } else {\n clone = _objectSpread({}, entity);\n }\n\n // Delete prop if `removeIfUndefined` and value is undefined\n if (removeIfUndefined && value === undefined && restPath.length === 1) {\n delete clone[path][restPath[0]];\n } else {\n clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);\n }\n return clone;\n}\nexport default function set(entity, paths, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n // Do nothing if `removeIfUndefined` and parent object not exist\n if (paths.length && removeIfUndefined && value === undefined && !get(entity, paths.slice(0, -1))) {\n return entity;\n }\n return internalSet(entity, paths, value, removeIfUndefined);\n}\nfunction isObject(obj) {\n return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\nfunction createEmpty(source) {\n return Array.isArray(source) ? [] : {};\n}\nvar keys = typeof Reflect === 'undefined' ? Object.keys : Reflect.ownKeys;\n\n/**\n * Merge objects which will create\n */\nexport function merge() {\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n var clone = createEmpty(sources[0]);\n sources.forEach(function (src) {\n function internalMerge(path, parentLoopSet) {\n var loopSet = new Set(parentLoopSet);\n var value = get(src, path);\n var isArr = Array.isArray(value);\n if (isArr || isObject(value)) {\n // Only add not loop obj\n if (!loopSet.has(value)) {\n loopSet.add(value);\n var originValue = get(clone, path);\n if (isArr) {\n // Array will always be override\n clone = set(clone, path, []);\n } else if (!originValue || _typeof(originValue) !== 'object') {\n // Init container if not exist\n clone = set(clone, path, createEmpty(value));\n }\n keys(value).forEach(function (key) {\n internalMerge([].concat(_toConsumableArray(path), [key]), loopSet);\n });\n }\n } else {\n clone = set(clone, path, value);\n }\n }\n internalMerge([]);\n });\n return clone;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"./warning\";\n\n/**\n * Deeply compares two object literals.\n * @param obj1 object 1\n * @param obj2 object 2\n * @param shallow shallow compare\n * @returns\n */\nfunction isEqual(obj1, obj2) {\n var shallow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n // https://github.com/mapbox/mapbox-gl-js/pull/5979/files#diff-fde7145050c47cc3a306856efd5f9c3016e86e859de9afbd02c879be5067e58f\n var refSet = new Set();\n function deepEqual(a, b) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var circular = refSet.has(a);\n warning(!circular, 'Warning: There may be circular references');\n if (circular) {\n return false;\n }\n if (a === b) {\n return true;\n }\n if (shallow && level > 1) {\n return false;\n }\n refSet.add(a);\n var newLevel = level + 1;\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (!deepEqual(a[i], b[i], newLevel)) {\n return false;\n }\n }\n return true;\n }\n if (a && b && _typeof(a) === 'object' && _typeof(b) === 'object') {\n var keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) {\n return false;\n }\n return keys.every(function (key) {\n return deepEqual(a[key], b[key], newLevel);\n });\n }\n // other\n return false;\n }\n return deepEqual(obj1, obj2);\n}\nexport default isEqual;","export default (function () {\n if (typeof navigator === 'undefined' || typeof window === 'undefined') {\n return false;\n }\n var agent = navigator.userAgent || navigator.vendor || window.opera;\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(agent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(agent === null || agent === void 0 ? void 0 : agent.substr(0, 4));\n});","export default function omit(obj, fields) {\n var clone = Object.assign({}, obj);\n if (Array.isArray(fields)) {\n fields.forEach(function (key) {\n delete clone[key];\n });\n }\n return clone;\n}","var raf = function raf(callback) {\n return +setTimeout(callback, 16);\n};\nvar caf = function caf(num) {\n return clearTimeout(num);\n};\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = function raf(callback) {\n return window.requestAnimationFrame(callback);\n };\n caf = function caf(handle) {\n return window.cancelAnimationFrame(handle);\n };\n}\nvar rafUUID = 0;\nvar rafIds = new Map();\nfunction cleanup(id) {\n rafIds.delete(id);\n}\nvar wrapperRaf = function wrapperRaf(callback) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n rafUUID += 1;\n var id = rafUUID;\n function callRef(leftTimes) {\n if (leftTimes === 0) {\n // Clean up\n cleanup(id);\n\n // Trigger\n callback();\n } else {\n // Next raf\n var realId = raf(function () {\n callRef(leftTimes - 1);\n });\n\n // Bind real raf id\n rafIds.set(id, realId);\n }\n }\n callRef(times);\n return id;\n};\nwrapperRaf.cancel = function (id) {\n var realId = rafIds.get(id);\n cleanup(id);\n return caf(realId);\n};\nif (process.env.NODE_ENV !== 'production') {\n wrapperRaf.ids = function () {\n return rafIds;\n };\n}\nexport default wrapperRaf;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { isValidElement, version } from 'react';\nimport { ForwardRef, isFragment, isMemo } from 'react-is';\nimport useMemo from \"./hooks/useMemo\";\nexport var fillRef = function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n};\n\n/**\n * Merge refs into one ref function to support ref passing.\n */\nexport var composeRef = function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n var refList = refs.filter(Boolean);\n if (refList.length <= 1) {\n return refList[0];\n }\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n};\nexport var useComposeRef = function useComposeRef() {\n for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n refs[_key2] = arguments[_key2];\n }\n return useMemo(function () {\n return composeRef.apply(void 0, refs);\n }, refs, function (prev, next) {\n return prev.length !== next.length || prev.every(function (ref, i) {\n return ref !== next[i];\n });\n });\n};\nexport var supportRef = function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;\n\n // Function component node\n if (typeof type === 'function' && !((_type$prototype = type.prototype) !== null && _type$prototype !== void 0 && _type$prototype.render) && type.$$typeof !== ForwardRef) {\n return false;\n }\n\n // Class component\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) !== null && _nodeOrComponent$prot !== void 0 && _nodeOrComponent$prot.render) && nodeOrComponent.$$typeof !== ForwardRef) {\n return false;\n }\n return true;\n};\nfunction isReactElement(node) {\n return /*#__PURE__*/isValidElement(node) && !isFragment(node);\n}\nexport var supportNodeRef = function supportNodeRef(node) {\n return isReactElement(node) && supportRef(node);\n};\n\n/**\n * In React 19. `ref` is not a property from node.\n * But a property from `props.ref`.\n * To check if `props.ref` exist or fallback to `ref`.\n */\nexport var getNodeRef = Number(version.split('.')[0]) >= 19 ?\n// >= React 19\nfunction (node) {\n if (isReactElement(node)) {\n return node.props.ref;\n }\n return null;\n} :\n// < React 19\nfunction (node) {\n if (isReactElement(node)) {\n return node.ref;\n }\n return null;\n};","/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport var preMessage = function preMessage(fn) {\n preWarningFns.push(fn);\n};\n\n/**\n * Warning if condition not match.\n * @param valid Condition\n * @param message Warning message\n * @example\n * ```js\n * warning(false, 'some error'); // print some error\n * warning(true, 'some error'); // print nothing\n * warning(1 === 2, 'some error'); // print some error\n * ```\n */\nexport function warning(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n }, message);\n if (finalMessage) {\n console.error(\"Warning: \".concat(finalMessage));\n }\n }\n}\n\n/** @see Similar to {@link warning} */\nexport function note(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n }, message);\n if (finalMessage) {\n console.warn(\"Note: \".concat(finalMessage));\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = canUseDom;\nfunction canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\n\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n /**\n * TAB\n */\n TAB: 9,\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n // NUMLOCK on FF/Safari Mac\n /**\n * ENTER\n */\n ENTER: 13,\n /**\n * SHIFT\n */\n SHIFT: 16,\n /**\n * CTRL\n */\n CTRL: 17,\n /**\n * ALT\n */\n ALT: 18,\n /**\n * PAUSE\n */\n PAUSE: 19,\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n /**\n * ESC\n */\n ESC: 27,\n /**\n * SPACE\n */\n SPACE: 32,\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n // also NUM_NORTH_EAST\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n // also NUM_SOUTH_EAST\n /**\n * END\n */\n END: 35,\n // also NUM_SOUTH_WEST\n /**\n * HOME\n */\n HOME: 36,\n // also NUM_NORTH_WEST\n /**\n * LEFT\n */\n LEFT: 37,\n // also NUM_WEST\n /**\n * UP\n */\n UP: 38,\n // also NUM_NORTH\n /**\n * RIGHT\n */\n RIGHT: 39,\n // also NUM_EAST\n /**\n * DOWN\n */\n DOWN: 40,\n // also NUM_SOUTH\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n /**\n * INSERT\n */\n INSERT: 45,\n // also NUM_INSERT\n /**\n * DELETE\n */\n DELETE: 46,\n // also NUM_DELETE\n /**\n * ZERO\n */\n ZERO: 48,\n /**\n * ONE\n */\n ONE: 49,\n /**\n * TWO\n */\n TWO: 50,\n /**\n * THREE\n */\n THREE: 51,\n /**\n * FOUR\n */\n FOUR: 52,\n /**\n * FIVE\n */\n FIVE: 53,\n /**\n * SIX\n */\n SIX: 54,\n /**\n * SEVEN\n */\n SEVEN: 55,\n /**\n * EIGHT\n */\n EIGHT: 56,\n /**\n * NINE\n */\n NINE: 57,\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n // needs localization\n /**\n * A\n */\n A: 65,\n /**\n * B\n */\n B: 66,\n /**\n * C\n */\n C: 67,\n /**\n * D\n */\n D: 68,\n /**\n * E\n */\n E: 69,\n /**\n * F\n */\n F: 70,\n /**\n * G\n */\n G: 71,\n /**\n * H\n */\n H: 72,\n /**\n * I\n */\n I: 73,\n /**\n * J\n */\n J: 74,\n /**\n * K\n */\n K: 75,\n /**\n * L\n */\n L: 76,\n /**\n * M\n */\n M: 77,\n /**\n * N\n */\n N: 78,\n /**\n * O\n */\n O: 79,\n /**\n * P\n */\n P: 80,\n /**\n * Q\n */\n Q: 81,\n /**\n * R\n */\n R: 82,\n /**\n * S\n */\n S: 83,\n /**\n * T\n */\n T: 84,\n /**\n * U\n */\n U: 85,\n /**\n * V\n */\n V: 86,\n /**\n * W\n */\n W: 87,\n /**\n * X\n */\n X: 88,\n /**\n * Y\n */\n Y: 89,\n /**\n * Z\n */\n Z: 90,\n /**\n * META\n */\n META: 91,\n // WIN_KEY_LEFT\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n /**\n * F1\n */\n F1: 112,\n /**\n * F2\n */\n F2: 113,\n /**\n * F3\n */\n F3: 114,\n /**\n * F4\n */\n F4: 115,\n /**\n * F5\n */\n F5: 116,\n /**\n * F6\n */\n F6: 117,\n /**\n * F7\n */\n F7: 118,\n /**\n * F8\n */\n F8: 119,\n /**\n * F9\n */\n F9: 120,\n /**\n * F10\n */\n F10: 121,\n /**\n * F11\n */\n F11: 122,\n /**\n * F12\n */\n F12: 123,\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n // needs localization\n /**\n * DASH\n */\n DASH: 189,\n // needs localization\n /**\n * EQUALS\n */\n EQUALS: 187,\n // needs localization\n /**\n * COMMA\n */\n COMMA: 188,\n // needs localization\n /**\n * PERIOD\n */\n PERIOD: 190,\n // needs localization\n /**\n * SLASH\n */\n SLASH: 191,\n // needs localization\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n // needs localization\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n // needs localization\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n // needs localization\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n // needs localization\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n // needs localization\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n // Firefox (Gecko) fires this for the meta key instead of 91\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n if (e.altKey && !e.ctrlKey || e.metaKey ||\n // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n }\n\n // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n default:\n return true;\n }\n },\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n }\n\n // Safari sends zero key code for non-latin characters.\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n default:\n return false;\n }\n }\n};\nvar _default = exports.default = KeyCode;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useEvent;\nvar React = _interopRequireWildcard(require(\"react\"));\nfunction useEvent(callback) {\n var fnRef = React.useRef();\n fnRef.current = callback;\n var memoFn = React.useCallback(function () {\n var _fnRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));\n }, []);\n return memoFn;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.useLayoutUpdateEffect = exports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _canUseDom = _interopRequireDefault(require(\"../Dom/canUseDom\"));\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useInternalLayoutEffect = process.env.NODE_ENV !== 'test' && (0, _canUseDom.default)() ? React.useLayoutEffect : React.useEffect;\nvar useLayoutEffect = function useLayoutEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useInternalLayoutEffect(function () {\n return callback(firstMountRef.current);\n }, deps);\n\n // We tell react that first mount has passed\n useInternalLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};\nvar useLayoutUpdateEffect = exports.useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n useLayoutEffect(function (firstMount) {\n if (!firstMount) {\n return callback();\n }\n }, deps);\n};\nvar _default = exports.default = useLayoutEffect;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useMemo;\nvar React = _interopRequireWildcard(require(\"react\"));\nfunction useMemo(getValue, condition, shouldUpdate) {\n var cacheRef = React.useRef({});\n if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {\n cacheRef.current.value = getValue();\n cacheRef.current.condition = condition;\n }\n return cacheRef.current.value;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useMergedState;\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar _useEvent = _interopRequireDefault(require(\"./useEvent\"));\nvar _useLayoutEffect = require(\"./useLayoutEffect\");\nvar _useState5 = _interopRequireDefault(require(\"./useState\"));\n/** We only think `undefined` is empty */\nfunction hasValue(value) {\n return value !== undefined;\n}\n\n/**\n * Similar to `useState` but will use props value if provided.\n * Note that internal use rc-util `useState` hook.\n */\nfunction useMergedState(defaultStateValue, option) {\n var _ref = option || {},\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n onChange = _ref.onChange,\n postState = _ref.postState;\n\n // ======================= Init =======================\n var _useState = (0, _useState5.default)(function () {\n if (hasValue(value)) {\n return value;\n } else if (hasValue(defaultValue)) {\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n } else {\n return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n }\n }),\n _useState2 = (0, _slicedToArray2.default)(_useState, 2),\n innerValue = _useState2[0],\n setInnerValue = _useState2[1];\n var mergedValue = value !== undefined ? value : innerValue;\n var postMergedValue = postState ? postState(mergedValue) : mergedValue;\n\n // ====================== Change ======================\n var onChangeFn = (0, _useEvent.default)(onChange);\n var _useState3 = (0, _useState5.default)([mergedValue]),\n _useState4 = (0, _slicedToArray2.default)(_useState3, 2),\n prevValue = _useState4[0],\n setPrevValue = _useState4[1];\n (0, _useLayoutEffect.useLayoutUpdateEffect)(function () {\n var prev = prevValue[0];\n if (innerValue !== prev) {\n onChangeFn(innerValue, prev);\n }\n }, [prevValue]);\n\n // Sync value back to `undefined` when it from control to un-control\n (0, _useLayoutEffect.useLayoutUpdateEffect)(function () {\n if (!hasValue(value)) {\n setInnerValue(value);\n }\n }, [value]);\n\n // ====================== Update ======================\n var triggerChange = (0, _useEvent.default)(function (updater, ignoreDestroy) {\n setInnerValue(updater, ignoreDestroy);\n setPrevValue([mergedValue], ignoreDestroy);\n });\n return [postMergedValue, triggerChange];\n}","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\").default;\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useSafeState;\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar React = _interopRequireWildcard(require(\"react\"));\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\nfunction useSafeState(defaultValue) {\n var destroyRef = React.useRef(false);\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n };\n }, []);\n function safeSetState(updater, ignoreDestroy) {\n if (ignoreDestroy && destroyRef.current) {\n return;\n }\n setValue(updater);\n }\n return [value, safeSetState];\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = exports.default = function _default() {\n if (typeof navigator === 'undefined' || typeof window === 'undefined') {\n return false;\n }\n var agent = navigator.userAgent || navigator.vendor || window.opera;\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(agent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(agent === null || agent === void 0 ? void 0 : agent.substr(0, 4));\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar raf = function raf(callback) {\n return +setTimeout(callback, 16);\n};\nvar caf = function caf(num) {\n return clearTimeout(num);\n};\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = function raf(callback) {\n return window.requestAnimationFrame(callback);\n };\n caf = function caf(handle) {\n return window.cancelAnimationFrame(handle);\n };\n}\nvar rafUUID = 0;\nvar rafIds = new Map();\nfunction cleanup(id) {\n rafIds.delete(id);\n}\nvar wrapperRaf = function wrapperRaf(callback) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n rafUUID += 1;\n var id = rafUUID;\n function callRef(leftTimes) {\n if (leftTimes === 0) {\n // Clean up\n cleanup(id);\n\n // Trigger\n callback();\n } else {\n // Next raf\n var realId = raf(function () {\n callRef(leftTimes - 1);\n });\n\n // Bind real raf id\n rafIds.set(id, realId);\n }\n }\n callRef(times);\n return id;\n};\nwrapperRaf.cancel = function (id) {\n var realId = rafIds.get(id);\n cleanup(id);\n return caf(realId);\n};\nif (process.env.NODE_ENV !== 'production') {\n wrapperRaf.ids = function () {\n return rafIds;\n };\n}\nvar _default = exports.default = wrapperRaf;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.useComposeRef = exports.supportRef = exports.supportNodeRef = exports.getNodeRef = exports.fillRef = exports.composeRef = void 0;\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\nvar _react = require(\"react\");\nvar _reactIs = require(\"react-is\");\nvar _useMemo = _interopRequireDefault(require(\"./hooks/useMemo\"));\nvar fillRef = exports.fillRef = function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if ((0, _typeof2.default)(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n};\n\n/**\n * Merge refs into one ref function to support ref passing.\n */\nvar composeRef = exports.composeRef = function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n var refList = refs.filter(Boolean);\n if (refList.length <= 1) {\n return refList[0];\n }\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n};\nvar useComposeRef = exports.useComposeRef = function useComposeRef() {\n for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n refs[_key2] = arguments[_key2];\n }\n return (0, _useMemo.default)(function () {\n return composeRef.apply(void 0, refs);\n }, refs, function (prev, next) {\n return prev.length !== next.length || prev.every(function (ref, i) {\n return ref !== next[i];\n });\n });\n};\nvar supportRef = exports.supportRef = function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n var type = (0, _reactIs.isMemo)(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;\n\n // Function component node\n if (typeof type === 'function' && !((_type$prototype = type.prototype) !== null && _type$prototype !== void 0 && _type$prototype.render) && type.$$typeof !== _reactIs.ForwardRef) {\n return false;\n }\n\n // Class component\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) !== null && _nodeOrComponent$prot !== void 0 && _nodeOrComponent$prot.render) && nodeOrComponent.$$typeof !== _reactIs.ForwardRef) {\n return false;\n }\n return true;\n};\nfunction isReactElement(node) {\n return /*#__PURE__*/(0, _react.isValidElement)(node) && !(0, _reactIs.isFragment)(node);\n}\nvar supportNodeRef = exports.supportNodeRef = function supportNodeRef(node) {\n return isReactElement(node) && supportRef(node);\n};\n\n/**\n * In React 19. `ref` is not a property from node.\n * But a property from `props.ref`.\n * To check if `props.ref` exist or fallback to `ref`.\n */\nvar getNodeRef = exports.getNodeRef = Number(_react.version.split('.')[0]) >= 19 ?\n// >= React 19\nfunction (node) {\n if (isReactElement(node)) {\n return node.props.ref;\n }\n return null;\n} :\n// < React 19\nfunction (node) {\n if (isReactElement(node)) {\n return node.ref;\n }\n return null;\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.call = call;\nexports.default = void 0;\nexports.note = note;\nexports.noteOnce = noteOnce;\nexports.preMessage = void 0;\nexports.resetWarned = resetWarned;\nexports.warning = warning;\nexports.warningOnce = warningOnce;\n/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nvar preMessage = exports.preMessage = function preMessage(fn) {\n preWarningFns.push(fn);\n};\n\n/**\n * Warning if condition not match.\n * @param valid Condition\n * @param message Warning message\n * @example\n * ```js\n * warning(false, 'some error'); // print some error\n * warning(true, 'some error'); // print nothing\n * warning(1 === 2, 'some error'); // print some error\n * ```\n */\nfunction warning(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n }, message);\n if (finalMessage) {\n console.error(\"Warning: \".concat(finalMessage));\n }\n }\n}\n\n/** @see Similar to {@link warning} */\nfunction note(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n }, message);\n if (finalMessage) {\n console.warn(\"Note: \".concat(finalMessage));\n }\n }\n}\nfunction resetWarned() {\n warned = {};\n}\nfunction call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nfunction warningOnce(valid, message) {\n call(warning, valid, message);\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nfunction noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nvar _default = exports.default = warningOnce;","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ariaLabelsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ariaLabelsShape = _propTypes.default.shape({\n dateInput: _propTypes.default.objectOf(_propTypes.default.shape({\n startDate: _propTypes.default.string,\n endDate: _propTypes.default.string\n })),\n monthPicker: _propTypes.default.string,\n yearPicker: _propTypes.default.string,\n prevButton: _propTypes.default.string,\n nextButton: _propTypes.default.string\n});\n\nexports.ariaLabelsShape = ariaLabelsShape;","\"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 = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _DayCell = require(\"../DayCell\");\n\nvar _Month = _interopRequireDefault(require(\"../Month\"));\n\nvar _DateInput = _interopRequireDefault(require(\"../DateInput\"));\n\nvar _utils = require(\"../../utils\");\n\nvar _classnames3 = _interopRequireDefault(require(\"classnames\"));\n\nvar _reactList = _interopRequireDefault(require(\"react-list\"));\n\nvar _shallowEqual = require(\"shallow-equal\");\n\nvar _max = _interopRequireDefault(require(\"date-fns/max\"));\n\nvar _min = _interopRequireDefault(require(\"date-fns/min\"));\n\nvar _differenceInDays = _interopRequireDefault(require(\"date-fns/differenceInDays\"));\n\nvar _isSameMonth = _interopRequireDefault(require(\"date-fns/isSameMonth\"));\n\nvar _addDays = _interopRequireDefault(require(\"date-fns/addDays\"));\n\nvar _endOfMonth = _interopRequireDefault(require(\"date-fns/endOfMonth\"));\n\nvar _startOfMonth = _interopRequireDefault(require(\"date-fns/startOfMonth\"));\n\nvar _differenceInCalendarMonths = _interopRequireDefault(require(\"date-fns/differenceInCalendarMonths\"));\n\nvar _setMonth2 = _interopRequireDefault(require(\"date-fns/setMonth\"));\n\nvar _setYear2 = _interopRequireDefault(require(\"date-fns/setYear\"));\n\nvar _addYears = _interopRequireDefault(require(\"date-fns/addYears\"));\n\nvar _isSameDay = _interopRequireDefault(require(\"date-fns/isSameDay\"));\n\nvar _endOfWeek = _interopRequireDefault(require(\"date-fns/endOfWeek\"));\n\nvar _startOfWeek = _interopRequireDefault(require(\"date-fns/startOfWeek\"));\n\nvar _eachDayOfInterval = _interopRequireDefault(require(\"date-fns/eachDayOfInterval\"));\n\nvar _format = _interopRequireDefault(require(\"date-fns/format\"));\n\nvar _subMonths = _interopRequireDefault(require(\"date-fns/subMonths\"));\n\nvar _addMonths = _interopRequireDefault(require(\"date-fns/addMonths\"));\n\nvar _enUS = _interopRequireDefault(require(\"date-fns/locale/en-US\"));\n\nvar _styles = _interopRequireDefault(require(\"../../styles\"));\n\nvar _accessibility = require(\"../../accessibility\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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 _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 _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _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 Calendar = /*#__PURE__*/function (_PureComponent) {\n _inherits(Calendar, _PureComponent);\n\n var _super = _createSuper(Calendar);\n\n function Calendar(_props, context) {\n var _this;\n\n _classCallCheck(this, Calendar);\n\n _this = _super.call(this, _props, context);\n\n _defineProperty(_assertThisInitialized(_this), \"focusToDate\", function (date) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _this.props;\n var preventUnnecessary = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!props.scroll.enabled) {\n if (preventUnnecessary && props.preventSnapRefocus) {\n var focusedDateDiff = (0, _differenceInCalendarMonths.default)(date, _this.state.focusedDate);\n var isAllowedForward = props.calendarFocus === 'forwards' && focusedDateDiff >= 0;\n var isAllowedBackward = props.calendarFocus === 'backwards' && focusedDateDiff <= 0;\n\n if ((isAllowedForward || isAllowedBackward) && Math.abs(focusedDateDiff) < props.months) {\n return;\n }\n }\n\n _this.setState({\n focusedDate: date\n });\n\n return;\n }\n\n var targetMonthIndex = (0, _differenceInCalendarMonths.default)(date, props.minDate, _this.dateOptions);\n\n var visibleMonths = _this.list.getVisibleRange();\n\n if (preventUnnecessary && visibleMonths.includes(targetMonthIndex)) return;\n _this.isFirstRender = true;\n\n _this.list.scrollTo(targetMonthIndex);\n\n _this.setState({\n focusedDate: date\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateShownDate\", function () {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this.props;\n var newProps = props.scroll.enabled ? _objectSpread(_objectSpread({}, props), {}, {\n months: _this.list.getVisibleRange().length\n }) : props;\n var newFocus = (0, _utils.calcFocusDate)(_this.state.focusedDate, newProps);\n\n _this.focusToDate(newFocus, newProps);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updatePreview\", function (val) {\n if (!val) {\n _this.setState({\n preview: null\n });\n\n return;\n }\n\n var preview = {\n startDate: val,\n endDate: val,\n color: _this.props.color\n };\n\n _this.setState({\n preview: preview\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"changeShownDate\", function (value) {\n var mode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'set';\n var focusedDate = _this.state.focusedDate;\n var _this$props = _this.props,\n onShownDateChange = _this$props.onShownDateChange,\n minDate = _this$props.minDate,\n maxDate = _this$props.maxDate;\n var modeMapper = {\n monthOffset: function monthOffset() {\n return (0, _addMonths.default)(focusedDate, value);\n },\n setMonth: function (_setMonth) {\n function setMonth() {\n return _setMonth.apply(this, arguments);\n }\n\n setMonth.toString = function () {\n return _setMonth.toString();\n };\n\n return setMonth;\n }(function () {\n return (0, _setMonth2.default)(focusedDate, value);\n }),\n setYear: function (_setYear) {\n function setYear() {\n return _setYear.apply(this, arguments);\n }\n\n setYear.toString = function () {\n return _setYear.toString();\n };\n\n return setYear;\n }(function () {\n return (0, _setYear2.default)(focusedDate, value);\n }),\n set: function set() {\n return value;\n }\n };\n var newDate = (0, _min.default)([(0, _max.default)([modeMapper[mode](), minDate]), maxDate]);\n\n _this.focusToDate(newDate, _this.props, false);\n\n onShownDateChange && onShownDateChange(newDate);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleRangeFocusChange\", function (rangesIndex, rangeItemIndex) {\n _this.props.onRangeFocusChange && _this.props.onRangeFocusChange([rangesIndex, rangeItemIndex]);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleScroll\", function () {\n var _this$props2 = _this.props,\n onShownDateChange = _this$props2.onShownDateChange,\n minDate = _this$props2.minDate;\n var focusedDate = _this.state.focusedDate;\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n isFirstRender = _assertThisInitialize.isFirstRender;\n\n var visibleMonths = _this.list.getVisibleRange(); // prevent scroll jump with wrong visible value\n\n\n if (visibleMonths[0] === undefined) return;\n var visibleMonth = (0, _addMonths.default)(minDate, visibleMonths[0] || 0);\n var isFocusedToDifferent = !(0, _isSameMonth.default)(visibleMonth, focusedDate);\n\n if (isFocusedToDifferent && !isFirstRender) {\n _this.setState({\n focusedDate: visibleMonth\n });\n\n onShownDateChange && onShownDateChange(visibleMonth);\n }\n\n _this.isFirstRender = false;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderMonthAndYear\", function (focusedDate, changeShownDate, props) {\n var showMonthArrow = props.showMonthArrow,\n minDate = props.minDate,\n maxDate = props.maxDate,\n showMonthAndYearPickers = props.showMonthAndYearPickers,\n ariaLabels = props.ariaLabels;\n var upperYearLimit = (maxDate || Calendar.defaultProps.maxDate).getFullYear();\n var lowerYearLimit = (minDate || Calendar.defaultProps.minDate).getFullYear();\n var styles = _this.styles;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n onMouseUp: function onMouseUp(e) {\n return e.stopPropagation();\n },\n className: styles.monthAndYearWrapper\n }, showMonthArrow ? /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n className: (0, _classnames3.default)(styles.nextPrevButton, styles.prevButton),\n onClick: function onClick() {\n return changeShownDate(-1, 'monthOffset');\n },\n \"aria-label\": ariaLabels.prevButton\n }, /*#__PURE__*/_react.default.createElement(\"i\", null)) : null, showMonthAndYearPickers ? /*#__PURE__*/_react.default.createElement(\"span\", {\n className: styles.monthAndYearPickers\n }, /*#__PURE__*/_react.default.createElement(\"span\", {\n className: styles.monthPicker\n }, /*#__PURE__*/_react.default.createElement(\"select\", {\n value: focusedDate.getMonth(),\n onChange: function onChange(e) {\n return changeShownDate(e.target.value, 'setMonth');\n },\n \"aria-label\": ariaLabels.monthPicker\n }, _this.state.monthNames.map(function (monthName, i) {\n return /*#__PURE__*/_react.default.createElement(\"option\", {\n key: i,\n value: i\n }, monthName);\n }))), /*#__PURE__*/_react.default.createElement(\"span\", {\n className: styles.monthAndYearDivider\n }), /*#__PURE__*/_react.default.createElement(\"span\", {\n className: styles.yearPicker\n }, /*#__PURE__*/_react.default.createElement(\"select\", {\n value: focusedDate.getFullYear(),\n onChange: function onChange(e) {\n return changeShownDate(e.target.value, 'setYear');\n },\n \"aria-label\": ariaLabels.yearPicker\n }, new Array(upperYearLimit - lowerYearLimit + 1).fill(upperYearLimit).map(function (val, i) {\n var year = val - i;\n return /*#__PURE__*/_react.default.createElement(\"option\", {\n key: year,\n value: year\n }, year);\n })))) : /*#__PURE__*/_react.default.createElement(\"span\", {\n className: styles.monthAndYearPickers\n }, _this.state.monthNames[focusedDate.getMonth()], \" \", focusedDate.getFullYear()), showMonthArrow ? /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n className: (0, _classnames3.default)(styles.nextPrevButton, styles.nextButton),\n onClick: function onClick() {\n return changeShownDate(+1, 'monthOffset');\n },\n \"aria-label\": ariaLabels.nextButton\n }, /*#__PURE__*/_react.default.createElement(\"i\", null)) : null);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderDateDisplay\", function () {\n var _this$props3 = _this.props,\n focusedRange = _this$props3.focusedRange,\n color = _this$props3.color,\n ranges = _this$props3.ranges,\n rangeColors = _this$props3.rangeColors,\n dateDisplayFormat = _this$props3.dateDisplayFormat,\n editableDateInputs = _this$props3.editableDateInputs,\n startDatePlaceholder = _this$props3.startDatePlaceholder,\n endDatePlaceholder = _this$props3.endDatePlaceholder,\n ariaLabels = _this$props3.ariaLabels;\n var defaultColor = rangeColors[focusedRange[0]] || color;\n var styles = _this.styles;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: styles.dateDisplayWrapper\n }, ranges.map(function (range, i) {\n if (range.showDateDisplay === false || range.disabled && !range.showDateDisplay) return null;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: styles.dateDisplay,\n key: i,\n style: {\n color: range.color || defaultColor\n }\n }, /*#__PURE__*/_react.default.createElement(_DateInput.default, {\n className: (0, _classnames3.default)(styles.dateDisplayItem, _defineProperty({}, styles.dateDisplayItemActive, focusedRange[0] === i && focusedRange[1] === 0)),\n readOnly: !editableDateInputs,\n disabled: range.disabled,\n value: range.startDate,\n placeholder: startDatePlaceholder,\n dateOptions: _this.dateOptions,\n dateDisplayFormat: dateDisplayFormat,\n ariaLabel: ariaLabels.dateInput && ariaLabels.dateInput[range.key] && ariaLabels.dateInput[range.key].startDate,\n onChange: _this.onDragSelectionEnd,\n onFocus: function onFocus() {\n return _this.handleRangeFocusChange(i, 0);\n }\n }), /*#__PURE__*/_react.default.createElement(_DateInput.default, {\n className: (0, _classnames3.default)(styles.dateDisplayItem, _defineProperty({}, styles.dateDisplayItemActive, focusedRange[0] === i && focusedRange[1] === 1)),\n readOnly: !editableDateInputs,\n disabled: range.disabled,\n value: range.endDate,\n placeholder: endDatePlaceholder,\n dateOptions: _this.dateOptions,\n dateDisplayFormat: dateDisplayFormat,\n ariaLabel: ariaLabels.dateInput && ariaLabels.dateInput[range.key] && ariaLabels.dateInput[range.key].endDate,\n onChange: _this.onDragSelectionEnd,\n onFocus: function onFocus() {\n return _this.handleRangeFocusChange(i, 1);\n }\n }));\n }));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragSelectionStart\", function (date) {\n var _this$props4 = _this.props,\n onChange = _this$props4.onChange,\n dragSelectionEnabled = _this$props4.dragSelectionEnabled;\n\n if (dragSelectionEnabled) {\n _this.setState({\n drag: {\n status: true,\n range: {\n startDate: date,\n endDate: date\n },\n disablePreview: true\n }\n });\n } else {\n onChange && onChange(date);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragSelectionEnd\", function (date) {\n var _this$props5 = _this.props,\n updateRange = _this$props5.updateRange,\n displayMode = _this$props5.displayMode,\n onChange = _this$props5.onChange,\n dragSelectionEnabled = _this$props5.dragSelectionEnabled;\n if (!dragSelectionEnabled) return;\n\n if (displayMode === 'date' || !_this.state.drag.status) {\n onChange && onChange(date);\n return;\n }\n\n var newRange = {\n startDate: _this.state.drag.range.startDate,\n endDate: date\n };\n\n if (displayMode !== 'dateRange' || (0, _isSameDay.default)(newRange.startDate, date)) {\n _this.setState({\n drag: {\n status: false,\n range: {}\n }\n }, function () {\n return onChange && onChange(date);\n });\n } else {\n _this.setState({\n drag: {\n status: false,\n range: {}\n }\n }, function () {\n updateRange && updateRange(newRange);\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragSelectionMove\", function (date) {\n var drag = _this.state.drag;\n if (!drag.status || !_this.props.dragSelectionEnabled) return;\n\n _this.setState({\n drag: {\n status: drag.status,\n range: {\n startDate: drag.range.startDate,\n endDate: date\n },\n disablePreview: true\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"estimateMonthSize\", function (index, cache) {\n var _this$props6 = _this.props,\n direction = _this$props6.direction,\n minDate = _this$props6.minDate;\n var scrollArea = _this.state.scrollArea;\n\n if (cache) {\n _this.listSizeCache = cache;\n if (cache[index]) return cache[index];\n }\n\n if (direction === 'horizontal') return scrollArea.monthWidth;\n var monthStep = (0, _addMonths.default)(minDate, index);\n\n var _getMonthDisplayRange = (0, _utils.getMonthDisplayRange)(monthStep, _this.dateOptions),\n start = _getMonthDisplayRange.start,\n end = _getMonthDisplayRange.end;\n\n var isLongMonth = (0, _differenceInDays.default)(end, start, _this.dateOptions) + 1 > 7 * 5;\n return isLongMonth ? scrollArea.longMonthHeight : scrollArea.monthHeight;\n });\n\n _this.dateOptions = {\n locale: _props.locale\n };\n if (_props.weekStartsOn !== undefined) _this.dateOptions.weekStartsOn = _props.weekStartsOn;\n _this.styles = (0, _utils.generateStyles)([_styles.default, _props.classNames]);\n _this.listSizeCache = {};\n _this.isFirstRender = true;\n _this.state = {\n monthNames: _this.getMonthNames(),\n focusedDate: (0, _utils.calcFocusDate)(null, _props),\n drag: {\n status: false,\n range: {\n startDate: null,\n endDate: null\n },\n disablePreview: false\n },\n scrollArea: _this.calcScrollArea(_props)\n };\n return _this;\n }\n\n _createClass(Calendar, [{\n key: \"getMonthNames\",\n value: function getMonthNames() {\n var _this2 = this;\n\n return _toConsumableArray(Array(12).keys()).map(function (i) {\n return _this2.props.locale.localize.month(i);\n });\n }\n }, {\n key: \"calcScrollArea\",\n value: function calcScrollArea(props) {\n var direction = props.direction,\n months = props.months,\n scroll = props.scroll;\n if (!scroll.enabled) return {\n enabled: false\n };\n var longMonthHeight = scroll.longMonthHeight || scroll.monthHeight;\n\n if (direction === 'vertical') {\n return {\n enabled: true,\n monthHeight: scroll.monthHeight || 220,\n longMonthHeight: longMonthHeight || 260,\n calendarWidth: 'auto',\n calendarHeight: (scroll.calendarHeight || longMonthHeight || 240) * months\n };\n }\n\n return {\n enabled: true,\n monthWidth: scroll.monthWidth || 332,\n calendarWidth: (scroll.calendarWidth || scroll.monthWidth || 332) * months,\n monthHeight: longMonthHeight || 300,\n calendarHeight: longMonthHeight || 300\n };\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this3 = this;\n\n if (this.props.scroll.enabled) {\n // prevent react-list's initial render focus problem\n setTimeout(function () {\n return _this3.focusToDate(_this3.state.focusedDate);\n });\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var propMapper = {\n dateRange: 'ranges',\n date: 'date'\n };\n var targetProp = propMapper[this.props.displayMode];\n\n if (this.props[targetProp] !== prevProps[targetProp]) {\n this.updateShownDate(this.props);\n }\n\n if (prevProps.locale !== this.props.locale || prevProps.weekStartsOn !== this.props.weekStartsOn) {\n this.dateOptions = {\n locale: this.props.locale\n };\n if (this.props.weekStartsOn !== undefined) this.dateOptions.weekStartsOn = this.props.weekStartsOn;\n this.setState({\n monthNames: this.getMonthNames()\n });\n }\n\n if (!(0, _shallowEqual.shallowEqualObjects)(prevProps.scroll, this.props.scroll)) {\n this.setState({\n scrollArea: this.calcScrollArea(this.props)\n });\n }\n }\n }, {\n key: \"renderWeekdays\",\n value: function renderWeekdays() {\n var _this4 = this;\n\n var now = new Date();\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: this.styles.weekDays\n }, (0, _eachDayOfInterval.default)({\n start: (0, _startOfWeek.default)(now, this.dateOptions),\n end: (0, _endOfWeek.default)(now, this.dateOptions)\n }).map(function (day, i) {\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n className: _this4.styles.weekDay,\n key: i\n }, (0, _format.default)(day, _this4.props.weekdayDisplayFormat, _this4.dateOptions));\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this5 = this;\n\n var _this$props7 = this.props,\n showDateDisplay = _this$props7.showDateDisplay,\n onPreviewChange = _this$props7.onPreviewChange,\n scroll = _this$props7.scroll,\n direction = _this$props7.direction,\n disabledDates = _this$props7.disabledDates,\n disabledDay = _this$props7.disabledDay,\n maxDate = _this$props7.maxDate,\n minDate = _this$props7.minDate,\n rangeColors = _this$props7.rangeColors,\n color = _this$props7.color,\n navigatorRenderer = _this$props7.navigatorRenderer,\n className = _this$props7.className,\n preview = _this$props7.preview;\n var _this$state = this.state,\n scrollArea = _this$state.scrollArea,\n focusedDate = _this$state.focusedDate;\n var isVertical = direction === 'vertical';\n var monthAndYearRenderer = navigatorRenderer || this.renderMonthAndYear;\n var ranges = this.props.ranges.map(function (range, i) {\n return _objectSpread(_objectSpread({}, range), {}, {\n color: range.color || rangeColors[i] || color\n });\n });\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: (0, _classnames3.default)(this.styles.calendarWrapper, className),\n onMouseUp: function onMouseUp() {\n return _this5.setState({\n drag: {\n status: false,\n range: {}\n }\n });\n },\n onMouseLeave: function onMouseLeave() {\n _this5.setState({\n drag: {\n status: false,\n range: {}\n }\n });\n }\n }, showDateDisplay && this.renderDateDisplay(), monthAndYearRenderer(focusedDate, this.changeShownDate, this.props), scroll.enabled ? /*#__PURE__*/_react.default.createElement(\"div\", null, isVertical && this.renderWeekdays(this.dateOptions), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: (0, _classnames3.default)(this.styles.infiniteMonths, isVertical ? this.styles.monthsVertical : this.styles.monthsHorizontal),\n onMouseLeave: function onMouseLeave() {\n return onPreviewChange && onPreviewChange();\n },\n style: {\n width: scrollArea.calendarWidth + 11,\n height: scrollArea.calendarHeight + 11\n },\n onScroll: this.handleScroll\n }, /*#__PURE__*/_react.default.createElement(_reactList.default, {\n length: (0, _differenceInCalendarMonths.default)((0, _endOfMonth.default)(maxDate), (0, _addDays.default)((0, _startOfMonth.default)(minDate), -1), this.dateOptions),\n treshold: 500,\n type: \"variable\",\n ref: function ref(target) {\n return _this5.list = target;\n },\n itemSizeEstimator: this.estimateMonthSize,\n axis: isVertical ? 'y' : 'x',\n itemRenderer: function itemRenderer(index, key) {\n var monthStep = (0, _addMonths.default)(minDate, index);\n return /*#__PURE__*/_react.default.createElement(_Month.default, _extends({}, _this5.props, {\n onPreviewChange: onPreviewChange || _this5.updatePreview,\n preview: preview || _this5.state.preview,\n ranges: ranges,\n key: key,\n drag: _this5.state.drag,\n dateOptions: _this5.dateOptions,\n disabledDates: disabledDates,\n disabledDay: disabledDay,\n month: monthStep,\n onDragSelectionStart: _this5.onDragSelectionStart,\n onDragSelectionEnd: _this5.onDragSelectionEnd,\n onDragSelectionMove: _this5.onDragSelectionMove,\n onMouseLeave: function onMouseLeave() {\n return onPreviewChange && onPreviewChange();\n },\n styles: _this5.styles,\n style: isVertical ? {\n height: _this5.estimateMonthSize(index)\n } : {\n height: scrollArea.monthHeight,\n width: _this5.estimateMonthSize(index)\n },\n showMonthName: true,\n showWeekDays: !isVertical\n }));\n }\n }))) : /*#__PURE__*/_react.default.createElement(\"div\", {\n className: (0, _classnames3.default)(this.styles.months, isVertical ? this.styles.monthsVertical : this.styles.monthsHorizontal)\n }, new Array(this.props.months).fill(null).map(function (_, i) {\n var monthStep = (0, _addMonths.default)(_this5.state.focusedDate, i);\n ;\n\n if (_this5.props.calendarFocus === 'backwards') {\n monthStep = (0, _subMonths.default)(_this5.state.focusedDate, _this5.props.months - 1 - i);\n }\n\n return /*#__PURE__*/_react.default.createElement(_Month.default, _extends({}, _this5.props, {\n onPreviewChange: onPreviewChange || _this5.updatePreview,\n preview: preview || _this5.state.preview,\n ranges: ranges,\n key: i,\n drag: _this5.state.drag,\n dateOptions: _this5.dateOptions,\n disabledDates: disabledDates,\n disabledDay: disabledDay,\n month: monthStep,\n onDragSelectionStart: _this5.onDragSelectionStart,\n onDragSelectionEnd: _this5.onDragSelectionEnd,\n onDragSelectionMove: _this5.onDragSelectionMove,\n onMouseLeave: function onMouseLeave() {\n return onPreviewChange && onPreviewChange();\n },\n styles: _this5.styles,\n showWeekDays: !isVertical || i === 0,\n showMonthName: !isVertical || i > 0\n }));\n })));\n }\n }]);\n\n return Calendar;\n}(_react.PureComponent);\n\nCalendar.defaultProps = {\n showMonthArrow: true,\n showMonthAndYearPickers: true,\n disabledDates: [],\n disabledDay: function disabledDay() {},\n classNames: {},\n locale: _enUS.default,\n ranges: [],\n focusedRange: [0, 0],\n dateDisplayFormat: 'MMM d, yyyy',\n monthDisplayFormat: 'MMM yyyy',\n weekdayDisplayFormat: 'E',\n dayDisplayFormat: 'd',\n showDateDisplay: true,\n showPreview: true,\n displayMode: 'date',\n months: 1,\n color: '#3d91ff',\n scroll: {\n enabled: false\n },\n direction: 'vertical',\n maxDate: (0, _addYears.default)(new Date(), 20),\n minDate: (0, _addYears.default)(new Date(), -100),\n rangeColors: ['#3d91ff', '#3ecf8e', '#fed14c'],\n startDatePlaceholder: 'Early',\n endDatePlaceholder: 'Continuous',\n editableDateInputs: false,\n dragSelectionEnabled: true,\n fixedHeight: false,\n calendarFocus: 'forwards',\n preventSnapRefocus: false,\n ariaLabels: {}\n};\nCalendar.propTypes = {\n showMonthArrow: _propTypes.default.bool,\n showMonthAndYearPickers: _propTypes.default.bool,\n disabledDates: _propTypes.default.array,\n disabledDay: _propTypes.default.func,\n minDate: _propTypes.default.object,\n maxDate: _propTypes.default.object,\n date: _propTypes.default.object,\n onChange: _propTypes.default.func,\n onPreviewChange: _propTypes.default.func,\n onRangeFocusChange: _propTypes.default.func,\n classNames: _propTypes.default.object,\n locale: _propTypes.default.object,\n shownDate: _propTypes.default.object,\n onShownDateChange: _propTypes.default.func,\n ranges: _propTypes.default.arrayOf(_DayCell.rangeShape),\n preview: _propTypes.default.shape({\n startDate: _propTypes.default.object,\n endDate: _propTypes.default.object,\n color: _propTypes.default.string\n }),\n dateDisplayFormat: _propTypes.default.string,\n monthDisplayFormat: _propTypes.default.string,\n weekdayDisplayFormat: _propTypes.default.string,\n weekStartsOn: _propTypes.default.number,\n dayDisplayFormat: _propTypes.default.string,\n focusedRange: _propTypes.default.arrayOf(_propTypes.default.number),\n initialFocusedRange: _propTypes.default.arrayOf(_propTypes.default.number),\n months: _propTypes.default.number,\n className: _propTypes.default.string,\n showDateDisplay: _propTypes.default.bool,\n showPreview: _propTypes.default.bool,\n displayMode: _propTypes.default.oneOf(['dateRange', 'date']),\n color: _propTypes.default.string,\n updateRange: _propTypes.default.func,\n scroll: _propTypes.default.shape({\n enabled: _propTypes.default.bool,\n monthHeight: _propTypes.default.number,\n longMonthHeight: _propTypes.default.number,\n monthWidth: _propTypes.default.number,\n calendarWidth: _propTypes.default.number,\n calendarHeight: _propTypes.default.number\n }),\n direction: _propTypes.default.oneOf(['vertical', 'horizontal']),\n startDatePlaceholder: _propTypes.default.string,\n endDatePlaceholder: _propTypes.default.string,\n navigatorRenderer: _propTypes.default.func,\n rangeColors: _propTypes.default.arrayOf(_propTypes.default.string),\n editableDateInputs: _propTypes.default.bool,\n dragSelectionEnabled: _propTypes.default.bool,\n fixedHeight: _propTypes.default.bool,\n calendarFocus: _propTypes.default.string,\n preventSnapRefocus: _propTypes.default.bool,\n ariaLabels: _accessibility.ariaLabelsShape\n};\nvar _default = Calendar;\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 = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _isEqual = _interopRequireDefault(require(\"date-fns/isEqual\"));\n\nvar _isValid = _interopRequireDefault(require(\"date-fns/isValid\"));\n\nvar _parse = _interopRequireDefault(require(\"date-fns/parse\"));\n\nvar _format = _interopRequireDefault(require(\"date-fns/format\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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 _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 DateInput = /*#__PURE__*/function (_PureComponent) {\n _inherits(DateInput, _PureComponent);\n\n var _super = _createSuper(DateInput);\n\n function DateInput(props, context) {\n var _this;\n\n _classCallCheck(this, DateInput);\n\n _this = _super.call(this, props, context);\n\n _defineProperty(_assertThisInitialized(_this), \"onKeyDown\", function (e) {\n var value = _this.state.value;\n\n if (e.key === 'Enter') {\n _this.update(value);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onChange\", function (e) {\n _this.setState({\n value: e.target.value,\n changed: true,\n invalid: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onBlur\", function () {\n var value = _this.state.value;\n\n _this.update(value);\n });\n\n _this.state = {\n invalid: false,\n changed: false,\n value: _this.formatDate(props)\n };\n return _this;\n }\n\n _createClass(DateInput, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var value = prevProps.value;\n\n if (!(0, _isEqual.default)(value, this.props.value)) {\n this.setState({\n value: this.formatDate(this.props)\n });\n }\n }\n }, {\n key: \"formatDate\",\n value: function formatDate(_ref) {\n var value = _ref.value,\n dateDisplayFormat = _ref.dateDisplayFormat,\n dateOptions = _ref.dateOptions;\n\n if (value && (0, _isValid.default)(value)) {\n return (0, _format.default)(value, dateDisplayFormat, dateOptions);\n }\n\n return '';\n }\n }, {\n key: \"update\",\n value: function update(value) {\n var _this$state = this.state,\n invalid = _this$state.invalid,\n changed = _this$state.changed;\n\n if (invalid || !changed || !value) {\n return;\n }\n\n var _this$props = this.props,\n onChange = _this$props.onChange,\n dateDisplayFormat = _this$props.dateDisplayFormat,\n dateOptions = _this$props.dateOptions;\n var parsed = (0, _parse.default)(value, dateDisplayFormat, new Date(), dateOptions);\n\n if ((0, _isValid.default)(parsed)) {\n this.setState({\n changed: false\n }, function () {\n return onChange(parsed);\n });\n } else {\n this.setState({\n invalid: true\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n readOnly = _this$props2.readOnly,\n placeholder = _this$props2.placeholder,\n ariaLabel = _this$props2.ariaLabel,\n disabled = _this$props2.disabled,\n onFocus = _this$props2.onFocus;\n var _this$state2 = this.state,\n value = _this$state2.value,\n invalid = _this$state2.invalid;\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n className: (0, _classnames.default)('rdrDateInput', className)\n }, /*#__PURE__*/_react.default.createElement(\"input\", {\n readOnly: readOnly,\n disabled: disabled,\n value: value,\n placeholder: placeholder,\n \"aria-label\": ariaLabel,\n onKeyDown: this.onKeyDown,\n onChange: this.onChange,\n onBlur: this.onBlur,\n onFocus: onFocus\n }), invalid && /*#__PURE__*/_react.default.createElement(\"span\", {\n className: \"rdrWarning\"\n }, \"\\u26A0\"));\n }\n }]);\n\n return DateInput;\n}(_react.PureComponent);\n\nDateInput.propTypes = {\n value: _propTypes.default.object,\n placeholder: _propTypes.default.string,\n disabled: _propTypes.default.bool,\n readOnly: _propTypes.default.bool,\n dateOptions: _propTypes.default.object,\n dateDisplayFormat: _propTypes.default.string,\n ariaLabel: _propTypes.default.string,\n className: _propTypes.default.string,\n onFocus: _propTypes.default.func.isRequired,\n onChange: _propTypes.default.func.isRequired\n};\nDateInput.defaultProps = {\n readOnly: true,\n disabled: false,\n dateDisplayFormat: 'MMM D, YYYY'\n};\nvar _default = DateInput;\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 = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _DateRange = _interopRequireDefault(require(\"../DateRange\"));\n\nvar _DefinedRange = _interopRequireDefault(require(\"../DefinedRange\"));\n\nvar _utils = require(\"../../utils\");\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _styles = _interopRequireDefault(require(\"../../styles\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _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\nvar DateRangePicker = /*#__PURE__*/function (_Component) {\n _inherits(DateRangePicker, _Component);\n\n var _super = _createSuper(DateRangePicker);\n\n function DateRangePicker(props) {\n var _this;\n\n _classCallCheck(this, DateRangePicker);\n\n _this = _super.call(this, props);\n _this.state = {\n focusedRange: [(0, _utils.findNextRangeIndex)(props.ranges), 0]\n };\n _this.styles = (0, _utils.generateStyles)([_styles.default, props.classNames]);\n return _this;\n }\n\n _createClass(DateRangePicker, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var focusedRange = this.state.focusedRange;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: (0, _classnames.default)(this.styles.dateRangePickerWrapper, this.props.className)\n }, /*#__PURE__*/_react.default.createElement(_DefinedRange.default, _extends({\n focusedRange: focusedRange,\n onPreviewChange: function onPreviewChange(value) {\n return _this2.dateRange.updatePreview(value ? _this2.dateRange.calcNewSelection(value, typeof value === 'string') : null);\n }\n }, this.props, {\n range: this.props.ranges[focusedRange[0]],\n className: undefined\n })), /*#__PURE__*/_react.default.createElement(_DateRange.default, _extends({\n onRangeFocusChange: function onRangeFocusChange(focusedRange) {\n return _this2.setState({\n focusedRange: focusedRange\n });\n },\n focusedRange: focusedRange\n }, this.props, {\n ref: function ref(t) {\n return _this2.dateRange = t;\n },\n className: undefined\n })));\n }\n }]);\n\n return DateRangePicker;\n}(_react.Component);\n\nDateRangePicker.defaultProps = {};\nDateRangePicker.propTypes = _objectSpread(_objectSpread(_objectSpread({}, _DateRange.default.propTypes), _DefinedRange.default.propTypes), {}, {\n className: _propTypes.default.string\n});\nvar _default = DateRangePicker;\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 = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _Calendar = _interopRequireDefault(require(\"../Calendar\"));\n\nvar _DayCell = require(\"../DayCell\");\n\nvar _utils = require(\"../../utils\");\n\nvar _max = _interopRequireDefault(require(\"date-fns/max\"));\n\nvar _isWithinInterval = _interopRequireDefault(require(\"date-fns/isWithinInterval\"));\n\nvar _min = _interopRequireDefault(require(\"date-fns/min\"));\n\nvar _addDays = _interopRequireDefault(require(\"date-fns/addDays\"));\n\nvar _differenceInCalendarDays = _interopRequireDefault(require(\"date-fns/differenceInCalendarDays\"));\n\nvar _isBefore = _interopRequireDefault(require(\"date-fns/isBefore\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _styles = _interopRequireDefault(require(\"../../styles\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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 _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _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 DateRange = /*#__PURE__*/function (_Component) {\n _inherits(DateRange, _Component);\n\n var _super = _createSuper(DateRange);\n\n function DateRange(props, context) {\n var _this;\n\n _classCallCheck(this, DateRange);\n\n _this = _super.call(this, props, context);\n\n _defineProperty(_assertThisInitialized(_this), \"calcNewSelection\", function (value) {\n var isSingleValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var focusedRange = _this.props.focusedRange || _this.state.focusedRange;\n var _this$props = _this.props,\n ranges = _this$props.ranges,\n onChange = _this$props.onChange,\n maxDate = _this$props.maxDate,\n moveRangeOnFirstSelection = _this$props.moveRangeOnFirstSelection,\n retainEndDateOnFirstSelection = _this$props.retainEndDateOnFirstSelection,\n disabledDates = _this$props.disabledDates;\n var focusedRangeIndex = focusedRange[0];\n var selectedRange = ranges[focusedRangeIndex];\n if (!selectedRange || !onChange) return {};\n var startDate = selectedRange.startDate,\n endDate = selectedRange.endDate;\n var now = new Date();\n var nextFocusRange;\n\n if (!isSingleValue) {\n startDate = value.startDate;\n endDate = value.endDate;\n } else if (focusedRange[1] === 0) {\n // startDate selection\n var dayOffset = (0, _differenceInCalendarDays.default)(endDate || now, startDate);\n\n var calculateEndDate = function calculateEndDate() {\n if (moveRangeOnFirstSelection) {\n return (0, _addDays.default)(value, dayOffset);\n }\n\n if (retainEndDateOnFirstSelection) {\n if (!endDate || (0, _isBefore.default)(value, endDate)) {\n return endDate;\n }\n\n return value;\n }\n\n return value || now;\n };\n\n startDate = value;\n endDate = calculateEndDate();\n if (maxDate) endDate = (0, _min.default)([endDate, maxDate]);\n nextFocusRange = [focusedRange[0], 1];\n } else {\n endDate = value;\n } // reverse dates if startDate before endDate\n\n\n var isStartDateSelected = focusedRange[1] === 0;\n\n if ((0, _isBefore.default)(endDate, startDate)) {\n isStartDateSelected = !isStartDateSelected;\n var _ref = [endDate, startDate];\n startDate = _ref[0];\n endDate = _ref[1];\n }\n\n var inValidDatesWithinRange = disabledDates.filter(function (disabledDate) {\n return (0, _isWithinInterval.default)(disabledDate, {\n start: startDate,\n end: endDate\n });\n });\n\n if (inValidDatesWithinRange.length > 0) {\n if (isStartDateSelected) {\n startDate = (0, _addDays.default)((0, _max.default)(inValidDatesWithinRange), 1);\n } else {\n endDate = (0, _addDays.default)((0, _min.default)(inValidDatesWithinRange), -1);\n }\n }\n\n if (!nextFocusRange) {\n var nextFocusRangeIndex = (0, _utils.findNextRangeIndex)(_this.props.ranges, focusedRange[0]);\n nextFocusRange = [nextFocusRangeIndex, 0];\n }\n\n return {\n wasValid: !(inValidDatesWithinRange.length > 0),\n range: {\n startDate: startDate,\n endDate: endDate\n },\n nextFocusRange: nextFocusRange\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setSelection\", function (value, isSingleValue) {\n var _this$props2 = _this.props,\n onChange = _this$props2.onChange,\n ranges = _this$props2.ranges,\n onRangeFocusChange = _this$props2.onRangeFocusChange;\n var focusedRange = _this.props.focusedRange || _this.state.focusedRange;\n var focusedRangeIndex = focusedRange[0];\n var selectedRange = ranges[focusedRangeIndex];\n if (!selectedRange) return;\n\n var newSelection = _this.calcNewSelection(value, isSingleValue);\n\n onChange(_defineProperty({}, selectedRange.key || \"range\".concat(focusedRangeIndex + 1), _objectSpread(_objectSpread({}, selectedRange), newSelection.range)));\n\n _this.setState({\n focusedRange: newSelection.nextFocusRange,\n preview: null\n });\n\n onRangeFocusChange && onRangeFocusChange(newSelection.nextFocusRange);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleRangeFocusChange\", function (focusedRange) {\n _this.setState({\n focusedRange: focusedRange\n });\n\n _this.props.onRangeFocusChange && _this.props.onRangeFocusChange(focusedRange);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updatePreview\", function (val) {\n var _ranges$focusedRange$;\n\n if (!val) {\n _this.setState({\n preview: null\n });\n\n return;\n }\n\n var _this$props3 = _this.props,\n rangeColors = _this$props3.rangeColors,\n ranges = _this$props3.ranges;\n var focusedRange = _this.props.focusedRange || _this.state.focusedRange;\n var color = ((_ranges$focusedRange$ = ranges[focusedRange[0]]) === null || _ranges$focusedRange$ === void 0 ? void 0 : _ranges$focusedRange$.color) || rangeColors[focusedRange[0]] || color;\n\n _this.setState({\n preview: _objectSpread(_objectSpread({}, val.range), {}, {\n color: color\n })\n });\n });\n\n _this.state = {\n focusedRange: props.initialFocusedRange || [(0, _utils.findNextRangeIndex)(props.ranges), 0],\n preview: null\n };\n _this.styles = (0, _utils.generateStyles)([_styles.default, props.classNames]);\n return _this;\n }\n\n _createClass(DateRange, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n return /*#__PURE__*/_react.default.createElement(_Calendar.default, _extends({\n focusedRange: this.state.focusedRange,\n onRangeFocusChange: this.handleRangeFocusChange,\n preview: this.state.preview,\n onPreviewChange: function onPreviewChange(value) {\n _this2.updatePreview(value ? _this2.calcNewSelection(value) : null);\n }\n }, this.props, {\n displayMode: \"dateRange\",\n className: (0, _classnames.default)(this.styles.dateRangeWrapper, this.props.className),\n onChange: this.setSelection,\n updateRange: function updateRange(val) {\n return _this2.setSelection(val, false);\n },\n ref: function ref(target) {\n _this2.calendar = target;\n }\n }));\n }\n }]);\n\n return DateRange;\n}(_react.Component);\n\nDateRange.defaultProps = {\n classNames: {},\n ranges: [],\n moveRangeOnFirstSelection: false,\n retainEndDateOnFirstSelection: false,\n rangeColors: ['#3d91ff', '#3ecf8e', '#fed14c'],\n disabledDates: []\n};\nDateRange.propTypes = _objectSpread(_objectSpread({}, _Calendar.default.propTypes), {}, {\n onChange: _propTypes.default.func,\n onRangeFocusChange: _propTypes.default.func,\n className: _propTypes.default.string,\n ranges: _propTypes.default.arrayOf(_DayCell.rangeShape),\n moveRangeOnFirstSelection: _propTypes.default.bool,\n retainEndDateOnFirstSelection: _propTypes.default.bool\n});\nvar _default = DateRange;\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 = exports.rangeShape = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames4 = _interopRequireDefault(require(\"classnames\"));\n\nvar _endOfDay = _interopRequireDefault(require(\"date-fns/endOfDay\"));\n\nvar _isBefore = _interopRequireDefault(require(\"date-fns/isBefore\"));\n\nvar _isAfter = _interopRequireDefault(require(\"date-fns/isAfter\"));\n\nvar _isSameDay = _interopRequireDefault(require(\"date-fns/isSameDay\"));\n\nvar _format = _interopRequireDefault(require(\"date-fns/format\"));\n\nvar _startOfDay = _interopRequireDefault(require(\"date-fns/startOfDay\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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 _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 _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _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 DayCell = /*#__PURE__*/function (_Component) {\n _inherits(DayCell, _Component);\n\n var _super = _createSuper(DayCell);\n\n function DayCell(props, context) {\n var _this;\n\n _classCallCheck(this, DayCell);\n\n _this = _super.call(this, props, context);\n\n _defineProperty(_assertThisInitialized(_this), \"handleKeyEvent\", function (event) {\n var _this$props = _this.props,\n day = _this$props.day,\n onMouseDown = _this$props.onMouseDown,\n onMouseUp = _this$props.onMouseUp;\n\n if ([13\n /* space */\n , 32\n /* enter */\n ].includes(event.keyCode)) {\n if (event.type === 'keydown') onMouseDown(day);else onMouseUp(day);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleMouseEvent\", function (event) {\n var _this$props2 = _this.props,\n day = _this$props2.day,\n disabled = _this$props2.disabled,\n onPreviewChange = _this$props2.onPreviewChange,\n onMouseEnter = _this$props2.onMouseEnter,\n onMouseDown = _this$props2.onMouseDown,\n onMouseUp = _this$props2.onMouseUp;\n var stateChanges = {};\n\n if (disabled) {\n onPreviewChange();\n return;\n }\n\n switch (event.type) {\n case 'mouseenter':\n onMouseEnter(day);\n onPreviewChange(day);\n stateChanges.hover = true;\n break;\n\n case 'blur':\n case 'mouseleave':\n stateChanges.hover = false;\n break;\n\n case 'mousedown':\n stateChanges.active = true;\n onMouseDown(day);\n break;\n\n case 'mouseup':\n event.stopPropagation();\n stateChanges.active = false;\n onMouseUp(day);\n break;\n\n case 'focus':\n onPreviewChange(day);\n break;\n }\n\n if (Object.keys(stateChanges).length) {\n _this.setState(stateChanges);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getClassNames\", function () {\n var _classnames;\n\n var _this$props3 = _this.props,\n isPassive = _this$props3.isPassive,\n isToday = _this$props3.isToday,\n isWeekend = _this$props3.isWeekend,\n isStartOfWeek = _this$props3.isStartOfWeek,\n isEndOfWeek = _this$props3.isEndOfWeek,\n isStartOfMonth = _this$props3.isStartOfMonth,\n isEndOfMonth = _this$props3.isEndOfMonth,\n disabled = _this$props3.disabled,\n styles = _this$props3.styles;\n return (0, _classnames4.default)(styles.day, (_classnames = {}, _defineProperty(_classnames, styles.dayPassive, isPassive), _defineProperty(_classnames, styles.dayDisabled, disabled), _defineProperty(_classnames, styles.dayToday, isToday), _defineProperty(_classnames, styles.dayWeekend, isWeekend), _defineProperty(_classnames, styles.dayStartOfWeek, isStartOfWeek), _defineProperty(_classnames, styles.dayEndOfWeek, isEndOfWeek), _defineProperty(_classnames, styles.dayStartOfMonth, isStartOfMonth), _defineProperty(_classnames, styles.dayEndOfMonth, isEndOfMonth), _defineProperty(_classnames, styles.dayHovered, _this.state.hover), _defineProperty(_classnames, styles.dayActive, _this.state.active), _classnames));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderPreviewPlaceholder\", function () {\n var _classnames2;\n\n var _this$props4 = _this.props,\n preview = _this$props4.preview,\n day = _this$props4.day,\n styles = _this$props4.styles;\n if (!preview) return null;\n var startDate = preview.startDate ? (0, _endOfDay.default)(preview.startDate) : null;\n var endDate = preview.endDate ? (0, _startOfDay.default)(preview.endDate) : null;\n var isInRange = (!startDate || (0, _isAfter.default)(day, startDate)) && (!endDate || (0, _isBefore.default)(day, endDate));\n var isStartEdge = !isInRange && (0, _isSameDay.default)(day, startDate);\n var isEndEdge = !isInRange && (0, _isSameDay.default)(day, endDate);\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n className: (0, _classnames4.default)((_classnames2 = {}, _defineProperty(_classnames2, styles.dayStartPreview, isStartEdge), _defineProperty(_classnames2, styles.dayInPreview, isInRange), _defineProperty(_classnames2, styles.dayEndPreview, isEndEdge), _classnames2)),\n style: {\n color: preview.color\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderSelectionPlaceholders\", function () {\n var _this$props5 = _this.props,\n styles = _this$props5.styles,\n ranges = _this$props5.ranges,\n day = _this$props5.day;\n\n if (_this.props.displayMode === 'date') {\n var isSelected = (0, _isSameDay.default)(_this.props.day, _this.props.date);\n return isSelected ? /*#__PURE__*/_react.default.createElement(\"span\", {\n className: styles.selected,\n style: {\n color: _this.props.color\n }\n }) : null;\n }\n\n var inRanges = ranges.reduce(function (result, range) {\n var startDate = range.startDate;\n var endDate = range.endDate;\n\n if (startDate && endDate && (0, _isBefore.default)(endDate, startDate)) {\n var _ref = [endDate, startDate];\n startDate = _ref[0];\n endDate = _ref[1];\n }\n\n startDate = startDate ? (0, _endOfDay.default)(startDate) : null;\n endDate = endDate ? (0, _startOfDay.default)(endDate) : null;\n var isInRange = (!startDate || (0, _isAfter.default)(day, startDate)) && (!endDate || (0, _isBefore.default)(day, endDate));\n var isStartEdge = !isInRange && (0, _isSameDay.default)(day, startDate);\n var isEndEdge = !isInRange && (0, _isSameDay.default)(day, endDate);\n\n if (isInRange || isStartEdge || isEndEdge) {\n return [].concat(_toConsumableArray(result), [_objectSpread({\n isStartEdge: isStartEdge,\n isEndEdge: isEndEdge,\n isInRange: isInRange\n }, range)]);\n }\n\n return result;\n }, []);\n return inRanges.map(function (range, i) {\n var _classnames3;\n\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n key: i,\n className: (0, _classnames4.default)((_classnames3 = {}, _defineProperty(_classnames3, styles.startEdge, range.isStartEdge), _defineProperty(_classnames3, styles.endEdge, range.isEndEdge), _defineProperty(_classnames3, styles.inRange, range.isInRange), _classnames3)),\n style: {\n color: range.color || _this.props.color\n }\n });\n });\n });\n\n _this.state = {\n hover: false,\n active: false\n };\n return _this;\n }\n\n _createClass(DayCell, [{\n key: \"render\",\n value: function render() {\n var dayContentRenderer = this.props.dayContentRenderer;\n return /*#__PURE__*/_react.default.createElement(\"button\", _extends({\n type: \"button\",\n onMouseEnter: this.handleMouseEvent,\n onMouseLeave: this.handleMouseEvent,\n onFocus: this.handleMouseEvent,\n onMouseDown: this.handleMouseEvent,\n onMouseUp: this.handleMouseEvent,\n onBlur: this.handleMouseEvent,\n onPauseCapture: this.handleMouseEvent,\n onKeyDown: this.handleKeyEvent,\n onKeyUp: this.handleKeyEvent,\n className: this.getClassNames(this.props.styles)\n }, this.props.disabled || this.props.isPassive ? {\n tabIndex: -1\n } : {}, {\n style: {\n color: this.props.color\n }\n }), this.renderSelectionPlaceholders(), this.renderPreviewPlaceholder(), /*#__PURE__*/_react.default.createElement(\"span\", {\n className: this.props.styles.dayNumber\n }, (dayContentRenderer === null || dayContentRenderer === void 0 ? void 0 : dayContentRenderer(this.props.day)) || /*#__PURE__*/_react.default.createElement(\"span\", null, (0, _format.default)(this.props.day, this.props.dayDisplayFormat))));\n }\n }]);\n\n return DayCell;\n}(_react.Component);\n\nDayCell.defaultProps = {};\n\nvar rangeShape = _propTypes.default.shape({\n startDate: _propTypes.default.object,\n endDate: _propTypes.default.object,\n color: _propTypes.default.string,\n key: _propTypes.default.string,\n autoFocus: _propTypes.default.bool,\n disabled: _propTypes.default.bool,\n showDateDisplay: _propTypes.default.bool\n});\n\nexports.rangeShape = rangeShape;\nDayCell.propTypes = {\n day: _propTypes.default.object.isRequired,\n dayDisplayFormat: _propTypes.default.string,\n date: _propTypes.default.object,\n ranges: _propTypes.default.arrayOf(rangeShape),\n preview: _propTypes.default.shape({\n startDate: _propTypes.default.object,\n endDate: _propTypes.default.object,\n color: _propTypes.default.string\n }),\n onPreviewChange: _propTypes.default.func,\n previewColor: _propTypes.default.string,\n disabled: _propTypes.default.bool,\n isPassive: _propTypes.default.bool,\n isToday: _propTypes.default.bool,\n isWeekend: _propTypes.default.bool,\n isStartOfWeek: _propTypes.default.bool,\n isEndOfWeek: _propTypes.default.bool,\n isStartOfMonth: _propTypes.default.bool,\n isEndOfMonth: _propTypes.default.bool,\n color: _propTypes.default.string,\n displayMode: _propTypes.default.oneOf(['dateRange', 'date']),\n styles: _propTypes.default.object,\n onMouseDown: _propTypes.default.func,\n onMouseUp: _propTypes.default.func,\n onMouseEnter: _propTypes.default.func,\n dayContentRenderer: _propTypes.default.func\n};\nvar _default = DayCell;\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 = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _styles = _interopRequireDefault(require(\"../../styles\"));\n\nvar _defaultRanges = require(\"../../defaultRanges\");\n\nvar _DayCell = require(\"../DayCell\");\n\nvar _InputRangeField = _interopRequireDefault(require(\"../InputRangeField\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _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 DefinedRange = /*#__PURE__*/function (_Component) {\n _inherits(DefinedRange, _Component);\n\n var _super = _createSuper(DefinedRange);\n\n function DefinedRange(props) {\n var _this;\n\n _classCallCheck(this, DefinedRange);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"handleRangeChange\", function (range) {\n var _this$props = _this.props,\n onChange = _this$props.onChange,\n ranges = _this$props.ranges,\n focusedRange = _this$props.focusedRange;\n var selectedRange = ranges[focusedRange[0]];\n if (!onChange || !selectedRange) return;\n onChange(_defineProperty({}, selectedRange.key || \"range\".concat(focusedRange[0] + 1), _objectSpread(_objectSpread({}, selectedRange), range)));\n });\n\n _this.state = {\n rangeOffset: 0,\n focusedInput: -1\n };\n return _this;\n }\n\n _createClass(DefinedRange, [{\n key: \"getRangeOptionValue\",\n value: function getRangeOptionValue(option) {\n var _this$props2 = this.props,\n _this$props2$ranges = _this$props2.ranges,\n ranges = _this$props2$ranges === void 0 ? [] : _this$props2$ranges,\n _this$props2$focusedR = _this$props2.focusedRange,\n focusedRange = _this$props2$focusedR === void 0 ? [] : _this$props2$focusedR;\n\n if (typeof option.getCurrentValue !== 'function') {\n return '';\n }\n\n var selectedRange = ranges[focusedRange[0]] || {};\n return option.getCurrentValue(selectedRange) || '';\n }\n }, {\n key: \"getSelectedRange\",\n value: function getSelectedRange(ranges, staticRange) {\n var focusedRangeIndex = ranges.findIndex(function (range) {\n if (!range.startDate || !range.endDate || range.disabled) return false;\n return staticRange.isSelected(range);\n });\n var selectedRange = ranges[focusedRangeIndex];\n return {\n selectedRange: selectedRange,\n focusedRangeIndex: focusedRangeIndex\n };\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props3 = this.props,\n headerContent = _this$props3.headerContent,\n footerContent = _this$props3.footerContent,\n onPreviewChange = _this$props3.onPreviewChange,\n inputRanges = _this$props3.inputRanges,\n staticRanges = _this$props3.staticRanges,\n ranges = _this$props3.ranges,\n renderStaticRangeLabel = _this$props3.renderStaticRangeLabel,\n rangeColors = _this$props3.rangeColors,\n className = _this$props3.className;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: (0, _classnames.default)(_styles.default.definedRangesWrapper, className)\n }, headerContent, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: _styles.default.staticRanges\n }, staticRanges.map(function (staticRange, i) {\n var _this2$getSelectedRan = _this2.getSelectedRange(ranges, staticRange),\n selectedRange = _this2$getSelectedRan.selectedRange,\n focusedRangeIndex = _this2$getSelectedRan.focusedRangeIndex;\n\n var labelContent;\n\n if (staticRange.hasCustomRendering) {\n labelContent = renderStaticRangeLabel(staticRange);\n } else {\n labelContent = staticRange.label;\n }\n\n return /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n className: (0, _classnames.default)(_styles.default.staticRange, _defineProperty({}, _styles.default.staticRangeSelected, Boolean(selectedRange))),\n style: {\n color: selectedRange ? selectedRange.color || rangeColors[focusedRangeIndex] : null\n },\n key: i,\n onClick: function onClick() {\n return _this2.handleRangeChange(staticRange.range(_this2.props));\n },\n onFocus: function onFocus() {\n return onPreviewChange && onPreviewChange(staticRange.range(_this2.props));\n },\n onMouseOver: function onMouseOver() {\n return onPreviewChange && onPreviewChange(staticRange.range(_this2.props));\n },\n onMouseLeave: function onMouseLeave() {\n onPreviewChange && onPreviewChange();\n }\n }, /*#__PURE__*/_react.default.createElement(\"span\", {\n tabIndex: -1,\n className: _styles.default.staticRangeLabel\n }, labelContent));\n })), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: _styles.default.inputRanges\n }, inputRanges.map(function (rangeOption, i) {\n return /*#__PURE__*/_react.default.createElement(_InputRangeField.default, {\n key: i,\n styles: _styles.default,\n label: rangeOption.label,\n onFocus: function onFocus() {\n return _this2.setState({\n focusedInput: i,\n rangeOffset: 0\n });\n },\n onBlur: function onBlur() {\n return _this2.setState({\n rangeOffset: 0\n });\n },\n onChange: function onChange(value) {\n return _this2.handleRangeChange(rangeOption.range(value, _this2.props));\n },\n value: _this2.getRangeOptionValue(rangeOption)\n });\n })), footerContent);\n }\n }]);\n\n return DefinedRange;\n}(_react.Component);\n\nDefinedRange.propTypes = {\n inputRanges: _propTypes.default.array,\n staticRanges: _propTypes.default.array,\n ranges: _propTypes.default.arrayOf(_DayCell.rangeShape),\n focusedRange: _propTypes.default.arrayOf(_propTypes.default.number),\n onPreviewChange: _propTypes.default.func,\n onChange: _propTypes.default.func,\n footerContent: _propTypes.default.any,\n headerContent: _propTypes.default.any,\n rangeColors: _propTypes.default.arrayOf(_propTypes.default.string),\n className: _propTypes.default.string,\n renderStaticRangeLabel: _propTypes.default.func\n};\nDefinedRange.defaultProps = {\n inputRanges: _defaultRanges.defaultInputRanges,\n staticRanges: _defaultRanges.defaultStaticRanges,\n ranges: [],\n rangeColors: ['#3d91ff', '#3ecf8e', '#fed14c'],\n focusedRange: [0, 0]\n};\nvar _default = DefinedRange;\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 = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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 _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 MIN = 0;\nvar MAX = 99999;\n\nvar InputRangeField = /*#__PURE__*/function (_Component) {\n _inherits(InputRangeField, _Component);\n\n var _super = _createSuper(InputRangeField);\n\n function InputRangeField(props, context) {\n var _this;\n\n _classCallCheck(this, InputRangeField);\n\n _this = _super.call(this, props, context);\n\n _defineProperty(_assertThisInitialized(_this), \"onChange\", function (e) {\n var onChange = _this.props.onChange;\n var value = parseInt(e.target.value, 10);\n value = isNaN(value) ? 0 : Math.max(Math.min(MAX, value), MIN);\n onChange(value);\n });\n\n return _this;\n }\n\n _createClass(InputRangeField, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n var _this$props = this.props,\n value = _this$props.value,\n label = _this$props.label,\n placeholder = _this$props.placeholder;\n return value !== nextProps.value || label !== nextProps.label || placeholder !== nextProps.placeholder;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n label = _this$props2.label,\n placeholder = _this$props2.placeholder,\n value = _this$props2.value,\n styles = _this$props2.styles,\n onBlur = _this$props2.onBlur,\n onFocus = _this$props2.onFocus;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: styles.inputRange\n }, /*#__PURE__*/_react.default.createElement(\"input\", {\n className: styles.inputRangeInput,\n placeholder: placeholder,\n value: value,\n min: MIN,\n max: MAX,\n onChange: this.onChange,\n onFocus: onFocus,\n onBlur: onBlur\n }), /*#__PURE__*/_react.default.createElement(\"span\", {\n className: styles.inputRangeLabel\n }, label));\n }\n }]);\n\n return InputRangeField;\n}(_react.Component);\n\nInputRangeField.propTypes = {\n value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),\n label: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.node]).isRequired,\n placeholder: _propTypes.default.string,\n styles: _propTypes.default.shape({\n inputRange: _propTypes.default.string,\n inputRangeInput: _propTypes.default.string,\n inputRangeLabel: _propTypes.default.string\n }).isRequired,\n onBlur: _propTypes.default.func.isRequired,\n onFocus: _propTypes.default.func.isRequired,\n onChange: _propTypes.default.func.isRequired\n};\nInputRangeField.defaultProps = {\n value: '',\n placeholder: '-'\n};\nvar _default = InputRangeField;\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 = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _DayCell = _interopRequireWildcard(require(\"../DayCell\"));\n\nvar _eachDayOfInterval = _interopRequireDefault(require(\"date-fns/eachDayOfInterval\"));\n\nvar _isWithinInterval = _interopRequireDefault(require(\"date-fns/isWithinInterval\"));\n\nvar _isWeekend = _interopRequireDefault(require(\"date-fns/isWeekend\"));\n\nvar _isAfter = _interopRequireDefault(require(\"date-fns/isAfter\"));\n\nvar _isSameDay = _interopRequireDefault(require(\"date-fns/isSameDay\"));\n\nvar _isBefore = _interopRequireDefault(require(\"date-fns/isBefore\"));\n\nvar _endOfWeek = _interopRequireDefault(require(\"date-fns/endOfWeek\"));\n\nvar _startOfWeek = _interopRequireDefault(require(\"date-fns/startOfWeek\"));\n\nvar _endOfDay = _interopRequireDefault(require(\"date-fns/endOfDay\"));\n\nvar _startOfDay = _interopRequireDefault(require(\"date-fns/startOfDay\"));\n\nvar _format = _interopRequireDefault(require(\"date-fns/format\"));\n\nvar _utils = require(\"../../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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 _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 _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\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 renderWeekdays(styles, dateOptions, weekdayDisplayFormat) {\n var now = new Date();\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: styles.weekDays\n }, (0, _eachDayOfInterval.default)({\n start: (0, _startOfWeek.default)(now, dateOptions),\n end: (0, _endOfWeek.default)(now, dateOptions)\n }).map(function (day, i) {\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n className: styles.weekDay,\n key: i\n }, (0, _format.default)(day, weekdayDisplayFormat, dateOptions));\n }));\n}\n\nvar Month = /*#__PURE__*/function (_PureComponent) {\n _inherits(Month, _PureComponent);\n\n var _super = _createSuper(Month);\n\n function Month() {\n _classCallCheck(this, Month);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Month, [{\n key: \"render\",\n value: function render() {\n var _this = this;\n\n var now = new Date();\n var _this$props = this.props,\n displayMode = _this$props.displayMode,\n focusedRange = _this$props.focusedRange,\n drag = _this$props.drag,\n styles = _this$props.styles,\n disabledDates = _this$props.disabledDates,\n disabledDay = _this$props.disabledDay;\n var minDate = this.props.minDate && (0, _startOfDay.default)(this.props.minDate);\n var maxDate = this.props.maxDate && (0, _endOfDay.default)(this.props.maxDate);\n var monthDisplay = (0, _utils.getMonthDisplayRange)(this.props.month, this.props.dateOptions, this.props.fixedHeight);\n var ranges = this.props.ranges;\n\n if (displayMode === 'dateRange' && drag.status) {\n var _drag$range = drag.range,\n startDate = _drag$range.startDate,\n endDate = _drag$range.endDate;\n ranges = ranges.map(function (range, i) {\n if (i !== focusedRange[0]) return range;\n return _objectSpread(_objectSpread({}, range), {}, {\n startDate: startDate,\n endDate: endDate\n });\n });\n }\n\n var showPreview = this.props.showPreview && !drag.disablePreview;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: styles.month,\n style: this.props.style\n }, this.props.showMonthName ? /*#__PURE__*/_react.default.createElement(\"div\", {\n className: styles.monthName\n }, (0, _format.default)(this.props.month, this.props.monthDisplayFormat, this.props.dateOptions)) : null, this.props.showWeekDays && renderWeekdays(styles, this.props.dateOptions, this.props.weekdayDisplayFormat), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: styles.days,\n onMouseLeave: this.props.onMouseLeave\n }, (0, _eachDayOfInterval.default)({\n start: monthDisplay.start,\n end: monthDisplay.end\n }).map(function (day, index) {\n var isStartOfMonth = (0, _isSameDay.default)(day, monthDisplay.startDateOfMonth);\n var isEndOfMonth = (0, _isSameDay.default)(day, monthDisplay.endDateOfMonth);\n var isOutsideMinMax = minDate && (0, _isBefore.default)(day, minDate) || maxDate && (0, _isAfter.default)(day, maxDate);\n var isDisabledSpecifically = disabledDates.some(function (disabledDate) {\n return (0, _isSameDay.default)(disabledDate, day);\n });\n var isDisabledDay = disabledDay(day);\n return /*#__PURE__*/_react.default.createElement(_DayCell.default, _extends({}, _this.props, {\n ranges: ranges,\n day: day,\n preview: showPreview ? _this.props.preview : null,\n isWeekend: (0, _isWeekend.default)(day, _this.props.dateOptions),\n isToday: (0, _isSameDay.default)(day, now),\n isStartOfWeek: (0, _isSameDay.default)(day, (0, _startOfWeek.default)(day, _this.props.dateOptions)),\n isEndOfWeek: (0, _isSameDay.default)(day, (0, _endOfWeek.default)(day, _this.props.dateOptions)),\n isStartOfMonth: isStartOfMonth,\n isEndOfMonth: isEndOfMonth,\n key: index,\n disabled: isOutsideMinMax || isDisabledSpecifically || isDisabledDay,\n isPassive: !(0, _isWithinInterval.default)(day, {\n start: monthDisplay.startDateOfMonth,\n end: monthDisplay.endDateOfMonth\n }),\n styles: styles,\n onMouseDown: _this.props.onDragSelectionStart,\n onMouseUp: _this.props.onDragSelectionEnd,\n onMouseEnter: _this.props.onDragSelectionMove,\n dragRange: drag.range,\n drag: drag.status\n }));\n })));\n }\n }]);\n\n return Month;\n}(_react.PureComponent);\n\nMonth.defaultProps = {};\nMonth.propTypes = {\n style: _propTypes.default.object,\n styles: _propTypes.default.object,\n month: _propTypes.default.object,\n drag: _propTypes.default.object,\n dateOptions: _propTypes.default.object,\n disabledDates: _propTypes.default.array,\n disabledDay: _propTypes.default.func,\n preview: _propTypes.default.shape({\n startDate: _propTypes.default.object,\n endDate: _propTypes.default.object\n }),\n showPreview: _propTypes.default.bool,\n displayMode: _propTypes.default.oneOf(['dateRange', 'date']),\n minDate: _propTypes.default.object,\n maxDate: _propTypes.default.object,\n ranges: _propTypes.default.arrayOf(_DayCell.rangeShape),\n focusedRange: _propTypes.default.arrayOf(_propTypes.default.number),\n onDragSelectionStart: _propTypes.default.func,\n onDragSelectionEnd: _propTypes.default.func,\n onDragSelectionMove: _propTypes.default.func,\n onMouseLeave: _propTypes.default.func,\n monthDisplayFormat: _propTypes.default.string,\n weekdayDisplayFormat: _propTypes.default.string,\n dayDisplayFormat: _propTypes.default.string,\n showWeekDays: _propTypes.default.bool,\n showMonthName: _propTypes.default.bool,\n fixedHeight: _propTypes.default.bool\n};\nvar _default = Month;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createStaticRanges = createStaticRanges;\nexports.defaultInputRanges = exports.defaultStaticRanges = void 0;\n\nvar _differenceInCalendarDays = _interopRequireDefault(require(\"date-fns/differenceInCalendarDays\"));\n\nvar _isSameDay = _interopRequireDefault(require(\"date-fns/isSameDay\"));\n\nvar _endOfWeek = _interopRequireDefault(require(\"date-fns/endOfWeek\"));\n\nvar _startOfWeek = _interopRequireDefault(require(\"date-fns/startOfWeek\"));\n\nvar _addMonths = _interopRequireDefault(require(\"date-fns/addMonths\"));\n\nvar _endOfMonth = _interopRequireDefault(require(\"date-fns/endOfMonth\"));\n\nvar _startOfMonth = _interopRequireDefault(require(\"date-fns/startOfMonth\"));\n\nvar _startOfDay = _interopRequireDefault(require(\"date-fns/startOfDay\"));\n\nvar _endOfDay = _interopRequireDefault(require(\"date-fns/endOfDay\"));\n\nvar _addDays = _interopRequireDefault(require(\"date-fns/addDays\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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 defineds = {\n startOfWeek: (0, _startOfWeek.default)(new Date()),\n endOfWeek: (0, _endOfWeek.default)(new Date()),\n startOfLastWeek: (0, _startOfWeek.default)((0, _addDays.default)(new Date(), -7)),\n endOfLastWeek: (0, _endOfWeek.default)((0, _addDays.default)(new Date(), -7)),\n startOfToday: (0, _startOfDay.default)(new Date()),\n endOfToday: (0, _endOfDay.default)(new Date()),\n startOfYesterday: (0, _startOfDay.default)((0, _addDays.default)(new Date(), -1)),\n endOfYesterday: (0, _endOfDay.default)((0, _addDays.default)(new Date(), -1)),\n startOfMonth: (0, _startOfMonth.default)(new Date()),\n endOfMonth: (0, _endOfMonth.default)(new Date()),\n startOfLastMonth: (0, _startOfMonth.default)((0, _addMonths.default)(new Date(), -1)),\n endOfLastMonth: (0, _endOfMonth.default)((0, _addMonths.default)(new Date(), -1))\n};\nvar staticRangeHandler = {\n range: {},\n isSelected: function isSelected(range) {\n var definedRange = this.range();\n return (0, _isSameDay.default)(range.startDate, definedRange.startDate) && (0, _isSameDay.default)(range.endDate, definedRange.endDate);\n }\n};\n\nfunction createStaticRanges(ranges) {\n return ranges.map(function (range) {\n return _objectSpread(_objectSpread({}, staticRangeHandler), range);\n });\n}\n\nvar defaultStaticRanges = createStaticRanges([{\n label: 'Today',\n range: function range() {\n return {\n startDate: defineds.startOfToday,\n endDate: defineds.endOfToday\n };\n }\n}, {\n label: 'Yesterday',\n range: function range() {\n return {\n startDate: defineds.startOfYesterday,\n endDate: defineds.endOfYesterday\n };\n }\n}, {\n label: 'This Week',\n range: function range() {\n return {\n startDate: defineds.startOfWeek,\n endDate: defineds.endOfWeek\n };\n }\n}, {\n label: 'Last Week',\n range: function range() {\n return {\n startDate: defineds.startOfLastWeek,\n endDate: defineds.endOfLastWeek\n };\n }\n}, {\n label: 'This Month',\n range: function range() {\n return {\n startDate: defineds.startOfMonth,\n endDate: defineds.endOfMonth\n };\n }\n}, {\n label: 'Last Month',\n range: function range() {\n return {\n startDate: defineds.startOfLastMonth,\n endDate: defineds.endOfLastMonth\n };\n }\n}]);\nexports.defaultStaticRanges = defaultStaticRanges;\nvar defaultInputRanges = [{\n label: 'days up to today',\n range: function range(value) {\n return {\n startDate: (0, _addDays.default)(defineds.startOfToday, (Math.max(Number(value), 1) - 1) * -1),\n endDate: defineds.endOfToday\n };\n },\n getCurrentValue: function getCurrentValue(range) {\n if (!(0, _isSameDay.default)(range.endDate, defineds.endOfToday)) return '-';\n if (!range.startDate) return '∞';\n return (0, _differenceInCalendarDays.default)(defineds.endOfToday, range.startDate) + 1;\n }\n}, {\n label: 'days starting today',\n range: function range(value) {\n var today = new Date();\n return {\n startDate: today,\n endDate: (0, _addDays.default)(today, Math.max(Number(value), 1) - 1)\n };\n },\n getCurrentValue: function getCurrentValue(range) {\n if (!(0, _isSameDay.default)(range.startDate, defineds.startOfToday)) return '-';\n if (!range.endDate) return '∞';\n return (0, _differenceInCalendarDays.default)(range.endDate, defineds.startOfToday) + 1;\n }\n}];\nexports.defaultInputRanges = defaultInputRanges;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"DateRange\", {\n enumerable: true,\n get: function get() {\n return _DateRange.default;\n }\n});\nObject.defineProperty(exports, \"Calendar\", {\n enumerable: true,\n get: function get() {\n return _Calendar.default;\n }\n});\nObject.defineProperty(exports, \"DateRangePicker\", {\n enumerable: true,\n get: function get() {\n return _DateRangePicker.default;\n }\n});\nObject.defineProperty(exports, \"DefinedRange\", {\n enumerable: true,\n get: function get() {\n return _DefinedRange.default;\n }\n});\nObject.defineProperty(exports, \"defaultInputRanges\", {\n enumerable: true,\n get: function get() {\n return _defaultRanges.defaultInputRanges;\n }\n});\nObject.defineProperty(exports, \"defaultStaticRanges\", {\n enumerable: true,\n get: function get() {\n return _defaultRanges.defaultStaticRanges;\n }\n});\nObject.defineProperty(exports, \"createStaticRanges\", {\n enumerable: true,\n get: function get() {\n return _defaultRanges.createStaticRanges;\n }\n});\n\nvar _DateRange = _interopRequireDefault(require(\"./components/DateRange\"));\n\nvar _Calendar = _interopRequireDefault(require(\"./components/Calendar\"));\n\nvar _DateRangePicker = _interopRequireDefault(require(\"./components/DateRangePicker\"));\n\nvar _DefinedRange = _interopRequireDefault(require(\"./components/DefinedRange\"));\n\nvar _defaultRanges = require(\"./defaultRanges\");\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;\nvar _default = {\n dateRangeWrapper: 'rdrDateRangeWrapper',\n calendarWrapper: 'rdrCalendarWrapper',\n dateDisplay: 'rdrDateDisplay',\n dateDisplayItem: 'rdrDateDisplayItem',\n dateDisplayItemActive: 'rdrDateDisplayItemActive',\n monthAndYearWrapper: 'rdrMonthAndYearWrapper',\n monthAndYearPickers: 'rdrMonthAndYearPickers',\n nextPrevButton: 'rdrNextPrevButton',\n month: 'rdrMonth',\n weekDays: 'rdrWeekDays',\n weekDay: 'rdrWeekDay',\n days: 'rdrDays',\n day: 'rdrDay',\n dayNumber: 'rdrDayNumber',\n dayPassive: 'rdrDayPassive',\n dayToday: 'rdrDayToday',\n dayStartOfWeek: 'rdrDayStartOfWeek',\n dayEndOfWeek: 'rdrDayEndOfWeek',\n daySelected: 'rdrDaySelected',\n dayDisabled: 'rdrDayDisabled',\n dayStartOfMonth: 'rdrDayStartOfMonth',\n dayEndOfMonth: 'rdrDayEndOfMonth',\n dayWeekend: 'rdrDayWeekend',\n dayStartPreview: 'rdrDayStartPreview',\n dayInPreview: 'rdrDayInPreview',\n dayEndPreview: 'rdrDayEndPreview',\n dayHovered: 'rdrDayHovered',\n dayActive: 'rdrDayActive',\n inRange: 'rdrInRange',\n endEdge: 'rdrEndEdge',\n startEdge: 'rdrStartEdge',\n prevButton: 'rdrPprevButton',\n nextButton: 'rdrNextButton',\n selected: 'rdrSelected',\n months: 'rdrMonths',\n monthPicker: 'rdrMonthPicker',\n yearPicker: 'rdrYearPicker',\n dateDisplayWrapper: 'rdrDateDisplayWrapper',\n definedRangesWrapper: 'rdrDefinedRangesWrapper',\n staticRanges: 'rdrStaticRanges',\n staticRange: 'rdrStaticRange',\n inputRanges: 'rdrInputRanges',\n inputRange: 'rdrInputRange',\n inputRangeInput: 'rdrInputRangeInput',\n dateRangePickerWrapper: 'rdrDateRangePickerWrapper',\n staticRangeLabel: 'rdrStaticRangeLabel',\n staticRangeSelected: 'rdrStaticRangeSelected',\n monthName: 'rdrMonthName',\n infiniteMonths: 'rdrInfiniteMonths',\n monthsVertical: 'rdrMonthsVertical',\n monthsHorizontal: 'rdrMonthsHorizontal'\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calcFocusDate = calcFocusDate;\nexports.findNextRangeIndex = findNextRangeIndex;\nexports.getMonthDisplayRange = getMonthDisplayRange;\nexports.generateStyles = generateStyles;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _addDays = _interopRequireDefault(require(\"date-fns/addDays\"));\n\nvar _differenceInCalendarMonths = _interopRequireDefault(require(\"date-fns/differenceInCalendarMonths\"));\n\nvar _differenceInCalendarDays = _interopRequireDefault(require(\"date-fns/differenceInCalendarDays\"));\n\nvar _endOfWeek = _interopRequireDefault(require(\"date-fns/endOfWeek\"));\n\nvar _startOfWeek = _interopRequireDefault(require(\"date-fns/startOfWeek\"));\n\nvar _endOfMonth = _interopRequireDefault(require(\"date-fns/endOfMonth\"));\n\nvar _startOfMonth = _interopRequireDefault(require(\"date-fns/startOfMonth\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction calcFocusDate(currentFocusedDate, props) {\n var shownDate = props.shownDate,\n date = props.date,\n months = props.months,\n ranges = props.ranges,\n focusedRange = props.focusedRange,\n displayMode = props.displayMode; // find primary date according the props\n\n var targetInterval;\n\n if (displayMode === 'dateRange') {\n var range = ranges[focusedRange[0]] || {};\n targetInterval = {\n start: range.startDate,\n end: range.endDate\n };\n } else {\n targetInterval = {\n start: date,\n end: date\n };\n }\n\n targetInterval.start = (0, _startOfMonth.default)(targetInterval.start || new Date());\n targetInterval.end = (0, _endOfMonth.default)(targetInterval.end || targetInterval.start);\n var targetDate = targetInterval.start || targetInterval.end || shownDate || new Date(); // initial focus\n\n if (!currentFocusedDate) return shownDate || targetDate; // // just return targetDate for native scrolled calendars\n // if (props.scroll.enabled) return targetDate;\n\n if ((0, _differenceInCalendarMonths.default)(targetInterval.start, targetInterval.end) > months) {\n // don't change focused if new selection in view area\n return currentFocusedDate;\n }\n\n return targetDate;\n}\n\nfunction findNextRangeIndex(ranges) {\n var currentRangeIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;\n var nextIndex = ranges.findIndex(function (range, i) {\n return i > currentRangeIndex && range.autoFocus !== false && !range.disabled;\n });\n if (nextIndex !== -1) return nextIndex;\n return ranges.findIndex(function (range) {\n return range.autoFocus !== false && !range.disabled;\n });\n}\n\nfunction getMonthDisplayRange(date, dateOptions, fixedHeight) {\n var startDateOfMonth = (0, _startOfMonth.default)(date, dateOptions);\n var endDateOfMonth = (0, _endOfMonth.default)(date, dateOptions);\n var startDateOfCalendar = (0, _startOfWeek.default)(startDateOfMonth, dateOptions);\n var endDateOfCalendar = (0, _endOfWeek.default)(endDateOfMonth, dateOptions);\n\n if (fixedHeight && (0, _differenceInCalendarDays.default)(endDateOfCalendar, startDateOfCalendar) <= 34) {\n endDateOfCalendar = (0, _addDays.default)(endDateOfCalendar, 7);\n }\n\n return {\n start: startDateOfCalendar,\n end: endDateOfCalendar,\n startDateOfMonth: startDateOfMonth,\n endDateOfMonth: endDateOfMonth\n };\n}\n\nfunction generateStyles(sources) {\n if (!sources.length) return {};\n var generatedStyles = sources.filter(function (source) {\n return Boolean(source);\n }).reduce(function (styles, styleSource) {\n Object.keys(styleSource).forEach(function (key) {\n styles[key] = (0, _classnames.default)(styles[key], styleSource[key]);\n });\n return styles;\n }, {});\n return generatedStyles;\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&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(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=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(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=Sg(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);Mg(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=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(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,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();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=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;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;zj(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;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(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=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&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 Ij(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 zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);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(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(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 Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(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:Ci(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=Nj;Nj=!1;return n}\nfunction Pj(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&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(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 Rj(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 Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(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 Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(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 Vj(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(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(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(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(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=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=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)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(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)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(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*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=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()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(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);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();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,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(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:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(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=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(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),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(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(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(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=mh(-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);bh(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);bh(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}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(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 $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(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 Pg(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 Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(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 pj(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 Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(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 al(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 bl(a,b,c,d,e,f,g,h,k){a=new al(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};kh(f);return a}function cl(a,b,c){var d=3 length) size = length;\n from = type === 'simple' || !from ? 0 : Math.max(Math.min(from, length - size), 0);\n\n if (mod = from % itemsPerRow) {\n from -= mod;\n size += mod;\n }\n\n if (from === state.from && size == state.size) return state;\n return _objectSpread(_objectSpread({}, state), {}, {\n from: from,\n size: size\n });\n };\n\n module.exports = (_temp = _class = /*#__PURE__*/function (_Component) {\n _inherits(ReactList, _Component);\n\n var _super = _createSuper(ReactList);\n\n _createClass(ReactList, null, [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n var newState = constrain(props, state);\n return newState === state ? null : newState;\n }\n }]);\n\n function ReactList(props) {\n var _this;\n\n _classCallCheck(this, ReactList);\n\n _this = _super.call(this, props);\n _this.state = constrain(props, {\n itemsPerRow: 1,\n from: props.initialIndex,\n size: 0\n });\n _this.cache = {};\n _this.cachedScrollPosition = null;\n _this.prevPrevState = {};\n _this.unstable = false;\n _this.updateCounter = 0;\n return _this;\n }\n\n _createClass(ReactList, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateFrameAndClearCache = this.updateFrameAndClearCache.bind(this);\n window.addEventListener('resize', this.updateFrameAndClearCache);\n this.updateFrame(this.scrollTo.bind(this, this.props.initialIndex));\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this2 = this;\n\n // Viewport scroll is no longer useful if axis changes\n if (this.props.axis !== prevProps.axis) this.clearSizeCache(); // If the list has reached an unstable state, prevent an infinite loop.\n\n if (this.unstable) return;\n\n if (++this.updateCounter > MAX_SYNC_UPDATES) {\n this.unstable = true;\n return console.error(UNSTABLE_MESSAGE);\n }\n\n if (!this.updateCounterTimeoutId) {\n this.updateCounterTimeoutId = setTimeout(function () {\n _this2.updateCounter = 0;\n delete _this2.updateCounterTimeoutId;\n }, 0);\n }\n\n this.updateFrame();\n }\n }, {\n key: \"maybeSetState\",\n value: function maybeSetState(b, cb) {\n if (isEqualSubset(this.state, b)) return cb();\n this.setState(b, cb);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener('resize', this.updateFrameAndClearCache);\n this.scrollParent.removeEventListener('scroll', this.updateFrameAndClearCache, PASSIVE);\n this.scrollParent.removeEventListener('mousewheel', NOOP, PASSIVE);\n }\n }, {\n key: \"getOffset\",\n value: function getOffset(el) {\n var axis = this.props.axis;\n var offset = el[CLIENT_START_KEYS[axis]] || 0;\n var offsetKey = OFFSET_START_KEYS[axis];\n\n do {\n offset += el[offsetKey] || 0;\n } while (el = el.offsetParent);\n\n return offset;\n }\n }, {\n key: \"getEl\",\n value: function getEl() {\n return this.el || this.items;\n }\n }, {\n key: \"getScrollPosition\",\n value: function getScrollPosition() {\n // Cache scroll position as this causes a forced synchronous layout.\n if (typeof this.cachedScrollPosition === 'number') {\n return this.cachedScrollPosition;\n }\n\n var scrollParent = this.scrollParent;\n var axis = this.props.axis;\n var scrollKey = SCROLL_START_KEYS[axis];\n var actual = scrollParent === window ? // Firefox always returns document.body[scrollKey] as 0 and Chrome/Safari\n // always return document.documentElement[scrollKey] as 0, so take\n // whichever has a value.\n document.body[scrollKey] || document.documentElement[scrollKey] : scrollParent[scrollKey];\n var max = this.getScrollSize() - this.props.scrollParentViewportSizeGetter(this);\n var scroll = Math.max(0, Math.min(actual, max));\n var el = this.getEl();\n this.cachedScrollPosition = this.getOffset(scrollParent) + scroll - this.getOffset(el);\n return this.cachedScrollPosition;\n }\n }, {\n key: \"setScroll\",\n value: function setScroll(offset) {\n var scrollParent = this.scrollParent;\n var axis = this.props.axis;\n offset += this.getOffset(this.getEl());\n if (scrollParent === window) return window.scrollTo(0, offset);\n offset -= this.getOffset(this.scrollParent);\n scrollParent[SCROLL_START_KEYS[axis]] = offset;\n }\n }, {\n key: \"getScrollSize\",\n value: function getScrollSize() {\n var scrollParent = this.scrollParent;\n var _document = document,\n body = _document.body,\n documentElement = _document.documentElement;\n var key = SCROLL_SIZE_KEYS[this.props.axis];\n return scrollParent === window ? Math.max(body[key], documentElement[key]) : scrollParent[key];\n }\n }, {\n key: \"hasDeterminateSize\",\n value: function hasDeterminateSize() {\n var _this$props = this.props,\n itemSizeGetter = _this$props.itemSizeGetter,\n type = _this$props.type;\n return type === 'uniform' || itemSizeGetter;\n }\n }, {\n key: \"getStartAndEnd\",\n value: function getStartAndEnd() {\n var threshold = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.threshold;\n var scroll = this.getScrollPosition();\n var start = Math.max(0, scroll - threshold);\n var end = scroll + this.props.scrollParentViewportSizeGetter(this) + threshold;\n\n if (this.hasDeterminateSize()) {\n end = Math.min(end, this.getSpaceBefore(this.props.length));\n }\n\n return {\n start: start,\n end: end\n };\n }\n }, {\n key: \"getItemSizeAndItemsPerRow\",\n value: function getItemSizeAndItemsPerRow() {\n var _this$props2 = this.props,\n axis = _this$props2.axis,\n useStaticSize = _this$props2.useStaticSize;\n var _this$state = this.state,\n itemSize = _this$state.itemSize,\n itemsPerRow = _this$state.itemsPerRow;\n\n if (useStaticSize && itemSize && itemsPerRow) {\n return {\n itemSize: itemSize,\n itemsPerRow: itemsPerRow\n };\n }\n\n var itemEls = this.items.children;\n if (!itemEls.length) return {};\n var firstEl = itemEls[0]; // Firefox has a problem where it will return a *slightly* (less than\n // thousandths of a pixel) different size for the same element between\n // renders. This can cause an infinite render loop, so only change the\n // itemSize when it is significantly different.\n\n var firstElSize = firstEl[OFFSET_SIZE_KEYS[axis]];\n var delta = Math.abs(firstElSize - itemSize);\n if (isNaN(delta) || delta >= 1) itemSize = firstElSize;\n if (!itemSize) return {};\n var startKey = OFFSET_START_KEYS[axis];\n var firstStart = firstEl[startKey];\n itemsPerRow = 1;\n\n for (var item = itemEls[itemsPerRow]; item && item[startKey] === firstStart; item = itemEls[itemsPerRow]) {\n ++itemsPerRow;\n }\n\n return {\n itemSize: itemSize,\n itemsPerRow: itemsPerRow\n };\n }\n }, {\n key: \"clearSizeCache\",\n value: function clearSizeCache() {\n this.cachedScrollPosition = null;\n } // Called by 'scroll' and 'resize' events, clears scroll position cache.\n\n }, {\n key: \"updateFrameAndClearCache\",\n value: function updateFrameAndClearCache(cb) {\n this.clearSizeCache();\n return this.updateFrame(cb);\n }\n }, {\n key: \"updateFrame\",\n value: function updateFrame(cb) {\n this.updateScrollParent();\n if (typeof cb != 'function') cb = NOOP;\n\n switch (this.props.type) {\n case 'simple':\n return this.updateSimpleFrame(cb);\n\n case 'variable':\n return this.updateVariableFrame(cb);\n\n case 'uniform':\n return this.updateUniformFrame(cb);\n }\n }\n }, {\n key: \"updateScrollParent\",\n value: function updateScrollParent() {\n var prev = this.scrollParent;\n this.scrollParent = this.props.scrollParentGetter(this);\n if (prev === this.scrollParent) return;\n\n if (prev) {\n prev.removeEventListener('scroll', this.updateFrameAndClearCache);\n prev.removeEventListener('mousewheel', NOOP);\n } // If we have a new parent, cached parent dimensions are no longer useful.\n\n\n this.clearSizeCache();\n this.scrollParent.addEventListener('scroll', this.updateFrameAndClearCache, PASSIVE); // You have to attach mousewheel listener to the scrollable element.\n // Just an empty listener. After that onscroll events will be fired synchronously.\n\n this.scrollParent.addEventListener('mousewheel', NOOP, PASSIVE);\n }\n }, {\n key: \"updateSimpleFrame\",\n value: function updateSimpleFrame(cb) {\n var _this$getStartAndEnd = this.getStartAndEnd(),\n end = _this$getStartAndEnd.end;\n\n var itemEls = this.items.children;\n var elEnd = 0;\n\n if (itemEls.length) {\n var axis = this.props.axis;\n var firstItemEl = itemEls[0];\n var lastItemEl = itemEls[itemEls.length - 1];\n elEnd = this.getOffset(lastItemEl) + lastItemEl[OFFSET_SIZE_KEYS[axis]] - this.getOffset(firstItemEl);\n }\n\n if (elEnd > end) return cb();\n var _this$props3 = this.props,\n pageSize = _this$props3.pageSize,\n length = _this$props3.length;\n var size = Math.min(this.state.size + pageSize, length);\n this.maybeSetState({\n size: size\n }, cb);\n }\n }, {\n key: \"updateVariableFrame\",\n value: function updateVariableFrame(cb) {\n if (!this.props.itemSizeGetter) this.cacheSizes();\n\n var _this$getStartAndEnd2 = this.getStartAndEnd(),\n start = _this$getStartAndEnd2.start,\n end = _this$getStartAndEnd2.end;\n\n var _this$props4 = this.props,\n length = _this$props4.length,\n pageSize = _this$props4.pageSize;\n var space = 0;\n var from = 0;\n var size = 0;\n var maxFrom = length - 1;\n\n while (from < maxFrom) {\n var itemSize = this.getSizeOfItem(from);\n if (itemSize == null || space + itemSize > start) break;\n space += itemSize;\n ++from;\n }\n\n var maxSize = length - from;\n\n while (size < maxSize && space < end) {\n var _itemSize = this.getSizeOfItem(from + size);\n\n if (_itemSize == null) {\n size = Math.min(size + pageSize, maxSize);\n break;\n }\n\n space += _itemSize;\n ++size;\n }\n\n this.maybeSetState(constrain(this.props, {\n from: from,\n itemsPerRow: 1,\n size: size\n }), cb);\n }\n }, {\n key: \"updateUniformFrame\",\n value: function updateUniformFrame(cb) {\n var _this$getItemSizeAndI = this.getItemSizeAndItemsPerRow(),\n itemSize = _this$getItemSizeAndI.itemSize,\n itemsPerRow = _this$getItemSizeAndI.itemsPerRow;\n\n if (!itemSize || !itemsPerRow) return cb();\n\n var _this$getStartAndEnd3 = this.getStartAndEnd(),\n start = _this$getStartAndEnd3.start,\n end = _this$getStartAndEnd3.end;\n\n var _constrain = constrain(this.props, {\n from: Math.floor(start / itemSize) * itemsPerRow,\n size: (Math.ceil((end - start) / itemSize) + 1) * itemsPerRow,\n itemsPerRow: itemsPerRow\n }),\n from = _constrain.from,\n size = _constrain.size;\n\n return this.maybeSetState({\n itemsPerRow: itemsPerRow,\n from: from,\n itemSize: itemSize,\n size: size\n }, cb);\n }\n }, {\n key: \"getSpaceBefore\",\n value: function getSpaceBefore(index) {\n var cache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (cache[index] != null) return cache[index]; // Try the static itemSize.\n\n var _this$state2 = this.state,\n itemSize = _this$state2.itemSize,\n itemsPerRow = _this$state2.itemsPerRow;\n\n if (itemSize) {\n return cache[index] = Math.floor(index / itemsPerRow) * itemSize;\n } // Find the closest space to index there is a cached value for.\n\n\n var from = index;\n\n while (from > 0 && cache[--from] == null) {\n ;\n } // Finally, accumulate sizes of items from - index.\n\n\n var space = cache[from] || 0;\n\n for (var i = from; i < index; ++i) {\n cache[i] = space;\n\n var _itemSize2 = this.getSizeOfItem(i);\n\n if (_itemSize2 == null) break;\n space += _itemSize2;\n }\n\n return cache[index] = space;\n }\n }, {\n key: \"cacheSizes\",\n value: function cacheSizes() {\n var cache = this.cache;\n var from = this.state.from;\n var itemEls = this.items.children;\n var sizeKey = OFFSET_SIZE_KEYS[this.props.axis];\n\n for (var i = 0, l = itemEls.length; i < l; ++i) {\n cache[from + i] = itemEls[i][sizeKey];\n }\n }\n }, {\n key: \"getSizeOfItem\",\n value: function getSizeOfItem(index) {\n var cache = this.cache,\n items = this.items;\n var _this$props5 = this.props,\n axis = _this$props5.axis,\n itemSizeGetter = _this$props5.itemSizeGetter,\n itemSizeEstimator = _this$props5.itemSizeEstimator,\n type = _this$props5.type;\n var _this$state3 = this.state,\n from = _this$state3.from,\n itemSize = _this$state3.itemSize,\n size = _this$state3.size; // Try the static itemSize.\n\n if (itemSize) return itemSize; // Try the itemSizeGetter.\n\n if (itemSizeGetter) return itemSizeGetter(index); // Try the cache.\n\n if (index in cache) return cache[index]; // Try the DOM.\n\n if (type === 'simple' && index >= from && index < from + size && items) {\n var itemEl = items.children[index - from];\n if (itemEl) return itemEl[OFFSET_SIZE_KEYS[axis]];\n } // Try the itemSizeEstimator.\n\n\n if (itemSizeEstimator) return itemSizeEstimator(index, cache);\n }\n }, {\n key: \"scrollTo\",\n value: function scrollTo(index) {\n if (index != null) this.setScroll(this.getSpaceBefore(index));\n }\n }, {\n key: \"scrollAround\",\n value: function scrollAround(index) {\n var current = this.getScrollPosition();\n var bottom = this.getSpaceBefore(index);\n var top = bottom - this.props.scrollParentViewportSizeGetter(this) + this.getSizeOfItem(index);\n var min = Math.min(top, bottom);\n var max = Math.max(top, bottom);\n if (current <= min) return this.setScroll(min);\n if (current > max) return this.setScroll(max);\n }\n }, {\n key: \"getVisibleRange\",\n value: function getVisibleRange() {\n var _this$state4 = this.state,\n from = _this$state4.from,\n size = _this$state4.size;\n\n var _this$getStartAndEnd4 = this.getStartAndEnd(0),\n start = _this$getStartAndEnd4.start,\n end = _this$getStartAndEnd4.end;\n\n var cache = {};\n var first, last;\n\n for (var i = from; i < from + size; ++i) {\n var itemStart = this.getSpaceBefore(i, cache);\n var itemEnd = itemStart + this.getSizeOfItem(i);\n if (first == null && itemEnd > start) first = i;\n if (first != null && itemStart < end) last = i;\n }\n\n return [first, last];\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this3 = this;\n\n var _this$props6 = this.props,\n itemRenderer = _this$props6.itemRenderer,\n itemsRenderer = _this$props6.itemsRenderer;\n var _this$state5 = this.state,\n from = _this$state5.from,\n size = _this$state5.size;\n var items = [];\n\n for (var i = 0; i < size; ++i) {\n items.push(itemRenderer(from + i, i));\n }\n\n return itemsRenderer(items, function (c) {\n return _this3.items = c;\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var _this$props7 = this.props,\n axis = _this$props7.axis,\n length = _this$props7.length,\n type = _this$props7.type,\n useTranslate3d = _this$props7.useTranslate3d;\n var _this$state6 = this.state,\n from = _this$state6.from,\n itemsPerRow = _this$state6.itemsPerRow;\n var items = this.renderItems();\n if (type === 'simple') return items;\n var style = {\n position: 'relative'\n };\n var cache = {};\n var bottom = Math.ceil(length / itemsPerRow) * itemsPerRow;\n var size = this.getSpaceBefore(bottom, cache);\n\n if (size) {\n style[SIZE_KEYS[axis]] = size;\n if (axis === 'x') style.overflowX = 'hidden';\n }\n\n var offset = this.getSpaceBefore(from, cache);\n var x = axis === 'x' ? offset : 0;\n var y = axis === 'y' ? offset : 0;\n var transform = useTranslate3d ? \"translate3d(\".concat(x, \"px, \").concat(y, \"px, 0)\") : \"translate(\".concat(x, \"px, \").concat(y, \"px)\");\n var listStyle = {\n msTransform: transform,\n WebkitTransform: transform,\n transform: transform\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: style,\n ref: function ref(c) {\n return _this4.el = c;\n }\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: listStyle\n }, items));\n }\n }]);\n\n return ReactList;\n }(_react.Component), _defineProperty(_class, \"displayName\", 'ReactList'), _defineProperty(_class, \"propTypes\", {\n axis: _propTypes[\"default\"].oneOf(['x', 'y']),\n initialIndex: _propTypes[\"default\"].number,\n itemRenderer: _propTypes[\"default\"].func,\n itemSizeEstimator: _propTypes[\"default\"].func,\n itemSizeGetter: _propTypes[\"default\"].func,\n itemsRenderer: _propTypes[\"default\"].func,\n length: _propTypes[\"default\"].number,\n minSize: _propTypes[\"default\"].number,\n pageSize: _propTypes[\"default\"].number,\n scrollParentGetter: _propTypes[\"default\"].func,\n scrollParentViewportSizeGetter: _propTypes[\"default\"].func,\n threshold: _propTypes[\"default\"].number,\n type: _propTypes[\"default\"].oneOf(['simple', 'variable', 'uniform']),\n useStaticSize: _propTypes[\"default\"].bool,\n useTranslate3d: _propTypes[\"default\"].bool\n }), _defineProperty(_class, \"defaultProps\", {\n axis: 'y',\n itemRenderer: function itemRenderer(index, key) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: key\n }, index);\n },\n itemsRenderer: function itemsRenderer(items, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n ref: ref\n }, items);\n },\n length: 0,\n minSize: 1,\n pageSize: 10,\n scrollParentGetter: defaultScrollParentGetter,\n scrollParentViewportSizeGetter: defaultScrollParentViewportSizeGetter,\n threshold: 100,\n type: 'simple',\n useStaticSize: false,\n useTranslate3d: false\n }), _temp);\n});\n","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PrevArrow = exports.NextArrow = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\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); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); 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 } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); 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; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } 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\nvar PrevArrow = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n\n var _super = _createSuper(PrevArrow);\n\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(PrevArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow;\n\n if (this.props.prevArrow) {\n prevArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.prevArrow, _objectSpread(_objectSpread({}, prevArrowProps), customProps));\n } else {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n\n return prevArrow;\n }\n }]);\n\n return PrevArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.PrevArrow = PrevArrow;\n\nvar NextArrow = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n\n var _super2 = _createSuper(NextArrow);\n\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(NextArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n\n if (!(0, _innerSliderUtils.canGoNext)(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow;\n\n if (this.props.nextArrow) {\n nextArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.nextArrow, _objectSpread(_objectSpread({}, nextArrowProps), customProps));\n } else {\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n\n return nextArrow;\n }\n }]);\n\n return NextArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.NextArrow = NextArrow;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true\n};\nvar _default = defaultProps;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Dots = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); 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 } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); 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; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } 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\nvar getDotCount = function getDotCount(spec) {\n var dots;\n\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n\n return dots;\n};\n\nvar Dots = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n\n var _super = _createSuper(Dots);\n\n function Dots() {\n _classCallCheck(this, Dots);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Dots, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave,\n infinite = _this$props.infinite,\n slidesToScroll = _this$props.slidesToScroll,\n slidesToShow = _this$props.slidesToShow,\n slideCount = _this$props.slideCount,\n currentSlide = _this$props.currentSlide;\n var dotCount = getDotCount({\n slideCount: slideCount,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n infinite: infinite\n });\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = [];\n\n for (var i = 0; i < dotCount; i++) {\n var _rightBound = (i + 1) * slidesToScroll - 1;\n\n var rightBound = infinite ? _rightBound : (0, _innerSliderUtils.clamp)(_rightBound, 0, slideCount - 1);\n\n var _leftBound = rightBound - (slidesToScroll - 1);\n\n var leftBound = infinite ? _leftBound : (0, _innerSliderUtils.clamp)(_leftBound, 0, slideCount - 1);\n var className = (0, _classnames[\"default\"])({\n \"slick-active\": infinite ? currentSlide >= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n var onClick = this.clickHandler.bind(this, dotOptions);\n dots = dots.concat( /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n key: i,\n className: className\n }, /*#__PURE__*/_react[\"default\"].cloneElement(this.props.customPaging(i), {\n onClick: onClick\n })));\n }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n\n return Dots;\n}(_react[\"default\"].PureComponent);\n\nexports.Dots = Dots;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _slider = _interopRequireDefault(require(\"./slider\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _slider[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0,\n targetSlide: 0\n};\nvar _default = initialState;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.InnerSlider = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _initialState = _interopRequireDefault(require(\"./initial-state\"));\n\nvar _lodash = _interopRequireDefault(require(\"lodash.debounce\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nvar _track = require(\"./track\");\n\nvar _dots = require(\"./dots\");\n\nvar _arrows = require(\"./arrows\");\n\nvar _resizeObserverPolyfill = _interopRequireDefault(require(\"resize-observer-polyfill\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); 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 } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); 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; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } 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 InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n\n var _super = _createSuper(InnerSlider);\n\n function InnerSlider(props) {\n var _this;\n\n _classCallCheck(this, InnerSlider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n _this.props.onInit && _this.props.onInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n\n _this.ro = new _resizeObserverPolyfill[\"default\"](function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n\n _this.ro.observe(_this.list);\n\n document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n\n _this.callbackTimers = [];\n }\n\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n _this.ro.disconnect();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function (prevProps) {\n _this.checkImagesLoad();\n\n _this.props.onReInit && _this.props.onReInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n } // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n\n\n _this.adaptHeight();\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n var setTrackStyle = _this.didPropsChange(prevProps);\n\n setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react[\"default\"].Children.count(_this.props.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react[\"default\"].Children.count(_this.props.children) - _this.props.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n\n if (_this.props.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash[\"default\"])(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n\n _this.debouncedResize();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var isTrackMounted = Boolean(_this.track && _this.track.node); // prevent warning: setting state on unmounted component (server side rendering)\n\n if (!isTrackMounted) return;\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n }); // animating state should be cleared while resizing, otherwise autoplay stops working\n\n\n _this.setState({\n animating: false\n });\n\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _objectSpread(_objectSpread({}, spec), {}, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n\n if (setTrackStyle || _react[\"default\"].Children.count(_this.props.children) !== _react[\"default\"].Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n\n _this.setState(updatedState, callback);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n\n for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n\n return {\n trackStyle: _trackStyle\n };\n }\n\n var childrenCount = _react[\"default\"].Children.count(_this.props.children);\n\n var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: childrenCount\n });\n\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n return {\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = _this.list && _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n\n image.onclick = function () {\n prevClickHandler();\n image.parentNode.focus();\n };\n }\n\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n\n var currentSlide = _this.state.currentSlide;\n\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_objectSpread(_objectSpread(_objectSpread({\n index: index\n }, _this.props), _this.state), {}, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n\n if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n afterChange && afterChange(currentSlide);\n delete _this.animationEndCallback;\n }\n\n _this.setState(state, function () {\n // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n if (asNavFor && _this.asNavForIndex !== index) {\n _this.asNavForIndex = index;\n asNavFor.innerSlider.slideHandler(index);\n }\n\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n\n if (_this.props.focusOnSelect) {\n var nodes = _this.list.querySelectorAll(\".slick-current\");\n\n nodes[0] && nodes[0].focus();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n\n window.ontouchmove = preventDefault;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n\n _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n\n _this.setState(state);\n\n if (triggerSlideHandler === undefined) return;\n\n _this.slideHandler(triggerSlideHandler);\n\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"touchEnd\", function (e) {\n _this.swipeEnd(e);\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n\n _this.slideHandler(nextIndex);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = (0, _classnames[\"default\"])(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n });\n var dots;\n\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = /*#__PURE__*/_react[\"default\"].createElement(_dots.Dots, dotProps);\n }\n\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n\n if (_this.props.arrows) {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.NextArrow, arrowProps);\n }\n\n var verticalHeightStyle = null;\n\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n\n var centerPaddingStyle = null;\n\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n\n var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.touchEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), /*#__PURE__*/_react[\"default\"].createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread(_objectSpread({}, _initialState[\"default\"]), {}, {\n currentSlide: _this.props.initialSlide,\n slideCount: _react[\"default\"].Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n\n var ssrState = _this.ssrInit();\n\n _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n return _this;\n }\n\n _createClass(InnerSlider, [{\n key: \"didPropsChange\",\n value: function didPropsChange(prevProps) {\n var setTrackStyle = false;\n\n for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n\n if (!prevProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n\n if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\") {\n continue;\n }\n\n if (prevProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n\n return setTrackStyle || _react[\"default\"].Children.count(this.props.children) !== _react[\"default\"].Children.count(prevProps.children);\n }\n }]);\n\n return InnerSlider;\n}(_react[\"default\"].Component);\n\nexports.InnerSlider = InnerSlider;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _innerSlider = require(\"./inner-slider\");\n\nvar _json2mq = _interopRequireDefault(require(\"json2mq\"));\n\nvar _defaultProps = _interopRequireDefault(require(\"./default-props\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\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); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); 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 } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); 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; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } 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 enquire = (0, _innerSliderUtils.canUseDOM)() && require(\"enquire.js\");\n\nvar Slider = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n var _super = _createSuper(Slider);\n\n function Slider(props) {\n var _this;\n\n _classCallCheck(this, Slider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n }); // sort them in increasing order of their numerical value\n\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n } // when not using server side rendering\n\n\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n }); // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var settings;\n var newProps;\n\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props);\n } // force scrolling by one if centerMode is on\n\n\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToScroll = 1;\n } // force showing one slide and scrolling by one if the fade mode is on\n\n\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n } // makes sure that children is an array, even when there is only 1 child\n\n\n var children = _react[\"default\"].Children.toArray(this.props.children); // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n\n\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n\n return !!child;\n }); // rows and slidesPerRow logic is handled here\n\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n\n var newChildren = [];\n var currentWidth = null;\n\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n\n if (k >= children.length) break;\n row.push( /*#__PURE__*/_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n\n newSlide.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow) {\n settings.unslick = true;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, settings), newChildren);\n }\n }]);\n\n return Slider;\n}(_react[\"default\"].Component);\n\nexports[\"default\"] = Slider;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Track = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); 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 } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); 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; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } 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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n\n slickCloned = index < 0 || index >= spec.slideCount;\n\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n\n var focusedSlide;\n\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n\n };\n};\n\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n\n if (spec.fade) {\n style.position = \"relative\";\n\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\n\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n }; // in case of lazyLoad, whether or not we want to fetch the slide\n\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/_react[\"default\"].createElement(\"div\", null);\n }\n\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n })); // push a cloned element of the desired slide\n\n slides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n })); // if slide needs to be precloned or postcloned\n\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec) && childrenCount !== spec.slidesToShow) {\n key = -preCloneNo;\n\n if (key >= startIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n\n if (childrenCount !== spec.slidesToShow) {\n key = childrenCount + index;\n\n if (key < endIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n }\n });\n\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\n\nvar Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n\n var _super = _createSuper(Track);\n\n function Track() {\n var _this;\n\n _classCallCheck(this, Track);\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), \"node\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n\n return _this;\n }\n\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n\n return Track;\n}(_react[\"default\"].PureComponent);\n\nexports.Track = Track;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkSpecKeys = exports.checkNavigable = exports.changeSlide = exports.canUseDOM = exports.canGoNext = void 0;\nexports.clamp = clamp;\nexports.swipeStart = exports.swipeMove = exports.swipeEnd = exports.slidesOnRight = exports.slidesOnLeft = exports.slideHandler = exports.siblingDirection = exports.safePreventDefault = exports.lazyStartIndex = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.keyHandler = exports.initializedState = exports.getWidth = exports.getTrackLeft = exports.getTrackCSS = exports.getTrackAnimateCSS = exports.getTotalSlides = exports.getSwipeDirection = exports.getSlideCount = exports.getRequiredLazySlides = exports.getPreClones = exports.getPostClones = exports.getOnDemandLazySlides = exports.getNavigableIndexes = exports.getHeight = exports.extractObject = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\n\nvar safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\n\nexports.safePreventDefault = safePreventDefault;\n\nvar getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n\n return onDemandSlides;\n}; // return list of slides that need to be present\n\n\nexports.getOnDemandLazySlides = getOnDemandLazySlides;\n\nvar getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n\n return requiredSlides;\n}; // startIndex that needs to be present\n\n\nexports.getRequiredLazySlides = getRequiredLazySlides;\n\nvar lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\n\nexports.lazyStartIndex = lazyStartIndex;\n\nvar lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\n\nexports.lazyEndIndex = lazyEndIndex;\n\nvar lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\n\nexports.lazySlidesOnLeft = lazySlidesOnLeft;\n\nvar lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n}; // get width of an element\n\n\nexports.lazySlidesOnRight = lazySlidesOnRight;\n\nvar getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\n\nexports.getWidth = getWidth;\n\nvar getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\n\nexports.getHeight = getHeight;\n\nvar getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n\n return \"vertical\";\n}; // whether or not we can go next\n\n\nexports.getSwipeDirection = getSwipeDirection;\n\nvar canGoNext = function canGoNext(spec) {\n var canGo = true;\n\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n\n return canGo;\n}; // given an object and a list of keys, return new object with given keys\n\n\nexports.canGoNext = canGoNext;\n\nvar extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n}; // get initialized state\n\n\nexports.extractObject = extractObject;\n\nvar initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n\n return state;\n};\n\nexports.initializedState = initializedState;\n\nvar slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList = lazyLoadedList.concat(animationSlide);\n }\n\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n\n if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n }\n\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n\n return {\n state: state,\n nextState: nextState\n };\n};\n\nexports.slideHandler = slideHandler;\n\nvar changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n\n return targetSlide;\n};\n\nexports.changeSlide = changeSlide;\n\nvar keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\n\nexports.keyHandler = keyHandler;\n\nvar swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && safePreventDefault(e);\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\n\nexports.swipeStart = swipeStart;\n\nvar swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n\n if (!infinite) {\n if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n safePreventDefault(e);\n }\n\n return state;\n};\n\nexports.swipeMove = swipeMove;\n\nvar swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n\n if (!dragging) {\n if (swipe) safePreventDefault(e);\n return {};\n }\n\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping); // reset the state of touch related state variables.\n\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n\n if (scrolling) {\n return state;\n }\n\n if (!touchObject.swipeLength) {\n return state;\n }\n\n if (touchObject.swipeLength > minSwipe) {\n safePreventDefault(e);\n\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n\n default:\n slideCount = activeSlide;\n }\n\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n\n return state;\n};\n\nexports.swipeEnd = swipeEnd;\n\nvar getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n\n return indexes;\n};\n\nexports.getNavigableIndexes = getNavigableIndexes;\n\nvar checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n\n prevNavigable = navigables[n];\n }\n }\n\n return index;\n};\n\nexports.checkNavigable = checkNavigable;\n\nvar getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n\n return true;\n });\n\n if (!swipedSlide) {\n return 0;\n }\n\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\n\nexports.getSlideCount = getSlideCount;\n\nvar checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\n\nexports.checkSpecKeys = checkSpecKeys;\n\nvar getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight; // Fallback for IE8\n\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n\n return style;\n};\n\nexports.getTrackCSS = getTrackCSS;\n\nvar getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec); // useCSS is true by default so it can be undefined\n\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nexports.getTrackAnimateCSS = getTrackAnimateCSS;\n\nvar getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n\n var slidesToOffset = 0;\n\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n } // shift current slide to center of the frame\n\n\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n\n return targetLeft;\n};\n\nexports.getTrackLeft = getTrackLeft;\n\nvar getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nexports.getPreClones = getPreClones;\n\nvar getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n return spec.slideCount;\n};\n\nexports.getPostClones = getPostClones;\n\nvar getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\n\nexports.getTotalSlides = getTotalSlides;\n\nvar siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n\n return \"left\";\n }\n};\n\nexports.siblingDirection = siblingDirection;\n\nvar slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n\n if (rtl) {\n return 0;\n }\n\n return slidesToShow - 1;\n};\n\nexports.slidesOnRight = slidesOnRight;\n\nvar slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n\n if (rtl) {\n return slidesToShow - 1;\n }\n\n return 0;\n};\n\nexports.slidesOnLeft = slidesOnLeft;\n\nvar canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\n\nexports.canUseDOM = canUseDOM;","/**\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} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\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","function shallowEqualObjects(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if (!objA || !objB) {\n return false;\n }\n\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n\n if (bKeys.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key] || !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction shallowEqualArrays(arrA, arrB) {\n if (arrA === arrB) {\n return true;\n }\n\n if (!arrA || !arrB) {\n return false;\n }\n\n var len = arrA.length;\n\n if (arrB.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n if (arrA[i] !== arrB[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nexport { shallowEqualArrays, shallowEqualObjects };\n","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","const reWords = /[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['’](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['’](?:D|LL|M|RE|S|T|VE))?|\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+|(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*/g\n\nconst words = (str) => str.match(reWords) || []\n\nconst upperFirst = (str) => str[0].toUpperCase() + str.slice(1)\n\nconst join = (str, d) => words(str).join(d).toLowerCase()\n\nconst camelCase = (str) =>\n words(str).reduce(\n (acc, next) =>\n `${acc}${\n !acc\n ? next.toLowerCase()\n : next[0].toUpperCase() + next.slice(1).toLowerCase()\n }`,\n '',\n )\n\nconst pascalCase = (str) => upperFirst(camelCase(str))\n\nconst snakeCase = (str) => join(str, '_')\n\nconst kebabCase = (str) => join(str, '-')\n\nconst sentenceCase = (str) => upperFirst(join(str, ' '))\n\nconst titleCase = (str) => words(str).map(upperFirst).join(' ')\n\nmodule.exports = {\n words,\n upperFirst,\n camelCase,\n pascalCase,\n snakeCase,\n kebabCase,\n sentenceCase,\n titleCase,\n}\n","\n/**\n * Topological sorting function\n *\n * @param {Array} edges\n * @returns {Array}\n */\n\nmodule.exports = function(edges) {\n return toposort(uniqueNodes(edges), edges)\n}\n\nmodule.exports.array = toposort\n\nfunction toposort(nodes, edges) {\n var cursor = nodes.length\n , sorted = new Array(cursor)\n , visited = {}\n , i = cursor\n // Better data structures make algorithm much faster.\n , outgoingEdges = makeOutgoingEdges(edges)\n , nodesHash = makeNodesHash(nodes)\n\n // check for unknown nodes\n edges.forEach(function(edge) {\n if (!nodesHash.has(edge[0]) || !nodesHash.has(edge[1])) {\n throw new Error('Unknown node. There is an unknown node in the supplied edges.')\n }\n })\n\n while (i--) {\n if (!visited[i]) visit(nodes[i], i, new Set())\n }\n\n return sorted\n\n function visit(node, i, predecessors) {\n if(predecessors.has(node)) {\n var nodeRep\n try {\n nodeRep = \", node was:\" + JSON.stringify(node)\n } catch(e) {\n nodeRep = \"\"\n }\n throw new Error('Cyclic dependency' + nodeRep)\n }\n\n if (!nodesHash.has(node)) {\n throw new Error('Found unknown node. Make sure to provided all involved nodes. Unknown node: '+JSON.stringify(node))\n }\n\n if (visited[i]) return;\n visited[i] = true\n\n var outgoing = outgoingEdges.get(node) || new Set()\n outgoing = Array.from(outgoing)\n\n if (i = outgoing.length) {\n predecessors.add(node)\n do {\n var child = outgoing[--i]\n visit(child, nodesHash.get(child), predecessors)\n } while (i)\n predecessors.delete(node)\n }\n\n sorted[--cursor] = node\n }\n}\n\nfunction uniqueNodes(arr){\n var res = new Set()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n res.add(edge[0])\n res.add(edge[1])\n }\n return Array.from(res)\n}\n\nfunction makeOutgoingEdges(arr){\n var edges = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n if (!edges.has(edge[0])) edges.set(edge[0], new Set())\n if (!edges.has(edge[1])) edges.set(edge[1], new Set())\n edges.get(edge[0]).add(edge[1])\n }\n return edges\n}\n\nfunction makeNodesHash(arr){\n var res = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n res.set(arr[i], i)\n }\n return res\n}\n","/**\n * @license React\n * use-sync-external-store-shim.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 e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.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 h=require(\"react\"),n=require(\"use-sync-external-store/shim\");function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q=\"function\"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);\nu(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n}\nfunction _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n \"default\": e\n };\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null\n },\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n[\"default\"] = e, t && t.set(e, n), n;\n}\nmodule.exports = _interopRequireWildcard, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var defineProperty = require(\"./defineProperty.js\");\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nmodule.exports = _objectSpread2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*!\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\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) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\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","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nfunction _createSuper(t) {\n var r = isNativeReflectConstruct();\n return function () {\n var e,\n o = getPrototypeOf(t);\n if (r) {\n var s = getPrototypeOf(this).constructor;\n e = Reflect.construct(o, arguments, s);\n } else e = o.apply(this, arguments);\n return possibleConstructorReturn(this, e);\n };\n}\nexport { _createSuper as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nexport { _objectSpread2 as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","// 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","// 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__.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__.hmd = (module) => {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: () => {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// 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 = \"/\";","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nlet batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport const setBatch = newBatch => batch = newBatch; // Supply a getter just to skip dealing with ESM bindings\n\nexport const getBatch = () => batch;","import * as React from 'react';\nconst ContextKey = Symbol.for(`react-redux-context`);\nconst gT = typeof globalThis !== \"undefined\" ? globalThis :\n/* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */\n{};\n\nfunction getContext() {\n var _gT$ContextKey;\n\n if (!React.createContext) return {};\n const contextMap = (_gT$ContextKey = gT[ContextKey]) != null ? _gT$ContextKey : gT[ContextKey] = new Map();\n let realContext = contextMap.get(React.createContext);\n\n if (!realContext) {\n realContext = React.createContext(null);\n\n if (process.env.NODE_ENV !== 'production') {\n realContext.displayName = 'ReactRedux';\n }\n\n contextMap.set(React.createContext, realContext);\n }\n\n return realContext;\n}\n\nexport const ReactReduxContext = /*#__PURE__*/getContext();\nexport default ReactReduxContext;","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n\n/**\r\n * Hook factory, which creates a `useReduxContext` hook bound to a given context. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useReduxContext` hook bound to the specified context.\r\n */\nexport function createReduxContextHook(context = ReactReduxContext) {\n return function useReduxContext() {\n const contextValue = useContext(context);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n };\n}\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const { store } = useReduxContext()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport const useReduxContext = /*#__PURE__*/createReduxContextHook();","import { useCallback, useDebugValue, useRef } from 'react';\nimport { createReduxContextHook, useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { ReactReduxContext } from '../components/Context';\nimport { notInitialized } from '../utils/useSyncExternalStore';\nlet useSyncExternalStoreWithSelector = notInitialized;\nexport const initializeUseSelector = fn => {\n useSyncExternalStoreWithSelector = fn;\n};\n\nconst refEquality = (a, b) => a === b;\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context = ReactReduxContext) {\n const useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : createReduxContextHook(context);\n return function useSelector(selector, equalityFnOrOptions = {}) {\n const {\n equalityFn = refEquality,\n stabilityCheck = undefined,\n noopCheck = undefined\n } = typeof equalityFnOrOptions === 'function' ? {\n equalityFn: equalityFnOrOptions\n } : equalityFnOrOptions;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(`You must pass a selector to useSelector`);\n }\n\n if (typeof selector !== 'function') {\n throw new Error(`You must pass a function as a selector to useSelector`);\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(`You must pass a function as an equality function to useSelector`);\n }\n }\n\n const {\n store,\n subscription,\n getServerState,\n stabilityCheck: globalStabilityCheck,\n noopCheck: globalNoopCheck\n } = useReduxContext();\n const firstRun = useRef(true);\n const wrappedSelector = useCallback({\n [selector.name](state) {\n const selected = selector(state);\n\n if (process.env.NODE_ENV !== 'production') {\n const finalStabilityCheck = typeof stabilityCheck === 'undefined' ? globalStabilityCheck : stabilityCheck;\n\n if (finalStabilityCheck === 'always' || finalStabilityCheck === 'once' && firstRun.current) {\n const toCompare = selector(state);\n\n if (!equalityFn(selected, toCompare)) {\n let stack = undefined;\n\n try {\n throw new Error();\n } catch (e) {\n ;\n ({\n stack\n } = e);\n }\n\n console.warn('Selector ' + (selector.name || 'unknown') + ' returned a different result when called with the same parameters. This can lead to unnecessary rerenders.' + '\\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization', {\n state,\n selected,\n selected2: toCompare,\n stack\n });\n }\n }\n\n const finalNoopCheck = typeof noopCheck === 'undefined' ? globalNoopCheck : noopCheck;\n\n if (finalNoopCheck === 'always' || finalNoopCheck === 'once' && firstRun.current) {\n // @ts-ignore\n if (selected === state) {\n let stack = undefined;\n\n try {\n throw new Error();\n } catch (e) {\n ;\n ({\n stack\n } = e);\n }\n\n console.warn('Selector ' + (selector.name || 'unknown') + ' returned the root state when called. This can lead to unnecessary rerenders.' + '\\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.', {\n stack\n });\n }\n }\n\n if (firstRun.current) firstRun.current = false;\n }\n\n return selected;\n }\n\n }[selector.name], [selector, globalStabilityCheck, stabilityCheck]);\n const selectedState = useSyncExternalStoreWithSelector(subscription.addNestedSub, store.getState, getServerState || store.getState, wrappedSelector, equalityFn);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
{counter}
\r\n * }\r\n */\n\nexport const useSelector = /*#__PURE__*/createSelectorHook();","export const notInitialized = () => {\n throw new Error('uSES not initialized!');\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n const batch = getBatch();\n let first = null;\n let last = null;\n return {\n clear() {\n first = null;\n last = null;\n },\n\n notify() {\n batch(() => {\n let listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n\n get() {\n let listeners = [];\n let listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n\n subscribe(callback) {\n let isSubscribed = true;\n let listener = last = {\n callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n\n };\n}\n\nconst nullListeners = {\n notify() {},\n\n get: () => []\n};\nexport function createSubscription(store, parentSub) {\n let unsubscribe;\n let listeners = nullListeners; // Reasons to keep the subscription active\n\n let subscriptionsAmount = 0; // Is this specific subscription subscribed (or only nested ones?)\n\n let selfSubscribed = false;\n\n function addNestedSub(listener) {\n trySubscribe();\n const cleanupListener = listeners.subscribe(listener); // cleanup nested sub\n\n let removed = false;\n return () => {\n if (!removed) {\n removed = true;\n cleanupListener();\n tryUnsubscribe();\n }\n };\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return selfSubscribed;\n }\n\n function trySubscribe() {\n subscriptionsAmount++;\n\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n subscriptionsAmount--;\n\n if (unsubscribe && subscriptionsAmount === 0) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n function trySubscribeSelf() {\n if (!selfSubscribed) {\n selfSubscribed = true;\n trySubscribe();\n }\n }\n\n function tryUnsubscribeSelf() {\n if (selfSubscribed) {\n selfSubscribed = false;\n tryUnsubscribe();\n }\n }\n\n const subscription = {\n addNestedSub,\n notifyNestedSubs,\n handleChangeWrapper,\n isSubscribed,\n trySubscribe: trySubscribeSelf,\n tryUnsubscribe: tryUnsubscribeSelf,\n getListeners: () => listeners\n };\n return subscription;\n}","import * as React from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n// Matches logic in React's `shared/ExecutionEnvironment` file\n\nexport const canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\nexport const useIsomorphicLayoutEffect = canUseDOM ? React.useLayoutEffect : React.useEffect;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"reactReduxForwardedRef\"];\n\n/* eslint-disable valid-jsdoc, @typescript-eslint/no-unused-vars */\nimport hoistStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport defaultSelectorFactory from '../connect/selectorFactory';\nimport { mapDispatchToPropsFactory } from '../connect/mapDispatchToProps';\nimport { mapStateToPropsFactory } from '../connect/mapStateToProps';\nimport { mergePropsFactory } from '../connect/mergeProps';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport shallowEqual from '../utils/shallowEqual';\nimport warning from '../utils/warning';\nimport { ReactReduxContext } from './Context';\nimport { notInitialized } from '../utils/useSyncExternalStore';\nlet useSyncExternalStore = notInitialized;\nexport const initializeConnect = fn => {\n useSyncExternalStore = fn;\n}; // Define some constant arrays just to avoid re-creating these\n\nconst EMPTY_ARRAY = [null, 0];\nconst NO_SUBSCRIPTION_ARRAY = [null, null]; // Attempts to stringify whatever not-really-a-component value we were given\n// for logging in an error message\n\nconst stringifyComponent = Comp => {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\n// This is \"just\" a `useLayoutEffect`, but with two modifications:\n// - we need to fall back to `useEffect` in SSR to avoid annoying warnings\n// - we extract this to a separate function to avoid closing over values\n// and causing memory leaks\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies);\n} // Effect callback, extracted: assign the latest props values to refs for later usage\n\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, // actualChildProps: unknown,\nchildPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n} // Effect callback, extracted: subscribe to the Redux store or nearest connected ancestor,\n// check for updates after dispatched actions, and trigger re-renders.\n\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, // forceComponentUpdateDispatch: React.Dispatch,\nadditionalSubscribeListener) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return () => {}; // Capture values for checking if and when this component unmounts\n\n let didUnsubscribe = false;\n let lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n const checkForUpdates = () => {\n if (didUnsubscribe || !isMounted.current) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n } // TODO We're currently calling getState ourselves here, rather than letting `uSES` do it\n\n\n const latestStoreState = store.getState();\n let newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // TODO This is hacky and not how `uSES` is meant to be used\n // Trigger the React `useSyncExternalStore` subscriber\n\n additionalSubscribeListener();\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n const unsubscribeWrapper = () => {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n} // Reducer initial state creation for our update reducer\n\n\nconst initStateUpdates = () => EMPTY_ARRAY;\n\nfunction strictEqual(a, b) {\n return a === b;\n}\n/**\r\n * Infers the type of props that a connector will inject into a component.\r\n */\n\n\nlet hasWarnedAboutDeprecatedPureOption = false;\n/**\r\n * Connects a React component to a Redux store.\r\n *\r\n * - Without arguments, just wraps the component, without changing the behavior / props\r\n *\r\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\r\n * is to override ownProps (as stated in the docs), so what remains is everything that's\r\n * not a state or dispatch prop\r\n *\r\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\r\n * should be valid component props, because it depends on mergeProps implementation.\r\n * As such, it is the user's responsibility to extend ownProps interface from state or\r\n * dispatch props or both when applicable\r\n *\r\n * @param mapStateToProps A function that extracts values from state\r\n * @param mapDispatchToProps Setup for dispatching actions\r\n * @param mergeProps Optional callback to merge state and dispatch props together\r\n * @param options Options for configuring the connection\r\n *\r\n */\n\nfunction connect(mapStateToProps, mapDispatchToProps, mergeProps, {\n // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.\n // @ts-ignore\n pure,\n areStatesEqual = strictEqual,\n areOwnPropsEqual = shallowEqual,\n areStatePropsEqual = shallowEqual,\n areMergedPropsEqual = shallowEqual,\n // use React's forwardRef to expose a ref of the wrapped component\n forwardRef = false,\n // the context consumer to use\n context = ReactReduxContext\n} = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (pure !== undefined && !hasWarnedAboutDeprecatedPureOption) {\n hasWarnedAboutDeprecatedPureOption = true;\n warning('The `pure` option has been removed. `connect` is now always a \"pure/memoized\" component');\n }\n }\n\n const Context = context;\n const initMapStateToProps = mapStateToPropsFactory(mapStateToProps);\n const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps);\n const initMergeProps = mergePropsFactory(mergeProps);\n const shouldHandleStateChanges = Boolean(mapStateToProps);\n\n const wrapWithConnect = WrappedComponent => {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(`You must pass a component to the function returned by connect. Instead received ${stringifyComponent(WrappedComponent)}`);\n }\n\n const wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n const displayName = `Connect(${wrappedComponentName})`;\n const selectorFactoryOptions = {\n shouldHandleStateChanges,\n displayName,\n wrappedComponentName,\n WrappedComponent,\n // @ts-ignore\n initMapStateToProps,\n // @ts-ignore\n initMapDispatchToProps,\n initMergeProps,\n areStatesEqual,\n areStatePropsEqual,\n areOwnPropsEqual,\n areMergedPropsEqual\n };\n\n function ConnectFunction(props) {\n const [propsContext, reactReduxForwardedRef, wrapperProps] = React.useMemo(() => {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n const {\n reactReduxForwardedRef\n } = props,\n wrapperProps = _objectWithoutPropertiesLoose(props, _excluded);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]);\n const ContextToUse = React.useMemo(() => {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && // @ts-ignore\n isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n const contextValue = React.useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n const didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n const didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(`Could not find \"store\" in the context of ` + `\"${displayName}\". Either wrap the root component in a , ` + `or pass a custom React context provider to and the corresponding ` + `React context consumer to ${displayName} in connect options.`);\n } // Based on the previous check, one of these must be true\n\n\n const store = didStoreComeFromProps ? props.store : contextValue.store;\n const getServerState = didStoreComeFromContext ? contextValue.getServerState : store.getState;\n const childPropsSelector = React.useMemo(() => {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return defaultSelectorFactory(store.dispatch, selectorFactoryOptions);\n }, [store]);\n const [subscription, notifyNestedSubs] = React.useMemo(() => {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n const subscription = createSubscription(store, didStoreComeFromProps ? undefined : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n const notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]); // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n const overriddenContextValue = React.useMemo(() => {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // Set up refs to coordinate values between the subscription effect and the render logic\n\n const lastChildProps = React.useRef();\n const lastWrapperProps = React.useRef(wrapperProps);\n const childPropsFromStoreUpdate = React.useRef();\n const renderIsScheduled = React.useRef(false);\n const isProcessingDispatch = React.useRef(false);\n const isMounted = React.useRef(false);\n const latestSubscriptionCallbackError = React.useRef();\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n const actualChildPropsSelector = React.useMemo(() => {\n const selector = () => {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n };\n\n return selector;\n }, [store, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n const subscribeForReact = React.useMemo(() => {\n const subscribe = reactListener => {\n if (!subscription) {\n return () => {};\n }\n\n return subscribeUpdates(shouldHandleStateChanges, store, subscription, // @ts-ignore\n childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, reactListener);\n };\n\n return subscribe;\n }, [subscription]);\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, childPropsFromStoreUpdate, notifyNestedSubs]);\n let actualChildProps;\n\n try {\n actualChildProps = useSyncExternalStore( // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing\n subscribeForReact, // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,\n // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.\n actualChildPropsSelector, getServerState ? () => childPropsSelector(getServerState(), wrapperProps) : actualChildPropsSelector);\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n ;\n err.message += `\\nThe error may be correlated with this previous error:\\n${latestSubscriptionCallbackError.current.stack}\\n\\n`;\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(() => {\n latestSubscriptionCallbackError.current = undefined;\n childPropsFromStoreUpdate.current = undefined;\n lastChildProps.current = actualChildProps;\n }); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n const renderedWrappedComponent = React.useMemo(() => {\n return (\n /*#__PURE__*/\n // @ts-ignore\n React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }))\n );\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n const renderedChild = React.useMemo(() => {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return /*#__PURE__*/React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n }\n\n const _Connect = React.memo(ConnectFunction);\n\n // Add a hacky cast to get the right output type\n const Connect = _Connect;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n\n if (forwardRef) {\n const _forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n // @ts-ignore\n return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n\n const forwarded = _forwarded;\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n\n return wrapWithConnect;\n}\n\nexport default connect;","import * as React from 'react';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider({\n store,\n context,\n children,\n serverState,\n stabilityCheck = 'once',\n noopCheck = 'once'\n}) {\n const contextValue = React.useMemo(() => {\n const subscription = createSubscription(store);\n return {\n store,\n subscription,\n getServerState: serverState ? () => serverState : undefined,\n stabilityCheck,\n noopCheck\n };\n }, [store, serverState, stabilityCheck, noopCheck]);\n const previousState = React.useMemo(() => store.getState(), [store]);\n useIsomorphicLayoutEffect(() => {\n const {\n subscription\n } = contextValue;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return () => {\n subscription.tryUnsubscribe();\n subscription.onStateChange = undefined;\n };\n }, [contextValue, previousState]);\n const Context = context || ReactReduxContext; // @ts-ignore 'AnyAction' is assignable to the constraint of type 'A', but 'A' could be instantiated with a different subtype\n\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nexport default Provider;","import { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext, createReduxContextHook } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context = ReactReduxContext) {\n const useReduxContext = // @ts-ignore\n context === ReactReduxContext ? useDefaultReduxContext : // @ts-ignore\n createReduxContextHook(context);\n return function useStore() {\n const {\n store\n } = useReduxContext(); // @ts-ignore\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport const useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context = ReactReduxContext) {\n const useStore = // @ts-ignore\n context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n const store = useStore(); // @ts-ignore\n\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n *
\r\n * {value}\r\n * \r\n *
\r\n * )\r\n * }\r\n */\n\nexport const useDispatch = /*#__PURE__*/createDispatchHook();","// The primary entry point assumes we're working with standard ReactDOM/RN, but\n// older versions that do not include `useSyncExternalStore` (React 16.9 - 17.x).\n// Because of that, the useSyncExternalStore compat shim is needed.\nimport { useSyncExternalStore } from 'use-sync-external-store/shim';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch';\nimport { initializeUseSelector } from './hooks/useSelector';\nimport { initializeConnect } from './components/connect';\ninitializeUseSelector(useSyncExternalStoreWithSelector);\ninitializeConnect(useSyncExternalStore); // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };\nexport * from './exports';","declare const __DEBUG_BUILD__: boolean;\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nexport const DEBUG_BUILD = __DEBUG_BUILD__;\n","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n *\n * Note: This file was originally called `global.ts`, but was changed to unblock users which might be doing\n * string replaces with bundlers like Vite for `global` (would break imports that rely on importing from utils/src/global).\n *\n * Why worldwide?\n *\n * Why not?\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { Integration } from '@sentry/types';\n\nimport type { SdkSource } from './env';\n\n/** Internal global with common properties and Sentry extensions */\nexport interface InternalGlobal {\n navigator?: { userAgent?: string };\n console: Console;\n Sentry?: {\n Integrations?: Integration[];\n };\n onerror?: {\n (event: object | string, source?: string, lineno?: number, colno?: number, error?: Error): any;\n __SENTRY_INSTRUMENTED__?: true;\n __SENTRY_LOADER__?: true;\n };\n onunhandledrejection?: {\n (event: unknown): boolean;\n __SENTRY_INSTRUMENTED__?: true;\n __SENTRY_LOADER__?: true;\n };\n SENTRY_ENVIRONMENT?: string;\n SENTRY_DSN?: string;\n SENTRY_RELEASE?: {\n id?: string;\n };\n SENTRY_SDK_SOURCE?: SdkSource;\n /**\n * Debug IDs are indirectly injected by Sentry CLI or bundler plugins to directly reference a particular source map\n * for resolving of a source file. The injected code will place an entry into the record for each loaded bundle/JS\n * file.\n */\n _sentryDebugIds?: Record;\n __SENTRY__: {\n globalEventProcessors: any;\n hub: any;\n logger: any;\n extensions?: {\n /** Extension methods for the hub, which are bound to the current Hub instance */\n // eslint-disable-next-line @typescript-eslint/ban-types\n [key: string]: Function;\n };\n };\n /**\n * Raw module metadata that is injected by bundler plugins.\n *\n * Keys are `error.stack` strings, values are the metadata.\n */\n _sentryModuleMetadata?: Record;\n}\n\n// The code below for 'isGlobalObj' and 'GLOBAL_OBJ' was copied from core-js before modification\n// https://github.com/zloirock/core-js/blob/1b944df55282cdc99c90db5f49eb0b6eda2cc0a3/packages/core-js/internals/global.js\n// core-js has the following licence:\n//\n// Copyright (c) 2014-2022 Denis Pushkarev\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n/** Returns 'obj' if it's the global object, otherwise returns undefined */\nfunction isGlobalObj(obj: { Math?: Math }): any | undefined {\n return obj && obj.Math == Math ? obj : undefined;\n}\n\n/** Get's the global object for the current JavaScript runtime */\nexport const GLOBAL_OBJ: InternalGlobal =\n (typeof globalThis == 'object' && isGlobalObj(globalThis)) ||\n // eslint-disable-next-line no-restricted-globals\n (typeof window == 'object' && isGlobalObj(window)) ||\n (typeof self == 'object' && isGlobalObj(self)) ||\n (typeof global == 'object' && isGlobalObj(global)) ||\n (function (this: any) {\n return this;\n })() ||\n {};\n\n/**\n * @deprecated Use GLOBAL_OBJ instead or WINDOW from @sentry/browser. This will be removed in v8\n */\nexport function getGlobalObject(): T & InternalGlobal {\n return GLOBAL_OBJ as T & InternalGlobal;\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value\n * @returns the singleton\n */\nexport function getGlobalSingleton(name: keyof InternalGlobal['__SENTRY__'], creator: () => T, obj?: unknown): T {\n const gbl = (obj || GLOBAL_OBJ) as InternalGlobal;\n const __SENTRY__ = (gbl.__SENTRY__ = gbl.__SENTRY__ || {});\n const singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n return singleton;\n}\n","import type { ConsoleLevel } from '@sentry/types';\n\nimport { DEBUG_BUILD } from './debug-build';\nimport { GLOBAL_OBJ } from './worldwide';\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\nexport const CONSOLE_LEVELS: readonly ConsoleLevel[] = [\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'log',\n 'assert',\n 'trace',\n] as const;\n\ntype LoggerMethod = (...args: unknown[]) => void;\ntype LoggerConsoleMethods = Record;\n\n/** This may be mutated by the console instrumentation. */\nexport const originalConsoleMethods: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key in ConsoleLevel]?: (...args: any[]) => void;\n} = {};\n\n/** JSDoc */\ninterface Logger extends LoggerConsoleMethods {\n disable(): void;\n enable(): void;\n isEnabled(): boolean;\n}\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nexport function consoleSandbox(callback: () => T): T {\n if (!('console' in GLOBAL_OBJ)) {\n return callback();\n }\n\n const console = GLOBAL_OBJ.console as Console;\n const wrappedFuncs: Partial = {};\n\n const wrappedLevels = Object.keys(originalConsoleMethods) as ConsoleLevel[];\n\n // Restore all wrapped console methods\n wrappedLevels.forEach(level => {\n const originalConsoleMethod = originalConsoleMethods[level] as LoggerMethod;\n wrappedFuncs[level] = console[level] as LoggerMethod | undefined;\n console[level] = originalConsoleMethod;\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n wrappedLevels.forEach(level => {\n console[level] = wrappedFuncs[level] as LoggerMethod;\n });\n }\n}\n\nfunction makeLogger(): Logger {\n let enabled = false;\n const logger: Partial = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n isEnabled: () => enabled,\n };\n\n if (DEBUG_BUILD) {\n CONSOLE_LEVELS.forEach(name => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = (...args: any[]) => {\n if (enabled) {\n consoleSandbox(() => {\n GLOBAL_OBJ.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger as Logger;\n}\n\nexport const logger = makeLogger();\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\nimport type { ParameterizedString, PolymorphicEvent, Primitive } from '@sentry/types';\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat: unknown): wat is Error {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value is an instance of the given built-in class.\n *\n * @param wat The value to be checked\n * @param className\n * @returns A boolean representing the result.\n */\nfunction isBuiltin(wat: unknown, className: string): boolean {\n return objectToString.call(wat) === `[object ${className}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isErrorEvent(wat: unknown): boolean {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMError(wat: unknown): boolean {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMException(wat: unknown): boolean {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isString(wat: unknown): wat is string {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given string is parameterized\n * {@link isParameterizedString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isParameterizedString(wat: unknown): wat is ParameterizedString {\n return (\n typeof wat === 'object' &&\n wat !== null &&\n '__sentry_template_string__' in wat &&\n '__sentry_template_values__' in wat\n );\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPrimitive(wat: unknown): wat is Primitive {\n return wat === null || isParameterizedString(wat) || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal, or a class instance.\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPlainObject(wat: unknown): wat is Record {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isEvent(wat: unknown): wat is PolymorphicEvent {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isElement(wat: unknown): boolean {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isRegExp(wat: unknown): wat is RegExp {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function isThenable(wat: any): wat is PromiseLike {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isSyntheticEvent(wat: unknown): boolean {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value is NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isNaN(wat: unknown): boolean {\n return typeof wat === 'number' && wat !== wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nexport function isInstanceOf(wat: any, base: any): boolean {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n\ninterface VueViewModel {\n // Vue3\n __isVue?: boolean;\n // Vue2\n _isVue?: boolean;\n}\n/**\n * Checks whether given value's type is a Vue ViewModel.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isVueViewModel(wat: unknown): boolean {\n // Not using Object.prototype.toString because in Vue 3 it would read the instance's Symbol(Symbol.toStringTag) property.\n return !!(typeof wat === 'object' && wat !== null && ((wat as VueViewModel).__isVue || (wat as VueViewModel)._isVue));\n}\n","import { isString } from './is';\nimport { getGlobalObject } from './worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\nconst DEFAULT_MAX_STRING_LENGTH = 80;\n\ntype SimpleNode = {\n parentNode: SimpleNode;\n} | null;\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nexport function htmlTreeAsString(\n elem: unknown,\n options: string[] | { keyAttrs?: string[]; maxStringLength?: number } = {},\n): string {\n if (!elem) {\n return '';\n }\n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem as SimpleNode;\n const MAX_TRAVERSE_HEIGHT = 5;\n const out = [];\n let height = 0;\n let len = 0;\n const separator = ' > ';\n const sepLength = separator.length;\n let nextStr;\n const keyAttrs = Array.isArray(options) ? options : options.keyAttrs;\n const maxStringLength = (!Array.isArray(options) && options.maxStringLength) || DEFAULT_MAX_STRING_LENGTH;\n\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds maxStringLength\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= maxStringLength)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el: unknown, keyAttrs?: string[]): string {\n const elem = el as {\n tagName?: string;\n id?: string;\n className?: string;\n getAttribute(key: string): string;\n };\n\n const out = [];\n let className;\n let classes;\n let key;\n let attr;\n let i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n // @ts-expect-error WINDOW has HTMLElement\n if (WINDOW.HTMLElement) {\n // If using the component name annotation plugin, this value may be available on the DOM node\n if (elem instanceof HTMLElement && elem.dataset && elem.dataset['sentryComponent']) {\n return elem.dataset['sentryComponent'];\n }\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n const keyAttrPairs =\n keyAttrs && keyAttrs.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n // eslint-disable-next-line prefer-const\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(`.${classes[i]}`);\n }\n }\n }\n const allowedAttrs = ['aria-label', 'type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(`[${key}=\"${attr}\"]`);\n }\n }\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nexport function getLocationHref(): string {\n try {\n return WINDOW.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n\n/**\n * Gets a DOM element by using document.querySelector.\n *\n * This wrapper will first check for the existance of the function before\n * actually calling it so that we don't have to take care of this check,\n * every time we want to access the DOM.\n *\n * Reason: DOM/querySelector is not available in all environments.\n *\n * We have to cast to any because utils can be consumed by a variety of environments,\n * and we don't want to break TS users. If you know what element will be selected by\n * `document.querySelector`, specify it as part of the generic call. For example,\n * `const element = getDomElement('selector');`\n *\n * @param selector the selector string passed on to document.querySelector\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getDomElement(selector: string): E | null {\n if (WINDOW.document && WINDOW.document.querySelector) {\n return WINDOW.document.querySelector(selector) as unknown as E;\n }\n return null;\n}\n\n/**\n * Given a DOM element, traverses up the tree until it finds the first ancestor node\n * that has the `data-sentry-component` attribute. This attribute is added at build-time\n * by projects that have the component name annotation plugin installed.\n *\n * @returns a string representation of the component for the provided DOM element, or `null` if not found\n */\nexport function getComponentName(elem: unknown): string | null {\n // @ts-expect-error WINDOW has HTMLElement\n if (!WINDOW.HTMLElement) {\n return null;\n }\n\n let currentElem = elem as SimpleNode;\n const MAX_TRAVERSE_HEIGHT = 5;\n for (let i = 0; i < MAX_TRAVERSE_HEIGHT; i++) {\n if (!currentElem) {\n return null;\n }\n\n if (currentElem instanceof HTMLElement && currentElem.dataset['sentryComponent']) {\n return currentElem.dataset['sentryComponent'];\n }\n\n currentElem = currentElem.parentNode;\n }\n\n return null;\n}\n","import { isRegExp, isString, isVueViewModel } from './is';\n\nexport { escapeStringForRegex } from './vendor/escapeStringForRegex';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nexport function truncate(str: string, max: number = 0): string {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.slice(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function snipLine(line: string, colno: number): string {\n let newLine = line;\n const lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function safeJoin(input: any[], delimiter?: string): string {\n if (!Array.isArray(input)) {\n return '';\n }\n\n const output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n try {\n // This is a hack to fix a Vue3-specific bug that causes an infinite loop of\n // console warnings. This happens when a Vue template is rendered with\n // an undeclared variable, which we try to stringify, ultimately causing\n // Vue to issue another warning which repeats indefinitely.\n // see: https://github.com/getsentry/sentry-javascript/pull/8981\n if (isVueViewModel(value)) {\n output.push('[VueViewModel]');\n } else {\n output.push(String(value));\n }\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the given value matches a regex or string\n *\n * @param value The string to test\n * @param pattern Either a regex or a string against which `value` will be matched\n * @param requireExactStringMatch If true, `value` must match `pattern` exactly. If false, `value` will match\n * `pattern` if it contains `pattern`. Only applies to string-type patterns.\n */\nexport function isMatchingPattern(\n value: string,\n pattern: RegExp | string,\n requireExactStringMatch: boolean = false,\n): boolean {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (isString(pattern)) {\n return requireExactStringMatch ? value === pattern : value.includes(pattern);\n }\n\n return false;\n}\n\n/**\n * Test the given string against an array of strings and regexes. By default, string matching is done on a\n * substring-inclusion basis rather than a strict equality basis\n *\n * @param testString The string to test\n * @param patterns The patterns against which to test the string\n * @param requireExactStringMatch If true, `testString` must match one of the given string patterns exactly in order to\n * count. If false, `testString` will match a string pattern if it contains that pattern.\n * @returns\n */\nexport function stringMatchesSomePattern(\n testString: string,\n patterns: Array = [],\n requireExactStringMatch: boolean = false,\n): boolean {\n return patterns.some(pattern => isMatchingPattern(testString, pattern, requireExactStringMatch));\n}\n","/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { WrappedFunction } from '@sentry/types';\n\nimport { htmlTreeAsString } from './browser';\nimport { DEBUG_BUILD } from './debug-build';\nimport { isElement, isError, isEvent, isInstanceOf, isPlainObject, isPrimitive } from './is';\nimport { logger } from './logger';\nimport { truncate } from './string';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nexport function fill(source: { [key: string]: any }, name: string, replacementFactory: (...args: any[]) => any): void {\n if (!(name in source)) {\n return;\n }\n\n const original = source[name] as () => any;\n const wrapped = replacementFactory(original) as WrappedFunction;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n markFunctionWrapped(wrapped, original);\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nexport function addNonEnumerableProperty(obj: object, name: string, value: unknown): void {\n try {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n } catch (o_O) {\n DEBUG_BUILD && logger.log(`Failed to add non-enumerable property \"${name}\" to object`, obj);\n }\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nexport function markFunctionWrapped(wrapped: WrappedFunction, original: WrappedFunction): void {\n try {\n const proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n } catch (o_O) {} // eslint-disable-line no-empty\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nexport function getOriginalFunction(func: WrappedFunction): WrappedFunction | undefined {\n return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nexport function urlEncode(object: { [key: string]: any }): string {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argurment itself, when value is neither an Event nor\n * an Error.\n */\nexport function convertToPlainObject(\n value: V,\n):\n | {\n [ownProps: string]: unknown;\n type: string;\n target: string;\n currentTarget: string;\n detail?: unknown;\n }\n | {\n [ownProps: string]: unknown;\n message: string;\n name: string;\n stack?: string;\n }\n | V {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value),\n };\n } else if (isEvent(value)) {\n const newObj: {\n [ownProps: string]: unknown;\n type: string;\n target: string;\n currentTarget: string;\n detail?: unknown;\n } = {\n type: value.type,\n target: serializeEventTarget(value.target),\n currentTarget: serializeEventTarget(value.currentTarget),\n ...getOwnProperties(value),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = value.detail;\n }\n\n return newObj;\n } else {\n return value;\n }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target: unknown): string {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj: unknown): { [key: string]: unknown } {\n if (typeof obj === 'object' && obj !== null) {\n const extractedProps: { [key: string]: unknown } = {};\n for (const property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = (obj as Record)[property];\n }\n }\n return extractedProps;\n } else {\n return {};\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nexport function extractExceptionKeysForMessage(exception: Record, maxLength: number = 40): string {\n const keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n if (!keys.length) {\n return '[object has no keys]';\n }\n\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n const serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n */\nexport function dropUndefinedKeys(inputValue: T): T {\n // This map keeps track of what already visited nodes map to.\n // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n // references as the input object.\n const memoizationMap = new Map();\n\n // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys(inputValue: T, memoizationMap: Map): T {\n if (isPojo(inputValue)) {\n // If this node has already been visited due to a circular reference, return the object it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal as T;\n }\n\n const returnValue: { [key: string]: any } = {};\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n for (const key of Object.keys(inputValue)) {\n if (typeof inputValue[key] !== 'undefined') {\n returnValue[key] = _dropUndefinedKeys(inputValue[key], memoizationMap);\n }\n }\n\n return returnValue as T;\n }\n\n if (Array.isArray(inputValue)) {\n // If this node has already been visited due to a circular reference, return the array it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal as T;\n }\n\n const returnValue: unknown[] = [];\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n inputValue.forEach((item: unknown) => {\n returnValue.push(_dropUndefinedKeys(item, memoizationMap));\n });\n\n return returnValue as unknown as T;\n }\n\n return inputValue;\n}\n\nfunction isPojo(input: unknown): input is Record {\n if (!isPlainObject(input)) {\n return false;\n }\n\n try {\n const name = (Object.getPrototypeOf(input) as { constructor: { name: string } }).constructor.name;\n return !name || name === 'Object';\n } catch {\n return true;\n }\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nexport function objectify(wat: unknown): typeof Object {\n let objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new (wat as any).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { Event, Exception, Mechanism, StackFrame } from '@sentry/types';\n\nimport { addNonEnumerableProperty } from './object';\nimport { snipLine } from './string';\nimport { GLOBAL_OBJ } from './worldwide';\n\ninterface CryptoInternal {\n getRandomValues(array: Uint8Array): Uint8Array;\n randomUUID?(): string;\n}\n\n/** An interface for common properties on global */\ninterface CryptoGlobal {\n msCrypto?: CryptoInternal;\n crypto?: CryptoInternal;\n}\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nexport function uuid4(): string {\n const gbl = GLOBAL_OBJ as typeof GLOBAL_OBJ & CryptoGlobal;\n const crypto = gbl.crypto || gbl.msCrypto;\n\n let getRandomByte = (): number => Math.random() * 16;\n try {\n if (crypto && crypto.randomUUID) {\n return crypto.randomUUID().replace(/-/g, '');\n }\n if (crypto && crypto.getRandomValues) {\n getRandomByte = () => {\n // crypto.getRandomValues might return undefined instead of the typed array\n // in old Chromium versions (e.g. 23.0.1235.0 (151422))\n // However, `typedArray` is still filled in-place.\n // @see https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues#typedarray\n const typedArray = new Uint8Array(1);\n crypto.getRandomValues(typedArray);\n return typedArray[0];\n };\n }\n } catch (_) {\n // some runtimes can crash invoking crypto\n // https://github.com/getsentry/sentry-javascript/issues/8935\n }\n\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n // Concatenating the following numbers as strings results in '10000000100040008000100000000000'\n return (([1e7] as unknown as string) + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, c =>\n // eslint-disable-next-line no-bitwise\n ((c as unknown as number) ^ ((getRandomByte() & 15) >> ((c as unknown as number) / 4))).toString(16),\n );\n}\n\nfunction getFirstException(event: Event): Exception | undefined {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event: Event): string {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '';\n }\n return eventId || '';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event: Event, value?: string, type?: string): void {\n const exception = (event.exception = event.exception || {});\n const values = (exception.values = exception.values || []);\n const firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nexport function addExceptionMechanism(event: Event, newMechanism?: Partial): void {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n const defaultMechanism = { type: 'generic', handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n const mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\ninterface SemVer {\n major?: number;\n minor?: number;\n patch?: number;\n prerelease?: string;\n buildmetadata?: string;\n}\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input: string): SemVer {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = parseInt(match[1], 10);\n const minor = parseInt(match[2], 10);\n const patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines: string[], frame: StackFrame, linesOfContext: number = 5): void {\n // When there is no line number in the frame, attaching context is nonsensical and will even break grouping\n if (frame.lineno === undefined) {\n return;\n }\n\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines - 1, frame.lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line: string) => snipLine(line, 0));\n\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line: string) => snipLine(line, 0));\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nexport function checkOrSetAlreadyCaught(exception: unknown): boolean {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && (exception as any).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception as { [key: string]: unknown }, '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n\n/**\n * Checks whether the given input is already an array, and if it isn't, wraps it in one.\n *\n * @param maybeArray Input to turn into an array, if necessary\n * @returns The input, if already an array, or an array with the input as the only element, if not\n */\nexport function arrayify(maybeArray: T | T[]): T[] {\n return Array.isArray(maybeArray) ? maybeArray : [maybeArray];\n}\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/typedef */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n\n/** SyncPromise internal states */\nconst enum States {\n /** Pending */\n PENDING = 0,\n /** Resolved / OK */\n RESOLVED = 1,\n /** Rejected / Error */\n REJECTED = 2,\n}\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\nexport function resolvedSyncPromise(): PromiseLike;\nexport function resolvedSyncPromise(value: T | PromiseLike): PromiseLike;\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nexport function resolvedSyncPromise(value?: T | PromiseLike): PromiseLike {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nexport function rejectedSyncPromise(reason?: any): PromiseLike {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise implements PromiseLike {\n private _state: States;\n private _handlers: Array<[boolean, (value: T) => void, (reason: any) => any]>;\n private _value: any;\n\n public constructor(\n executor: (resolve: (value?: T | PromiseLike | null) => void, reject: (reason?: any) => void) => void,\n ) {\n this._state = States.PENDING;\n this._handlers = [];\n\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n public then(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike) | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike) | null,\n ): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result as any);\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n public catch(\n onrejected?: ((reason: any) => TResult | PromiseLike) | null,\n ): PromiseLike {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n public finally(onfinally?: (() => void) | null): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n let val: TResult | any;\n let isRejected: boolean;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val as unknown as any);\n });\n });\n }\n\n /** JSDoc */\n private readonly _resolve = (value?: T | PromiseLike | null) => {\n this._setResult(States.RESOLVED, value);\n };\n\n /** JSDoc */\n private readonly _reject = (reason?: any) => {\n this._setResult(States.REJECTED, reason);\n };\n\n /** JSDoc */\n private readonly _setResult = (state: States, value?: T | PromiseLike | any) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value as PromiseLike).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };\n\n /** JSDoc */\n private readonly _executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler[1](this._value as unknown as any);\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };\n}\n\nexport { SyncPromise };\n","import type { Event, EventHint, EventProcessor } from '@sentry/types';\nimport { SyncPromise, getGlobalSingleton, isThenable, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from './debug-build';\n\n/**\n * Returns the global event processors.\n * @deprecated Global event processors will be removed in v8.\n */\nexport function getGlobalEventProcessors(): EventProcessor[] {\n return getGlobalSingleton('globalEventProcessors', () => []);\n}\n\n/**\n * Add a EventProcessor to be kept globally.\n * @deprecated Use `addEventProcessor` instead. Global event processors will be removed in v8.\n */\nexport function addGlobalEventProcessor(callback: EventProcessor): void {\n // eslint-disable-next-line deprecation/deprecation\n getGlobalEventProcessors().push(callback);\n}\n\n/**\n * Process an array of event processors, returning the processed event (or `null` if the event was dropped).\n */\nexport function notifyEventProcessors(\n processors: EventProcessor[],\n event: Event | null,\n hint: EventHint,\n index: number = 0,\n): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n const processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n const result = processor({ ...event }, hint) as Event | null;\n\n DEBUG_BUILD && processor.id && result === null && logger.log(`Event processor \"${processor.id}\" dropped event`);\n\n if (isThenable(result)) {\n void result\n .then(final => notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n}\n","import { GLOBAL_OBJ } from './worldwide';\n\nconst ONE_SECOND_IN_MS = 1000;\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\ninterface Performance {\n /**\n * The millisecond timestamp at which measurement began, measured in Unix time.\n */\n timeOrigin: number;\n /**\n * Returns the current millisecond timestamp, where 0 represents the start of measurement.\n */\n now(): number;\n}\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n *\n * TODO(v8): Return type should be rounded.\n */\nexport function dateTimestampInSeconds(): number {\n return Date.now() / ONE_SECOND_IN_MS;\n}\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction createUnixTimestampInSecondsFunc(): () => number {\n const { performance } = GLOBAL_OBJ as typeof GLOBAL_OBJ & { performance?: Performance };\n if (!performance || !performance.now) {\n return dateTimestampInSeconds;\n }\n\n // Some browser and environments don't have a timeOrigin, so we fallback to\n // using Date.now() to compute the starting time.\n const approxStartingTimeOrigin = Date.now() - performance.now();\n const timeOrigin = performance.timeOrigin == undefined ? approxStartingTimeOrigin : performance.timeOrigin;\n\n // performance.now() is a monotonic clock, which means it starts at 0 when the process begins. To get the current\n // wall clock time (actual UNIX timestamp), we need to add the starting time origin and the current time elapsed.\n //\n // TODO: This does not account for the case where the monotonic clock that powers performance.now() drifts from the\n // wall clock time, which causes the returned timestamp to be inaccurate. We should investigate how to detect and\n // correct for this.\n // See: https://github.com/getsentry/sentry-javascript/issues/2590\n // See: https://github.com/mdn/content/issues/4713\n // See: https://dev.to/noamr/when-a-millisecond-is-not-a-millisecond-3h6\n return () => {\n return (timeOrigin + performance.now()) / ONE_SECOND_IN_MS;\n };\n}\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nexport const timestampInSeconds = createUnixTimestampInSecondsFunc();\n\n/**\n * Re-exported with an old name for backwards-compatibility.\n * TODO (v8): Remove this\n *\n * @deprecated Use `timestampInSeconds` instead.\n */\nexport const timestampWithMs = timestampInSeconds;\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nexport let _browserPerformanceTimeOriginMode: string;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nexport const browserPerformanceTimeOrigin = ((): number | undefined => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = GLOBAL_OBJ as typeof GLOBAL_OBJ & Window;\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n const threshold = 3600 * 1000;\n const performanceNow = performance.now();\n const dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n const timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n const timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n const navigationStart = performance.timing && performance.timing.navigationStart;\n const hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n const navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n","export const DEFAULT_ENVIRONMENT = 'production';\n","import type { SerializedSession, Session, SessionContext, SessionStatus } from '@sentry/types';\nimport { dropUndefinedKeys, timestampInSeconds, uuid4 } from '@sentry/utils';\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nexport function makeSession(context?: Omit): Session {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n\n const session: Session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: 'ok',\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session),\n };\n\n if (context) {\n updateSession(session, context);\n }\n\n return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see BaseClient.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\n// eslint-disable-next-line complexity\nexport function updateSession(session: Session, context: SessionContext = {}): void {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n session.timestamp = context.timestamp || timestampInSeconds();\n\n if (context.abnormal_mechanism) {\n session.abnormal_mechanism = context.abnormal_mechanism;\n }\n\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = undefined;\n } else if (typeof context.duration === 'number') {\n session.duration = context.duration;\n } else {\n const duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n * this function will keep the previously set status, unless it was `'ok'` in which case\n * it is changed to `'exited'`.\n */\nexport function closeSession(session: Session, status?: Exclude): void {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === 'ok') {\n context = { status: 'exited' };\n }\n\n updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session: Session): SerializedSession {\n return dropUndefinedKeys({\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1000).toISOString(),\n timestamp: new Date(session.timestamp * 1000).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n duration: session.duration,\n abnormal_mechanism: session.abnormal_mechanism,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent,\n },\n });\n}\n","import type { StackFrame, StackLineParser, StackParser } from '@sentry/types';\n\nimport type { GetModuleFn } from './node-stack-trace';\nimport { filenameIsInApp, node } from './node-stack-trace';\n\nexport { filenameIsInApp };\n\nconst STACKTRACE_FRAME_LIMIT = 50;\n// Used to sanitize webpack (error: *) wrapped stack errors\nconst WEBPACK_ERROR_REGEXP = /\\(error: (.*)\\)/;\nconst STRIP_FRAME_REGEXP = /captureMessage|captureException/;\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nexport function createStackParser(...parsers: StackLineParser[]): StackParser {\n const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n return (stack: string, skipFirst: number = 0): StackFrame[] => {\n const frames: StackFrame[] = [];\n const lines = stack.split('\\n');\n\n for (let i = skipFirst; i < lines.length; i++) {\n const line = lines[i];\n // Ignore lines over 1kb as they are unlikely to be stack frames.\n // Many of the regular expressions use backtracking which results in run time that increases exponentially with\n // input size. Huge strings can result in hangs/Denial of Service:\n // https://github.com/getsentry/sentry-javascript/issues/2286\n if (line.length > 1024) {\n continue;\n }\n\n // https://github.com/getsentry/sentry-javascript/issues/5459\n // Remove webpack (error: *) wrappers\n const cleanedLine = WEBPACK_ERROR_REGEXP.test(line) ? line.replace(WEBPACK_ERROR_REGEXP, '$1') : line;\n\n // https://github.com/getsentry/sentry-javascript/issues/7813\n // Skip Error: lines\n if (cleanedLine.match(/\\S*Error: /)) {\n continue;\n }\n\n for (const parser of sortedParsers) {\n const frame = parser(cleanedLine);\n\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n\n if (frames.length >= STACKTRACE_FRAME_LIMIT) {\n break;\n }\n }\n\n return stripSentryFramesAndReverse(frames);\n };\n}\n\n/**\n * Gets a stack parser implementation from Options.stackParser\n * @see Options\n *\n * If options contains an array of line parsers, it is converted into a parser\n */\nexport function stackParserFromStackParserOptions(stackParser: StackParser | StackLineParser[]): StackParser {\n if (Array.isArray(stackParser)) {\n return createStackParser(...stackParser);\n }\n return stackParser;\n}\n\n/**\n * Removes Sentry frames from the top and bottom of the stack if present and enforces a limit of max number of frames.\n * Assumes stack input is ordered from top to bottom and returns the reverse representation so call site of the\n * function that caused the crash is the last frame in the array.\n * @hidden\n */\nexport function stripSentryFramesAndReverse(stack: ReadonlyArray): StackFrame[] {\n if (!stack.length) {\n return [];\n }\n\n const localStack = Array.from(stack);\n\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (/sentryWrapped/.test(localStack[localStack.length - 1].function || '')) {\n localStack.pop();\n }\n\n // Reversing in the middle of the procedure allows us to just pop the values off the stack\n localStack.reverse();\n\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (STRIP_FRAME_REGEXP.test(localStack[localStack.length - 1].function || '')) {\n localStack.pop();\n\n // When using synthetic events, we will have a 2 levels deep stack, as `new Error('Sentry syntheticException')`\n // is produced within the hub itself, making it:\n //\n // Sentry.captureException()\n // getCurrentHub().captureException()\n //\n // instead of just the top `Sentry` call itself.\n // This forces us to possibly strip an additional frame in the exact same was as above.\n if (STRIP_FRAME_REGEXP.test(localStack[localStack.length - 1].function || '')) {\n localStack.pop();\n }\n }\n\n return localStack.slice(0, STACKTRACE_FRAME_LIMIT).map(frame => ({\n ...frame,\n filename: frame.filename || localStack[localStack.length - 1].filename,\n function: frame.function || '?',\n }));\n}\n\nconst defaultFunctionName = '';\n\n/**\n * Safely extract function name from itself\n */\nexport function getFunctionName(fn: unknown): string {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n\n/**\n * Node.js stack line parser\n *\n * This is in @sentry/utils so it can be used from the Electron SDK in the browser for when `nodeIntegration == true`.\n * This allows it to be used without referencing or importing any node specific code which causes bundlers to complain\n */\nexport function nodeStackLineParser(getModule?: GetModuleFn): StackLineParser {\n return [90, node(getModule)];\n}\n","import type { Primitive } from '@sentry/types';\n\nimport { isNaN, isSyntheticEvent, isVueViewModel } from './is';\nimport type { MemoFunc } from './memo';\nimport { memoBuilder } from './memo';\nimport { convertToPlainObject } from './object';\nimport { getFunctionName } from './stacktrace';\n\ntype Prototype = { constructor: (...args: unknown[]) => unknown };\n// This is a hack to placate TS, relying on the fact that technically, arrays are objects with integer keys. Normally we\n// think of those keys as actual numbers, but `arr['0']` turns out to work just as well as `arr[0]`, and doing it this\n// way lets us use a single type in the places where behave as if we are only dealing with objects, even if some of them\n// might be arrays.\ntype ObjOrArray = { [key: string]: T };\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output.\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function normalize(input: unknown, depth: number = 100, maxProperties: number = +Infinity): any {\n try {\n // since we're at the outermost level, we don't provide a key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nexport function normalizeToSize(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n object: { [key: string]: any },\n // Default Node.js REPL depth\n depth: number = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize: number = 100 * 1024,\n): T {\n const normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized as T;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key: string,\n value: unknown,\n depth: number = +Infinity,\n maxProperties: number = +Infinity,\n memo: MemoFunc = memoBuilder(),\n): Primitive | ObjOrArray {\n const [memoize, unmemoize] = memo;\n\n // Get the simple cases out of the way first\n if (\n value == null || // this matches null and undefined -> eqeq not eqeqeq\n (['number', 'boolean', 'string'].includes(typeof value) && !isNaN(value))\n ) {\n return value as Primitive;\n }\n\n const stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // From here on, we can assert that `value` is either an object or an array.\n\n // Do not normalize objects that we know have already been normalized. As a general rule, the\n // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n // have already been normalized.\n if ((value as ObjOrArray)['__sentry_skip_normalization__']) {\n return value as ObjOrArray;\n }\n\n // We can set `__sentry_override_normalization_depth__` on an object to ensure that from there\n // We keep a certain amount of depth.\n // This should be used sparingly, e.g. we use it for the redux integration to ensure we get a certain amount of state.\n const remainingDepth =\n typeof (value as ObjOrArray)['__sentry_override_normalization_depth__'] === 'number'\n ? ((value as ObjOrArray)['__sentry_override_normalization_depth__'] as number)\n : depth;\n\n // We're also done if we've reached the max depth\n if (remainingDepth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // If the value has a `toJSON` method, we call it to extract more information\n const valueWithToJSON = value as unknown & { toJSON?: () => unknown };\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n const jsonValue = valueWithToJSON.toJSON();\n // We need to normalize the return value of `.toJSON()` in case it has circular references\n return visit('', jsonValue, remainingDepth - 1, maxProperties, memo);\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n const normalized = (Array.isArray(value) ? [] : {}) as ObjOrArray;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n const visitable = convertToPlainObject(value as ObjOrArray);\n\n for (const visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n const visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, remainingDepth - 1, maxProperties, memo);\n\n numAdded++;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n/**\n * @deprecated This export will be removed in v8.\n */\nexport { visit as walk };\n\n/* eslint-disable complexity */\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key: unknown,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value: Exclude,\n): string {\n try {\n if (key === 'domain' && value && typeof value === 'object' && (value as { _events: unknown })._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n if (isVueViewModel(value)) {\n return '[VueViewModel]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n const objName = getConstructorName(value);\n\n // Handle HTML Elements\n if (/^HTML(\\w*)Element$/.test(objName)) {\n return `[HTMLElement: ${objName}]`;\n }\n\n return `[object ${objName}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n/* eslint-enable complexity */\n\nfunction getConstructorName(value: unknown): string {\n const prototype: Prototype | null = Object.getPrototypeOf(value);\n\n return prototype ? prototype.constructor.name : 'null prototype';\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value: string): number {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction jsonSize(value: any): number {\n return utf8Length(JSON.stringify(value));\n}\n\n/**\n * Normalizes URLs in exceptions and stacktraces to a base path so Sentry can fingerprint\n * across platforms and working directory.\n *\n * @param url The URL to be normalized.\n * @param basePath The application base path.\n * @returns The normalized URL.\n */\nexport function normalizeUrlToBase(url: string, basePath: string): string {\n const escapedBase = basePath\n // Backslash to forward\n .replace(/\\\\/g, '/')\n // Escape RegExp special characters\n .replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n\n let newUrl = url;\n try {\n newUrl = decodeURI(url);\n } catch (_Oo) {\n // Sometime this breaks\n }\n return (\n newUrl\n .replace(/\\\\/g, '/')\n .replace(/webpack:\\/?/g, '') // Remove intermediate base path\n // eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor\n .replace(new RegExp(`(file://)?/*${escapedBase}/*`, 'ig'), 'app:///')\n );\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport type MemoFunc = [\n // memoize\n (obj: any) => boolean,\n // unmemoize\n (obj: any) => void,\n];\n\n/**\n * Helper to decycle json objects\n */\nexport function memoBuilder(): MemoFunc {\n const hasWeakSet = typeof WeakSet === 'function';\n const inner: any = hasWeakSet ? new WeakSet() : [];\n function memoize(obj: any): boolean {\n if (hasWeakSet) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < inner.length; i++) {\n const value = inner[i];\n if (value === obj) {\n return true;\n }\n }\n inner.push(obj);\n return false;\n }\n\n function unmemoize(obj: any): void {\n if (hasWeakSet) {\n inner.delete(obj);\n } else {\n for (let i = 0; i < inner.length; i++) {\n if (inner[i] === obj) {\n inner.splice(i, 1);\n break;\n }\n }\n }\n }\n return [memoize, unmemoize];\n}\n","import type { DynamicSamplingContext } from '@sentry/types';\n\nimport { DEBUG_BUILD } from './debug-build';\nimport { isString } from './is';\nimport { logger } from './logger';\n\nexport const BAGGAGE_HEADER_NAME = 'baggage';\n\nexport const SENTRY_BAGGAGE_KEY_PREFIX = 'sentry-';\n\nexport const SENTRY_BAGGAGE_KEY_PREFIX_REGEX = /^sentry-/;\n\n/**\n * Max length of a serialized baggage string\n *\n * https://www.w3.org/TR/baggage/#limits\n */\nexport const MAX_BAGGAGE_STRING_LENGTH = 8192;\n\n/**\n * Takes a baggage header and turns it into Dynamic Sampling Context, by extracting all the \"sentry-\" prefixed values\n * from it.\n *\n * @param baggageHeader A very bread definition of a baggage header as it might appear in various frameworks.\n * @returns The Dynamic Sampling Context that was found on `baggageHeader`, if there was any, `undefined` otherwise.\n */\nexport function baggageHeaderToDynamicSamplingContext(\n // Very liberal definition of what any incoming header might look like\n baggageHeader: string | string[] | number | null | undefined | boolean,\n): Partial | undefined {\n if (!isString(baggageHeader) && !Array.isArray(baggageHeader)) {\n return undefined;\n }\n\n // Intermediary object to store baggage key value pairs of incoming baggage headers on.\n // It is later used to read Sentry-DSC-values from.\n let baggageObject: Readonly> = {};\n\n if (Array.isArray(baggageHeader)) {\n // Combine all baggage headers into one object containing the baggage values so we can later read the Sentry-DSC-values from it\n baggageObject = baggageHeader.reduce>((acc, curr) => {\n const currBaggageObject = baggageHeaderToObject(curr);\n for (const key of Object.keys(currBaggageObject)) {\n acc[key] = currBaggageObject[key];\n }\n return acc;\n }, {});\n } else {\n // Return undefined if baggage header is an empty string (technically an empty baggage header is not spec conform but\n // this is how we choose to handle it)\n if (!baggageHeader) {\n return undefined;\n }\n\n baggageObject = baggageHeaderToObject(baggageHeader);\n }\n\n // Read all \"sentry-\" prefixed values out of the baggage object and put it onto a dynamic sampling context object.\n const dynamicSamplingContext = Object.entries(baggageObject).reduce>((acc, [key, value]) => {\n if (key.match(SENTRY_BAGGAGE_KEY_PREFIX_REGEX)) {\n const nonPrefixedKey = key.slice(SENTRY_BAGGAGE_KEY_PREFIX.length);\n acc[nonPrefixedKey] = value;\n }\n return acc;\n }, {});\n\n // Only return a dynamic sampling context object if there are keys in it.\n // A keyless object means there were no sentry values on the header, which means that there is no DSC.\n if (Object.keys(dynamicSamplingContext).length > 0) {\n return dynamicSamplingContext as Partial;\n } else {\n return undefined;\n }\n}\n\n/**\n * Turns a Dynamic Sampling Object into a baggage header by prefixing all the keys on the object with \"sentry-\".\n *\n * @param dynamicSamplingContext The Dynamic Sampling Context to turn into a header. For convenience and compatibility\n * with the `getDynamicSamplingContext` method on the Transaction class ,this argument can also be `undefined`. If it is\n * `undefined` the function will return `undefined`.\n * @returns a baggage header, created from `dynamicSamplingContext`, or `undefined` either if `dynamicSamplingContext`\n * was `undefined`, or if `dynamicSamplingContext` didn't contain any values.\n */\nexport function dynamicSamplingContextToSentryBaggageHeader(\n // this also takes undefined for convenience and bundle size in other places\n dynamicSamplingContext?: Partial,\n): string | undefined {\n if (!dynamicSamplingContext) {\n return undefined;\n }\n\n // Prefix all DSC keys with \"sentry-\" and put them into a new object\n const sentryPrefixedDSC = Object.entries(dynamicSamplingContext).reduce>(\n (acc, [dscKey, dscValue]) => {\n if (dscValue) {\n acc[`${SENTRY_BAGGAGE_KEY_PREFIX}${dscKey}`] = dscValue;\n }\n return acc;\n },\n {},\n );\n\n return objectToBaggageHeader(sentryPrefixedDSC);\n}\n\n/**\n * Will parse a baggage header, which is a simple key-value map, into a flat object.\n *\n * @param baggageHeader The baggage header to parse.\n * @returns a flat object containing all the key-value pairs from `baggageHeader`.\n */\nfunction baggageHeaderToObject(baggageHeader: string): Record {\n return baggageHeader\n .split(',')\n .map(baggageEntry => baggageEntry.split('=').map(keyOrValue => decodeURIComponent(keyOrValue.trim())))\n .reduce>((acc, [key, value]) => {\n acc[key] = value;\n return acc;\n }, {});\n}\n\n/**\n * Turns a flat object (key-value pairs) into a baggage header, which is also just key-value pairs.\n *\n * @param object The object to turn into a baggage header.\n * @returns a baggage header string, or `undefined` if the object didn't have any values, since an empty baggage header\n * is not spec compliant.\n */\nfunction objectToBaggageHeader(object: Record): string | undefined {\n if (Object.keys(object).length === 0) {\n // An empty baggage header is not spec compliant: We return undefined.\n return undefined;\n }\n\n return Object.entries(object).reduce((baggageHeader, [objectKey, objectValue], currentIndex) => {\n const baggageEntry = `${encodeURIComponent(objectKey)}=${encodeURIComponent(objectValue)}`;\n const newBaggageHeader = currentIndex === 0 ? baggageEntry : `${baggageHeader},${baggageEntry}`;\n if (newBaggageHeader.length > MAX_BAGGAGE_STRING_LENGTH) {\n DEBUG_BUILD &&\n logger.warn(\n `Not adding key: ${objectKey} with val: ${objectValue} to baggage header due to exceeding baggage size limits.`,\n );\n return baggageHeader;\n } else {\n return newBaggageHeader;\n }\n }, '');\n}\n","import type { PropagationContext, TraceparentData } from '@sentry/types';\n\nimport { baggageHeaderToDynamicSamplingContext } from './baggage';\nimport { uuid4 } from './misc';\n\n// eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor -- RegExp is used for readability here\nexport const TRACEPARENT_REGEXP = new RegExp(\n '^[ \\\\t]*' + // whitespace\n '([0-9a-f]{32})?' + // trace_id\n '-?([0-9a-f]{16})?' + // span_id\n '-?([01])?' + // sampled\n '[ \\\\t]*$', // whitespace\n);\n\n/**\n * Extract transaction context data from a `sentry-trace` header.\n *\n * @param traceparent Traceparent string\n *\n * @returns Object containing data from the header, or undefined if traceparent string is malformed\n */\nexport function extractTraceparentData(traceparent?: string): TraceparentData | undefined {\n if (!traceparent) {\n return undefined;\n }\n\n const matches = traceparent.match(TRACEPARENT_REGEXP);\n if (!matches) {\n return undefined;\n }\n\n let parentSampled: boolean | undefined;\n if (matches[3] === '1') {\n parentSampled = true;\n } else if (matches[3] === '0') {\n parentSampled = false;\n }\n\n return {\n traceId: matches[1],\n parentSampled,\n parentSpanId: matches[2],\n };\n}\n\n/**\n * Create tracing context from incoming headers.\n *\n * @deprecated Use `propagationContextFromHeaders` instead.\n */\n// TODO(v8): Remove this function\nexport function tracingContextFromHeaders(\n sentryTrace: Parameters[0],\n baggage: Parameters[0],\n): {\n traceparentData: ReturnType;\n dynamicSamplingContext: ReturnType;\n propagationContext: PropagationContext;\n} {\n const traceparentData = extractTraceparentData(sentryTrace);\n const dynamicSamplingContext = baggageHeaderToDynamicSamplingContext(baggage);\n\n const { traceId, parentSpanId, parentSampled } = traceparentData || {};\n\n if (!traceparentData) {\n return {\n traceparentData,\n dynamicSamplingContext: undefined,\n propagationContext: {\n traceId: traceId || uuid4(),\n spanId: uuid4().substring(16),\n },\n };\n } else {\n return {\n traceparentData,\n dynamicSamplingContext: dynamicSamplingContext || {}, // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it\n propagationContext: {\n traceId: traceId || uuid4(),\n parentSpanId: parentSpanId || uuid4().substring(16),\n spanId: uuid4().substring(16),\n sampled: parentSampled,\n dsc: dynamicSamplingContext || {}, // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it\n },\n };\n }\n}\n\n/**\n * Create a propagation context from incoming headers.\n */\nexport function propagationContextFromHeaders(\n sentryTrace: string | undefined,\n baggage: string | number | boolean | string[] | null | undefined,\n): PropagationContext {\n const traceparentData = extractTraceparentData(sentryTrace);\n const dynamicSamplingContext = baggageHeaderToDynamicSamplingContext(baggage);\n\n const { traceId, parentSpanId, parentSampled } = traceparentData || {};\n\n if (!traceparentData) {\n return {\n traceId: traceId || uuid4(),\n spanId: uuid4().substring(16),\n };\n } else {\n return {\n traceId: traceId || uuid4(),\n parentSpanId: parentSpanId || uuid4().substring(16),\n spanId: uuid4().substring(16),\n sampled: parentSampled,\n dsc: dynamicSamplingContext || {}, // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it\n };\n }\n}\n\n/**\n * Create sentry-trace header from span context values.\n */\nexport function generateSentryTraceHeader(\n traceId: string = uuid4(),\n spanId: string = uuid4().substring(16),\n sampled?: boolean,\n): string {\n let sampledString = '';\n if (sampled !== undefined) {\n sampledString = sampled ? '-1' : '-0';\n }\n return `${traceId}-${spanId}${sampledString}`;\n}\n","import type { Span, SpanJSON, SpanTimeInput, TraceContext } from '@sentry/types';\nimport { dropUndefinedKeys, generateSentryTraceHeader, timestampInSeconds } from '@sentry/utils';\nimport type { Span as SpanClass } from '../tracing/span';\n\n// These are aligned with OpenTelemetry trace flags\nexport const TRACE_FLAG_NONE = 0x0;\nexport const TRACE_FLAG_SAMPLED = 0x1;\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in an event.\n */\nexport function spanToTraceContext(span: Span): TraceContext {\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n const { data, op, parent_span_id, status, tags, origin } = spanToJSON(span);\n\n return dropUndefinedKeys({\n data,\n op,\n parent_span_id,\n span_id,\n status,\n tags,\n trace_id,\n origin,\n });\n}\n\n/**\n * Convert a Span to a Sentry trace header.\n */\nexport function spanToTraceHeader(span: Span): string {\n const { traceId, spanId } = span.spanContext();\n const sampled = spanIsSampled(span);\n return generateSentryTraceHeader(traceId, spanId, sampled);\n}\n\n/**\n * Convert a span time input intp a timestamp in seconds.\n */\nexport function spanTimeInputToSeconds(input: SpanTimeInput | undefined): number {\n if (typeof input === 'number') {\n return ensureTimestampInSeconds(input);\n }\n\n if (Array.isArray(input)) {\n // See {@link HrTime} for the array-based time format\n return input[0] + input[1] / 1e9;\n }\n\n if (input instanceof Date) {\n return ensureTimestampInSeconds(input.getTime());\n }\n\n return timestampInSeconds();\n}\n\n/**\n * Converts a timestamp to second, if it was in milliseconds, or keeps it as second.\n */\nfunction ensureTimestampInSeconds(timestamp: number): number {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp / 1000 : timestamp;\n}\n\n/**\n * Convert a span to a JSON representation.\n * Note that all fields returned here are optional and need to be guarded against.\n *\n * Note: Because of this, we currently have a circular type dependency (which we opted out of in package.json).\n * This is not avoidable as we need `spanToJSON` in `spanUtils.ts`, which in turn is needed by `span.ts` for backwards compatibility.\n * And `spanToJSON` needs the Span class from `span.ts` to check here.\n * TODO v8: When we remove the deprecated stuff from `span.ts`, we can remove the circular dependency again.\n */\nexport function spanToJSON(span: Span): Partial {\n if (spanIsSpanClass(span)) {\n return span.getSpanJSON();\n }\n\n // Fallback: We also check for `.toJSON()` here...\n // eslint-disable-next-line deprecation/deprecation\n if (typeof span.toJSON === 'function') {\n // eslint-disable-next-line deprecation/deprecation\n return span.toJSON();\n }\n\n return {};\n}\n\n/**\n * Sadly, due to circular dependency checks we cannot actually import the Span class here and check for instanceof.\n * :( So instead we approximate this by checking if it has the `getSpanJSON` method.\n */\nfunction spanIsSpanClass(span: Span): span is SpanClass {\n return typeof (span as SpanClass).getSpanJSON === 'function';\n}\n\n/**\n * Returns true if a span is sampled.\n * In most cases, you should just use `span.isRecording()` instead.\n * However, this has a slightly different semantic, as it also returns false if the span is finished.\n * So in the case where this distinction is important, use this method.\n */\nexport function spanIsSampled(span: Span): boolean {\n // We align our trace flags with the ones OpenTelemetry use\n // So we also check for sampled the same way they do.\n const { traceFlags } = span.spanContext();\n // eslint-disable-next-line no-bitwise\n return Boolean(traceFlags & TRACE_FLAG_SAMPLED);\n}\n","import type {\n CaptureContext,\n Client,\n ClientOptions,\n Event,\n EventHint,\n Scope as ScopeInterface,\n ScopeContext,\n StackFrame,\n StackParser,\n} from '@sentry/types';\nimport { GLOBAL_OBJ, addExceptionMechanism, dateTimestampInSeconds, normalize, truncate, uuid4 } from '@sentry/utils';\n\nimport { DEFAULT_ENVIRONMENT } from '../constants';\nimport { getGlobalEventProcessors, notifyEventProcessors } from '../eventProcessors';\nimport { Scope, getGlobalScope } from '../scope';\nimport { applyScopeDataToEvent, mergeScopeData } from './applyScopeDataToEvent';\nimport { spanToJSON } from './spanUtils';\n\n/**\n * This type makes sure that we get either a CaptureContext, OR an EventHint.\n * It does not allow mixing them, which could lead to unexpected outcomes, e.g. this is disallowed:\n * { user: { id: '123' }, mechanism: { handled: false } }\n */\nexport type ExclusiveEventHintOrCaptureContext =\n | (CaptureContext & Partial<{ [key in keyof EventHint]: never }>)\n | (EventHint & Partial<{ [key in keyof ScopeContext]: never }>);\n\n/**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * Note: This also triggers callbacks for `addGlobalEventProcessor`, but not `beforeSend`.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n * @hidden\n */\nexport function prepareEvent(\n options: ClientOptions,\n event: Event,\n hint: EventHint,\n scope?: Scope,\n client?: Client,\n isolationScope?: Scope,\n): PromiseLike {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1_000 } = options;\n const prepared: Event = {\n ...event,\n event_id: event.event_id || hint.event_id || uuid4(),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n const integrations = hint.integrations || options.integrations.map(i => i.name);\n\n applyClientOptions(prepared, options);\n applyIntegrationsMetadata(prepared, integrations);\n\n // Only put debug IDs onto frames for error events.\n if (event.type === undefined) {\n applyDebugIds(prepared, options.stackParser);\n }\n\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n const finalScope = getFinalScope(scope, hint.captureContext);\n\n if (hint.mechanism) {\n addExceptionMechanism(prepared, hint.mechanism);\n }\n\n const clientEventProcessors = client && client.getEventProcessors ? client.getEventProcessors() : [];\n\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n // Merge scope data together\n const data = getGlobalScope().getScopeData();\n\n if (isolationScope) {\n const isolationData = isolationScope.getScopeData();\n mergeScopeData(data, isolationData);\n }\n\n if (finalScope) {\n const finalScopeData = finalScope.getScopeData();\n mergeScopeData(data, finalScopeData);\n }\n\n const attachments = [...(hint.attachments || []), ...data.attachments];\n if (attachments.length) {\n hint.attachments = attachments;\n }\n\n applyScopeDataToEvent(prepared, data);\n\n // TODO (v8): Update this order to be: Global > Client > Scope\n const eventProcessors = [\n ...clientEventProcessors,\n // eslint-disable-next-line deprecation/deprecation\n ...getGlobalEventProcessors(),\n // Run scope event processors _after_ all other processors\n ...data.eventProcessors,\n ];\n\n const result = notifyEventProcessors(eventProcessors, prepared, hint);\n\n return result.then(evt => {\n if (evt) {\n // We apply the debug_meta field only after all event processors have ran, so that if any event processors modified\n // file names (e.g.the RewriteFrames integration) the filename -> debug ID relationship isn't destroyed.\n // This should not cause any PII issues, since we're only moving data that is already on the event and not adding\n // any new data\n applyDebugMeta(evt);\n }\n\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n}\n\n/**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\nfunction applyClientOptions(event: Event, options: ClientOptions): void {\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : DEFAULT_ENVIRONMENT;\n }\n\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n const exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n const request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n}\n\nconst debugIdStackParserCache = new WeakMap>();\n\n/**\n * Puts debug IDs into the stack frames of an error event.\n */\nexport function applyDebugIds(event: Event, stackParser: StackParser): void {\n const debugIdMap = GLOBAL_OBJ._sentryDebugIds;\n\n if (!debugIdMap) {\n return;\n }\n\n let debugIdStackFramesCache: Map;\n const cachedDebugIdStackFrameCache = debugIdStackParserCache.get(stackParser);\n if (cachedDebugIdStackFrameCache) {\n debugIdStackFramesCache = cachedDebugIdStackFrameCache;\n } else {\n debugIdStackFramesCache = new Map();\n debugIdStackParserCache.set(stackParser, debugIdStackFramesCache);\n }\n\n // Build a map of filename -> debug_id\n const filenameDebugIdMap = Object.keys(debugIdMap).reduce>((acc, debugIdStackTrace) => {\n let parsedStack: StackFrame[];\n const cachedParsedStack = debugIdStackFramesCache.get(debugIdStackTrace);\n if (cachedParsedStack) {\n parsedStack = cachedParsedStack;\n } else {\n parsedStack = stackParser(debugIdStackTrace);\n debugIdStackFramesCache.set(debugIdStackTrace, parsedStack);\n }\n\n for (let i = parsedStack.length - 1; i >= 0; i--) {\n const stackFrame = parsedStack[i];\n if (stackFrame.filename) {\n acc[stackFrame.filename] = debugIdMap[debugIdStackTrace];\n break;\n }\n }\n return acc;\n }, {});\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event!.exception!.values!.forEach(exception => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n exception.stacktrace!.frames!.forEach(frame => {\n if (frame.filename) {\n frame.debug_id = filenameDebugIdMap[frame.filename];\n }\n });\n });\n } catch (e) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n}\n\n/**\n * Moves debug IDs from the stack frames of an error event into the debug_meta field.\n */\nexport function applyDebugMeta(event: Event): void {\n // Extract debug IDs and filenames from the stack frames on the event.\n const filenameDebugIdMap: Record = {};\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception!.values!.forEach(exception => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n exception.stacktrace!.frames!.forEach(frame => {\n if (frame.debug_id) {\n if (frame.abs_path) {\n filenameDebugIdMap[frame.abs_path] = frame.debug_id;\n } else if (frame.filename) {\n filenameDebugIdMap[frame.filename] = frame.debug_id;\n }\n delete frame.debug_id;\n }\n });\n });\n } catch (e) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n\n if (Object.keys(filenameDebugIdMap).length === 0) {\n return;\n }\n\n // Fill debug_meta information\n event.debug_meta = event.debug_meta || {};\n event.debug_meta.images = event.debug_meta.images || [];\n const images = event.debug_meta.images;\n Object.keys(filenameDebugIdMap).forEach(filename => {\n images.push({\n type: 'sourcemap',\n code_file: filename,\n debug_id: filenameDebugIdMap[filename],\n });\n });\n}\n\n/**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\nfunction applyIntegrationsMetadata(event: Event, integrationNames: string[]): void {\n if (integrationNames.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationNames];\n }\n}\n\n/**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\nfunction normalizeEvent(event: Event | null, depth: number, maxBreadth: number): Event | null {\n if (!event) {\n return null;\n }\n\n const normalized: Event = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth, maxBreadth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }),\n };\n\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace && normalized.contexts) {\n normalized.contexts.trace = event.contexts.trace;\n\n // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it\n if (event.contexts.trace.data) {\n normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n }\n }\n\n // event.spans[].data may contain circular/dangerous data so we need to normalize it\n if (event.spans) {\n normalized.spans = event.spans.map(span => {\n const data = spanToJSON(span).data;\n\n if (data) {\n // This is a bit weird, as we generally have `Span` instances here, but to be safe we do not assume so\n // eslint-disable-next-line deprecation/deprecation\n span.data = normalize(data, depth, maxBreadth);\n }\n\n return span;\n });\n }\n\n return normalized;\n}\n\nfunction getFinalScope(scope: Scope | undefined, captureContext: CaptureContext | undefined): Scope | undefined {\n if (!captureContext) {\n return scope;\n }\n\n const finalScope = scope ? scope.clone() : new Scope();\n finalScope.update(captureContext);\n return finalScope;\n}\n\n/**\n * Parse either an `EventHint` directly, or convert a `CaptureContext` to an `EventHint`.\n * This is used to allow to update method signatures that used to accept a `CaptureContext` but should now accept an `EventHint`.\n */\nexport function parseEventHintOrCaptureContext(\n hint: ExclusiveEventHintOrCaptureContext | undefined,\n): EventHint | undefined {\n if (!hint) {\n return undefined;\n }\n\n // If you pass a Scope or `() => Scope` as CaptureContext, we just return this as captureContext\n if (hintIsScopeOrFunction(hint)) {\n return { captureContext: hint };\n }\n\n if (hintIsScopeContext(hint)) {\n return {\n captureContext: hint,\n };\n }\n\n return hint;\n}\n\nfunction hintIsScopeOrFunction(\n hint: CaptureContext | EventHint,\n): hint is ScopeInterface | ((scope: ScopeInterface) => ScopeInterface) {\n return hint instanceof Scope || typeof hint === 'function';\n}\n\ntype ScopeContextProperty = keyof ScopeContext;\nconst captureContextKeys: readonly ScopeContextProperty[] = [\n 'user',\n 'level',\n 'extra',\n 'contexts',\n 'tags',\n 'fingerprint',\n 'requestSession',\n 'propagationContext',\n] as const;\n\nfunction hintIsScopeContext(hint: Partial | EventHint): hint is Partial {\n return Object.keys(hint).some(key => captureContextKeys.includes(key as ScopeContextProperty));\n}\n","/* eslint-disable max-lines */\nimport type {\n Attachment,\n Breadcrumb,\n CaptureContext,\n Client,\n Context,\n Contexts,\n Event,\n EventHint,\n EventProcessor,\n Extra,\n Extras,\n Primitive,\n PropagationContext,\n RequestSession,\n Scope as ScopeInterface,\n ScopeContext,\n ScopeData,\n Session,\n Severity,\n SeverityLevel,\n Span,\n Transaction,\n User,\n} from '@sentry/types';\nimport { dateTimestampInSeconds, isPlainObject, logger, uuid4 } from '@sentry/utils';\n\nimport { getGlobalEventProcessors, notifyEventProcessors } from './eventProcessors';\nimport { updateSession } from './session';\nimport { applyScopeDataToEvent } from './utils/applyScopeDataToEvent';\n\n/**\n * Default value for maximum number of breadcrumbs added to an event.\n */\nconst DEFAULT_MAX_BREADCRUMBS = 100;\n\n/**\n * The global scope is kept in this module.\n * When accessing this via `getGlobalScope()` we'll make sure to set one if none is currently present.\n */\nlet globalScope: ScopeInterface | undefined;\n\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nexport class Scope implements ScopeInterface {\n /** Flag if notifying is happening. */\n protected _notifyingListeners: boolean;\n\n /** Callback for client to receive scope changes. */\n protected _scopeListeners: Array<(scope: Scope) => void>;\n\n /** Callback list that will be called after {@link applyToEvent}. */\n protected _eventProcessors: EventProcessor[];\n\n /** Array of breadcrumbs. */\n protected _breadcrumbs: Breadcrumb[];\n\n /** User */\n protected _user: User;\n\n /** Tags */\n protected _tags: { [key: string]: Primitive };\n\n /** Extra */\n protected _extra: Extras;\n\n /** Contexts */\n protected _contexts: Contexts;\n\n /** Attachments */\n protected _attachments: Attachment[];\n\n /** Propagation Context for distributed tracing */\n protected _propagationContext: PropagationContext;\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n protected _sdkProcessingMetadata: { [key: string]: unknown };\n\n /** Fingerprint */\n protected _fingerprint?: string[];\n\n /** Severity */\n // eslint-disable-next-line deprecation/deprecation\n protected _level?: Severity | SeverityLevel;\n\n /**\n * Transaction Name\n */\n protected _transactionName?: string;\n\n /** Span */\n protected _span?: Span;\n\n /** Session */\n protected _session?: Session;\n\n /** Request Mode Session Status */\n protected _requestSession?: RequestSession;\n\n /** The client on this scope */\n protected _client?: Client;\n\n // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n\n public constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n this._propagationContext = generatePropagationContext();\n }\n\n /**\n * Inherit values from the parent scope.\n * @deprecated Use `scope.clone()` and `new Scope()` instead.\n */\n public static clone(scope?: Scope): Scope {\n return scope ? scope.clone() : new Scope();\n }\n\n /**\n * Clone this scope instance.\n */\n public clone(): Scope {\n const newScope = new Scope();\n newScope._breadcrumbs = [...this._breadcrumbs];\n newScope._tags = { ...this._tags };\n newScope._extra = { ...this._extra };\n newScope._contexts = { ...this._contexts };\n newScope._user = this._user;\n newScope._level = this._level;\n newScope._span = this._span;\n newScope._session = this._session;\n newScope._transactionName = this._transactionName;\n newScope._fingerprint = this._fingerprint;\n newScope._eventProcessors = [...this._eventProcessors];\n newScope._requestSession = this._requestSession;\n newScope._attachments = [...this._attachments];\n newScope._sdkProcessingMetadata = { ...this._sdkProcessingMetadata };\n newScope._propagationContext = { ...this._propagationContext };\n newScope._client = this._client;\n\n return newScope;\n }\n\n /** Update the client on the scope. */\n public setClient(client: Client | undefined): void {\n this._client = client;\n }\n\n /**\n * Get the client assigned to this scope.\n *\n * It is generally recommended to use the global function `Sentry.getClient()` instead, unless you know what you are doing.\n */\n public getClient(): Client | undefined {\n return this._client;\n }\n\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n public addScopeListener(callback: (scope: Scope) => void): void {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n public addEventProcessor(callback: EventProcessor): this {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setUser(user: User | null): this {\n // If null is passed we want to unset everything, but still define keys,\n // so that later down in the pipeline any existing values are cleared.\n this._user = user || {\n email: undefined,\n id: undefined,\n ip_address: undefined,\n segment: undefined,\n username: undefined,\n };\n\n if (this._session) {\n updateSession(this._session, { user });\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getUser(): User | undefined {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n public getRequestSession(): RequestSession | undefined {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n public setRequestSession(requestSession?: RequestSession): this {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTags(tags: { [key: string]: Primitive }): this {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): this {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtras(extras: Extras): this {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtra(key: string, extra: Extra): this {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setFingerprint(fingerprint: string[]): this {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setLevel(\n // eslint-disable-next-line deprecation/deprecation\n level: Severity | SeverityLevel,\n ): this {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Sets the transaction name on the scope for future events.\n */\n public setTransactionName(name?: string): this {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setContext(key: string, context: Context | null): this {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Sets the Span on the scope.\n * @param span Span\n * @deprecated Instead of setting a span on a scope, use `startSpan()`/`startSpanManual()` instead.\n */\n public setSpan(span?: Span): this {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Returns the `Span` if there is one.\n * @deprecated Use `getActiveSpan()` instead.\n */\n public getSpan(): Span | undefined {\n return this._span;\n }\n\n /**\n * Returns the `Transaction` attached to the scope (if there is one).\n * @deprecated You should not rely on the transaction, but just use `startSpan()` APIs instead.\n */\n public getTransaction(): Transaction | undefined {\n // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n // have a pointer to the currently-active transaction.\n const span = this._span;\n // Cannot replace with getRootSpan because getRootSpan returns a span, not a transaction\n // Also, this method will be removed anyway.\n // eslint-disable-next-line deprecation/deprecation\n return span && span.transaction;\n }\n\n /**\n * @inheritDoc\n */\n public setSession(session?: Session): this {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getSession(): Session | undefined {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n public update(captureContext?: CaptureContext): this {\n if (!captureContext) {\n return this;\n }\n\n const scopeToMerge = typeof captureContext === 'function' ? captureContext(this) : captureContext;\n\n if (scopeToMerge instanceof Scope) {\n const scopeData = scopeToMerge.getScopeData();\n\n this._tags = { ...this._tags, ...scopeData.tags };\n this._extra = { ...this._extra, ...scopeData.extra };\n this._contexts = { ...this._contexts, ...scopeData.contexts };\n if (scopeData.user && Object.keys(scopeData.user).length) {\n this._user = scopeData.user;\n }\n if (scopeData.level) {\n this._level = scopeData.level;\n }\n if (scopeData.fingerprint.length) {\n this._fingerprint = scopeData.fingerprint;\n }\n if (scopeToMerge.getRequestSession()) {\n this._requestSession = scopeToMerge.getRequestSession();\n }\n if (scopeData.propagationContext) {\n this._propagationContext = scopeData.propagationContext;\n }\n } else if (isPlainObject(scopeToMerge)) {\n const scopeContext = captureContext as ScopeContext;\n this._tags = { ...this._tags, ...scopeContext.tags };\n this._extra = { ...this._extra, ...scopeContext.extra };\n this._contexts = { ...this._contexts, ...scopeContext.contexts };\n if (scopeContext.user) {\n this._user = scopeContext.user;\n }\n if (scopeContext.level) {\n this._level = scopeContext.level;\n }\n if (scopeContext.fingerprint) {\n this._fingerprint = scopeContext.fingerprint;\n }\n if (scopeContext.requestSession) {\n this._requestSession = scopeContext.requestSession;\n }\n if (scopeContext.propagationContext) {\n this._propagationContext = scopeContext.propagationContext;\n }\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public clear(): this {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n this._attachments = [];\n this._propagationContext = generatePropagationContext();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, maxBreadcrumbs?: number): this {\n const maxCrumbs = typeof maxBreadcrumbs === 'number' ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n\n const breadcrumbs = this._breadcrumbs;\n breadcrumbs.push(mergedBreadcrumb);\n this._breadcrumbs = breadcrumbs.length > maxCrumbs ? breadcrumbs.slice(-maxCrumbs) : breadcrumbs;\n\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getLastBreadcrumb(): Breadcrumb | undefined {\n return this._breadcrumbs[this._breadcrumbs.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n public clearBreadcrumbs(): this {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public addAttachment(attachment: Attachment): this {\n this._attachments.push(attachment);\n return this;\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `getScopeData()` instead.\n */\n public getAttachments(): Attachment[] {\n const data = this.getScopeData();\n\n return data.attachments;\n }\n\n /**\n * @inheritDoc\n */\n public clearAttachments(): this {\n this._attachments = [];\n return this;\n }\n\n /** @inheritDoc */\n public getScopeData(): ScopeData {\n const {\n _breadcrumbs,\n _attachments,\n _contexts,\n _tags,\n _extra,\n _user,\n _level,\n _fingerprint,\n _eventProcessors,\n _propagationContext,\n _sdkProcessingMetadata,\n _transactionName,\n _span,\n } = this;\n\n return {\n breadcrumbs: _breadcrumbs,\n attachments: _attachments,\n contexts: _contexts,\n tags: _tags,\n extra: _extra,\n user: _user,\n level: _level,\n fingerprint: _fingerprint || [],\n eventProcessors: _eventProcessors,\n propagationContext: _propagationContext,\n sdkProcessingMetadata: _sdkProcessingMetadata,\n transactionName: _transactionName,\n span: _span,\n };\n }\n\n /**\n * Applies data from the scope to the event and runs all event processors on it.\n *\n * @param event Event\n * @param hint Object containing additional information about the original exception, for use by the event processors.\n * @hidden\n * @deprecated Use `applyScopeDataToEvent()` directly\n */\n public applyToEvent(\n event: Event,\n hint: EventHint = {},\n additionalEventProcessors: EventProcessor[] = [],\n ): PromiseLike {\n applyScopeDataToEvent(event, this.getScopeData());\n\n // TODO (v8): Update this order to be: Global > Client > Scope\n const eventProcessors: EventProcessor[] = [\n ...additionalEventProcessors,\n // eslint-disable-next-line deprecation/deprecation\n ...getGlobalEventProcessors(),\n ...this._eventProcessors,\n ];\n\n return notifyEventProcessors(eventProcessors, event, hint);\n }\n\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry\n */\n public setSDKProcessingMetadata(newData: { [key: string]: unknown }): this {\n this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setPropagationContext(context: PropagationContext): this {\n this._propagationContext = context;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getPropagationContext(): PropagationContext {\n return this._propagationContext;\n }\n\n /**\n * Capture an exception for this scope.\n *\n * @param exception The exception to capture.\n * @param hint Optinal additional data to attach to the Sentry event.\n * @returns the id of the captured Sentry event.\n */\n public captureException(exception: unknown, hint?: EventHint): string {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture exception!');\n return eventId;\n }\n\n const syntheticException = new Error('Sentry syntheticException');\n\n this._client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n this,\n );\n\n return eventId;\n }\n\n /**\n * Capture a message for this scope.\n *\n * @param message The message to capture.\n * @param level An optional severity level to report the message with.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured message.\n */\n public captureMessage(message: string, level?: SeverityLevel, hint?: EventHint): string {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture message!');\n return eventId;\n }\n\n const syntheticException = new Error(message);\n\n this._client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n this,\n );\n\n return eventId;\n }\n\n /**\n * Captures a manually created event for this scope and sends it to Sentry.\n *\n * @param exception The event to capture.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured event.\n */\n public captureEvent(event: Event, hint?: EventHint): string {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture event!');\n return eventId;\n }\n\n this._client.captureEvent(event, { ...hint, event_id: eventId }, this);\n\n return eventId;\n }\n\n /**\n * This will be called on every set call.\n */\n protected _notifyScopeListeners(): void {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n}\n\n/**\n * Get the global scope.\n * This scope is applied to _all_ events.\n */\nexport function getGlobalScope(): ScopeInterface {\n if (!globalScope) {\n globalScope = new Scope();\n }\n\n return globalScope;\n}\n\n/**\n * This is mainly needed for tests.\n * DO NOT USE this, as this is an internal API and subject to change.\n * @hidden\n */\nexport function setGlobalScope(scope: ScopeInterface | undefined): void {\n globalScope = scope;\n}\n\nfunction generatePropagationContext(): PropagationContext {\n return {\n traceId: uuid4(),\n spanId: uuid4().substring(16),\n };\n}\n","import type {\n Breadcrumb,\n BreadcrumbHint,\n CaptureContext,\n CheckIn,\n Client,\n CustomSamplingContext,\n Event,\n EventHint,\n Extra,\n Extras,\n FinishedCheckIn,\n MonitorConfig,\n Primitive,\n Scope as ScopeInterface,\n Session,\n SessionContext,\n Severity,\n SeverityLevel,\n Span,\n TransactionContext,\n User,\n} from '@sentry/types';\nimport { GLOBAL_OBJ, isThenable, logger, timestampInSeconds, uuid4 } from '@sentry/utils';\n\nimport { DEFAULT_ENVIRONMENT } from './constants';\nimport { DEBUG_BUILD } from './debug-build';\nimport type { Hub } from './hub';\nimport { runWithAsyncContext } from './hub';\nimport { getCurrentHub, getIsolationScope } from './hub';\nimport type { Scope } from './scope';\nimport { closeSession, makeSession, updateSession } from './session';\nimport type { ExclusiveEventHintOrCaptureContext } from './utils/prepareEvent';\nimport { parseEventHintOrCaptureContext } from './utils/prepareEvent';\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception The exception to capture.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured Sentry event.\n */\nexport function captureException(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n exception: any,\n hint?: ExclusiveEventHintOrCaptureContext,\n): string {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().captureException(exception, parseEventHintOrCaptureContext(hint));\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param exception The exception to capture.\n * @param captureContext Define the level of the message or pass in additional data to attach to the message.\n * @returns the id of the captured message.\n */\nexport function captureMessage(\n message: string,\n // eslint-disable-next-line deprecation/deprecation\n captureContext?: CaptureContext | Severity | SeverityLevel,\n): string {\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n const level = typeof captureContext === 'string' ? captureContext : undefined;\n const context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().captureMessage(message, level, context);\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param exception The event to send to Sentry.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured event.\n */\nexport function captureEvent(event: Event, hint?: EventHint): string {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().captureEvent(event, hint);\n}\n\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n *\n * @deprecated Use getCurrentScope() directly.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function configureScope(callback: (scope: Scope) => void): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().configureScope(callback);\n}\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function addBreadcrumb(breadcrumb: Breadcrumb, hint?: BreadcrumbHint): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().addBreadcrumb(breadcrumb, hint);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, deprecation/deprecation\nexport function setContext(name: string, context: { [key: string]: any } | null): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().setContext(name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function setExtras(extras: Extras): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().setExtras(extras);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function setExtra(key: string, extra: Extra): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().setExtra(key, extra);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function setTags(tags: { [key: string]: Primitive }): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().setTags(tags);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function setTag(key: string, value: Primitive): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().setTag(key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function setUser(user: User | null): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().setUser(user);\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n */\nexport function withScope(callback: (scope: Scope) => T): T;\n/**\n * Set the given scope as the active scope in the callback.\n */\nexport function withScope(scope: ScopeInterface | undefined, callback: (scope: Scope) => T): T;\n/**\n * Either creates a new active scope, or sets the given scope as active scope in the given callback.\n */\nexport function withScope(\n ...rest: [callback: (scope: Scope) => T] | [scope: ScopeInterface | undefined, callback: (scope: Scope) => T]\n): T {\n // eslint-disable-next-line deprecation/deprecation\n const hub = getCurrentHub();\n\n // If a scope is defined, we want to make this the active scope instead of the default one\n if (rest.length === 2) {\n const [scope, callback] = rest;\n if (!scope) {\n // eslint-disable-next-line deprecation/deprecation\n return hub.withScope(callback);\n }\n\n // eslint-disable-next-line deprecation/deprecation\n return hub.withScope(() => {\n // eslint-disable-next-line deprecation/deprecation\n hub.getStackTop().scope = scope as Scope;\n return callback(scope as Scope);\n });\n }\n\n // eslint-disable-next-line deprecation/deprecation\n return hub.withScope(rest[0]);\n}\n\n/**\n * Attempts to fork the current isolation scope and the current scope based on the current async context strategy. If no\n * async context strategy is set, the isolation scope and the current scope will not be forked (this is currently the\n * case, for example, in the browser).\n *\n * Usage of this function in environments without async context strategy is discouraged and may lead to unexpected behaviour.\n *\n * This function is intended for Sentry SDK and SDK integration development. It is not recommended to be used in \"normal\"\n * applications directly because it comes with pitfalls. Use at your own risk!\n *\n * @param callback The callback in which the passed isolation scope is active. (Note: In environments without async\n * context strategy, the currently active isolation scope may change within execution of the callback.)\n * @returns The same value that `callback` returns.\n */\nexport function withIsolationScope(callback: (isolationScope: Scope) => T): T {\n return runWithAsyncContext(() => {\n return callback(getIsolationScope());\n });\n}\n\n/**\n * Forks the current scope and sets the provided span as active span in the context of the provided callback.\n *\n * @param span Spans started in the context of the provided callback will be children of this span.\n * @param callback Execution context in which the provided span will be active. Is passed the newly forked scope.\n * @returns the value returned from the provided callback function.\n */\nexport function withActiveSpan(span: Span, callback: (scope: Scope) => T): T {\n return withScope(scope => {\n // eslint-disable-next-line deprecation/deprecation\n scope.setSpan(span);\n return callback(scope);\n });\n}\n\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.end()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * NOTE: This function should only be used for *manual* instrumentation. Auto-instrumentation should call\n * `startTransaction` directly on the hub.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n *\n * @deprecated Use `startSpan()`, `startSpanManual()` or `startInactiveSpan()` instead.\n */\nexport function startTransaction(\n context: TransactionContext,\n customSamplingContext?: CustomSamplingContext,\n // eslint-disable-next-line deprecation/deprecation\n): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().startTransaction({ ...context }, customSamplingContext);\n}\n\n/**\n * Create a cron monitor check in and send it to Sentry.\n *\n * @param checkIn An object that describes a check in.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nexport function captureCheckIn(checkIn: CheckIn, upsertMonitorConfig?: MonitorConfig): string {\n const scope = getCurrentScope();\n const client = getClient();\n if (!client) {\n DEBUG_BUILD && logger.warn('Cannot capture check-in. No client defined.');\n } else if (!client.captureCheckIn) {\n DEBUG_BUILD && logger.warn('Cannot capture check-in. Client does not support sending check-ins.');\n } else {\n return client.captureCheckIn(checkIn, upsertMonitorConfig, scope);\n }\n\n return uuid4();\n}\n\n/**\n * Wraps a callback with a cron monitor check in. The check in will be sent to Sentry when the callback finishes.\n *\n * @param monitorSlug The distinct slug of the monitor.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nexport function withMonitor(\n monitorSlug: CheckIn['monitorSlug'],\n callback: () => T,\n upsertMonitorConfig?: MonitorConfig,\n): T {\n const checkInId = captureCheckIn({ monitorSlug, status: 'in_progress' }, upsertMonitorConfig);\n const now = timestampInSeconds();\n\n function finishCheckIn(status: FinishedCheckIn['status']): void {\n captureCheckIn({ monitorSlug, status, checkInId, duration: timestampInSeconds() - now });\n }\n\n let maybePromiseResult: T;\n try {\n maybePromiseResult = callback();\n } catch (e) {\n finishCheckIn('error');\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n Promise.resolve(maybePromiseResult).then(\n () => {\n finishCheckIn('ok');\n },\n () => {\n finishCheckIn('error');\n },\n );\n } else {\n finishCheckIn('ok');\n }\n\n return maybePromiseResult;\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport async function flush(timeout?: number): Promise {\n const client = getClient();\n if (client) {\n return client.flush(timeout);\n }\n DEBUG_BUILD && logger.warn('Cannot flush events. No client defined.');\n return Promise.resolve(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport async function close(timeout?: number): Promise {\n const client = getClient();\n if (client) {\n return client.close(timeout);\n }\n DEBUG_BUILD && logger.warn('Cannot flush events and disable SDK. No client defined.');\n return Promise.resolve(false);\n}\n\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nexport function lastEventId(): string | undefined {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().lastEventId();\n}\n\n/**\n * Get the currently active client.\n */\nexport function getClient(): C | undefined {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().getClient();\n}\n\n/**\n * Returns true if Sentry has been properly initialized.\n */\nexport function isInitialized(): boolean {\n return !!getClient();\n}\n\n/**\n * Get the currently active scope.\n */\nexport function getCurrentScope(): Scope {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().getScope();\n}\n\n/**\n * Start a session on the current isolation scope.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns the new active session\n */\nexport function startSession(context?: SessionContext): Session {\n const client = getClient();\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n\n const { release, environment = DEFAULT_ENVIRONMENT } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n const session = makeSession({\n release,\n environment,\n user: currentScope.getUser() || isolationScope.getUser(),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n // End existing session if there's one\n const currentSession = isolationScope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n\n endSession();\n\n // Afterwards we set the new session on the scope\n isolationScope.setSession(session);\n\n // TODO (v8): Remove this and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n currentScope.setSession(session);\n\n return session;\n}\n\n/**\n * End the session on the current isolation scope.\n */\nexport function endSession(): void {\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n\n const session = currentScope.getSession() || isolationScope.getSession();\n if (session) {\n closeSession(session);\n }\n _sendSessionUpdate();\n\n // the session is over; take it off of the scope\n isolationScope.setSession();\n\n // TODO (v8): Remove this and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n currentScope.setSession();\n}\n\n/**\n * Sends the current Session on the scope\n */\nfunction _sendSessionUpdate(): void {\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n const client = getClient();\n // TODO (v8): Remove currentScope and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n const session = currentScope.getSession() || isolationScope.getSession();\n if (session && client && client.captureSession) {\n client.captureSession(session);\n }\n}\n\n/**\n * Sends the current session on the scope to Sentry\n *\n * @param end If set the session will be marked as exited and removed from the scope.\n * Defaults to `false`.\n */\nexport function captureSession(end: boolean = false): void {\n // both send the update and pull the session from the scope\n if (end) {\n endSession();\n return;\n }\n\n // only send the update\n _sendSessionUpdate();\n}\n","import type { Span } from '@sentry/types';\n\n/**\n * Returns the root span of a given span.\n *\n * As long as we use `Transaction`s internally, the returned root span\n * will be a `Transaction` but be aware that this might change in the future.\n *\n * If the given span has no root span or transaction, `undefined` is returned.\n */\nexport function getRootSpan(span: Span): Span | undefined {\n // TODO (v8): Remove this check and just return span\n // eslint-disable-next-line deprecation/deprecation\n return span.transaction;\n}\n","import type { Client, DynamicSamplingContext, Scope, Span, Transaction } from '@sentry/types';\nimport { dropUndefinedKeys } from '@sentry/utils';\n\nimport { DEFAULT_ENVIRONMENT } from '../constants';\nimport { getClient, getCurrentScope } from '../exports';\nimport { getRootSpan } from '../utils/getRootSpan';\nimport { spanIsSampled, spanToJSON } from '../utils/spanUtils';\n\n/**\n * Creates a dynamic sampling context from a client.\n *\n * Dispatches the `createDsc` lifecycle hook as a side effect.\n */\nexport function getDynamicSamplingContextFromClient(\n trace_id: string,\n client: Client,\n scope?: Scope,\n): DynamicSamplingContext {\n const options = client.getOptions();\n\n const { publicKey: public_key } = client.getDsn() || {};\n // TODO(v8): Remove segment from User\n // eslint-disable-next-line deprecation/deprecation\n const { segment: user_segment } = (scope && scope.getUser()) || {};\n\n const dsc = dropUndefinedKeys({\n environment: options.environment || DEFAULT_ENVIRONMENT,\n release: options.release,\n user_segment,\n public_key,\n trace_id,\n }) as DynamicSamplingContext;\n\n client.emit && client.emit('createDsc', dsc);\n\n return dsc;\n}\n\n/**\n * A Span with a frozen dynamic sampling context.\n */\ntype TransactionWithV7FrozenDsc = Transaction & { _frozenDynamicSamplingContext?: DynamicSamplingContext };\n\n/**\n * Creates a dynamic sampling context from a span (and client and scope)\n *\n * @param span the span from which a few values like the root span name and sample rate are extracted.\n *\n * @returns a dynamic sampling context\n */\nexport function getDynamicSamplingContextFromSpan(span: Span): Readonly> {\n const client = getClient();\n if (!client) {\n return {};\n }\n\n // passing emit=false here to only emit later once the DSC is actually populated\n const dsc = getDynamicSamplingContextFromClient(spanToJSON(span).trace_id || '', client, getCurrentScope());\n\n // TODO (v8): Remove v7FrozenDsc as a Transaction will no longer have _frozenDynamicSamplingContext\n const txn = getRootSpan(span) as TransactionWithV7FrozenDsc | undefined;\n if (!txn) {\n return dsc;\n }\n\n // TODO (v8): Remove v7FrozenDsc as a Transaction will no longer have _frozenDynamicSamplingContext\n // For now we need to avoid breaking users who directly created a txn with a DSC, where this field is still set.\n // @see Transaction class constructor\n const v7FrozenDsc = txn && txn._frozenDynamicSamplingContext;\n if (v7FrozenDsc) {\n return v7FrozenDsc;\n }\n\n // TODO (v8): Replace txn.metadata with txn.attributes[]\n // We can't do this yet because attributes aren't always set yet.\n // eslint-disable-next-line deprecation/deprecation\n const { sampleRate: maybeSampleRate, source } = txn.metadata;\n if (maybeSampleRate != null) {\n dsc.sample_rate = `${maybeSampleRate}`;\n }\n\n // We don't want to have a transaction name in the DSC if the source is \"url\" because URLs might contain PII\n const jsonSpan = spanToJSON(txn);\n\n // after JSON conversion, txn.name becomes jsonSpan.description\n if (source && source !== 'url') {\n dsc.transaction = jsonSpan.description;\n }\n\n dsc.sampled = String(spanIsSampled(txn));\n\n client.emit && client.emit('createDsc', dsc);\n\n return dsc;\n}\n","import type { Breadcrumb, Event, ScopeData, Span } from '@sentry/types';\nimport { arrayify, dropUndefinedKeys } from '@sentry/utils';\nimport { getDynamicSamplingContextFromSpan } from '../tracing/dynamicSamplingContext';\nimport { getRootSpan } from './getRootSpan';\nimport { spanToJSON, spanToTraceContext } from './spanUtils';\n\n/**\n * Applies data from the scope to the event and runs all event processors on it.\n */\nexport function applyScopeDataToEvent(event: Event, data: ScopeData): void {\n const { fingerprint, span, breadcrumbs, sdkProcessingMetadata } = data;\n\n // Apply general data\n applyDataToEvent(event, data);\n\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (span) {\n applySpanToEvent(event, span);\n }\n\n applyFingerprintToEvent(event, fingerprint);\n applyBreadcrumbsToEvent(event, breadcrumbs);\n applySdkMetadataToEvent(event, sdkProcessingMetadata);\n}\n\n/** Merge data of two scopes together. */\nexport function mergeScopeData(data: ScopeData, mergeData: ScopeData): void {\n const {\n extra,\n tags,\n user,\n contexts,\n level,\n sdkProcessingMetadata,\n breadcrumbs,\n fingerprint,\n eventProcessors,\n attachments,\n propagationContext,\n // eslint-disable-next-line deprecation/deprecation\n transactionName,\n span,\n } = mergeData;\n\n mergeAndOverwriteScopeData(data, 'extra', extra);\n mergeAndOverwriteScopeData(data, 'tags', tags);\n mergeAndOverwriteScopeData(data, 'user', user);\n mergeAndOverwriteScopeData(data, 'contexts', contexts);\n mergeAndOverwriteScopeData(data, 'sdkProcessingMetadata', sdkProcessingMetadata);\n\n if (level) {\n data.level = level;\n }\n\n if (transactionName) {\n // eslint-disable-next-line deprecation/deprecation\n data.transactionName = transactionName;\n }\n\n if (span) {\n data.span = span;\n }\n\n if (breadcrumbs.length) {\n data.breadcrumbs = [...data.breadcrumbs, ...breadcrumbs];\n }\n\n if (fingerprint.length) {\n data.fingerprint = [...data.fingerprint, ...fingerprint];\n }\n\n if (eventProcessors.length) {\n data.eventProcessors = [...data.eventProcessors, ...eventProcessors];\n }\n\n if (attachments.length) {\n data.attachments = [...data.attachments, ...attachments];\n }\n\n data.propagationContext = { ...data.propagationContext, ...propagationContext };\n}\n\n/**\n * Merges certain scope data. Undefined values will overwrite any existing values.\n * Exported only for tests.\n */\nexport function mergeAndOverwriteScopeData<\n Prop extends 'extra' | 'tags' | 'user' | 'contexts' | 'sdkProcessingMetadata',\n Data extends ScopeData,\n>(data: Data, prop: Prop, mergeVal: Data[Prop]): void {\n if (mergeVal && Object.keys(mergeVal).length) {\n // Clone object\n data[prop] = { ...data[prop] };\n for (const key in mergeVal) {\n if (Object.prototype.hasOwnProperty.call(mergeVal, key)) {\n data[prop][key] = mergeVal[key];\n }\n }\n }\n}\n\n/** Exported only for tests */\nexport function mergeArray(\n event: Event,\n prop: Prop,\n mergeVal: ScopeData[Prop],\n): void {\n const prevVal = event[prop];\n // If we are not merging any new values,\n // we only need to proceed if there was an empty array before (as we want to replace it with undefined)\n if (!mergeVal.length && (!prevVal || prevVal.length)) {\n return;\n }\n\n const merged = [...(prevVal || []), ...mergeVal] as ScopeData[Prop];\n event[prop] = merged.length ? merged : undefined;\n}\n\nfunction applyDataToEvent(event: Event, data: ScopeData): void {\n const {\n extra,\n tags,\n user,\n contexts,\n level,\n // eslint-disable-next-line deprecation/deprecation\n transactionName,\n } = data;\n\n const cleanedExtra = dropUndefinedKeys(extra);\n if (cleanedExtra && Object.keys(cleanedExtra).length) {\n event.extra = { ...cleanedExtra, ...event.extra };\n }\n\n const cleanedTags = dropUndefinedKeys(tags);\n if (cleanedTags && Object.keys(cleanedTags).length) {\n event.tags = { ...cleanedTags, ...event.tags };\n }\n\n const cleanedUser = dropUndefinedKeys(user);\n if (cleanedUser && Object.keys(cleanedUser).length) {\n event.user = { ...cleanedUser, ...event.user };\n }\n\n const cleanedContexts = dropUndefinedKeys(contexts);\n if (cleanedContexts && Object.keys(cleanedContexts).length) {\n event.contexts = { ...cleanedContexts, ...event.contexts };\n }\n\n if (level) {\n event.level = level;\n }\n\n if (transactionName) {\n event.transaction = transactionName;\n }\n}\n\nfunction applyBreadcrumbsToEvent(event: Event, breadcrumbs: Breadcrumb[]): void {\n const mergedBreadcrumbs = [...(event.breadcrumbs || []), ...breadcrumbs];\n event.breadcrumbs = mergedBreadcrumbs.length ? mergedBreadcrumbs : undefined;\n}\n\nfunction applySdkMetadataToEvent(event: Event, sdkProcessingMetadata: ScopeData['sdkProcessingMetadata']): void {\n event.sdkProcessingMetadata = {\n ...event.sdkProcessingMetadata,\n ...sdkProcessingMetadata,\n };\n}\n\nfunction applySpanToEvent(event: Event, span: Span): void {\n event.contexts = { trace: spanToTraceContext(span), ...event.contexts };\n const rootSpan = getRootSpan(span);\n if (rootSpan) {\n event.sdkProcessingMetadata = {\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(span),\n ...event.sdkProcessingMetadata,\n };\n const transactionName = spanToJSON(rootSpan).description;\n if (transactionName) {\n event.tags = { transaction: transactionName, ...event.tags };\n }\n }\n}\n\n/**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\nfunction applyFingerprintToEvent(event: Event, fingerprint: ScopeData['fingerprint'] | undefined): void {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint ? arrayify(event.fingerprint) : [];\n\n // If we have something on the scope, then merge it with event\n if (fingerprint) {\n event.fingerprint = event.fingerprint.concat(fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n}\n","export const SDK_VERSION = '7.120.2';\n","/* eslint-disable max-lines */\nimport type {\n Breadcrumb,\n BreadcrumbHint,\n Client,\n CustomSamplingContext,\n Event,\n EventHint,\n Extra,\n Extras,\n Hub as HubInterface,\n Integration,\n IntegrationClass,\n Primitive,\n Session,\n SessionContext,\n Severity,\n SeverityLevel,\n Transaction,\n TransactionContext,\n User,\n} from '@sentry/types';\nimport {\n GLOBAL_OBJ,\n consoleSandbox,\n dateTimestampInSeconds,\n getGlobalSingleton,\n isThenable,\n logger,\n uuid4,\n} from '@sentry/utils';\n\nimport { DEFAULT_ENVIRONMENT } from './constants';\nimport { DEBUG_BUILD } from './debug-build';\nimport { Scope } from './scope';\nimport { closeSession, makeSession, updateSession } from './session';\nimport { SDK_VERSION } from './version';\n\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nexport const API_VERSION = parseFloat(SDK_VERSION);\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\nexport interface RunWithAsyncContextOptions {\n /** Whether to reuse an existing async context if one exists. Defaults to false. */\n reuseExisting?: boolean;\n}\n\n/**\n * @private Private API with no semver guarantees!\n *\n * Strategy used to track async context.\n */\nexport interface AsyncContextStrategy {\n /**\n * Gets the current async context. Returns undefined if there is no current async context.\n */\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub: () => Hub | undefined;\n /**\n * Runs the supplied callback in its own async context.\n */\n runWithAsyncContext(callback: () => T, options: RunWithAsyncContextOptions): T;\n}\n\n/**\n * A layer in the process stack.\n * @hidden\n */\nexport interface Layer {\n client?: Client;\n scope: Scope;\n}\n\n/**\n * An object that contains a hub and maintains a scope stack.\n * @hidden\n */\nexport interface Carrier {\n __SENTRY__?: {\n // eslint-disable-next-line deprecation/deprecation\n hub?: Hub;\n acs?: AsyncContextStrategy;\n /**\n * Extra Hub properties injected by various SDKs\n */\n integrations?: Integration[];\n extensions?: {\n /** Extension methods for the hub, which are bound to the current Hub instance */\n // eslint-disable-next-line @typescript-eslint/ban-types\n [key: string]: Function;\n };\n };\n}\n\n/**\n * @deprecated The `Hub` class will be removed in version 8 of the SDK in favour of `Scope` and `Client` objects.\n *\n * If you previously used the `Hub` class directly, replace it with `Scope` and `Client` objects. More information:\n * - [Multiple Sentry Instances](https://docs.sentry.io/platforms/javascript/best-practices/multiple-sentry-instances/)\n * - [Browser Extensions](https://docs.sentry.io/platforms/javascript/best-practices/browser-extensions/)\n *\n * Some of our APIs are typed with the Hub class instead of the interface (e.g. `getCurrentHub`). Most of them are deprecated\n * themselves and will also be removed in version 8. More information:\n * - [Migration Guide](https://github.com/getsentry/sentry-javascript/blob/develop/MIGRATION.md#deprecate-hub)\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class Hub implements HubInterface {\n /** Is a {@link Layer}[] containing the client and scope */\n private readonly _stack: Layer[];\n\n /** Contains the last event id of a captured event. */\n private _lastEventId?: string;\n\n private _isolationScope: Scope;\n\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n *\n * @deprecated Instantiation of Hub objects is deprecated and the constructor will be removed in version 8 of the SDK.\n *\n * If you are currently using the Hub for multi-client use like so:\n *\n * ```\n * // OLD\n * const hub = new Hub();\n * hub.bindClient(client);\n * makeMain(hub)\n * ```\n *\n * instead initialize the client as follows:\n *\n * ```\n * // NEW\n * Sentry.withIsolationScope(() => {\n * Sentry.setCurrentClient(client);\n * client.init();\n * });\n * ```\n *\n * If you are using the Hub to capture events like so:\n *\n * ```\n * // OLD\n * const client = new Client();\n * const hub = new Hub(client);\n * hub.captureException()\n * ```\n *\n * instead capture isolated events as follows:\n *\n * ```\n * // NEW\n * const client = new Client();\n * const scope = new Scope();\n * scope.setClient(client);\n * scope.captureException();\n * ```\n */\n public constructor(\n client?: Client,\n scope?: Scope,\n isolationScope?: Scope,\n private readonly _version: number = API_VERSION,\n ) {\n let assignedScope;\n if (!scope) {\n assignedScope = new Scope();\n assignedScope.setClient(client);\n } else {\n assignedScope = scope;\n }\n\n let assignedIsolationScope;\n if (!isolationScope) {\n assignedIsolationScope = new Scope();\n assignedIsolationScope.setClient(client);\n } else {\n assignedIsolationScope = isolationScope;\n }\n\n this._stack = [{ scope: assignedScope }];\n\n if (client) {\n // eslint-disable-next-line deprecation/deprecation\n this.bindClient(client);\n }\n\n this._isolationScope = assignedIsolationScope;\n }\n\n /**\n * Checks if this hub's version is older than the given version.\n *\n * @param version A version number to compare to.\n * @return True if the given version is newer; otherwise false.\n *\n * @deprecated This will be removed in v8.\n */\n public isOlderThan(version: number): boolean {\n return this._version < version;\n }\n\n /**\n * This binds the given client to the current scope.\n * @param client An SDK client (client) instance.\n *\n * @deprecated Use `initAndBind()` directly, or `setCurrentClient()` and/or `client.init()` instead.\n */\n public bindClient(client?: Client): void {\n // eslint-disable-next-line deprecation/deprecation\n const top = this.getStackTop();\n top.client = client;\n top.scope.setClient(client);\n // eslint-disable-next-line deprecation/deprecation\n if (client && client.setupIntegrations) {\n // eslint-disable-next-line deprecation/deprecation\n client.setupIntegrations();\n }\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `withScope` instead.\n */\n public pushScope(): Scope {\n // We want to clone the content of prev scope\n // eslint-disable-next-line deprecation/deprecation\n const scope = this.getScope().clone();\n // eslint-disable-next-line deprecation/deprecation\n this.getStack().push({\n // eslint-disable-next-line deprecation/deprecation\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `withScope` instead.\n */\n public popScope(): boolean {\n // eslint-disable-next-line deprecation/deprecation\n if (this.getStack().length <= 1) return false;\n // eslint-disable-next-line deprecation/deprecation\n return !!this.getStack().pop();\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `Sentry.withScope()` instead.\n */\n public withScope(callback: (scope: Scope) => T): T {\n // eslint-disable-next-line deprecation/deprecation\n const scope = this.pushScope();\n\n let maybePromiseResult: T;\n try {\n maybePromiseResult = callback(scope);\n } catch (e) {\n // eslint-disable-next-line deprecation/deprecation\n this.popScope();\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n // @ts-expect-error - isThenable returns the wrong type\n return maybePromiseResult.then(\n res => {\n // eslint-disable-next-line deprecation/deprecation\n this.popScope();\n return res;\n },\n e => {\n // eslint-disable-next-line deprecation/deprecation\n this.popScope();\n throw e;\n },\n );\n }\n\n // eslint-disable-next-line deprecation/deprecation\n this.popScope();\n return maybePromiseResult;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `Sentry.getClient()` instead.\n */\n public getClient(): C | undefined {\n // eslint-disable-next-line deprecation/deprecation\n return this.getStackTop().client as C;\n }\n\n /**\n * Returns the scope of the top stack.\n *\n * @deprecated Use `Sentry.getCurrentScope()` instead.\n */\n public getScope(): Scope {\n // eslint-disable-next-line deprecation/deprecation\n return this.getStackTop().scope;\n }\n\n /**\n * @deprecated Use `Sentry.getIsolationScope()` instead.\n */\n public getIsolationScope(): Scope {\n return this._isolationScope;\n }\n\n /**\n * Returns the scope stack for domains or the process.\n * @deprecated This will be removed in v8.\n */\n public getStack(): Layer[] {\n return this._stack;\n }\n\n /**\n * Returns the topmost scope layer in the order domain > local > process.\n * @deprecated This will be removed in v8.\n */\n public getStackTop(): Layer {\n return this._stack[this._stack.length - 1];\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `Sentry.captureException()` instead.\n */\n public captureException(exception: unknown, hint?: EventHint): string {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n const syntheticException = new Error('Sentry syntheticException');\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().captureException(exception, {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n });\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `Sentry.captureMessage()` instead.\n */\n public captureMessage(\n message: string,\n // eslint-disable-next-line deprecation/deprecation\n level?: Severity | SeverityLevel,\n hint?: EventHint,\n ): string {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n const syntheticException = new Error(message);\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().captureMessage(message, level, {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n });\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `Sentry.captureEvent()` instead.\n */\n public captureEvent(event: Event, hint?: EventHint): string {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n if (!event.type) {\n this._lastEventId = eventId;\n }\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().captureEvent(event, { ...hint, event_id: eventId });\n return eventId;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated This will be removed in v8.\n */\n public lastEventId(): string | undefined {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `Sentry.addBreadcrumb()` instead.\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, hint?: BreadcrumbHint): void {\n // eslint-disable-next-line deprecation/deprecation\n const { scope, client } = this.getStackTop();\n\n if (!client) return;\n\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } =\n (client.getOptions && client.getOptions()) || {};\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) as Breadcrumb | null)\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n if (client.emit) {\n client.emit('beforeAddBreadcrumb', finalBreadcrumb, hint);\n }\n\n // TODO(v8): I know this comment doesn't make much sense because the hub will be deprecated but I still wanted to\n // write it down. In theory, we would have to add the breadcrumbs to the isolation scope here, however, that would\n // duplicate all of the breadcrumbs. There was the possibility of adding breadcrumbs to both, the isolation scope\n // and the normal scope, and deduplicating it down the line in the event processing pipeline. However, that would\n // have been very fragile, because the breadcrumb objects would have needed to keep their identity all throughout\n // the event processing pipeline.\n // In the new implementation, the top level `Sentry.addBreadcrumb()` should ONLY write to the isolation scope.\n\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.setUser()` instead.\n */\n public setUser(user: User | null): void {\n // TODO(v8): The top level `Sentry.setUser()` function should write ONLY to the isolation scope.\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().setUser(user);\n // eslint-disable-next-line deprecation/deprecation\n this.getIsolationScope().setUser(user);\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.setTags()` instead.\n */\n public setTags(tags: { [key: string]: Primitive }): void {\n // TODO(v8): The top level `Sentry.setTags()` function should write ONLY to the isolation scope.\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().setTags(tags);\n // eslint-disable-next-line deprecation/deprecation\n this.getIsolationScope().setTags(tags);\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.setExtras()` instead.\n */\n public setExtras(extras: Extras): void {\n // TODO(v8): The top level `Sentry.setExtras()` function should write ONLY to the isolation scope.\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().setExtras(extras);\n // eslint-disable-next-line deprecation/deprecation\n this.getIsolationScope().setExtras(extras);\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.setTag()` instead.\n */\n public setTag(key: string, value: Primitive): void {\n // TODO(v8): The top level `Sentry.setTag()` function should write ONLY to the isolation scope.\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().setTag(key, value);\n // eslint-disable-next-line deprecation/deprecation\n this.getIsolationScope().setTag(key, value);\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.setExtra()` instead.\n */\n public setExtra(key: string, extra: Extra): void {\n // TODO(v8): The top level `Sentry.setExtra()` function should write ONLY to the isolation scope.\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().setExtra(key, extra);\n // eslint-disable-next-line deprecation/deprecation\n this.getIsolationScope().setExtra(key, extra);\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.setContext()` instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public setContext(name: string, context: { [key: string]: any } | null): void {\n // TODO(v8): The top level `Sentry.setContext()` function should write ONLY to the isolation scope.\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().setContext(name, context);\n // eslint-disable-next-line deprecation/deprecation\n this.getIsolationScope().setContext(name, context);\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `getScope()` directly.\n */\n public configureScope(callback: (scope: Scope) => void): void {\n // eslint-disable-next-line deprecation/deprecation\n const { scope, client } = this.getStackTop();\n if (client) {\n callback(scope);\n }\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line deprecation/deprecation\n public run(callback: (hub: Hub) => void): void {\n // eslint-disable-next-line deprecation/deprecation\n const oldHub = makeMain(this);\n try {\n callback(this);\n } finally {\n // eslint-disable-next-line deprecation/deprecation\n makeMain(oldHub);\n }\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.getClient().getIntegrationByName()` instead.\n */\n public getIntegration(integration: IntegrationClass): T | null {\n // eslint-disable-next-line deprecation/deprecation\n const client = this.getClient();\n if (!client) return null;\n try {\n // eslint-disable-next-line deprecation/deprecation\n return client.getIntegration(integration);\n } catch (_oO) {\n DEBUG_BUILD && logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`);\n return null;\n }\n }\n\n /**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.end()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n *\n * @deprecated Use `startSpan()`, `startSpanManual()` or `startInactiveSpan()` instead.\n */\n public startTransaction(context: TransactionContext, customSamplingContext?: CustomSamplingContext): Transaction {\n const result = this._callExtensionMethod('startTransaction', context, customSamplingContext);\n\n if (DEBUG_BUILD && !result) {\n // eslint-disable-next-line deprecation/deprecation\n const client = this.getClient();\n if (!client) {\n logger.warn(\n \"Tracing extension 'startTransaction' is missing. You should 'init' the SDK before calling 'startTransaction'\",\n );\n } else {\n logger.warn(`Tracing extension 'startTransaction' has not been added. Call 'addTracingExtensions' before calling 'init':\nSentry.addTracingExtensions();\nSentry.init({...});\n`);\n }\n }\n\n return result;\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `spanToTraceHeader()` instead.\n */\n public traceHeaders(): { [key: string]: string } {\n return this._callExtensionMethod<{ [key: string]: string }>('traceHeaders');\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use top level `captureSession` instead.\n */\n public captureSession(endSession: boolean = false): void {\n // both send the update and pull the session from the scope\n if (endSession) {\n // eslint-disable-next-line deprecation/deprecation\n return this.endSession();\n }\n\n // only send the update\n this._sendSessionUpdate();\n }\n\n /**\n * @inheritDoc\n * @deprecated Use top level `endSession` instead.\n */\n public endSession(): void {\n // eslint-disable-next-line deprecation/deprecation\n const layer = this.getStackTop();\n const scope = layer.scope;\n const session = scope.getSession();\n if (session) {\n closeSession(session);\n }\n this._sendSessionUpdate();\n\n // the session is over; take it off of the scope\n scope.setSession();\n }\n\n /**\n * @inheritDoc\n * @deprecated Use top level `startSession` instead.\n */\n public startSession(context?: SessionContext): Session {\n // eslint-disable-next-line deprecation/deprecation\n const { scope, client } = this.getStackTop();\n const { release, environment = DEFAULT_ENVIRONMENT } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n const session = makeSession({\n release,\n environment,\n user: scope.getUser(),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n // End existing session if there's one\n const currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n // eslint-disable-next-line deprecation/deprecation\n this.endSession();\n\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n\n return session;\n }\n\n /**\n * Returns if default PII should be sent to Sentry and propagated in ourgoing requests\n * when Tracing is used.\n *\n * @deprecated Use top-level `getClient().getOptions().sendDefaultPii` instead. This function\n * only unnecessarily increased API surface but only wrapped accessing the option.\n */\n public shouldSendDefaultPii(): boolean {\n // eslint-disable-next-line deprecation/deprecation\n const client = this.getClient();\n const options = client && client.getOptions();\n return Boolean(options && options.sendDefaultPii);\n }\n\n /**\n * Sends the current Session on the scope\n */\n private _sendSessionUpdate(): void {\n // eslint-disable-next-line deprecation/deprecation\n const { scope, client } = this.getStackTop();\n\n const session = scope.getSession();\n if (session && client && client.captureSession) {\n client.captureSession(session);\n }\n }\n\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-expect-error Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _callExtensionMethod(method: string, ...args: any[]): T {\n const carrier = getMainCarrier();\n const sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n DEBUG_BUILD && logger.warn(`Extension method ${method} couldn't be found, doing nothing.`);\n }\n}\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nexport function getMainCarrier(): Carrier {\n GLOBAL_OBJ.__SENTRY__ = GLOBAL_OBJ.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return GLOBAL_OBJ;\n}\n\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n *\n * @deprecated Use `setCurrentClient()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function makeMain(hub: Hub): Hub {\n const registry = getMainCarrier();\n const oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n *\n * @deprecated Use the respective replacement method directly instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getCurrentHub(): Hub {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n\n if (registry.__SENTRY__ && registry.__SENTRY__.acs) {\n const hub = registry.__SENTRY__.acs.getCurrentHub();\n\n if (hub) {\n return hub;\n }\n }\n\n // Return hub that lives on a global object\n return getGlobalHub(registry);\n}\n\n/**\n * Get the currently active isolation scope.\n * The isolation scope is active for the current exection context,\n * meaning that it will remain stable for the same Hub.\n */\nexport function getIsolationScope(): Scope {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().getIsolationScope();\n}\n\n// eslint-disable-next-line deprecation/deprecation\nfunction getGlobalHub(registry: Carrier = getMainCarrier()): Hub {\n // If there's no hub, or its an old API, assign a new one\n\n if (\n !hasHubOnCarrier(registry) ||\n // eslint-disable-next-line deprecation/deprecation\n getHubFromCarrier(registry).isOlderThan(API_VERSION)\n ) {\n // eslint-disable-next-line deprecation/deprecation\n setHubOnCarrier(registry, new Hub());\n }\n\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n\n/**\n * @private Private API with no semver guarantees!\n *\n * If the carrier does not contain a hub, a new hub is created with the global hub client and scope.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function ensureHubOnCarrier(carrier: Carrier, parent: Hub = getGlobalHub()): void {\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (\n !hasHubOnCarrier(carrier) ||\n // eslint-disable-next-line deprecation/deprecation\n getHubFromCarrier(carrier).isOlderThan(API_VERSION)\n ) {\n // eslint-disable-next-line deprecation/deprecation\n const client = parent.getClient();\n // eslint-disable-next-line deprecation/deprecation\n const scope = parent.getScope();\n // eslint-disable-next-line deprecation/deprecation\n const isolationScope = parent.getIsolationScope();\n // eslint-disable-next-line deprecation/deprecation\n setHubOnCarrier(carrier, new Hub(client, scope.clone(), isolationScope.clone()));\n }\n}\n\n/**\n * @private Private API with no semver guarantees!\n *\n * Sets the global async context strategy\n */\nexport function setAsyncContextStrategy(strategy: AsyncContextStrategy | undefined): void {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n registry.__SENTRY__ = registry.__SENTRY__ || {};\n registry.__SENTRY__.acs = strategy;\n}\n\n/**\n * Runs the supplied callback in its own async context. Async Context strategies are defined per SDK.\n *\n * @param callback The callback to run in its own async context\n * @param options Options to pass to the async context strategy\n * @returns The result of the callback\n */\nexport function runWithAsyncContext(callback: () => T, options: RunWithAsyncContextOptions = {}): T {\n const registry = getMainCarrier();\n\n if (registry.__SENTRY__ && registry.__SENTRY__.acs) {\n return registry.__SENTRY__.acs.runWithAsyncContext(callback, options);\n }\n\n // if there was no strategy, fallback to just calling the callback\n return callback();\n}\n\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier: Carrier): boolean {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getHubFromCarrier(carrier: Carrier): Hub {\n // eslint-disable-next-line deprecation/deprecation\n return getGlobalSingleton('hub', () => new Hub(), carrier);\n}\n\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function setHubOnCarrier(carrier: Carrier, hub: Hub): boolean {\n if (!carrier) return false;\n const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n __SENTRY__.hub = hub;\n return true;\n}\n","import type {\n Client,\n Event,\n EventHint,\n Integration,\n IntegrationClass,\n IntegrationFn,\n IntegrationFnResult,\n Options,\n} from '@sentry/types';\nimport { arrayify, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from './debug-build';\nimport { addGlobalEventProcessor } from './eventProcessors';\nimport { getClient } from './exports';\nimport { getCurrentHub } from './hub';\n\ndeclare module '@sentry/types' {\n interface Integration {\n isDefaultInstance?: boolean;\n }\n}\n\nexport const installedIntegrations: string[] = [];\n\n/** Map of integrations assigned to a client */\nexport type IntegrationIndex = {\n [key: string]: Integration;\n};\n\n/**\n * Remove duplicates from the given array, preferring the last instance of any duplicate. Not guaranteed to\n * preseve the order of integrations in the array.\n *\n * @private\n */\nfunction filterDuplicates(integrations: Integration[]): Integration[] {\n const integrationsByName: { [key: string]: Integration } = {};\n\n integrations.forEach(currentInstance => {\n const { name } = currentInstance;\n\n const existingInstance = integrationsByName[name];\n\n // We want integrations later in the array to overwrite earlier ones of the same type, except that we never want a\n // default instance to overwrite an existing user instance\n if (existingInstance && !existingInstance.isDefaultInstance && currentInstance.isDefaultInstance) {\n return;\n }\n\n integrationsByName[name] = currentInstance;\n });\n\n return Object.keys(integrationsByName).map(k => integrationsByName[k]);\n}\n\n/** Gets integrations to install */\nexport function getIntegrationsToSetup(options: Pick): Integration[] {\n const defaultIntegrations = options.defaultIntegrations || [];\n const userIntegrations = options.integrations;\n\n // We flag default instances, so that later we can tell them apart from any user-created instances of the same class\n defaultIntegrations.forEach(integration => {\n integration.isDefaultInstance = true;\n });\n\n let integrations: Integration[];\n\n if (Array.isArray(userIntegrations)) {\n integrations = [...defaultIntegrations, ...userIntegrations];\n } else if (typeof userIntegrations === 'function') {\n integrations = arrayify(userIntegrations(defaultIntegrations));\n } else {\n integrations = defaultIntegrations;\n }\n\n const finalIntegrations = filterDuplicates(integrations);\n\n // The `Debug` integration prints copies of the `event` and `hint` which will be passed to `beforeSend` or\n // `beforeSendTransaction`. It therefore has to run after all other integrations, so that the changes of all event\n // processors will be reflected in the printed values. For lack of a more elegant way to guarantee that, we therefore\n // locate it and, assuming it exists, pop it out of its current spot and shove it onto the end of the array.\n const debugIndex = findIndex(finalIntegrations, integration => integration.name === 'Debug');\n if (debugIndex !== -1) {\n const [debugInstance] = finalIntegrations.splice(debugIndex, 1);\n finalIntegrations.push(debugInstance);\n }\n\n return finalIntegrations;\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nexport function setupIntegrations(client: Client, integrations: Integration[]): IntegrationIndex {\n const integrationIndex: IntegrationIndex = {};\n\n integrations.forEach(integration => {\n // guard against empty provided integrations\n if (integration) {\n setupIntegration(client, integration, integrationIndex);\n }\n });\n\n return integrationIndex;\n}\n\n/**\n * Execute the `afterAllSetup` hooks of the given integrations.\n */\nexport function afterSetupIntegrations(client: Client, integrations: Integration[]): void {\n for (const integration of integrations) {\n // guard against empty provided integrations\n if (integration && integration.afterAllSetup) {\n integration.afterAllSetup(client);\n }\n }\n}\n\n/** Setup a single integration. */\nexport function setupIntegration(client: Client, integration: Integration, integrationIndex: IntegrationIndex): void {\n if (integrationIndex[integration.name]) {\n DEBUG_BUILD && logger.log(`Integration skipped because it was already installed: ${integration.name}`);\n return;\n }\n integrationIndex[integration.name] = integration;\n\n // `setupOnce` is only called the first time\n if (installedIntegrations.indexOf(integration.name) === -1) {\n // eslint-disable-next-line deprecation/deprecation\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n }\n\n // `setup` is run for each client\n if (integration.setup && typeof integration.setup === 'function') {\n integration.setup(client);\n }\n\n if (client.on && typeof integration.preprocessEvent === 'function') {\n const callback = integration.preprocessEvent.bind(integration) as typeof integration.preprocessEvent;\n client.on('preprocessEvent', (event, hint) => callback(event, hint, client));\n }\n\n if (client.addEventProcessor && typeof integration.processEvent === 'function') {\n const callback = integration.processEvent.bind(integration) as typeof integration.processEvent;\n\n const processor = Object.assign((event: Event, hint: EventHint) => callback(event, hint, client), {\n id: integration.name,\n });\n\n client.addEventProcessor(processor);\n }\n\n DEBUG_BUILD && logger.log(`Integration installed: ${integration.name}`);\n}\n\n/** Add an integration to the current hub's client. */\nexport function addIntegration(integration: Integration): void {\n const client = getClient();\n\n if (!client || !client.addIntegration) {\n DEBUG_BUILD && logger.warn(`Cannot add integration \"${integration.name}\" because no SDK Client is available.`);\n return;\n }\n\n client.addIntegration(integration);\n}\n\n// Polyfill for Array.findIndex(), which is not supported in ES5\nfunction findIndex(arr: T[], callback: (item: T) => boolean): number {\n for (let i = 0; i < arr.length; i++) {\n if (callback(arr[i]) === true) {\n return i;\n }\n }\n\n return -1;\n}\n\n/**\n * Convert a new integration function to the legacy class syntax.\n * In v8, we can remove this and instead export the integration functions directly.\n *\n * @deprecated This will be removed in v8!\n */\nexport function convertIntegrationFnToClass(\n name: string,\n fn: Fn,\n): IntegrationClass {\n return Object.assign(\n function ConvertedIntegration(...args: Parameters): Integration {\n return fn(...args);\n },\n { id: name },\n ) as unknown as IntegrationClass;\n}\n\n/**\n * Define an integration function that can be used to create an integration instance.\n * Note that this by design hides the implementation details of the integration, as they are considered internal.\n */\nexport function defineIntegration(fn: Fn): (...args: Parameters) => IntegrationFnResult {\n return fn;\n}\n","import type { Client, Event, EventHint, Integration, IntegrationClass, IntegrationFn, StackFrame } from '@sentry/types';\nimport { getEventDescription, logger, stringMatchesSomePattern } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport { convertIntegrationFnToClass, defineIntegration } from '../integration';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nconst DEFAULT_IGNORE_ERRORS = [\n /^Script error\\.?$/,\n /^Javascript error: Script error\\.? on line 0$/,\n /^ResizeObserver loop completed with undelivered notifications.$/,\n /^Cannot redefine property: googletag$/,\n];\n\nconst DEFAULT_IGNORE_TRANSACTIONS = [\n /^.*\\/healthcheck$/,\n /^.*\\/healthy$/,\n /^.*\\/live$/,\n /^.*\\/ready$/,\n /^.*\\/heartbeat$/,\n /^.*\\/health$/,\n /^.*\\/healthz$/,\n];\n\n/** Options for the InboundFilters integration */\nexport interface InboundFiltersOptions {\n allowUrls: Array;\n denyUrls: Array;\n ignoreErrors: Array;\n ignoreTransactions: Array;\n ignoreInternal: boolean;\n disableErrorDefaults: boolean;\n disableTransactionDefaults: boolean;\n}\n\nconst INTEGRATION_NAME = 'InboundFilters';\nconst _inboundFiltersIntegration = ((options: Partial = {}) => {\n return {\n name: INTEGRATION_NAME,\n // TODO v8: Remove this\n setupOnce() {}, // eslint-disable-line @typescript-eslint/no-empty-function\n processEvent(event, _hint, client) {\n const clientOptions = client.getOptions();\n const mergedOptions = _mergeOptions(options, clientOptions);\n return _shouldDropEvent(event, mergedOptions) ? null : event;\n },\n };\n}) satisfies IntegrationFn;\n\nexport const inboundFiltersIntegration = defineIntegration(_inboundFiltersIntegration);\n\n/**\n * Inbound filters configurable by the user.\n * @deprecated Use `inboundFiltersIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const InboundFilters = convertIntegrationFnToClass(\n INTEGRATION_NAME,\n inboundFiltersIntegration,\n) as IntegrationClass void }> & {\n new (\n options?: Partial<{\n allowUrls: Array;\n denyUrls: Array;\n ignoreErrors: Array;\n ignoreTransactions: Array;\n ignoreInternal: boolean;\n disableErrorDefaults: boolean;\n disableTransactionDefaults: boolean;\n }>,\n ): Integration;\n};\n\nfunction _mergeOptions(\n internalOptions: Partial = {},\n clientOptions: Partial = {},\n): Partial {\n return {\n allowUrls: [...(internalOptions.allowUrls || []), ...(clientOptions.allowUrls || [])],\n denyUrls: [...(internalOptions.denyUrls || []), ...(clientOptions.denyUrls || [])],\n ignoreErrors: [\n ...(internalOptions.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...(internalOptions.disableErrorDefaults ? [] : DEFAULT_IGNORE_ERRORS),\n ],\n ignoreTransactions: [\n ...(internalOptions.ignoreTransactions || []),\n ...(clientOptions.ignoreTransactions || []),\n ...(internalOptions.disableTransactionDefaults ? [] : DEFAULT_IGNORE_TRANSACTIONS),\n ],\n ignoreInternal: internalOptions.ignoreInternal !== undefined ? internalOptions.ignoreInternal : true,\n };\n}\n\nfunction _shouldDropEvent(event: Event, options: Partial): boolean {\n if (options.ignoreInternal && _isSentryError(event)) {\n DEBUG_BUILD &&\n logger.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${getEventDescription(event)}`);\n return true;\n }\n if (_isIgnoredError(event, options.ignoreErrors)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isIgnoredTransaction(event, options.ignoreTransactions)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreTransactions\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n return false;\n}\n\nfunction _isIgnoredError(event: Event, ignoreErrors?: Array): boolean {\n // If event.type, this is not an error\n if (event.type || !ignoreErrors || !ignoreErrors.length) {\n return false;\n }\n\n return _getPossibleEventMessages(event).some(message => stringMatchesSomePattern(message, ignoreErrors));\n}\n\nfunction _isIgnoredTransaction(event: Event, ignoreTransactions?: Array): boolean {\n if (event.type !== 'transaction' || !ignoreTransactions || !ignoreTransactions.length) {\n return false;\n }\n\n const name = event.transaction;\n return name ? stringMatchesSomePattern(name, ignoreTransactions) : false;\n}\n\nfunction _isDeniedUrl(event: Event, denyUrls?: Array): boolean {\n // TODO: Use Glob instead?\n if (!denyUrls || !denyUrls.length) {\n return false;\n }\n const url = _getEventFilterUrl(event);\n return !url ? false : stringMatchesSomePattern(url, denyUrls);\n}\n\nfunction _isAllowedUrl(event: Event, allowUrls?: Array): boolean {\n // TODO: Use Glob instead?\n if (!allowUrls || !allowUrls.length) {\n return true;\n }\n const url = _getEventFilterUrl(event);\n return !url ? true : stringMatchesSomePattern(url, allowUrls);\n}\n\nfunction _getPossibleEventMessages(event: Event): string[] {\n const possibleMessages: string[] = [];\n\n if (event.message) {\n possibleMessages.push(event.message);\n }\n\n let lastException;\n try {\n // @ts-expect-error Try catching to save bundle size\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n lastException = event.exception.values[event.exception.values.length - 1];\n } catch (e) {\n // try catching to save bundle size checking existence of variables\n }\n\n if (lastException) {\n if (lastException.value) {\n possibleMessages.push(lastException.value);\n if (lastException.type) {\n possibleMessages.push(`${lastException.type}: ${lastException.value}`);\n }\n }\n }\n\n if (DEBUG_BUILD && possibleMessages.length === 0) {\n logger.error(`Could not extract message for event ${getEventDescription(event)}`);\n }\n\n return possibleMessages;\n}\n\nfunction _isSentryError(event: Event): boolean {\n try {\n // @ts-expect-error can't be a sentry error if undefined\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return event.exception.values[0].type === 'SentryError';\n } catch (e) {\n // ignore\n }\n return false;\n}\n\nfunction _getLastValidUrl(frames: StackFrame[] = []): string | null {\n for (let i = frames.length - 1; i >= 0; i--) {\n const frame = frames[i];\n\n if (frame && frame.filename !== '' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n}\n\nfunction _getEventFilterUrl(event: Event): string | null {\n try {\n let frames;\n try {\n // @ts-expect-error we only care about frames if the whole thing here is defined\n frames = event.exception.values[0].stacktrace.frames;\n } catch (e) {\n // ignore\n }\n return frames ? _getLastValidUrl(frames) : null;\n } catch (oO) {\n DEBUG_BUILD && logger.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\n","import type { Client, Integration, IntegrationClass, IntegrationFn, WrappedFunction } from '@sentry/types';\nimport { getOriginalFunction } from '@sentry/utils';\nimport { getClient } from '../exports';\nimport { convertIntegrationFnToClass, defineIntegration } from '../integration';\n\nlet originalFunctionToString: () => void;\n\nconst INTEGRATION_NAME = 'FunctionToString';\n\nconst SETUP_CLIENTS = new WeakMap();\n\nconst _functionToStringIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n\n // intrinsics (like Function.prototype) might be immutable in some environments\n // e.g. Node with --frozen-intrinsics, XS (an embedded JavaScript engine) or SES (a JavaScript proposal)\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function (this: WrappedFunction, ...args: any[]): string {\n const originalFunction = getOriginalFunction(this);\n const context =\n SETUP_CLIENTS.has(getClient() as Client) && originalFunction !== undefined ? originalFunction : this;\n return originalFunctionToString.apply(context, args);\n };\n } catch {\n // ignore errors here, just don't patch this\n }\n },\n setup(client) {\n SETUP_CLIENTS.set(client, true);\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Patch toString calls to return proper name for wrapped functions.\n *\n * ```js\n * Sentry.init({\n * integrations: [\n * functionToStringIntegration(),\n * ],\n * });\n * ```\n */\nexport const functionToStringIntegration = defineIntegration(_functionToStringIntegration);\n\n/**\n * Patch toString calls to return proper name for wrapped functions.\n *\n * @deprecated Use `functionToStringIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const FunctionToString = convertIntegrationFnToClass(\n INTEGRATION_NAME,\n functionToStringIntegration,\n) as IntegrationClass void }>;\n\n// eslint-disable-next-line deprecation/deprecation\nexport type FunctionToString = typeof FunctionToString;\n","import type { Client, ClientOptions } from '@sentry/types';\nimport { consoleSandbox, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from './debug-build';\nimport { getCurrentScope } from './exports';\nimport { getCurrentHub } from './hub';\n\n/** A class object that can instantiate Client objects. */\nexport type ClientClass = new (options: O) => F;\n\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nexport function initAndBind(\n clientClass: ClientClass,\n options: O,\n): void {\n if (options.debug === true) {\n if (DEBUG_BUILD) {\n logger.enable();\n } else {\n // use `console.warn` rather than `logger.warn` since by non-debug bundles have all `logger.x` statements stripped\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n });\n }\n }\n const scope = getCurrentScope();\n scope.update(options.initialScope);\n\n const client = new clientClass(options);\n setCurrentClient(client);\n initializeClient(client);\n}\n\n/**\n * Make the given client the current client.\n */\nexport function setCurrentClient(client: Client): void {\n // eslint-disable-next-line deprecation/deprecation\n const hub = getCurrentHub();\n // eslint-disable-next-line deprecation/deprecation\n const top = hub.getStackTop();\n top.client = client;\n top.scope.setClient(client);\n}\n\n/**\n * Initialize the client for the current scope.\n * Make sure to call this after `setCurrentClient()`.\n */\nfunction initializeClient(client: Client): void {\n if (client.init) {\n client.init();\n // TODO v8: Remove this fallback\n // eslint-disable-next-line deprecation/deprecation\n } else if (client.setupIntegrations) {\n // eslint-disable-next-line deprecation/deprecation\n client.setupIntegrations();\n }\n}\n","import { DEBUG_BUILD } from './debug-build';\nimport { logger } from './logger';\nimport { getGlobalObject } from './worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\ndeclare const EdgeRuntime: string | undefined;\n\nexport { supportsHistory } from './vendor/supportsHistory';\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsErrorEvent(): boolean {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMError(): boolean {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-expect-error It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMException(): boolean {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsFetch(): boolean {\n if (!('fetch' in WINDOW)) {\n return false;\n }\n\n try {\n new Headers();\n new Request('http://www.example.com');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isNativeFetch(func: Function): boolean {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nexport function supportsNativeFetch(): boolean {\n if (typeof EdgeRuntime === 'string') {\n return true;\n }\n\n if (!supportsFetch()) {\n return false;\n }\n\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFetch(WINDOW.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n const doc = WINDOW.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof (doc.createElement as unknown) === 'function') {\n try {\n const sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n DEBUG_BUILD &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReportingObserver(): boolean {\n return 'ReportingObserver' in WINDOW;\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReferrerPolicy(): boolean {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' as ReferrerPolicy,\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n","// Based on https://github.com/angular/angular.js/pull/13945/files\n// The MIT License\n\n// Copyright (c) 2010-2016 Google, Inc. http://angularjs.org\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport { getGlobalObject } from '../worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsHistory(): boolean {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const chromeVar = (WINDOW as any).chrome;\n const isChromePackagedApp = chromeVar && chromeVar.app && chromeVar.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n const hasHistoryApi = 'history' in WINDOW && !!WINDOW.history.pushState && !!WINDOW.history.replaceState;\n\n return !isChromePackagedApp && hasHistoryApi;\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport { logger } from '../logger';\nimport { getFunctionName } from '../stacktrace';\n\nexport type InstrumentHandlerType = 'console' | 'dom' | 'fetch' | 'history' | 'xhr' | 'error' | 'unhandledrejection';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type InstrumentHandlerCallback = (data: any) => void;\n\n// We keep the handlers globally\nconst handlers: { [key in InstrumentHandlerType]?: InstrumentHandlerCallback[] } = {};\nconst instrumented: { [key in InstrumentHandlerType]?: boolean } = {};\n\n/** Add a handler function. */\nexport function addHandler(type: InstrumentHandlerType, handler: InstrumentHandlerCallback): void {\n handlers[type] = handlers[type] || [];\n (handlers[type] as InstrumentHandlerCallback[]).push(handler);\n}\n\n/**\n * Reset all instrumentation handlers.\n * This can be used by tests to ensure we have a clean slate of instrumentation handlers.\n */\nexport function resetInstrumentationHandlers(): void {\n Object.keys(handlers).forEach(key => {\n handlers[key as InstrumentHandlerType] = undefined;\n });\n}\n\n/** Maybe run an instrumentation function, unless it was already called. */\nexport function maybeInstrument(type: InstrumentHandlerType, instrumentFn: () => void): void {\n if (!instrumented[type]) {\n instrumentFn();\n instrumented[type] = true;\n }\n}\n\n/** Trigger handlers for a given instrumentation type. */\nexport function triggerHandlers(type: InstrumentHandlerType, data: unknown): void {\n const typeHandlers = type && handlers[type];\n if (!typeHandlers) {\n return;\n }\n\n for (const handler of typeHandlers) {\n try {\n handler(data);\n } catch (e) {\n DEBUG_BUILD &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n","// TODO(v8): Move everything in this file into the browser package. Nothing here is generic and we run risk of leaking browser types into non-browser packages.\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport type { HandlerDataHistory } from '@sentry/types';\n\nimport { fill } from '../object';\nimport { supportsHistory } from '../supports';\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\nconst WINDOW = GLOBAL_OBJ as unknown as Window;\n\nlet lastHref: string | undefined;\n\n/**\n * Add an instrumentation handler for when a fetch request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addHistoryInstrumentationHandler(handler: (data: HandlerDataHistory) => void): void {\n const type = 'history';\n addHandler(type, handler);\n maybeInstrument(type, instrumentHistory);\n}\n\nfunction instrumentHistory(): void {\n if (!supportsHistory()) {\n return;\n }\n\n const oldOnPopState = WINDOW.onpopstate;\n WINDOW.onpopstate = function (this: WindowEventHandlers, ...args: any[]): any {\n const to = WINDOW.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n const from = lastHref;\n lastHref = to;\n const handlerData: HandlerDataHistory = { from, to };\n triggerHandlers('history', handlerData);\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n function historyReplacementFunction(originalHistoryFunction: () => void): () => void {\n return function (this: History, ...args: any[]): void {\n const url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n const from = lastHref;\n const to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n const handlerData: HandlerDataHistory = { from, to };\n triggerHandlers('history', handlerData);\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(WINDOW.history, 'pushState', historyReplacementFunction);\n fill(WINDOW.history, 'replaceState', historyReplacementFunction);\n}\n","import type { DsnComponents, DsnLike, DsnProtocol } from '@sentry/types';\n\nimport { DEBUG_BUILD } from './debug-build';\nimport { consoleSandbox, logger } from './logger';\n\n/** Regular expression used to parse a Dsn. */\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+)?)?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol?: string): protocol is DsnProtocol {\n return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nexport function dsnToString(dsn: DsnComponents, withPassword: boolean = false): string {\n const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n return (\n `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n );\n}\n\n/**\n * Parses a Dsn from a given string.\n *\n * @param str A Dsn as string\n * @returns Dsn as DsnComponents or undefined if @param str is not a valid DSN string\n */\nexport function dsnFromString(str: string): DsnComponents | undefined {\n const match = DSN_REGEX.exec(str);\n\n if (!match) {\n // This should be logged to the console\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.error(`Invalid Sentry Dsn: ${str}`);\n });\n return undefined;\n }\n\n const [protocol, publicKey, pass = '', host, port = '', lastPath] = match.slice(1);\n let path = '';\n let projectId = lastPath;\n\n const split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop() as string;\n }\n\n if (projectId) {\n const projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol as DsnProtocol, publicKey });\n}\n\nfunction dsnFromComponents(components: DsnComponents): DsnComponents {\n return {\n protocol: components.protocol,\n publicKey: components.publicKey || '',\n pass: components.pass || '',\n host: components.host,\n port: components.port || '',\n path: components.path || '',\n projectId: components.projectId,\n };\n}\n\nfunction validateDsn(dsn: DsnComponents): boolean {\n if (!DEBUG_BUILD) {\n return true;\n }\n\n const { port, projectId, protocol } = dsn;\n\n const requiredComponents: ReadonlyArray = ['protocol', 'publicKey', 'host', 'projectId'];\n const hasMissingRequiredComponent = requiredComponents.find(component => {\n if (!dsn[component]) {\n logger.error(`Invalid Sentry Dsn: ${component} missing`);\n return true;\n }\n return false;\n });\n\n if (hasMissingRequiredComponent) {\n return false;\n }\n\n if (!projectId.match(/^\\d+$/)) {\n logger.error(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n return false;\n }\n\n if (!isValidProtocol(protocol)) {\n logger.error(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n return false;\n }\n\n if (port && isNaN(parseInt(port, 10))) {\n logger.error(`Invalid Sentry Dsn: Invalid port ${port}`);\n return false;\n }\n\n return true;\n}\n\n/**\n * Creates a valid Sentry Dsn object, identifying a Sentry instance and project.\n * @returns a valid DsnComponents object or `undefined` if @param from is an invalid DSN source\n */\nexport function makeDsn(from: DsnLike): DsnComponents | undefined {\n const components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n if (!components || !validateDsn(components)) {\n return undefined;\n }\n return components;\n}\n","import type {\n Attachment,\n AttachmentItem,\n BaseEnvelopeHeaders,\n BaseEnvelopeItemHeaders,\n DataCategory,\n DsnComponents,\n Envelope,\n EnvelopeItemType,\n Event,\n EventEnvelopeHeaders,\n SdkInfo,\n SdkMetadata,\n TextEncoderInternal,\n} from '@sentry/types';\n\nimport { dsnToString } from './dsn';\nimport { normalize } from './normalize';\nimport { dropUndefinedKeys } from './object';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nexport function createEnvelope(headers: E[0], items: E[1] = []): E {\n return [headers, items] as E;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nexport function addItemToEnvelope(envelope: E, newItem: E[1][number]): E {\n const [headers, items] = envelope;\n return [headers, [...items, newItem]] as unknown as E;\n}\n\n/**\n * Convenience function to loop through the items and item types of an envelope.\n * (This function was mostly created because working with envelope types is painful at the moment)\n *\n * If the callback returns true, the rest of the items will be skipped.\n */\nexport function forEachEnvelopeItem(\n envelope: Envelope,\n callback: (envelopeItem: E[1][number], envelopeItemType: E[1][number][0]['type']) => boolean | void,\n): boolean {\n const envelopeItems = envelope[1];\n\n for (const envelopeItem of envelopeItems) {\n const envelopeItemType = envelopeItem[0].type;\n const result = callback(envelopeItem, envelopeItemType);\n\n if (result) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Returns true if the envelope contains any of the given envelope item types\n */\nexport function envelopeContainsItemType(envelope: Envelope, types: EnvelopeItemType[]): boolean {\n return forEachEnvelopeItem(envelope, (_, type) => types.includes(type));\n}\n\n/**\n * Encode a string to UTF8.\n */\nfunction encodeUTF8(input: string, textEncoder?: TextEncoderInternal): Uint8Array {\n const utf8 = textEncoder || new TextEncoder();\n return utf8.encode(input);\n}\n\n/**\n * Serializes an envelope.\n */\nexport function serializeEnvelope(envelope: Envelope, textEncoder?: TextEncoderInternal): string | Uint8Array {\n const [envHeaders, items] = envelope;\n\n // Initially we construct our envelope as a string and only convert to binary chunks if we encounter binary data\n let parts: string | Uint8Array[] = JSON.stringify(envHeaders);\n\n function append(next: string | Uint8Array): void {\n if (typeof parts === 'string') {\n parts = typeof next === 'string' ? parts + next : [encodeUTF8(parts, textEncoder), next];\n } else {\n parts.push(typeof next === 'string' ? encodeUTF8(next, textEncoder) : next);\n }\n }\n\n for (const item of items) {\n const [itemHeaders, payload] = item;\n\n append(`\\n${JSON.stringify(itemHeaders)}\\n`);\n\n if (typeof payload === 'string' || payload instanceof Uint8Array) {\n append(payload);\n } else {\n let stringifiedPayload: string;\n try {\n stringifiedPayload = JSON.stringify(payload);\n } catch (e) {\n // In case, despite all our efforts to keep `payload` circular-dependency-free, `JSON.strinify()` still\n // fails, we try again after normalizing it again with infinite normalization depth. This of course has a\n // performance impact but in this case a performance hit is better than throwing.\n stringifiedPayload = JSON.stringify(normalize(payload));\n }\n append(stringifiedPayload);\n }\n }\n\n return typeof parts === 'string' ? parts : concatBuffers(parts);\n}\n\nfunction concatBuffers(buffers: Uint8Array[]): Uint8Array {\n const totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);\n\n const merged = new Uint8Array(totalLength);\n let offset = 0;\n for (const buffer of buffers) {\n merged.set(buffer, offset);\n offset += buffer.length;\n }\n\n return merged;\n}\n\nexport interface TextDecoderInternal {\n decode(input?: Uint8Array): string;\n}\n\n/**\n * Parses an envelope\n */\nexport function parseEnvelope(\n env: string | Uint8Array,\n textEncoder: TextEncoderInternal,\n textDecoder: TextDecoderInternal,\n): Envelope {\n let buffer = typeof env === 'string' ? textEncoder.encode(env) : env;\n\n function readBinary(length: number): Uint8Array {\n const bin = buffer.subarray(0, length);\n // Replace the buffer with the remaining data excluding trailing newline\n buffer = buffer.subarray(length + 1);\n return bin;\n }\n\n function readJson(): T {\n let i = buffer.indexOf(0xa);\n // If we couldn't find a newline, we must have found the end of the buffer\n if (i < 0) {\n i = buffer.length;\n }\n\n return JSON.parse(textDecoder.decode(readBinary(i))) as T;\n }\n\n const envelopeHeader = readJson();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const items: [any, any][] = [];\n\n while (buffer.length) {\n const itemHeader = readJson();\n const binaryLength = typeof itemHeader.length === 'number' ? itemHeader.length : undefined;\n\n items.push([itemHeader, binaryLength ? readBinary(binaryLength) : readJson()]);\n }\n\n return [envelopeHeader, items];\n}\n\n/**\n * Creates attachment envelope items\n */\nexport function createAttachmentEnvelopeItem(\n attachment: Attachment,\n textEncoder?: TextEncoderInternal,\n): AttachmentItem {\n const buffer = typeof attachment.data === 'string' ? encodeUTF8(attachment.data, textEncoder) : attachment.data;\n\n return [\n dropUndefinedKeys({\n type: 'attachment',\n length: buffer.length,\n filename: attachment.filename,\n content_type: attachment.contentType,\n attachment_type: attachment.attachmentType,\n }),\n buffer,\n ];\n}\n\nconst ITEM_TYPE_TO_DATA_CATEGORY_MAP: Record = {\n session: 'session',\n sessions: 'session',\n attachment: 'attachment',\n transaction: 'transaction',\n event: 'error',\n client_report: 'internal',\n user_report: 'default',\n profile: 'profile',\n replay_event: 'replay',\n replay_recording: 'replay',\n check_in: 'monitor',\n feedback: 'feedback',\n span: 'span',\n statsd: 'metric_bucket',\n};\n\n/**\n * Maps the type of an envelope item to a data category.\n */\nexport function envelopeItemTypeToDataCategory(type: EnvelopeItemType): DataCategory {\n return ITEM_TYPE_TO_DATA_CATEGORY_MAP[type];\n}\n\n/** Extracts the minimal SDK info from the metadata or an events */\nexport function getSdkMetadataForEnvelopeHeader(metadataOrEvent?: SdkMetadata | Event): SdkInfo | undefined {\n if (!metadataOrEvent || !metadataOrEvent.sdk) {\n return;\n }\n const { name, version } = metadataOrEvent.sdk;\n return { name, version };\n}\n\n/**\n * Creates event envelope headers, based on event, sdk info and tunnel\n * Note: This function was extracted from the core package to make it available in Replay\n */\nexport function createEventEnvelopeHeaders(\n event: Event,\n sdkInfo: SdkInfo | undefined,\n tunnel: string | undefined,\n dsn?: DsnComponents,\n): EventEnvelopeHeaders {\n const dynamicSamplingContext = event.sdkProcessingMetadata && event.sdkProcessingMetadata.dynamicSamplingContext;\n return {\n event_id: event.event_id as string,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n ...(dynamicSamplingContext && {\n trace: dropUndefinedKeys({ ...dynamicSamplingContext }),\n }),\n };\n}\n","import type { ConsoleLevel } from '@sentry/types';\n\n/** An error emitted by Sentry SDKs and related utilities. */\nexport class SentryError extends Error {\n /** Display name of this error instance. */\n public name: string;\n\n public logLevel: ConsoleLevel;\n\n public constructor(public message: string, logLevel: ConsoleLevel = 'warn') {\n super(message);\n\n this.name = new.target.prototype.constructor.name;\n // This sets the prototype to be `Error`, not `SentryError`. It's unclear why we do this, but commenting this line\n // out causes various (seemingly totally unrelated) playwright tests consistently time out. FYI, this makes\n // instances of `SentryError` fail `obj instanceof SentryError` checks.\n Object.setPrototypeOf(this, new.target.prototype);\n this.logLevel = logLevel;\n }\n}\n","import type { ClientOptions, DsnComponents, DsnLike, SdkInfo } from '@sentry/types';\nimport { dsnToString, makeDsn, urlEncode } from '@sentry/utils';\n\nconst SENTRY_API_VERSION = '7';\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn: DsnComponents): string {\n const protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n const port = dsn.port ? `:${dsn.port}` : '';\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn: DsnComponents): string {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn: DsnComponents, sdkInfo: SdkInfo | undefined): string {\n return urlEncode({\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n ...(sdkInfo && { sentry_client: `${sdkInfo.name}/${sdkInfo.version}` }),\n });\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nexport function getEnvelopeEndpointWithUrlEncodedAuth(\n dsn: DsnComponents,\n // TODO (v8): Remove `tunnelOrOptions` in favor of `options`, and use the substitute code below\n // options: ClientOptions = {} as ClientOptions,\n tunnelOrOptions: string | ClientOptions = {} as ClientOptions,\n): string {\n // TODO (v8): Use this code instead\n // const { tunnel, _metadata = {} } = options;\n // return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, _metadata.sdk)}`;\n\n const tunnel = typeof tunnelOrOptions === 'string' ? tunnelOrOptions : tunnelOrOptions.tunnel;\n const sdkInfo =\n typeof tunnelOrOptions === 'string' || !tunnelOrOptions._metadata ? undefined : tunnelOrOptions._metadata.sdk;\n\n return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`;\n}\n\n/** Returns the url to the report dialog endpoint. */\nexport function getReportDialogEndpoint(\n dsnLike: DsnLike,\n dialogOptions: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n user?: { name?: string; email?: string };\n },\n): string {\n const dsn = makeDsn(dsnLike);\n if (!dsn) {\n return '';\n }\n\n const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (const key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'onClose') {\n continue;\n }\n\n if (key === 'user') {\n const user = dialogOptions.user;\n if (!user) {\n continue;\n }\n if (user.name) {\n encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n }\n if (user.email) {\n encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] as string)}`;\n }\n }\n\n return `${endpoint}?${encodedOptions}`;\n}\n","import type { DsnComponents, MetricBucketItem, SdkMetadata, StatsdEnvelope, StatsdItem } from '@sentry/types';\nimport { createEnvelope, dsnToString } from '@sentry/utils';\nimport { serializeMetricBuckets } from './utils';\n\n/**\n * Create envelope from a metric aggregate.\n */\nexport function createMetricEnvelope(\n metricBucketItems: Array,\n dsn?: DsnComponents,\n metadata?: SdkMetadata,\n tunnel?: string,\n): StatsdEnvelope {\n const headers: StatsdEnvelope[0] = {\n sent_at: new Date().toISOString(),\n };\n\n if (metadata && metadata.sdk) {\n headers.sdk = {\n name: metadata.sdk.name,\n version: metadata.sdk.version,\n };\n }\n\n if (!!tunnel && dsn) {\n headers.dsn = dsnToString(dsn);\n }\n\n const item = createMetricEnvelopeItem(metricBucketItems);\n return createEnvelope(headers, [item]);\n}\n\nfunction createMetricEnvelopeItem(metricBucketItems: MetricBucketItem[]): StatsdItem {\n const payload = serializeMetricBuckets(metricBucketItems);\n const metricHeaders: StatsdItem[0] = {\n type: 'statsd',\n length: payload.length,\n };\n return [metricHeaders, payload];\n}\n","import type { MeasurementUnit, MetricBucketItem, Primitive } from '@sentry/types';\nimport { dropUndefinedKeys } from '@sentry/utils';\nimport type { MetricType } from './types';\n\n/**\n * Generate bucket key from metric properties.\n */\nexport function getBucketKey(\n metricType: MetricType,\n name: string,\n unit: MeasurementUnit,\n tags: Record,\n): string {\n const stringifiedTags = Object.entries(dropUndefinedKeys(tags)).sort((a, b) => a[0].localeCompare(b[0]));\n return `${metricType}${name}${unit}${stringifiedTags}`;\n}\n\n/* eslint-disable no-bitwise */\n/**\n * Simple hash function for strings.\n */\nexport function simpleHash(s: string): number {\n let rv = 0;\n for (let i = 0; i < s.length; i++) {\n const c = s.charCodeAt(i);\n rv = (rv << 5) - rv + c;\n rv &= rv;\n }\n return rv >>> 0;\n}\n/* eslint-enable no-bitwise */\n\n/**\n * Serialize metrics buckets into a string based on statsd format.\n *\n * Example of format:\n * metric.name@second:1:1.2|d|#a:value,b:anothervalue|T12345677\n * Segments:\n * name: metric.name\n * unit: second\n * value: [1, 1.2]\n * type of metric: d (distribution)\n * tags: { a: value, b: anothervalue }\n * timestamp: 12345677\n */\nexport function serializeMetricBuckets(metricBucketItems: MetricBucketItem[]): string {\n let out = '';\n for (const item of metricBucketItems) {\n const tagEntries = Object.entries(item.tags);\n const maybeTags = tagEntries.length > 0 ? `|#${tagEntries.map(([key, value]) => `${key}:${value}`).join(',')}` : '';\n out += `${item.name}@${item.unit}:${item.metric}|${item.metricType}${maybeTags}|T${item.timestamp}\\n`;\n }\n return out;\n}\n\n/** Sanitizes units */\nexport function sanitizeUnit(unit: string): string {\n return unit.replace(/[^\\w]+/gi, '_');\n}\n\n/** Sanitizes metric keys */\nexport function sanitizeMetricKey(key: string): string {\n return key.replace(/[^\\w\\-.]+/gi, '_');\n}\n\nfunction sanitizeTagKey(key: string): string {\n return key.replace(/[^\\w\\-./]+/gi, '');\n}\n\nconst tagValueReplacements: [string, string][] = [\n ['\\n', '\\\\n'],\n ['\\r', '\\\\r'],\n ['\\t', '\\\\t'],\n ['\\\\', '\\\\\\\\'],\n ['|', '\\\\u{7c}'],\n [',', '\\\\u{2c}'],\n];\n\nfunction getCharOrReplacement(input: string): string {\n for (const [search, replacement] of tagValueReplacements) {\n if (input === search) {\n return replacement;\n }\n }\n\n return input;\n}\n\nfunction sanitizeTagValue(value: string): string {\n return [...value].reduce((acc, char) => acc + getCharOrReplacement(char), '');\n}\n\n/**\n * Sanitizes tags.\n */\nexport function sanitizeTags(unsanitizedTags: Record): Record {\n const tags: Record = {};\n for (const key in unsanitizedTags) {\n if (Object.prototype.hasOwnProperty.call(unsanitizedTags, key)) {\n const sanitizedKey = sanitizeTagKey(key);\n tags[sanitizedKey] = sanitizeTagValue(String(unsanitizedTags[key]));\n }\n }\n return tags;\n}\n","/* eslint-disable max-lines */\nimport type {\n Breadcrumb,\n BreadcrumbHint,\n Client,\n ClientOptions,\n DataCategory,\n DsnComponents,\n DynamicSamplingContext,\n Envelope,\n ErrorEvent,\n Event,\n EventDropReason,\n EventHint,\n EventProcessor,\n FeedbackEvent,\n Integration,\n IntegrationClass,\n MetricBucketItem,\n MetricsAggregator,\n Outcome,\n ParameterizedString,\n SdkMetadata,\n Session,\n SessionAggregates,\n Severity,\n SeverityLevel,\n StartSpanOptions,\n Transaction,\n TransactionEvent,\n Transport,\n TransportMakeRequestResponse,\n} from '@sentry/types';\nimport {\n SentryError,\n SyncPromise,\n addItemToEnvelope,\n checkOrSetAlreadyCaught,\n createAttachmentEnvelopeItem,\n isParameterizedString,\n isPlainObject,\n isPrimitive,\n isThenable,\n logger,\n makeDsn,\n rejectedSyncPromise,\n resolvedSyncPromise,\n} from '@sentry/utils';\n\nimport { getEnvelopeEndpointWithUrlEncodedAuth } from './api';\nimport { DEBUG_BUILD } from './debug-build';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope';\nimport { getClient } from './exports';\nimport { getIsolationScope } from './hub';\nimport type { IntegrationIndex } from './integration';\nimport { afterSetupIntegrations } from './integration';\nimport { setupIntegration, setupIntegrations } from './integration';\nimport { createMetricEnvelope } from './metrics/envelope';\nimport type { Scope } from './scope';\nimport { updateSession } from './session';\nimport { getDynamicSamplingContextFromClient } from './tracing/dynamicSamplingContext';\nimport { prepareEvent } from './utils/prepareEvent';\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient {\n * public constructor(options: NodeOptions) {\n * super(options);\n * }\n *\n * // ...\n * }\n */\nexport abstract class BaseClient implements Client {\n /**\n * A reference to a metrics aggregator\n *\n * @experimental Note this is alpha API. It may experience breaking changes in the future.\n */\n public metricsAggregator?: MetricsAggregator;\n\n /** Options passed to the SDK. */\n protected readonly _options: O;\n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n protected readonly _dsn?: DsnComponents;\n\n protected readonly _transport?: Transport;\n\n /** Array of set up integrations. */\n protected _integrations: IntegrationIndex;\n\n /** Indicates whether this client's integrations have been set up. */\n protected _integrationsInitialized: boolean;\n\n /** Number of calls being processed */\n protected _numProcessing: number;\n\n protected _eventProcessors: EventProcessor[];\n\n /** Holds flushable */\n private _outcomes: { [key: string]: number };\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n private _hooks: Record;\n\n /**\n * Initializes this client instance.\n *\n * @param options Options for the client.\n */\n protected constructor(options: O) {\n this._options = options;\n this._integrations = {};\n this._integrationsInitialized = false;\n this._numProcessing = 0;\n this._outcomes = {};\n this._hooks = {};\n this._eventProcessors = [];\n\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n } else {\n DEBUG_BUILD && logger.warn('No DSN provided, client will not send events.');\n }\n\n if (this._dsn) {\n const url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, options);\n this._transport = options.transport({\n tunnel: this._options.tunnel,\n recordDroppedEvent: this.recordDroppedEvent.bind(this),\n ...options.transportOptions,\n url,\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public captureException(exception: any, hint?: EventHint, scope?: Scope): string | undefined {\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId: string | undefined = hint && hint.event_id;\n\n this._process(\n this.eventFromException(exception, hint)\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureMessage(\n message: ParameterizedString,\n // eslint-disable-next-line deprecation/deprecation\n level?: Severity | SeverityLevel,\n hint?: EventHint,\n scope?: Scope,\n ): string | undefined {\n let eventId: string | undefined = hint && hint.event_id;\n\n const eventMessage = isParameterizedString(message) ? message : String(message);\n\n const promisedEvent = isPrimitive(message)\n ? this.eventFromMessage(eventMessage, level, hint)\n : this.eventFromException(message, hint);\n\n this._process(\n promisedEvent\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureEvent(event: Event, hint?: EventHint, scope?: Scope): string | undefined {\n // ensure we haven't captured this very object before\n if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId: string | undefined = hint && hint.event_id;\n\n const sdkProcessingMetadata = event.sdkProcessingMetadata || {};\n const capturedSpanScope: Scope | undefined = sdkProcessingMetadata.capturedSpanScope;\n\n this._process(\n this._captureEvent(event, hint, capturedSpanScope || scope).then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureSession(session: Session): void {\n if (!(typeof session.release === 'string')) {\n DEBUG_BUILD && logger.warn('Discarded session because of missing or non-string release');\n } else {\n this.sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n updateSession(session, { init: false });\n }\n }\n\n /**\n * @inheritDoc\n */\n public getDsn(): DsnComponents | undefined {\n return this._dsn;\n }\n\n /**\n * @inheritDoc\n */\n public getOptions(): O {\n return this._options;\n }\n\n /**\n * @see SdkMetadata in @sentry/types\n *\n * @return The metadata of the SDK\n */\n public getSdkMetadata(): SdkMetadata | undefined {\n return this._options._metadata;\n }\n\n /**\n * @inheritDoc\n */\n public getTransport(): Transport | undefined {\n return this._transport;\n }\n\n /**\n * @inheritDoc\n */\n public flush(timeout?: number): PromiseLike {\n const transport = this._transport;\n if (transport) {\n if (this.metricsAggregator) {\n this.metricsAggregator.flush();\n }\n return this._isClientDoneProcessing(timeout).then(clientFinished => {\n return transport.flush(timeout).then(transportFlushed => clientFinished && transportFlushed);\n });\n } else {\n return resolvedSyncPromise(true);\n }\n }\n\n /**\n * @inheritDoc\n */\n public close(timeout?: number): PromiseLike {\n return this.flush(timeout).then(result => {\n this.getOptions().enabled = false;\n if (this.metricsAggregator) {\n this.metricsAggregator.close();\n }\n return result;\n });\n }\n\n /** Get all installed event processors. */\n public getEventProcessors(): EventProcessor[] {\n return this._eventProcessors;\n }\n\n /** @inheritDoc */\n public addEventProcessor(eventProcessor: EventProcessor): void {\n this._eventProcessors.push(eventProcessor);\n }\n\n /**\n * This is an internal function to setup all integrations that should run on the client.\n * @deprecated Use `client.init()` instead.\n */\n public setupIntegrations(forceInitialize?: boolean): void {\n if ((forceInitialize && !this._integrationsInitialized) || (this._isEnabled() && !this._integrationsInitialized)) {\n this._setupIntegrations();\n }\n }\n\n /** @inheritdoc */\n public init(): void {\n if (this._isEnabled()) {\n this._setupIntegrations();\n }\n }\n\n /**\n * Gets an installed integration by its `id`.\n *\n * @returns The installed integration or `undefined` if no integration with that `id` was installed.\n * @deprecated Use `getIntegrationByName()` instead.\n */\n public getIntegrationById(integrationId: string): Integration | undefined {\n return this.getIntegrationByName(integrationId);\n }\n\n /**\n * Gets an installed integration by its name.\n *\n * @returns The installed integration or `undefined` if no integration with that `name` was installed.\n */\n public getIntegrationByName(integrationName: string): T | undefined {\n return this._integrations[integrationName] as T | undefined;\n }\n\n /**\n * Returns the client's instance of the given integration class, it any.\n * @deprecated Use `getIntegrationByName()` instead.\n */\n public getIntegration(integration: IntegrationClass): T | null {\n try {\n return (this._integrations[integration.id] as T) || null;\n } catch (_oO) {\n DEBUG_BUILD && logger.warn(`Cannot retrieve integration ${integration.id} from the current Client`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n public addIntegration(integration: Integration): void {\n const isAlreadyInstalled = this._integrations[integration.name];\n\n // This hook takes care of only installing if not already installed\n setupIntegration(this, integration, this._integrations);\n // Here we need to check manually to make sure to not run this multiple times\n if (!isAlreadyInstalled) {\n afterSetupIntegrations(this, [integration]);\n }\n }\n\n /**\n * @inheritDoc\n */\n public sendEvent(event: Event, hint: EventHint = {}): void {\n this.emit('beforeSendEvent', event, hint);\n\n let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n\n for (const attachment of hint.attachments || []) {\n env = addItemToEnvelope(\n env,\n createAttachmentEnvelopeItem(\n attachment,\n this._options.transportOptions && this._options.transportOptions.textEncoder,\n ),\n );\n }\n\n const promise = this._sendEnvelope(env);\n if (promise) {\n promise.then(sendResponse => this.emit('afterSendEvent', event, sendResponse), null);\n }\n }\n\n /**\n * @inheritDoc\n */\n public sendSession(session: Session | SessionAggregates): void {\n const env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n\n // _sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._sendEnvelope(env);\n }\n\n /**\n * @inheritDoc\n */\n public recordDroppedEvent(reason: EventDropReason, category: DataCategory, eventOrCount?: Event | number): void {\n if (this._options.sendClientReports) {\n // TODO v9: We do not need the `event` passed as third argument anymore, and can possibly remove this overload\n // If event is passed as third argument, we assume this is a count of 1\n const count = typeof eventOrCount === 'number' ? eventOrCount : 1;\n\n // We want to track each category (error, transaction, session, replay_event) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial>>>`\n // With typescript 4.1 we could even use template literal types\n const key = `${reason}:${category}`;\n DEBUG_BUILD && logger.log(`Recording outcome: \"${key}\"${count > 1 ? ` (${count} times)` : ''}`);\n this._outcomes[key] = (this._outcomes[key] || 0) + count;\n }\n }\n\n /**\n * @inheritDoc\n */\n public captureAggregateMetrics(metricBucketItems: Array): void {\n DEBUG_BUILD && logger.log(`Flushing aggregated metrics, number of metrics: ${metricBucketItems.length}`);\n const metricsEnvelope = createMetricEnvelope(\n metricBucketItems,\n this._dsn,\n this._options._metadata,\n this._options.tunnel,\n );\n\n // _sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._sendEnvelope(metricsEnvelope);\n }\n\n // Keep on() & emit() signatures in sync with types' client.ts interface\n /* eslint-disable @typescript-eslint/unified-signatures */\n\n /** @inheritdoc */\n public on(hook: 'startTransaction', callback: (transaction: Transaction) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'finishTransaction', callback: (transaction: Transaction) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'beforeEnvelope', callback: (envelope: Envelope) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'beforeSendEvent', callback: (event: Event, hint?: EventHint) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'preprocessEvent', callback: (event: Event, hint?: EventHint) => void): void;\n\n /** @inheritdoc */\n public on(\n hook: 'afterSendEvent',\n callback: (event: Event, sendResponse: TransportMakeRequestResponse | void) => void,\n ): void;\n\n /** @inheritdoc */\n public on(hook: 'beforeAddBreadcrumb', callback: (breadcrumb: Breadcrumb, hint?: BreadcrumbHint) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'createDsc', callback: (dsc: DynamicSamplingContext) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'otelSpanEnd', callback: (otelSpan: unknown, mutableOptions: { drop: boolean }) => void): void;\n\n /** @inheritdoc */\n public on(\n hook: 'beforeSendFeedback',\n callback: (feedback: FeedbackEvent, options?: { includeReplay: boolean }) => void,\n ): void;\n\n /** @inheritdoc */\n public on(hook: 'startPageLoadSpan', callback: (options: StartSpanOptions) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'startNavigationSpan', callback: (options: StartSpanOptions) => void): void;\n\n /** @inheritdoc */\n public on(hook: string, callback: unknown): void {\n if (!this._hooks[hook]) {\n this._hooks[hook] = [];\n }\n\n // @ts-expect-error We assue the types are correct\n this._hooks[hook].push(callback);\n }\n\n /** @inheritdoc */\n public emit(hook: 'startTransaction', transaction: Transaction): void;\n\n /** @inheritdoc */\n public emit(hook: 'finishTransaction', transaction: Transaction): void;\n\n /** @inheritdoc */\n public emit(hook: 'beforeEnvelope', envelope: Envelope): void;\n\n /** @inheritdoc */\n public emit(hook: 'beforeSendEvent', event: Event, hint?: EventHint): void;\n\n /** @inheritdoc */\n public emit(hook: 'preprocessEvent', event: Event, hint?: EventHint): void;\n\n /** @inheritdoc */\n public emit(hook: 'afterSendEvent', event: Event, sendResponse: TransportMakeRequestResponse | void): void;\n\n /** @inheritdoc */\n public emit(hook: 'beforeAddBreadcrumb', breadcrumb: Breadcrumb, hint?: BreadcrumbHint): void;\n\n /** @inheritdoc */\n public emit(hook: 'createDsc', dsc: DynamicSamplingContext): void;\n\n /** @inheritdoc */\n public emit(hook: 'otelSpanEnd', otelSpan: unknown, mutableOptions: { drop: boolean }): void;\n\n /** @inheritdoc */\n public emit(hook: 'beforeSendFeedback', feedback: FeedbackEvent, options?: { includeReplay: boolean }): void;\n\n /** @inheritdoc */\n public emit(hook: 'startPageLoadSpan', options: StartSpanOptions): void;\n\n /** @inheritdoc */\n public emit(hook: 'startNavigationSpan', options: StartSpanOptions): void;\n\n /** @inheritdoc */\n public emit(hook: string, ...rest: unknown[]): void {\n if (this._hooks[hook]) {\n this._hooks[hook].forEach(callback => callback(...rest));\n }\n }\n\n /* eslint-enable @typescript-eslint/unified-signatures */\n\n /** Setup integrations for this client. */\n protected _setupIntegrations(): void {\n const { integrations } = this._options;\n this._integrations = setupIntegrations(this, integrations);\n afterSetupIntegrations(this, integrations);\n\n // TODO v8: We don't need this flag anymore\n this._integrationsInitialized = true;\n }\n\n /** Updates existing session based on the provided event */\n protected _updateSessionFromEvent(session: Session, event: Event): void {\n let crashed = false;\n let errored = false;\n const exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n for (const ex of exceptions) {\n const mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n const sessionNonTerminal = session.status === 'ok';\n const shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n updateSession(session, {\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n protected _isClientDoneProcessing(timeout?: number): PromiseLike {\n return new SyncPromise(resolve => {\n let ticked: number = 0;\n const tick: number = 1;\n\n const interval = setInterval(() => {\n if (this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n }\n\n /** Determines whether this SDK is enabled and a transport is present. */\n protected _isEnabled(): boolean {\n return this.getOptions().enabled !== false && this._transport !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n protected _prepareEvent(\n event: Event,\n hint: EventHint,\n scope?: Scope,\n isolationScope = getIsolationScope(),\n ): PromiseLike {\n const options = this.getOptions();\n const integrations = Object.keys(this._integrations);\n if (!hint.integrations && integrations.length > 0) {\n hint.integrations = integrations;\n }\n\n this.emit('preprocessEvent', event, hint);\n\n return prepareEvent(options, event, hint, scope, this, isolationScope).then(evt => {\n if (evt === null) {\n return evt;\n }\n\n const propagationContext = {\n ...isolationScope.getPropagationContext(),\n ...(scope ? scope.getPropagationContext() : undefined),\n };\n\n const trace = evt.contexts && evt.contexts.trace;\n if (!trace && propagationContext) {\n const { traceId: trace_id, spanId, parentSpanId, dsc } = propagationContext;\n evt.contexts = {\n trace: {\n trace_id,\n span_id: spanId,\n parent_span_id: parentSpanId,\n },\n ...evt.contexts,\n };\n\n const dynamicSamplingContext = dsc ? dsc : getDynamicSamplingContextFromClient(trace_id, this, scope);\n\n evt.sdkProcessingMetadata = {\n dynamicSamplingContext,\n ...evt.sdkProcessingMetadata,\n };\n }\n return evt;\n });\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n protected _captureEvent(event: Event, hint: EventHint = {}, scope?: Scope): PromiseLike {\n return this._processEvent(event, hint, scope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n if (DEBUG_BUILD) {\n // If something's gone wrong, log the error as a warning. If it's just us having used a `SentryError` for\n // control flow, log just the message (no stack) as a log-level log.\n const sentryError = reason as SentryError;\n if (sentryError.logLevel === 'log') {\n logger.log(sentryError.message);\n } else {\n logger.warn(sentryError);\n }\n }\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n protected _processEvent(event: Event, hint: EventHint, scope?: Scope): PromiseLike {\n const options = this.getOptions();\n const { sampleRate } = options;\n\n const isTransaction = isTransactionEvent(event);\n const isError = isErrorEvent(event);\n const eventType = event.type || 'error';\n const beforeSendLabel = `before send for type \\`${eventType}\\``;\n\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (isError && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n this.recordDroppedEvent('sample_rate', 'error', event);\n return rejectedSyncPromise(\n new SentryError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n 'log',\n ),\n );\n }\n\n const dataCategory: DataCategory = eventType === 'replay_event' ? 'replay' : eventType;\n\n const sdkProcessingMetadata = event.sdkProcessingMetadata || {};\n const capturedSpanIsolationScope: Scope | undefined = sdkProcessingMetadata.capturedSpanIsolationScope;\n\n return this._prepareEvent(event, hint, scope, capturedSpanIsolationScope)\n .then(prepared => {\n if (prepared === null) {\n this.recordDroppedEvent('event_processor', dataCategory, event);\n throw new SentryError('An event processor returned `null`, will not send event.', 'log');\n }\n\n const isInternalException = hint.data && (hint.data as { __sentry__: boolean }).__sentry__ === true;\n if (isInternalException) {\n return prepared;\n }\n\n const result = processBeforeSend(options, prepared, hint);\n return _validateBeforeSendResult(result, beforeSendLabel);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n this.recordDroppedEvent('before_send', dataCategory, event);\n if (isTransaction) {\n const spans = event.spans || [];\n // the transaction itself counts as one span, plus all the child spans that are added\n const spanCount = 1 + spans.length;\n this.recordDroppedEvent('before_send', 'span', spanCount);\n }\n throw new SentryError(`${beforeSendLabel} returned \\`null\\`, will not send event.`, 'log');\n }\n\n const session = scope && scope.getSession();\n if (!isTransaction && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n if (isTransaction) {\n const spanCountBefore =\n (processedEvent.sdkProcessingMetadata && processedEvent.sdkProcessingMetadata.spanCountBeforeProcessing) ||\n 0;\n const spanCountAfter = processedEvent.spans ? processedEvent.spans.length : 0;\n\n const droppedSpanCount = spanCountBefore - spanCountAfter;\n if (droppedSpanCount > 0) {\n this.recordDroppedEvent('before_send', 'span', droppedSpanCount);\n }\n }\n\n // None of the Sentry built event processor will update transaction name,\n // so if the transaction name has been changed by an event processor, we know\n // it has to come from custom event processor added by a user\n const transactionInfo = processedEvent.transaction_info;\n if (isTransaction && transactionInfo && processedEvent.transaction !== event.transaction) {\n const source = 'custom';\n processedEvent.transaction_info = {\n ...transactionInfo,\n source,\n };\n }\n\n this.sendEvent(processedEvent, hint);\n return processedEvent;\n })\n .then(null, reason => {\n if (reason instanceof SentryError) {\n throw reason;\n }\n\n this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason,\n });\n throw new SentryError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n protected _process(promise: PromiseLike): void {\n this._numProcessing++;\n void promise.then(\n value => {\n this._numProcessing--;\n return value;\n },\n reason => {\n this._numProcessing--;\n return reason;\n },\n );\n }\n\n /**\n * @inheritdoc\n */\n protected _sendEnvelope(envelope: Envelope): PromiseLike | void {\n this.emit('beforeEnvelope', envelope);\n\n if (this._isEnabled() && this._transport) {\n return this._transport.send(envelope).then(null, reason => {\n DEBUG_BUILD && logger.error('Error while sending event:', reason);\n });\n } else {\n DEBUG_BUILD && logger.error('Transport disabled');\n }\n }\n\n /**\n * Clears outcomes on this client and returns them.\n */\n protected _clearOutcomes(): Outcome[] {\n const outcomes = this._outcomes;\n this._outcomes = {};\n return Object.keys(outcomes).map(key => {\n const [reason, category] = key.split(':') as [EventDropReason, DataCategory];\n return {\n reason,\n category,\n quantity: outcomes[key],\n };\n });\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public abstract eventFromException(_exception: any, _hint?: EventHint): PromiseLike;\n\n /**\n * @inheritDoc\n */\n public abstract eventFromMessage(\n _message: ParameterizedString,\n // eslint-disable-next-line deprecation/deprecation\n _level?: Severity | SeverityLevel,\n _hint?: EventHint,\n ): PromiseLike;\n}\n\n/**\n * Verifies that return value of configured `beforeSend` or `beforeSendTransaction` is of expected type, and returns the value if so.\n */\nfunction _validateBeforeSendResult(\n beforeSendResult: PromiseLike | Event | null,\n beforeSendLabel: string,\n): PromiseLike | Event | null {\n const invalidValueError = `${beforeSendLabel} must return \\`null\\` or a valid event.`;\n if (isThenable(beforeSendResult)) {\n return beforeSendResult.then(\n event => {\n if (!isPlainObject(event) && event !== null) {\n throw new SentryError(invalidValueError);\n }\n return event;\n },\n e => {\n throw new SentryError(`${beforeSendLabel} rejected with ${e}`);\n },\n );\n } else if (!isPlainObject(beforeSendResult) && beforeSendResult !== null) {\n throw new SentryError(invalidValueError);\n }\n return beforeSendResult;\n}\n\n/**\n * Process the matching `beforeSendXXX` callback.\n */\nfunction processBeforeSend(\n options: ClientOptions,\n event: Event,\n hint: EventHint,\n): PromiseLike | Event | null {\n const { beforeSend, beforeSendTransaction } = options;\n\n if (isErrorEvent(event) && beforeSend) {\n return beforeSend(event, hint);\n }\n\n if (isTransactionEvent(event) && beforeSendTransaction) {\n if (event.spans) {\n // We store the # of spans before processing in SDK metadata,\n // so we can compare it afterwards to determine how many spans were dropped\n const spanCountBefore = event.spans.length;\n event.sdkProcessingMetadata = {\n ...event.sdkProcessingMetadata,\n spanCountBeforeProcessing: spanCountBefore,\n };\n }\n return beforeSendTransaction(event, hint);\n }\n\n return event;\n}\n\nfunction isErrorEvent(event: Event): event is ErrorEvent {\n return event.type === undefined;\n}\n\nfunction isTransactionEvent(event: Event): event is TransactionEvent {\n return event.type === 'transaction';\n}\n\n/**\n * Add an event processor to the current client.\n * This event processor will run for all events processed by this client.\n */\nexport function addEventProcessor(callback: EventProcessor): void {\n const client = getClient();\n\n if (!client || !client.addEventProcessor) {\n return;\n }\n\n client.addEventProcessor(callback);\n}\n","import type { Options } from '@sentry/types';\nimport { SDK_VERSION } from '../version';\n\n/**\n * A builder for the SDK metadata in the options for the SDK initialization.\n *\n * Note: This function is identical to `buildMetadata` in Remix and NextJS and SvelteKit.\n * We don't extract it for bundle size reasons.\n * @see https://github.com/getsentry/sentry-javascript/pull/7404\n * @see https://github.com/getsentry/sentry-javascript/pull/4196\n *\n * If you make changes to this function consider updating the others as well.\n *\n * @param options SDK options object that gets mutated\n * @param names list of package names\n */\nexport function applySdkMetadata(options: Options, name: string, names = [name], source = 'npm'): void {\n const metadata = options._metadata || {};\n\n if (!metadata.sdk) {\n metadata.sdk = {\n name: `sentry.javascript.${name}`,\n packages: names.map(name => ({\n name: `${source}:@sentry/${name}`,\n version: SDK_VERSION,\n })),\n version: SDK_VERSION,\n };\n }\n\n options._metadata = metadata;\n}\n","declare const __DEBUG_BUILD__: boolean;\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nexport const DEBUG_BUILD = __DEBUG_BUILD__;\n","import { getClient } from '@sentry/core';\nimport type {\n Event,\n EventHint,\n Exception,\n ParameterizedString,\n Severity,\n SeverityLevel,\n StackFrame,\n StackParser,\n} from '@sentry/types';\nimport {\n addExceptionMechanism,\n addExceptionTypeValue,\n extractExceptionKeysForMessage,\n isDOMError,\n isDOMException,\n isError,\n isErrorEvent,\n isEvent,\n isParameterizedString,\n isPlainObject,\n normalizeToSize,\n resolvedSyncPromise,\n} from '@sentry/utils';\n\ntype Prototype = { constructor: (...args: unknown[]) => unknown };\n\n/**\n * This function creates an exception from a JavaScript Error\n */\nexport function exceptionFromError(stackParser: StackParser, ex: Error): Exception {\n // Get the frames first since Opera can lose the stack if we touch anything else first\n const frames = parseStackFrames(stackParser, ex);\n\n const exception: Exception = {\n type: ex && ex.name,\n value: extractMessage(ex),\n };\n\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n\n/**\n * @hidden\n */\nexport function eventFromPlainObject(\n stackParser: StackParser,\n exception: Record,\n syntheticException?: Error,\n isUnhandledRejection?: boolean,\n): Event {\n const client = getClient();\n const normalizeDepth = client && client.getOptions().normalizeDepth;\n\n const event: Event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n value: getNonErrorObjectExceptionValue(exception, { isUnhandledRejection }),\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception, normalizeDepth),\n },\n };\n\n if (syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n // event.exception.values[0] has been set above\n (event.exception as { values: Exception[] }).values[0].stacktrace = { frames };\n }\n }\n\n return event;\n}\n\n/**\n * @hidden\n */\nexport function eventFromError(stackParser: StackParser, ex: Error): Event {\n return {\n exception: {\n values: [exceptionFromError(stackParser, ex)],\n },\n };\n}\n\n/** Parses stack frames from an error */\nexport function parseStackFrames(\n stackParser: StackParser,\n ex: Error & { framesToPop?: number; stacktrace?: string },\n): StackFrame[] {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n const stacktrace = ex.stacktrace || ex.stack || '';\n\n const popSize = getPopSize(ex);\n\n try {\n return stackParser(stacktrace, popSize);\n } catch (e) {\n // no-empty\n }\n\n return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nconst reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\nfunction getPopSize(ex: Error & { framesToPop?: number }): number {\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop;\n }\n\n if (reactMinifiedRegexp.test(ex.message)) {\n return 1;\n }\n }\n\n return 0;\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex: Error & { message: { error?: Error } }): string {\n const message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nexport function eventFromException(\n stackParser: StackParser,\n exception: unknown,\n hint?: EventHint,\n attachStacktrace?: boolean,\n): PromiseLike {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace);\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n event.level = 'error';\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nexport function eventFromMessage(\n stackParser: StackParser,\n message: ParameterizedString,\n // eslint-disable-next-line deprecation/deprecation\n level: Severity | SeverityLevel = 'info',\n hint?: EventHint,\n attachStacktrace?: boolean,\n): PromiseLike {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nexport function eventFromUnknownInput(\n stackParser: StackParser,\n exception: unknown,\n syntheticException?: Error,\n attachStacktrace?: boolean,\n isUnhandledRejection?: boolean,\n): Event {\n let event: Event;\n\n if (isErrorEvent(exception as ErrorEvent) && (exception as ErrorEvent).error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n const errorEvent = exception as ErrorEvent;\n return eventFromError(stackParser, errorEvent.error as Error);\n }\n\n // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n if (isDOMError(exception) || isDOMException(exception as DOMException)) {\n const domException = exception as DOMException;\n\n if ('stack' in (exception as Error)) {\n event = eventFromError(stackParser, exception as Error);\n } else {\n const name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n const message = domException.message ? `${name}: ${domException.message}` : name;\n event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, message);\n }\n if ('code' in domException) {\n // eslint-disable-next-line deprecation/deprecation\n event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n }\n\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n return eventFromError(stackParser, exception);\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n // group on any key/value change.\n const objectException = exception as Record;\n event = eventFromPlainObject(stackParser, objectException, syntheticException, isUnhandledRejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(stackParser, exception as string, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, `${exception}`, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n\n return event;\n}\n\n/**\n * @hidden\n */\nexport function eventFromString(\n stackParser: StackParser,\n message: ParameterizedString,\n syntheticException?: Error,\n attachStacktrace?: boolean,\n): Event {\n const event: Event = {};\n\n if (attachStacktrace && syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n event.exception = {\n values: [{ value: message, stacktrace: { frames } }],\n };\n }\n }\n\n if (isParameterizedString(message)) {\n const { __sentry_template_string__, __sentry_template_values__ } = message;\n\n event.logentry = {\n message: __sentry_template_string__,\n params: __sentry_template_values__,\n };\n return event;\n }\n\n event.message = message;\n return event;\n}\n\nfunction getNonErrorObjectExceptionValue(\n exception: Record,\n { isUnhandledRejection }: { isUnhandledRejection?: boolean },\n): string {\n const keys = extractExceptionKeysForMessage(exception);\n const captureType = isUnhandledRejection ? 'promise rejection' : 'exception';\n\n // Some ErrorEvent instances do not have an `error` property, which is why they are not handled before\n // We still want to try to get a decent message for these cases\n if (isErrorEvent(exception)) {\n return `Event \\`ErrorEvent\\` captured as ${captureType} with message \\`${exception.message}\\``;\n }\n\n if (isEvent(exception)) {\n const className = getObjectClassName(exception);\n return `Event \\`${className}\\` (type=${exception.type}) captured as ${captureType}`;\n }\n\n return `Object captured as ${captureType} with keys: ${keys}`;\n}\n\nfunction getObjectClassName(obj: unknown): string | undefined | void {\n try {\n const prototype: Prototype | null = Object.getPrototypeOf(obj);\n return prototype ? prototype.constructor.name : undefined;\n } catch (e) {\n // ignore errors here\n }\n}\n","import type { browserTracingIntegration } from '@sentry-internal/tracing';\nimport { BrowserTracing } from '@sentry-internal/tracing';\nimport { captureException, withScope } from '@sentry/core';\nimport type { DsnLike, Integration, Mechanism, WrappedFunction } from '@sentry/types';\nimport {\n GLOBAL_OBJ,\n addExceptionMechanism,\n addExceptionTypeValue,\n addNonEnumerableProperty,\n getOriginalFunction,\n markFunctionWrapped,\n} from '@sentry/utils';\n\nexport const WINDOW = GLOBAL_OBJ as typeof GLOBAL_OBJ & Window;\n\nlet ignoreOnError: number = 0;\n\n/**\n * @hidden\n */\nexport function shouldIgnoreOnError(): boolean {\n return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nexport function ignoreNextOnError(): void {\n // onerror should trigger before setTimeout\n ignoreOnError++;\n setTimeout(() => {\n ignoreOnError--;\n });\n}\n\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap. It is generally safe to pass an unbound function, because the returned wrapper always\n * has a correct `this` context.\n * @returns The wrapped function.\n * @hidden\n */\nexport function wrap(\n fn: WrappedFunction,\n options: {\n mechanism?: Mechanism;\n } = {},\n before?: WrappedFunction,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any {\n // for future readers what this does is wrap a function and then create\n // a bi-directional wrapping between them.\n //\n // example: wrapped = wrap(original);\n // original.__sentry_wrapped__ -> wrapped\n // wrapped.__sentry_original__ -> original\n\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // if we're dealing with a function that was previously wrapped, return\n // the original wrapper.\n const wrapper = fn.__sentry_wrapped__;\n if (wrapper) {\n if (typeof wrapper === 'function') {\n return wrapper;\n } else {\n // If we find that the `__sentry_wrapped__` function is not a function at the time of accessing it, it means\n // that something messed with it. In that case we want to return the originally passed function.\n return fn;\n }\n }\n\n // We don't wanna wrap it twice\n if (getOriginalFunction(fn)) {\n return fn;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n\n /* eslint-disable prefer-rest-params */\n // It is important that `sentryWrapped` is not an arrow function to preserve the context of `this`\n const sentryWrapped: WrappedFunction = function (this: unknown): void {\n const args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n const wrappedArguments = args.map((arg: any) => wrap(arg, options));\n\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n\n withScope(scope => {\n scope.addEventProcessor(event => {\n if (options.mechanism) {\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, options.mechanism);\n }\n\n event.extra = {\n ...event.extra,\n arguments: args,\n };\n\n return event;\n });\n\n captureException(ex);\n });\n\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (const property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n markFunctionWrapped(sentryWrapped, fn);\n\n addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n // Restore original function name (not all browsers allow that)\n try {\n const descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name') as PropertyDescriptor;\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get(): string {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n\n/**\n * All properties the report dialog supports\n *\n * @deprecated This type will be removed in the next major version of the Sentry SDK. `showReportDialog` will still be around, however the `eventId` option will now be required.\n */\nexport interface ReportDialogOptions {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n eventId?: string;\n dsn?: DsnLike;\n user?: {\n email?: string;\n name?: string;\n };\n lang?: string;\n title?: string;\n subtitle?: string;\n subtitle2?: string;\n labelName?: string;\n labelEmail?: string;\n labelComments?: string;\n labelClose?: string;\n labelSubmit?: string;\n errorGeneric?: string;\n errorFormEntry?: string;\n successMessage?: string;\n /** Callback after reportDialog showed up */\n onLoad?(this: void): void;\n /** Callback after reportDialog closed */\n onClose?(this: void): void;\n}\n\n/**\n * This is a slim shim of `browserTracingIntegration` for the CDN bundles.\n * Since the actual functional integration uses a different code from `BrowserTracing`,\n * we want to avoid shipping both of them in the CDN bundles, as that would blow up the size.\n * Instead, we provide a functional integration with the same API, but the old implementation.\n * This means that it's not possible to register custom routing instrumentation, but that's OK for now.\n * We also don't expose the utilities for this anyhow in the CDN bundles.\n * For users that need custom routing in CDN bundles, they have to continue using `new BrowserTracing()` until v8.\n */\nexport function bundleBrowserTracingIntegration(\n options: Parameters[0] = {},\n): Integration {\n // Migrate some options from the old integration to the new one\n // eslint-disable-next-line deprecation/deprecation\n const opts: ConstructorParameters[0] = options;\n\n if (typeof options.markBackgroundSpan === 'boolean') {\n opts.markBackgroundTransactions = options.markBackgroundSpan;\n }\n\n if (typeof options.instrumentPageLoad === 'boolean') {\n opts.startTransactionOnPageLoad = options.instrumentPageLoad;\n }\n\n if (typeof options.instrumentNavigation === 'boolean') {\n opts.startTransactionOnLocationChange = options.instrumentNavigation;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n return new BrowserTracing(opts);\n}\n","import type { Scope } from '@sentry/core';\nimport { applySdkMetadata } from '@sentry/core';\nimport { BaseClient } from '@sentry/core';\nimport type {\n BrowserClientProfilingOptions,\n BrowserClientReplayOptions,\n ClientOptions,\n Event,\n EventHint,\n Options,\n ParameterizedString,\n Severity,\n SeverityLevel,\n UserFeedback,\n} from '@sentry/types';\nimport { createClientReportEnvelope, dsnToString, getSDKSource, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from './debug-build';\nimport { eventFromException, eventFromMessage } from './eventbuilder';\nimport { WINDOW } from './helpers';\nimport type { BrowserTransportOptions } from './transports/types';\nimport { createUserFeedbackEnvelope } from './userfeedback';\n\n/**\n * Configuration options for the Sentry Browser SDK.\n * @see @sentry/types Options for more information.\n */\nexport type BrowserOptions = Options &\n BrowserClientReplayOptions &\n BrowserClientProfilingOptions;\n\n/**\n * Configuration options for the Sentry Browser SDK Client class\n * @see BrowserClient for more information.\n */\nexport type BrowserClientOptions = ClientOptions &\n BrowserClientReplayOptions &\n BrowserClientProfilingOptions;\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nexport class BrowserClient extends BaseClient {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n public constructor(options: BrowserClientOptions) {\n const sdkSource = WINDOW.SENTRY_SDK_SOURCE || getSDKSource();\n applySdkMetadata(options, 'browser', ['browser'], sdkSource);\n\n super(options);\n\n if (options.sendClientReports && WINDOW.document) {\n WINDOW.document.addEventListener('visibilitychange', () => {\n if (WINDOW.document.visibilityState === 'hidden') {\n this._flushOutcomes();\n }\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n public eventFromException(exception: unknown, hint?: EventHint): PromiseLike {\n return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n public eventFromMessage(\n message: ParameterizedString,\n // eslint-disable-next-line deprecation/deprecation\n level: Severity | SeverityLevel = 'info',\n hint?: EventHint,\n ): PromiseLike {\n return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * Sends user feedback to Sentry.\n */\n public captureUserFeedback(feedback: UserFeedback): void {\n if (!this._isEnabled()) {\n DEBUG_BUILD && logger.warn('SDK not enabled, will not capture user feedback.');\n return;\n }\n\n const envelope = createUserFeedbackEnvelope(feedback, {\n metadata: this.getSdkMetadata(),\n dsn: this.getDsn(),\n tunnel: this.getOptions().tunnel,\n });\n\n // _sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._sendEnvelope(envelope);\n }\n\n /**\n * @inheritDoc\n */\n protected _prepareEvent(event: Event, hint: EventHint, scope?: Scope): PromiseLike {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, hint, scope);\n }\n\n /**\n * Sends client reports as an envelope.\n */\n private _flushOutcomes(): void {\n const outcomes = this._clearOutcomes();\n\n if (outcomes.length === 0) {\n DEBUG_BUILD && logger.log('No outcomes to send');\n return;\n }\n\n // This is really the only place where we want to check for a DSN and only send outcomes then\n if (!this._dsn) {\n DEBUG_BUILD && logger.log('No dsn provided, will not send outcomes');\n return;\n }\n\n DEBUG_BUILD && logger.log('Sending outcomes:', outcomes);\n\n const envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n\n // _sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._sendEnvelope(envelope);\n }\n}\n","import type { DsnComponents, EventEnvelope, SdkMetadata, UserFeedback, UserFeedbackItem } from '@sentry/types';\nimport { createEnvelope, dsnToString } from '@sentry/utils';\n\n/**\n * Creates an envelope from a user feedback.\n */\nexport function createUserFeedbackEnvelope(\n feedback: UserFeedback,\n {\n metadata,\n tunnel,\n dsn,\n }: {\n metadata: SdkMetadata | undefined;\n tunnel: string | undefined;\n dsn: DsnComponents | undefined;\n },\n): EventEnvelope {\n const headers: EventEnvelope[0] = {\n event_id: feedback.event_id,\n sent_at: new Date().toISOString(),\n ...(metadata &&\n metadata.sdk && {\n sdk: {\n name: metadata.sdk.name,\n version: metadata.sdk.version,\n },\n }),\n ...(!!tunnel && !!dsn && { dsn: dsnToString(dsn) }),\n };\n const item = createUserFeedbackEnvelopeItem(feedback);\n\n return createEnvelope(headers, [item]);\n}\n\nfunction createUserFeedbackEnvelopeItem(feedback: UserFeedback): UserFeedbackItem {\n const feedbackHeaders: UserFeedbackItem[0] = {\n type: 'user_report',\n };\n return [feedbackHeaders, feedback];\n}\n","import type { ClientReport, ClientReportEnvelope, ClientReportItem } from '@sentry/types';\n\nimport { createEnvelope } from './envelope';\nimport { dateTimestampInSeconds } from './time';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nexport function createClientReportEnvelope(\n discarded_events: ClientReport['discarded_events'],\n dsn?: string,\n timestamp?: number,\n): ClientReportEnvelope {\n const clientReportItem: ClientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events,\n },\n ];\n return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport type { ConsoleLevel, HandlerDataConsole } from '@sentry/types';\n\nimport { CONSOLE_LEVELS, originalConsoleMethods } from '../logger';\nimport { fill } from '../object';\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\n/**\n * Add an instrumentation handler for when a console.xxx method is called.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addConsoleInstrumentationHandler(handler: (data: HandlerDataConsole) => void): void {\n const type = 'console';\n addHandler(type, handler);\n maybeInstrument(type, instrumentConsole);\n}\n\nfunction instrumentConsole(): void {\n if (!('console' in GLOBAL_OBJ)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level: ConsoleLevel): void {\n if (!(level in GLOBAL_OBJ.console)) {\n return;\n }\n\n fill(GLOBAL_OBJ.console, level, function (originalConsoleMethod: () => any): Function {\n originalConsoleMethods[level] = originalConsoleMethod;\n\n return function (...args: any[]): void {\n const handlerData: HandlerDataConsole = { args, level };\n triggerHandlers('console', handlerData);\n\n const log = originalConsoleMethods[level];\n log && log.apply(GLOBAL_OBJ.console, args);\n };\n });\n });\n}\n","// TODO(v8): Move everything in this file into the browser package. Nothing here is generic and we run risk of leaking browser types into non-browser packages.\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport type { HandlerDataDom } from '@sentry/types';\n\nimport { uuid4 } from '../misc';\nimport { addNonEnumerableProperty, fill } from '../object';\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\ntype SentryWrappedTarget = HTMLElement & { _sentryId?: string };\n\ntype AddEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n) => void;\ntype RemoveEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n) => void;\n\ntype InstrumentedElement = Element & {\n __sentry_instrumentation_handlers__?: {\n [key in 'click' | 'keypress']?: {\n handler?: Function;\n /** The number of custom listeners attached to this element */\n refCount: number;\n };\n };\n};\n\nconst WINDOW = GLOBAL_OBJ as unknown as Window;\nconst DEBOUNCE_DURATION = 1000;\n\nlet debounceTimerID: number | undefined;\nlet lastCapturedEventType: string | undefined;\nlet lastCapturedEventTargetId: string | undefined;\n\n/**\n * Add an instrumentation handler for when a click or a keypress happens.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addClickKeypressInstrumentationHandler(handler: (data: HandlerDataDom) => void): void {\n const type = 'dom';\n addHandler(type, handler);\n maybeInstrument(type, instrumentDOM);\n}\n\n/** Exported for tests only. */\nexport function instrumentDOM(): void {\n if (!WINDOW.document) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n const triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n const globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n WINDOW.document.addEventListener('click', globalDOMEventHandler, false);\n WINDOW.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target: string) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = (WINDOW as any)[target] && (WINDOW as any)[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener: AddEventListener): AddEventListener {\n return function (\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): AddEventListener {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n const handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n const handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount++;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (originalRemoveEventListener: RemoveEventListener): RemoveEventListener {\n return function (\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n ): () => void {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = el.__sentry_instrumentation_handlers__ || {};\n const handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount--;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n },\n );\n });\n}\n\n/**\n * Check whether the event is similar to the last captured one. For example, two click events on the same button.\n */\nfunction isSimilarToLastCapturedEvent(event: Event): boolean {\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (event.type !== lastCapturedEventType) {\n return false;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (!event.target || (event.target as SentryWrappedTarget)._sentryId !== lastCapturedEventTargetId) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return true;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(eventType: string, target: SentryWrappedTarget | null): boolean {\n // We are only interested in filtering `keypress` events for now.\n if (eventType !== 'keypress') {\n return false;\n }\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n */\nfunction makeDOMEventHandler(\n handler: (data: HandlerDataDom) => void,\n globalListener: boolean = false,\n): (event: Event) => void {\n return (event: Event & { _sentryCaptured?: true }): void => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || event['_sentryCaptured']) {\n return;\n }\n\n const target = getEventTarget(event);\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event.type, target)) {\n return;\n }\n\n // Mark event as \"seen\"\n addNonEnumerableProperty(event, '_sentryCaptured', true);\n\n if (target && !target._sentryId) {\n // Add UUID to event target so we can identify if\n addNonEnumerableProperty(target, '_sentryId', uuid4());\n }\n\n const name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no last captured event, it means that we can safely capture the new event and store it for future comparisons.\n // If there is a last captured event, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n if (!isSimilarToLastCapturedEvent(event)) {\n const handlerData: HandlerDataDom = { event, name, global: globalListener };\n handler(handlerData);\n lastCapturedEventType = event.type;\n lastCapturedEventTargetId = target ? target._sentryId : undefined;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = WINDOW.setTimeout(() => {\n lastCapturedEventTargetId = undefined;\n lastCapturedEventType = undefined;\n }, DEBOUNCE_DURATION);\n };\n}\n\nfunction getEventTarget(event: Event): SentryWrappedTarget | null {\n try {\n return event.target as SentryWrappedTarget | null;\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n return null;\n }\n}\n","// TODO(v8): Move everything in this file into the browser package. Nothing here is generic and we run risk of leaking browser types into non-browser packages.\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport type { HandlerDataXhr, SentryWrappedXMLHttpRequest, WrappedFunction } from '@sentry/types';\n\nimport { isString } from '../is';\nimport { fill } from '../object';\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\nconst WINDOW = GLOBAL_OBJ as unknown as Window;\n\nexport const SENTRY_XHR_DATA_KEY = '__sentry_xhr_v3__';\n\n/**\n * Add an instrumentation handler for when an XHR request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addXhrInstrumentationHandler(handler: (data: HandlerDataXhr) => void): void {\n const type = 'xhr';\n addHandler(type, handler);\n maybeInstrument(type, instrumentXHR);\n}\n\n/** Exported only for tests. */\nexport function instrumentXHR(): void {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (!(WINDOW as any).XMLHttpRequest) {\n return;\n }\n\n const xhrproto = XMLHttpRequest.prototype;\n\n fill(xhrproto, 'open', function (originalOpen: () => void): () => void {\n return function (this: XMLHttpRequest & SentryWrappedXMLHttpRequest, ...args: any[]): void {\n const startTimestamp = Date.now();\n\n // open() should always be called with two or more arguments\n // But to be on the safe side, we actually validate this and bail out if we don't have a method & url\n const method = isString(args[0]) ? args[0].toUpperCase() : undefined;\n const url = parseUrl(args[1]);\n\n if (!method || !url) {\n return originalOpen.apply(this, args);\n }\n\n this[SENTRY_XHR_DATA_KEY] = {\n method,\n url,\n request_headers: {},\n };\n\n // if Sentry key appears in URL, don't capture it as a request\n if (method === 'POST' && url.match(/sentry_key/)) {\n this.__sentry_own_request__ = true;\n }\n\n const onreadystatechangeHandler: () => void = () => {\n // For whatever reason, this is not the same instance here as from the outer method\n const xhrInfo = this[SENTRY_XHR_DATA_KEY];\n\n if (!xhrInfo) {\n return;\n }\n\n if (this.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = this.status;\n } catch (e) {\n /* do nothing */\n }\n\n const handlerData: HandlerDataXhr = {\n args: [method, url],\n endTimestamp: Date.now(),\n startTimestamp,\n xhr: this,\n };\n triggerHandlers('xhr', handlerData);\n }\n };\n\n if ('onreadystatechange' in this && typeof this.onreadystatechange === 'function') {\n fill(this, 'onreadystatechange', function (original: WrappedFunction): Function {\n return function (this: SentryWrappedXMLHttpRequest, ...readyStateArgs: any[]): void {\n onreadystatechangeHandler();\n return original.apply(this, readyStateArgs);\n };\n });\n } else {\n this.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n // Intercepting `setRequestHeader` to access the request headers of XHR instance.\n // This will only work for user/library defined headers, not for the default/browser-assigned headers.\n // Request cookies are also unavailable for XHR, as `Cookie` header can't be defined by `setRequestHeader`.\n fill(this, 'setRequestHeader', function (original: WrappedFunction): Function {\n return function (this: SentryWrappedXMLHttpRequest, ...setRequestHeaderArgs: unknown[]): void {\n const [header, value] = setRequestHeaderArgs;\n\n const xhrInfo = this[SENTRY_XHR_DATA_KEY];\n\n if (xhrInfo && isString(header) && isString(value)) {\n xhrInfo.request_headers[header.toLowerCase()] = value;\n }\n\n return original.apply(this, setRequestHeaderArgs);\n };\n });\n\n return originalOpen.apply(this, args);\n };\n });\n\n fill(xhrproto, 'send', function (originalSend: () => void): () => void {\n return function (this: XMLHttpRequest & SentryWrappedXMLHttpRequest, ...args: any[]): void {\n const sentryXhrData = this[SENTRY_XHR_DATA_KEY];\n\n if (!sentryXhrData) {\n return originalSend.apply(this, args);\n }\n\n if (args[0] !== undefined) {\n sentryXhrData.body = args[0];\n }\n\n const handlerData: HandlerDataXhr = {\n args: [sentryXhrData.method, sentryXhrData.url],\n startTimestamp: Date.now(),\n xhr: this,\n };\n triggerHandlers('xhr', handlerData);\n\n return originalSend.apply(this, args);\n };\n });\n}\n\nfunction parseUrl(url: string | unknown): string | undefined {\n if (isString(url)) {\n return url;\n }\n\n try {\n // url can be a string or URL\n // but since URL is not available in IE11, we do not check for it,\n // but simply assume it is an URL and return `toString()` from it (which returns the full URL)\n // If that fails, we just return undefined\n return (url as URL).toString();\n } catch {} // eslint-disable-line no-empty\n\n return undefined;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport type { HandlerDataFetch } from '@sentry/types';\n\nimport { fill } from '../object';\nimport { supportsNativeFetch } from '../supports';\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\ntype FetchResource = string | { toString(): string } | { url: string };\n\n/**\n * Add an instrumentation handler for when a fetch request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addFetchInstrumentationHandler(handler: (data: HandlerDataFetch) => void): void {\n const type = 'fetch';\n addHandler(type, handler);\n maybeInstrument(type, instrumentFetch);\n}\n\nfunction instrumentFetch(): void {\n if (!supportsNativeFetch()) {\n return;\n }\n\n fill(GLOBAL_OBJ, 'fetch', function (originalFetch: () => void): () => void {\n return function (...args: any[]): void {\n const { method, url } = parseFetchArgs(args);\n\n const handlerData: HandlerDataFetch = {\n args,\n fetchData: {\n method,\n url,\n },\n startTimestamp: Date.now(),\n };\n\n triggerHandlers('fetch', {\n ...handlerData,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(GLOBAL_OBJ, args).then(\n (response: Response) => {\n const finishedHandlerData: HandlerDataFetch = {\n ...handlerData,\n endTimestamp: Date.now(),\n response,\n };\n\n triggerHandlers('fetch', finishedHandlerData);\n return response;\n },\n (error: Error) => {\n const erroredHandlerData: HandlerDataFetch = {\n ...handlerData,\n endTimestamp: Date.now(),\n error,\n };\n\n triggerHandlers('fetch', erroredHandlerData);\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n },\n );\n };\n });\n}\n\nfunction hasProp(obj: unknown, prop: T): obj is Record {\n return !!obj && typeof obj === 'object' && !!(obj as Record)[prop];\n}\n\nfunction getUrlFromResource(resource: FetchResource): string {\n if (typeof resource === 'string') {\n return resource;\n }\n\n if (!resource) {\n return '';\n }\n\n if (hasProp(resource, 'url')) {\n return resource.url;\n }\n\n if (resource.toString) {\n return resource.toString();\n }\n\n return '';\n}\n\n/**\n * Parses the fetch arguments to find the used Http method and the url of the request.\n * Exported for tests only.\n */\nexport function parseFetchArgs(fetchArgs: unknown[]): { method: string; url: string } {\n if (fetchArgs.length === 0) {\n return { method: 'GET', url: '' };\n }\n\n if (fetchArgs.length === 2) {\n const [url, options] = fetchArgs as [FetchResource, object];\n\n return {\n url: getUrlFromResource(url),\n method: hasProp(options, 'method') ? String(options.method).toUpperCase() : 'GET',\n };\n }\n\n const arg = fetchArgs[0];\n return {\n url: getUrlFromResource(arg as FetchResource),\n method: hasProp(arg, 'method') ? String(arg.method).toUpperCase() : 'GET',\n };\n}\n","/* eslint-disable deprecation/deprecation */\nimport type { Severity, SeverityLevel } from '@sentry/types';\n\n// Note: Ideally the `SeverityLevel` type would be derived from `validSeverityLevels`, but that would mean either\n//\n// a) moving `validSeverityLevels` to `@sentry/types`,\n// b) moving the`SeverityLevel` type here, or\n// c) importing `validSeverityLevels` from here into `@sentry/types`.\n//\n// Option A would make `@sentry/types` a runtime dependency of `@sentry/utils` (not good), and options B and C would\n// create a circular dependency between `@sentry/types` and `@sentry/utils` (also not good). So a TODO accompanying the\n// type, reminding anyone who changes it to change this list also, will have to do.\n\nexport const validSeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug'];\n\n/**\n * Converts a string-based level into a member of the deprecated {@link Severity} enum.\n *\n * @deprecated `severityFromString` is deprecated. Please use `severityLevelFromString` instead.\n *\n * @param level String representation of Severity\n * @returns Severity\n */\nexport function severityFromString(level: Severity | SeverityLevel | string): Severity {\n return severityLevelFromString(level) as Severity;\n}\n\n/**\n * Converts a string-based level into a `SeverityLevel`, normalizing it along the way.\n *\n * @param level String representation of desired `SeverityLevel`.\n * @returns The `SeverityLevel` corresponding to the given string, or 'log' if the string isn't a valid level.\n */\nexport function severityLevelFromString(level: SeverityLevel | string): SeverityLevel {\n return (level === 'warn' ? 'warning' : validSeverityLevels.includes(level) ? level : 'log') as SeverityLevel;\n}\n","type PartialURL = {\n host?: string;\n path?: string;\n protocol?: string;\n relative?: string;\n search?: string;\n hash?: string;\n};\n\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nexport function parseUrl(url: string): PartialURL {\n if (!url) {\n return {};\n }\n\n const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n const query = match[6] || '';\n const fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n search: query,\n hash: fragment,\n relative: match[5] + query + fragment, // everything minus origin\n };\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nexport function stripUrlQueryAndFragment(urlPath: string): string {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n\n/**\n * Returns number of URL segments of a passed string URL.\n */\nexport function getNumberOfUrlSegments(url: string): number {\n // split at '/' or at '\\/' to split regex urls correctly\n return url.split(/\\\\?\\//).filter(s => s.length > 0 && s !== ',').length;\n}\n\n/**\n * Takes a URL object and returns a sanitized string which is safe to use as span description\n * see: https://develop.sentry.dev/sdk/data-handling/#structuring-data\n */\nexport function getSanitizedUrlString(url: PartialURL): string {\n const { protocol, host, path } = url;\n\n const filteredHost =\n (host &&\n host\n // Always filter out authority\n .replace(/^.*@/, '[filtered]:[filtered]@')\n // Don't show standard :80 (http) and :443 (https) ports to reduce the noise\n // TODO: Use new URL global if it exists\n .replace(/(:80)$/, '')\n .replace(/(:443)$/, '')) ||\n '';\n\n return `${protocol ? `${protocol}://` : ''}${filteredHost}${path}`;\n}\n","/* eslint-disable max-lines */\nimport { addBreadcrumb, convertIntegrationFnToClass, defineIntegration, getClient } from '@sentry/core';\nimport type {\n Client,\n Event as SentryEvent,\n HandlerDataConsole,\n HandlerDataDom,\n HandlerDataFetch,\n HandlerDataHistory,\n HandlerDataXhr,\n Integration,\n IntegrationClass,\n IntegrationFn,\n} from '@sentry/types';\nimport type {\n Breadcrumb,\n FetchBreadcrumbData,\n FetchBreadcrumbHint,\n XhrBreadcrumbData,\n XhrBreadcrumbHint,\n} from '@sentry/types/build/types/breadcrumb';\nimport {\n SENTRY_XHR_DATA_KEY,\n addClickKeypressInstrumentationHandler,\n addConsoleInstrumentationHandler,\n addFetchInstrumentationHandler,\n addHistoryInstrumentationHandler,\n addXhrInstrumentationHandler,\n getComponentName,\n getEventDescription,\n htmlTreeAsString,\n logger,\n parseUrl,\n safeJoin,\n severityLevelFromString,\n} from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport { WINDOW } from '../helpers';\n\ninterface BreadcrumbsOptions {\n console: boolean;\n dom:\n | boolean\n | {\n serializeAttribute?: string | string[];\n maxStringLength?: number;\n };\n fetch: boolean;\n history: boolean;\n sentry: boolean;\n xhr: boolean;\n}\n\n/** maxStringLength gets capped to prevent 100 breadcrumbs exceeding 1MB event payload size */\nconst MAX_ALLOWED_STRING_LENGTH = 1024;\n\nconst INTEGRATION_NAME = 'Breadcrumbs';\n\nconst _breadcrumbsIntegration = ((options: Partial = {}) => {\n const _options = {\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true,\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n // TODO v8: Remove this\n setupOnce() {}, // eslint-disable-line @typescript-eslint/no-empty-function\n setup(client) {\n if (_options.console) {\n addConsoleInstrumentationHandler(_getConsoleBreadcrumbHandler(client));\n }\n if (_options.dom) {\n addClickKeypressInstrumentationHandler(_getDomBreadcrumbHandler(client, _options.dom));\n }\n if (_options.xhr) {\n addXhrInstrumentationHandler(_getXhrBreadcrumbHandler(client));\n }\n if (_options.fetch) {\n addFetchInstrumentationHandler(_getFetchBreadcrumbHandler(client));\n }\n if (_options.history) {\n addHistoryInstrumentationHandler(_getHistoryBreadcrumbHandler(client));\n }\n if (_options.sentry && client.on) {\n client.on('beforeSendEvent', _getSentryBreadcrumbHandler(client));\n }\n },\n };\n}) satisfies IntegrationFn;\n\nexport const breadcrumbsIntegration = defineIntegration(_breadcrumbsIntegration);\n\n/**\n * Default Breadcrumbs instrumentations\n *\n * @deprecated Use `breadcrumbsIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const Breadcrumbs = convertIntegrationFnToClass(INTEGRATION_NAME, breadcrumbsIntegration) as IntegrationClass<\n Integration & { setup: (client: Client) => void }\n> & {\n new (\n options?: Partial<{\n console: boolean;\n dom:\n | boolean\n | {\n serializeAttribute?: string | string[];\n maxStringLength?: number;\n };\n fetch: boolean;\n history: boolean;\n sentry: boolean;\n xhr: boolean;\n }>,\n ): Integration;\n};\n\n/**\n * Adds a breadcrumb for Sentry events or transactions if this option is enabled.\n */\nfunction _getSentryBreadcrumbHandler(client: Client): (event: SentryEvent) => void {\n return function addSentryBreadcrumb(event: SentryEvent): void {\n if (getClient() !== client) {\n return;\n }\n\n addBreadcrumb(\n {\n category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n },\n {\n event,\n },\n );\n };\n}\n\n/**\n * A HOC that creaes a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\nfunction _getDomBreadcrumbHandler(\n client: Client,\n dom: BreadcrumbsOptions['dom'],\n): (handlerData: HandlerDataDom) => void {\n return function _innerDomBreadcrumb(handlerData: HandlerDataDom): void {\n if (getClient() !== client) {\n return;\n }\n\n let target;\n let componentName;\n let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n let maxStringLength =\n typeof dom === 'object' && typeof dom.maxStringLength === 'number' ? dom.maxStringLength : undefined;\n if (maxStringLength && maxStringLength > MAX_ALLOWED_STRING_LENGTH) {\n DEBUG_BUILD &&\n logger.warn(\n `\\`dom.maxStringLength\\` cannot exceed ${MAX_ALLOWED_STRING_LENGTH}, but a value of ${maxStringLength} was configured. Sentry will use ${MAX_ALLOWED_STRING_LENGTH} instead.`,\n );\n maxStringLength = MAX_ALLOWED_STRING_LENGTH;\n }\n\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n const event = handlerData.event as Event | Node;\n const element = _isEvent(event) ? event.target : event;\n\n target = htmlTreeAsString(element, { keyAttrs, maxStringLength });\n componentName = getComponentName(element);\n } catch (e) {\n target = '';\n }\n\n if (target.length === 0) {\n return;\n }\n\n const breadcrumb: Breadcrumb = {\n category: `ui.${handlerData.name}`,\n message: target,\n };\n\n if (componentName) {\n breadcrumb.data = { 'ui.component_name': componentName };\n }\n\n addBreadcrumb(breadcrumb, {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n });\n };\n}\n\n/**\n * Creates breadcrumbs from console API calls\n */\nfunction _getConsoleBreadcrumbHandler(client: Client): (handlerData: HandlerDataConsole) => void {\n return function _consoleBreadcrumb(handlerData: HandlerDataConsole): void {\n if (getClient() !== client) {\n return;\n }\n\n const breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: severityLevelFromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = `Assertion failed: ${safeJoin(handlerData.args.slice(1), ' ') || 'console.assert'}`;\n breadcrumb.data.arguments = handlerData.args.slice(1);\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n };\n}\n\n/**\n * Creates breadcrumbs from XHR API calls\n */\nfunction _getXhrBreadcrumbHandler(client: Client): (handlerData: HandlerDataXhr) => void {\n return function _xhrBreadcrumb(handlerData: HandlerDataXhr): void {\n if (getClient() !== client) {\n return;\n }\n\n const { startTimestamp, endTimestamp } = handlerData;\n\n const sentryXhrData = handlerData.xhr[SENTRY_XHR_DATA_KEY];\n\n // We only capture complete, non-sentry requests\n if (!startTimestamp || !endTimestamp || !sentryXhrData) {\n return;\n }\n\n const { method, url, status_code, body } = sentryXhrData;\n\n const data: XhrBreadcrumbData = {\n method,\n url,\n status_code,\n };\n\n const hint: XhrBreadcrumbHint = {\n xhr: handlerData.xhr,\n input: body,\n startTimestamp,\n endTimestamp,\n };\n\n addBreadcrumb(\n {\n category: 'xhr',\n data,\n type: 'http',\n },\n hint,\n );\n };\n}\n\n/**\n * Creates breadcrumbs from fetch API calls\n */\nfunction _getFetchBreadcrumbHandler(client: Client): (handlerData: HandlerDataFetch) => void {\n return function _fetchBreadcrumb(handlerData: HandlerDataFetch): void {\n if (getClient() !== client) {\n return;\n }\n\n const { startTimestamp, endTimestamp } = handlerData;\n\n // We only capture complete fetch requests\n if (!endTimestamp) {\n return;\n }\n\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n\n if (handlerData.error) {\n const data: FetchBreadcrumbData = handlerData.fetchData;\n const hint: FetchBreadcrumbHint = {\n data: handlerData.error,\n input: handlerData.args,\n startTimestamp,\n endTimestamp,\n };\n\n addBreadcrumb(\n {\n category: 'fetch',\n data,\n level: 'error',\n type: 'http',\n },\n hint,\n );\n } else {\n const response = handlerData.response as Response | undefined;\n const data: FetchBreadcrumbData = {\n ...handlerData.fetchData,\n status_code: response && response.status,\n };\n const hint: FetchBreadcrumbHint = {\n input: handlerData.args,\n response,\n startTimestamp,\n endTimestamp,\n };\n addBreadcrumb(\n {\n category: 'fetch',\n data,\n type: 'http',\n },\n hint,\n );\n }\n };\n}\n\n/**\n * Creates breadcrumbs from history API calls\n */\nfunction _getHistoryBreadcrumbHandler(client: Client): (handlerData: HandlerDataHistory) => void {\n return function _historyBreadcrumb(handlerData: HandlerDataHistory): void {\n if (getClient() !== client) {\n return;\n }\n\n let from: string | undefined = handlerData.from;\n let to: string | undefined = handlerData.to;\n const parsedLoc = parseUrl(WINDOW.location.href);\n let parsedFrom = from ? parseUrl(from) : undefined;\n const parsedTo = parseUrl(to);\n\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom || !parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n\n addBreadcrumb({\n category: 'navigation',\n data: {\n from,\n to,\n },\n });\n };\n}\n\nfunction _isEvent(event: unknown): event is Event {\n return !!event && !!(event as Record).target;\n}\n","import { convertIntegrationFnToClass, defineIntegration } from '@sentry/core';\nimport type { Event, Exception, Integration, IntegrationClass, IntegrationFn, StackFrame } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\n\nconst INTEGRATION_NAME = 'Dedupe';\n\nconst _dedupeIntegration = (() => {\n let previousEvent: Event | undefined;\n\n return {\n name: INTEGRATION_NAME,\n // TODO v8: Remove this\n setupOnce() {}, // eslint-disable-line @typescript-eslint/no-empty-function\n processEvent(currentEvent) {\n // We want to ignore any non-error type events, e.g. transactions or replays\n // These should never be deduped, and also not be compared against as _previousEvent.\n if (currentEvent.type) {\n return currentEvent;\n }\n\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, previousEvent)) {\n DEBUG_BUILD && logger.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n return (previousEvent = currentEvent);\n },\n };\n}) satisfies IntegrationFn;\n\nexport const dedupeIntegration = defineIntegration(_dedupeIntegration);\n\n/**\n * Deduplication filter.\n * @deprecated Use `dedupeIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const Dedupe = convertIntegrationFnToClass(INTEGRATION_NAME, dedupeIntegration) as IntegrationClass<\n Integration & { processEvent: (event: Event) => Event }\n>;\n\nfunction _shouldDropEvent(currentEvent: Event, previousEvent?: Event): boolean {\n if (!previousEvent) {\n return false;\n }\n\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n return false;\n}\n\nfunction _isSameMessageEvent(currentEvent: Event, previousEvent: Event): boolean {\n const currentMessage = currentEvent.message;\n const previousMessage = previousEvent.message;\n\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n\n if (currentMessage !== previousMessage) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\nfunction _isSameExceptionEvent(currentEvent: Event, previousEvent: Event): boolean {\n const previousException = _getExceptionFromEvent(previousEvent);\n const currentException = _getExceptionFromEvent(currentEvent);\n\n if (!previousException || !currentException) {\n return false;\n }\n\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\nfunction _isSameStacktrace(currentEvent: Event, previousEvent: Event): boolean {\n let currentFrames = _getFramesFromEvent(currentEvent);\n let previousFrames = _getFramesFromEvent(previousEvent);\n\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n\n currentFrames = currentFrames as StackFrame[];\n previousFrames = previousFrames as StackFrame[];\n\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n\n // Otherwise, compare the two\n for (let i = 0; i < previousFrames.length; i++) {\n const frameA = previousFrames[i];\n const frameB = currentFrames[i];\n\n if (\n frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function\n ) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction _isSameFingerprint(currentEvent: Event, previousEvent: Event): boolean {\n let currentFingerprint = currentEvent.fingerprint;\n let previousFingerprint = previousEvent.fingerprint;\n\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n\n currentFingerprint = currentFingerprint as string[];\n previousFingerprint = previousFingerprint as string[];\n\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n } catch (_oO) {\n return false;\n }\n}\n\nfunction _getExceptionFromEvent(event: Event): Exception | undefined {\n return event.exception && event.exception.values && event.exception.values[0];\n}\n\nfunction _getFramesFromEvent(event: Event): StackFrame[] | undefined {\n const exception = event.exception;\n\n if (exception) {\n try {\n // @ts-expect-error Object could be undefined\n return exception.values[0].stacktrace.frames;\n } catch (_oO) {\n return undefined;\n }\n }\n return undefined;\n}\n","import type { HandlerDataError } from '@sentry/types';\n\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\nlet _oldOnErrorHandler: (typeof GLOBAL_OBJ)['onerror'] | null = null;\n\n/**\n * Add an instrumentation handler for when an error is captured by the global error handler.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addGlobalErrorInstrumentationHandler(handler: (data: HandlerDataError) => void): void {\n const type = 'error';\n addHandler(type, handler);\n maybeInstrument(type, instrumentError);\n}\n\nfunction instrumentError(): void {\n _oldOnErrorHandler = GLOBAL_OBJ.onerror;\n\n GLOBAL_OBJ.onerror = function (\n msg: string | object,\n url?: string,\n line?: number,\n column?: number,\n error?: Error,\n ): boolean {\n const handlerData: HandlerDataError = {\n column,\n error,\n line,\n msg,\n url,\n };\n triggerHandlers('error', handlerData);\n\n if (_oldOnErrorHandler && !_oldOnErrorHandler.__SENTRY_LOADER__) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n\n GLOBAL_OBJ.onerror.__SENTRY_INSTRUMENTED__ = true;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { HandlerDataUnhandledRejection } from '@sentry/types';\n\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\nlet _oldOnUnhandledRejectionHandler: (typeof GLOBAL_OBJ)['onunhandledrejection'] | null = null;\n\n/**\n * Add an instrumentation handler for when an unhandled promise rejection is captured.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addGlobalUnhandledRejectionInstrumentationHandler(\n handler: (data: HandlerDataUnhandledRejection) => void,\n): void {\n const type = 'unhandledrejection';\n addHandler(type, handler);\n maybeInstrument(type, instrumentUnhandledRejection);\n}\n\nfunction instrumentUnhandledRejection(): void {\n _oldOnUnhandledRejectionHandler = GLOBAL_OBJ.onunhandledrejection;\n\n GLOBAL_OBJ.onunhandledrejection = function (e: any): boolean {\n const handlerData: HandlerDataUnhandledRejection = e;\n triggerHandlers('unhandledrejection', handlerData);\n\n if (_oldOnUnhandledRejectionHandler && !_oldOnUnhandledRejectionHandler.__SENTRY_LOADER__) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n\n GLOBAL_OBJ.onunhandledrejection.__SENTRY_INSTRUMENTED__ = true;\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { captureEvent, convertIntegrationFnToClass, defineIntegration, getClient } from '@sentry/core';\nimport type {\n Client,\n Event,\n Integration,\n IntegrationClass,\n IntegrationFn,\n Primitive,\n StackParser,\n} from '@sentry/types';\nimport {\n addGlobalErrorInstrumentationHandler,\n addGlobalUnhandledRejectionInstrumentationHandler,\n getLocationHref,\n isErrorEvent,\n isPrimitive,\n isString,\n logger,\n} from '@sentry/utils';\n\nimport type { BrowserClient } from '../client';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { shouldIgnoreOnError } from '../helpers';\n\ntype GlobalHandlersIntegrationsOptionKeys = 'onerror' | 'onunhandledrejection';\n\ntype GlobalHandlersIntegrations = Record;\n\nconst INTEGRATION_NAME = 'GlobalHandlers';\n\nconst _globalHandlersIntegration = ((options: Partial = {}) => {\n const _options = {\n onerror: true,\n onunhandledrejection: true,\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n Error.stackTraceLimit = 50;\n },\n setup(client) {\n if (_options.onerror) {\n _installGlobalOnErrorHandler(client);\n globalHandlerLog('onerror');\n }\n if (_options.onunhandledrejection) {\n _installGlobalOnUnhandledRejectionHandler(client);\n globalHandlerLog('onunhandledrejection');\n }\n },\n };\n}) satisfies IntegrationFn;\n\nexport const globalHandlersIntegration = defineIntegration(_globalHandlersIntegration);\n\n/**\n * Global handlers.\n * @deprecated Use `globalHandlersIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const GlobalHandlers = convertIntegrationFnToClass(\n INTEGRATION_NAME,\n globalHandlersIntegration,\n) as IntegrationClass void }> & {\n new (options?: Partial): Integration;\n};\n\nfunction _installGlobalOnErrorHandler(client: Client): void {\n addGlobalErrorInstrumentationHandler(data => {\n const { stackParser, attachStacktrace } = getOptions();\n\n if (getClient() !== client || shouldIgnoreOnError()) {\n return;\n }\n\n const { msg, url, line, column, error } = data;\n\n const event =\n error === undefined && isString(msg)\n ? _eventFromIncompleteOnError(msg, url, line, column)\n : _enhanceEventWithInitialFrame(\n eventFromUnknownInput(stackParser, error || msg, undefined, attachStacktrace, false),\n url,\n line,\n column,\n );\n\n event.level = 'error';\n\n captureEvent(event, {\n originalException: error,\n mechanism: {\n handled: false,\n type: 'onerror',\n },\n });\n });\n}\n\nfunction _installGlobalOnUnhandledRejectionHandler(client: Client): void {\n addGlobalUnhandledRejectionInstrumentationHandler(e => {\n const { stackParser, attachStacktrace } = getOptions();\n\n if (getClient() !== client || shouldIgnoreOnError()) {\n return;\n }\n\n const error = _getUnhandledRejectionError(e as unknown);\n\n const event = isPrimitive(error)\n ? _eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(stackParser, error, undefined, attachStacktrace, true);\n\n event.level = 'error';\n\n captureEvent(event, {\n originalException: error,\n mechanism: {\n handled: false,\n type: 'onunhandledrejection',\n },\n });\n });\n}\n\nfunction _getUnhandledRejectionError(error: unknown): unknown {\n if (isPrimitive(error)) {\n return error;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const e = error as any;\n\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n return e.reason;\n }\n\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n return e.detail.reason;\n }\n } catch {} // eslint-disable-line no-empty\n\n return error;\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason: Primitive): Event {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n },\n ],\n },\n };\n}\n\n/**\n * This function creates a stack from an old, error-less onerror handler.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _eventFromIncompleteOnError(msg: any, url: any, line: any, column: any): Event {\n const ERROR_TYPES_RE =\n /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n\n // If 'message' is ErrorEvent, get real message from inside\n let message = isErrorEvent(msg) ? msg.message : msg;\n let name = 'Error';\n\n const groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n\n const event = {\n exception: {\n values: [\n {\n type: name,\n value: message,\n },\n ],\n },\n };\n\n return _enhanceEventWithInitialFrame(event, url, line, column);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _enhanceEventWithInitialFrame(event: Event, url: any, line: any, column: any): Event {\n // event.exception\n const e = (event.exception = event.exception || {});\n // event.exception.values\n const ev = (e.values = e.values || []);\n // event.exception.values[0]\n const ev0 = (ev[0] = ev[0] || {});\n // event.exception.values[0].stacktrace\n const ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n // event.exception.values[0].stacktrace.frames\n const ev0sf = (ev0s.frames = ev0s.frames || []);\n\n const colno = isNaN(parseInt(column, 10)) ? undefined : column;\n const lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n const filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n // event.exception.values[0].stacktrace.frames\n if (ev0sf.length === 0) {\n ev0sf.push({\n colno,\n filename,\n function: '?',\n in_app: true,\n lineno,\n });\n }\n\n return event;\n}\n\nfunction globalHandlerLog(type: string): void {\n DEBUG_BUILD && logger.log(`Global Handler attached: ${type}`);\n}\n\nfunction getOptions(): { stackParser: StackParser; attachStacktrace?: boolean } {\n const client = getClient();\n const options = (client && client.getOptions()) || {\n stackParser: () => [],\n attachStacktrace: false,\n };\n return options;\n}\n","import { convertIntegrationFnToClass, defineIntegration } from '@sentry/core';\nimport type { Event, Integration, IntegrationClass, IntegrationFn } from '@sentry/types';\n\nimport { WINDOW } from '../helpers';\n\nconst INTEGRATION_NAME = 'HttpContext';\n\nconst _httpContextIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n // TODO v8: Remove this\n setupOnce() {}, // eslint-disable-line @typescript-eslint/no-empty-function\n preprocessEvent(event) {\n // if none of the information we want exists, don't bother\n if (!WINDOW.navigator && !WINDOW.location && !WINDOW.document) {\n return;\n }\n\n // grab as much info as exists and add it to the event\n const url = (event.request && event.request.url) || (WINDOW.location && WINDOW.location.href);\n const { referrer } = WINDOW.document || {};\n const { userAgent } = WINDOW.navigator || {};\n\n const headers = {\n ...(event.request && event.request.headers),\n ...(referrer && { Referer: referrer }),\n ...(userAgent && { 'User-Agent': userAgent }),\n };\n const request = { ...event.request, ...(url && { url }), headers };\n\n event.request = request;\n },\n };\n}) satisfies IntegrationFn;\n\nexport const httpContextIntegration = defineIntegration(_httpContextIntegration);\n\n/**\n * HttpContext integration collects information about HTTP request headers.\n * @deprecated Use `httpContextIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const HttpContext = convertIntegrationFnToClass(INTEGRATION_NAME, httpContextIntegration) as IntegrationClass<\n Integration & { preprocessEvent: (event: Event) => void }\n>;\n","import type { Event, EventHint, Exception, ExtendedError, StackParser } from '@sentry/types';\n\nimport { isInstanceOf } from './is';\nimport { truncate } from './string';\n\n/**\n * Creates exceptions inside `event.exception.values` for errors that are nested on properties based on the `key` parameter.\n */\nexport function applyAggregateErrorsToEvent(\n exceptionFromErrorImplementation: (stackParser: StackParser, ex: Error) => Exception,\n parser: StackParser,\n maxValueLimit: number = 250,\n key: string,\n limit: number,\n event: Event,\n hint?: EventHint,\n): void {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return;\n }\n\n // Generally speaking the last item in `event.exception.values` is the exception originating from the original Error\n const originalException: Exception | undefined =\n event.exception.values.length > 0 ? event.exception.values[event.exception.values.length - 1] : undefined;\n\n // We only create exception grouping if there is an exception in the event.\n if (originalException) {\n event.exception.values = truncateAggregateExceptions(\n aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n hint.originalException as ExtendedError,\n key,\n event.exception.values,\n originalException,\n 0,\n ),\n maxValueLimit,\n );\n }\n}\n\nfunction aggregateExceptionsFromError(\n exceptionFromErrorImplementation: (stackParser: StackParser, ex: Error) => Exception,\n parser: StackParser,\n limit: number,\n error: ExtendedError,\n key: string,\n prevExceptions: Exception[],\n exception: Exception,\n exceptionId: number,\n): Exception[] {\n if (prevExceptions.length >= limit + 1) {\n return prevExceptions;\n }\n\n let newExceptions = [...prevExceptions];\n\n // Recursively call this function in order to walk down a chain of errors\n if (isInstanceOf(error[key], Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId);\n const newException = exceptionFromErrorImplementation(parser, error[key]);\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, key, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n error[key],\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId,\n );\n }\n\n // This will create exception grouping for AggregateErrors\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AggregateError\n if (Array.isArray(error.errors)) {\n error.errors.forEach((childError, i) => {\n if (isInstanceOf(childError, Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId);\n const newException = exceptionFromErrorImplementation(parser, childError);\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, `errors[${i}]`, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n childError,\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId,\n );\n }\n });\n }\n\n return newExceptions;\n}\n\nfunction applyExceptionGroupFieldsForParentException(exception: Exception, exceptionId: number): void {\n // Don't know if this default makes sense. The protocol requires us to set these values so we pick *some* default.\n exception.mechanism = exception.mechanism || { type: 'generic', handled: true };\n\n exception.mechanism = {\n ...exception.mechanism,\n ...(exception.type === 'AggregateError' && { is_exception_group: true }),\n exception_id: exceptionId,\n };\n}\n\nfunction applyExceptionGroupFieldsForChildException(\n exception: Exception,\n source: string,\n exceptionId: number,\n parentId: number | undefined,\n): void {\n // Don't know if this default makes sense. The protocol requires us to set these values so we pick *some* default.\n exception.mechanism = exception.mechanism || { type: 'generic', handled: true };\n\n exception.mechanism = {\n ...exception.mechanism,\n type: 'chained',\n source,\n exception_id: exceptionId,\n parent_id: parentId,\n };\n}\n\n/**\n * Truncate the message (exception.value) of all exceptions in the event.\n * Because this event processor is ran after `applyClientOptions`,\n * we need to truncate the message of the added exceptions here.\n */\nfunction truncateAggregateExceptions(exceptions: Exception[], maxValueLength: number): Exception[] {\n return exceptions.map(exception => {\n if (exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n return exception;\n });\n}\n","import { convertIntegrationFnToClass, defineIntegration } from '@sentry/core';\nimport type { Client, Event, EventHint, Integration, IntegrationClass, IntegrationFn } from '@sentry/types';\nimport { applyAggregateErrorsToEvent } from '@sentry/utils';\nimport { exceptionFromError } from '../eventbuilder';\n\ninterface LinkedErrorsOptions {\n key?: string;\n limit?: number;\n}\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\nconst INTEGRATION_NAME = 'LinkedErrors';\n\nconst _linkedErrorsIntegration = ((options: LinkedErrorsOptions = {}) => {\n const limit = options.limit || DEFAULT_LIMIT;\n const key = options.key || DEFAULT_KEY;\n\n return {\n name: INTEGRATION_NAME,\n // TODO v8: Remove this\n setupOnce() {}, // eslint-disable-line @typescript-eslint/no-empty-function\n preprocessEvent(event, hint, client) {\n const options = client.getOptions();\n\n applyAggregateErrorsToEvent(\n // This differs from the LinkedErrors integration in core by using a different exceptionFromError function\n exceptionFromError,\n options.stackParser,\n options.maxValueLength,\n key,\n limit,\n event,\n hint,\n );\n },\n };\n}) satisfies IntegrationFn;\n\nexport const linkedErrorsIntegration = defineIntegration(_linkedErrorsIntegration);\n\n/**\n * Aggregrate linked errors in an event.\n * @deprecated Use `linkedErrorsIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const LinkedErrors = convertIntegrationFnToClass(INTEGRATION_NAME, linkedErrorsIntegration) as IntegrationClass<\n Integration & { preprocessEvent: (event: Event, hint: EventHint, client: Client) => void }\n> & { new (options?: { key?: string; limit?: number }): Integration };\n","import { convertIntegrationFnToClass, defineIntegration } from '@sentry/core';\nimport type { Integration, IntegrationClass, IntegrationFn, WrappedFunction } from '@sentry/types';\nimport { fill, getFunctionName, getOriginalFunction } from '@sentry/utils';\n\nimport { WINDOW, wrap } from '../helpers';\n\nconst DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'BroadcastChannel',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'SharedWorker',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n\nconst INTEGRATION_NAME = 'TryCatch';\n\ntype XMLHttpRequestProp = 'onload' | 'onerror' | 'onprogress' | 'onreadystatechange';\n\ninterface TryCatchOptions {\n setTimeout: boolean;\n setInterval: boolean;\n requestAnimationFrame: boolean;\n XMLHttpRequest: boolean;\n eventTarget: boolean | string[];\n}\n\nconst _browserApiErrorsIntegration = ((options: Partial = {}) => {\n const _options = {\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true,\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n // TODO: This currently only works for the first client this is setup\n // We may want to adjust this to check for client etc.\n setupOnce() {\n if (_options.setTimeout) {\n fill(WINDOW, 'setTimeout', _wrapTimeFunction);\n }\n\n if (_options.setInterval) {\n fill(WINDOW, 'setInterval', _wrapTimeFunction);\n }\n\n if (_options.requestAnimationFrame) {\n fill(WINDOW, 'requestAnimationFrame', _wrapRAF);\n }\n\n if (_options.XMLHttpRequest && 'XMLHttpRequest' in WINDOW) {\n fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n }\n\n const eventTargetOption = _options.eventTarget;\n if (eventTargetOption) {\n const eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(_wrapEventTarget);\n }\n },\n };\n}) satisfies IntegrationFn;\n\nexport const browserApiErrorsIntegration = defineIntegration(_browserApiErrorsIntegration);\n\n/**\n * Wrap timer functions and event targets to catch errors and provide better meta data.\n * @deprecated Use `browserApiErrorsIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const TryCatch = convertIntegrationFnToClass(\n INTEGRATION_NAME,\n browserApiErrorsIntegration,\n) as IntegrationClass & {\n new (options?: {\n setTimeout: boolean;\n setInterval: boolean;\n requestAnimationFrame: boolean;\n XMLHttpRequest: boolean;\n eventTarget: boolean | string[];\n }): Integration;\n};\n\nfunction _wrapTimeFunction(original: () => void): () => number {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: any, ...args: any[]): number {\n const originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: false,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _wrapRAF(original: any): (callback: () => void) => any {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: any, callback: () => void): () => void {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.apply(this, [\n wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: false,\n type: 'instrument',\n },\n }),\n ]);\n };\n}\n\nfunction _wrapXHR(originalSend: () => void): () => void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: XMLHttpRequest, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const xmlHttpRequestProps: XMLHttpRequestProp[] = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n xmlHttpRequestProps.forEach(prop => {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(xhr, prop, function (original: WrappedFunction): () => any {\n const wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: false,\n type: 'instrument',\n },\n };\n\n // If Instrument integration has been called before TryCatch, get the name of original function\n const originalFunction = getOriginalFunction(original);\n if (originalFunction) {\n wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n }\n\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n\n return originalSend.apply(this, args);\n };\n}\n\nfunction _wrapEventTarget(target: string): void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const globalObject = WINDOW as { [key: string]: any };\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = globalObject[target] && globalObject[target].prototype;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (original: VoidFunction,): (\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ) => void {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this: any,\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): (eventName: string, fn: EventListenerObject, capture?: boolean, secure?: boolean) => void {\n try {\n if (typeof fn.handleEvent === 'function') {\n // ESlint disable explanation:\n // First, it is generally safe to call `wrap` with an unbound function. Furthermore, using `.bind()` would\n // introduce a bug here, because bind returns a new function that doesn't have our\n // flags(like __sentry_original__) attached. `wrap` checks for those flags to avoid unnecessary wrapping.\n // Without those flags, every call to addEventListener wraps the function again, causing a memory leak.\n // eslint-disable-next-line @typescript-eslint/unbound-method\n fn.handleEvent = wrap(fn.handleEvent, {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target,\n },\n handled: false,\n type: 'instrument',\n },\n });\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.apply(this, [\n eventName,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn as any as WrappedFunction, {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target,\n },\n handled: false,\n type: 'instrument',\n },\n }),\n options,\n ]);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (\n originalRemoveEventListener: () => void,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): (this: any, eventName: string, fn: EventListenerObject, options?: boolean | EventListenerOptions) => () => void {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this: any,\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | EventListenerOptions,\n ): () => void {\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n const wrappedEventHandler = fn as unknown as WrappedFunction;\n try {\n const originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n } catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n },\n );\n}\n","// This was originally forked from https://github.com/csnover/TraceKit, and was largely\n// re - written as part of raven - js.\n//\n// This code was later copied to the JavaScript mono - repo and further modified and\n// refactored over the years.\n\n// Copyright (c) 2013 Onur Can Cakmak onur.cakmak@gmail.com and all TraceKit contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of this\n// software and associated documentation files(the 'Software'), to deal in the Software\n// without restriction, including without limitation the rights to use, copy, modify,\n// merge, publish, distribute, sublicense, and / or sell copies of the Software, and to\n// permit persons to whom the Software is furnished to do so, subject to the following\n// conditions:\n//\n// The above copyright notice and this permission notice shall be included in all copies\n// or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF\n// CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE\n// OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport type { StackFrame, StackLineParser, StackLineParserFn } from '@sentry/types';\nimport { createStackParser } from '@sentry/utils';\n\n// global reference to slice\nconst UNKNOWN_FUNCTION = '?';\n\nconst OPERA10_PRIORITY = 10;\nconst OPERA11_PRIORITY = 20;\nconst CHROME_PRIORITY = 30;\nconst WINJS_PRIORITY = 40;\nconst GECKO_PRIORITY = 50;\n\nfunction createFrame(filename: string, func: string, lineno?: number, colno?: number): StackFrame {\n const frame: StackFrame = {\n filename,\n function: func,\n in_app: true, // All browser frames are considered in_app\n };\n\n if (lineno !== undefined) {\n frame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n frame.colno = colno;\n }\n\n return frame;\n}\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nconst chromeRegex =\n /^\\s*at (?:(.+?\\)(?: \\[.+\\])?|.*?) ?\\((?:address at )?)?(?:async )?((?:|[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nconst chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\n// We cannot call this variable `chrome` because it can conflict with global `chrome` variable in certain environments\n// See: https://github.com/getsentry/sentry-javascript/issues/6880\nconst chromeStackParserFn: StackLineParserFn = line => {\n const parts = chromeRegex.exec(line);\n\n if (parts) {\n const isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n if (isEval) {\n const subMatch = chromeEvalRegex.exec(parts[2]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = subMatch[1]; // url\n parts[3] = subMatch[2]; // line\n parts[4] = subMatch[3]; // column\n }\n }\n\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n\n return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n }\n\n return;\n};\n\nexport const chromeStackLineParser: StackLineParser = [CHROME_PRIORITY, chromeStackParserFn];\n\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nconst geckoREgex =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:[-a-z]+)?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nconst gecko: StackLineParserFn = line => {\n const parts = geckoREgex.exec(line);\n\n if (parts) {\n const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval) {\n const subMatch = geckoEvalRegex.exec(parts[3]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || 'eval';\n parts[3] = subMatch[1];\n parts[4] = subMatch[2];\n parts[5] = ''; // no column when eval\n }\n }\n\n let filename = parts[3];\n let func = parts[1] || UNKNOWN_FUNCTION;\n [func, filename] = extractSafariExtensionDetails(func, filename);\n\n return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n }\n\n return;\n};\n\nexport const geckoStackLineParser: StackLineParser = [GECKO_PRIORITY, gecko];\n\nconst winjsRegex = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:[-a-z]+):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nconst winjs: StackLineParserFn = line => {\n const parts = winjsRegex.exec(line);\n\n return parts\n ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n : undefined;\n};\n\nexport const winjsStackLineParser: StackLineParser = [WINJS_PRIORITY, winjs];\n\nconst opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nconst opera10: StackLineParserFn = line => {\n const parts = opera10Regex.exec(line);\n return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nexport const opera10StackLineParser: StackLineParser = [OPERA10_PRIORITY, opera10];\n\nconst opera11Regex =\n / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nconst opera11: StackLineParserFn = line => {\n const parts = opera11Regex.exec(line);\n return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nexport const opera11StackLineParser: StackLineParser = [OPERA11_PRIORITY, opera11];\n\nexport const defaultStackLineParsers = [chromeStackLineParser, geckoStackLineParser, winjsStackLineParser];\n\nexport const defaultStackParser = createStackParser(...defaultStackLineParsers);\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nconst extractSafariExtensionDetails = (func: string, filename: string): [string, string] => {\n const isSafariExtension = func.indexOf('safari-extension') !== -1;\n const isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n\n return isSafariExtension || isSafariWebExtension\n ? [\n func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION,\n isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n ]\n : [func, filename];\n};\n","import { SentryError } from './error';\nimport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise } from './syncpromise';\n\nexport interface PromiseBuffer {\n // exposes the internal array so tests can assert on the state of it.\n // XXX: this really should not be public api.\n $: Array>;\n add(taskProducer: () => PromiseLike): PromiseLike;\n drain(timeout?: number): PromiseLike;\n}\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nexport function makePromiseBuffer(limit?: number): PromiseBuffer {\n const buffer: Array> = [];\n\n function isReady(): boolean {\n return limit === undefined || buffer.length < limit;\n }\n\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike\n * @returns Removed promise.\n */\n function remove(task: PromiseLike): PromiseLike {\n return buffer.splice(buffer.indexOf(task), 1)[0];\n }\n\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike; In previous versions this used to be `task:\n * PromiseLike`, but under that model, Promises were instantly created on the call-site and their executor\n * functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n * requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n * limit check.\n * @returns The original promise.\n */\n function add(taskProducer: () => PromiseLike): PromiseLike {\n if (!isReady()) {\n return rejectedSyncPromise(new SentryError('Not adding Promise because buffer limit was reached.'));\n }\n\n // start the task and add its promise to the queue\n const task = taskProducer();\n if (buffer.indexOf(task) === -1) {\n buffer.push(task);\n }\n void task\n .then(() => remove(task))\n // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n // have promises, so TS has to polyfill when down-compiling.)\n .then(null, () =>\n remove(task).then(null, () => {\n // We have to add another catch here because `remove()` starts a new promise chain.\n }),\n );\n return task;\n }\n\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n function drain(timeout?: number): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n let counter = buffer.length;\n\n if (!counter) {\n return resolve(true);\n }\n\n // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n const capturedSetTimeout = setTimeout(() => {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n\n // if all promises resolve in time, cancel the timer and resolve to `true`\n buffer.forEach(item => {\n void resolvedSyncPromise(item).then(() => {\n if (!--counter) {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n }\n }, reject);\n });\n });\n }\n\n return {\n $: buffer,\n add,\n drain,\n };\n}\n","import type { DataCategory, TransportMakeRequestResponse } from '@sentry/types';\n\n// Intentionally keeping the key broad, as we don't know for sure what rate limit headers get returned from backend\nexport type RateLimits = Record;\n\nexport const DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nexport function parseRetryAfterHeader(header: string, now: number = Date.now()): number {\n const headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n const headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that the given category is disabled until for rate limiting.\n * In case no category-specific limit is set but a general rate limit across all categories is active,\n * that time is returned.\n *\n * @return the time in ms that the category is disabled until or 0 if there's no active rate limit.\n */\nexport function disabledUntil(limits: RateLimits, dataCategory: DataCategory): number {\n return limits[dataCategory] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nexport function isRateLimited(limits: RateLimits, dataCategory: DataCategory, now: number = Date.now()): boolean {\n return disabledUntil(limits, dataCategory) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n *\n * @return the updated RateLimits object.\n */\nexport function updateRateLimits(\n limits: RateLimits,\n { statusCode, headers }: TransportMakeRequestResponse,\n now: number = Date.now(),\n): RateLimits {\n const updatedRateLimits: RateLimits = {\n ...limits,\n };\n\n // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n const rateLimitHeader = headers && headers['x-sentry-rate-limits'];\n const retryAfterHeader = headers && headers['retry-after'];\n\n if (rateLimitHeader) {\n /**\n * rate limit headers are of the form\n *
,
,..\n * where each
is of the form\n * : : : : \n * where\n * is a delay in seconds\n * is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * ;;...\n * is what's being limited (org, project, or key) - ignored by SDK\n * is an arbitrary string like \"org_quota\" - ignored by SDK\n * Semicolon-separated list of metric namespace identifiers. Defines which namespace(s) will be affected.\n * Only present if rate limit applies to the metric_bucket data category.\n */\n for (const limit of rateLimitHeader.trim().split(',')) {\n const [retryAfter, categories, , , namespaces] = limit.split(':', 5);\n const headerDelay = parseInt(retryAfter, 10);\n const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!categories) {\n updatedRateLimits.all = now + delay;\n } else {\n for (const category of categories.split(';')) {\n if (category === 'metric_bucket') {\n // namespaces will be present when category === 'metric_bucket'\n if (!namespaces || namespaces.split(';').includes('custom')) {\n updatedRateLimits[category] = now + delay;\n }\n } else {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n } else if (statusCode === 429) {\n updatedRateLimits.all = now + 60 * 1000;\n }\n\n return updatedRateLimits;\n}\n","import type {\n Envelope,\n EnvelopeItem,\n EnvelopeItemType,\n Event,\n EventDropReason,\n EventItem,\n InternalBaseTransportOptions,\n Transport,\n TransportMakeRequestResponse,\n TransportRequestExecutor,\n} from '@sentry/types';\nimport type { PromiseBuffer, RateLimits } from '@sentry/utils';\nimport {\n SentryError,\n createEnvelope,\n envelopeItemTypeToDataCategory,\n forEachEnvelopeItem,\n isRateLimited,\n logger,\n makePromiseBuffer,\n resolvedSyncPromise,\n serializeEnvelope,\n updateRateLimits,\n} from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\n\nexport const DEFAULT_TRANSPORT_BUFFER_SIZE = 30;\n\n/**\n * Creates an instance of a Sentry `Transport`\n *\n * @param options\n * @param makeRequest\n */\nexport function createTransport(\n options: InternalBaseTransportOptions,\n makeRequest: TransportRequestExecutor,\n buffer: PromiseBuffer = makePromiseBuffer(\n options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE,\n ),\n): Transport {\n let rateLimits: RateLimits = {};\n const flush = (timeout?: number): PromiseLike => buffer.drain(timeout);\n\n function send(envelope: Envelope): PromiseLike {\n const filteredEnvelopeItems: EnvelopeItem[] = [];\n\n // Drop rate limited items from envelope\n forEachEnvelopeItem(envelope, (item, type) => {\n const dataCategory = envelopeItemTypeToDataCategory(type);\n if (isRateLimited(rateLimits, dataCategory)) {\n const event: Event | undefined = getEventForEnvelopeItem(item, type);\n options.recordDroppedEvent('ratelimit_backoff', dataCategory, event);\n } else {\n filteredEnvelopeItems.push(item);\n }\n });\n\n // Skip sending if envelope is empty after filtering out rate limited events\n if (filteredEnvelopeItems.length === 0) {\n return resolvedSyncPromise();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const filteredEnvelope: Envelope = createEnvelope(envelope[0], filteredEnvelopeItems as any);\n\n // Creates client report for each item in an envelope\n const recordEnvelopeLoss = (reason: EventDropReason): void => {\n forEachEnvelopeItem(filteredEnvelope, (item, type) => {\n const event: Event | undefined = getEventForEnvelopeItem(item, type);\n options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type), event);\n });\n };\n\n const requestTask = (): PromiseLike =>\n makeRequest({ body: serializeEnvelope(filteredEnvelope, options.textEncoder) }).then(\n response => {\n // We don't want to throw on NOK responses, but we want to at least log them\n if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode >= 300)) {\n DEBUG_BUILD && logger.warn(`Sentry responded with status code ${response.statusCode} to sent event.`);\n }\n\n rateLimits = updateRateLimits(rateLimits, response);\n return response;\n },\n error => {\n recordEnvelopeLoss('network_error');\n throw error;\n },\n );\n\n return buffer.add(requestTask).then(\n result => result,\n error => {\n if (error instanceof SentryError) {\n DEBUG_BUILD && logger.error('Skipped sending event because buffer is full.');\n recordEnvelopeLoss('queue_overflow');\n return resolvedSyncPromise();\n } else {\n throw error;\n }\n },\n );\n }\n\n // We use this to identifify if the transport is the base transport\n // TODO (v8): Remove this again as we'll no longer need it\n send.__sentry__baseTransport__ = true;\n\n return {\n send,\n flush,\n };\n}\n\nfunction getEventForEnvelopeItem(item: Envelope[1][number], type: EnvelopeItemType): Event | undefined {\n if (type !== 'event' && type !== 'transaction') {\n return undefined;\n }\n\n return Array.isArray(item) ? (item as EventItem)[1] : undefined;\n}\n","import { isNativeFetch, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport { WINDOW } from '../helpers';\n\nlet cachedFetchImpl: FetchImpl | undefined = undefined;\n\nexport type FetchImpl = typeof fetch;\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nexport function getNativeFetchImplementation(): FetchImpl {\n if (cachedFetchImpl) {\n return cachedFetchImpl;\n }\n\n /* eslint-disable @typescript-eslint/unbound-method */\n\n // Fast path to avoid DOM I/O\n if (isNativeFetch(WINDOW.fetch)) {\n return (cachedFetchImpl = WINDOW.fetch.bind(WINDOW));\n }\n\n const document = WINDOW.document;\n let fetchImpl = WINDOW.fetch;\n // eslint-disable-next-line deprecation/deprecation\n if (document && typeof document.createElement === 'function') {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n const contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow.fetch) {\n fetchImpl = contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n } catch (e) {\n DEBUG_BUILD && logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n\n return (cachedFetchImpl = fetchImpl.bind(WINDOW));\n /* eslint-enable @typescript-eslint/unbound-method */\n}\n\n/** Clears cached fetch impl */\nexport function clearCachedFetchImplementation(): void {\n cachedFetchImpl = undefined;\n}\n","import { createTransport } from '@sentry/core';\nimport type { Transport, TransportMakeRequestResponse, TransportRequest } from '@sentry/types';\nimport { rejectedSyncPromise } from '@sentry/utils';\n\nimport type { BrowserTransportOptions } from './types';\nimport type { FetchImpl } from './utils';\nimport { clearCachedFetchImplementation, getNativeFetchImplementation } from './utils';\n\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\nexport function makeFetchTransport(\n options: BrowserTransportOptions,\n nativeFetch: FetchImpl = getNativeFetchImplementation(),\n): Transport {\n let pendingBodySize = 0;\n let pendingCount = 0;\n\n function makeRequest(request: TransportRequest): PromiseLike {\n const requestSize = request.body.length;\n pendingBodySize += requestSize;\n pendingCount++;\n\n const requestOptions: RequestInit = {\n body: request.body,\n method: 'POST',\n referrerPolicy: 'origin',\n headers: options.headers,\n // Outgoing requests are usually cancelled when navigating to a different page, causing a \"TypeError: Failed to\n // fetch\" error and sending a \"network_error\" client-outcome - in Chrome, the request status shows \"(cancelled)\".\n // The `keepalive` flag keeps outgoing requests alive, even when switching pages. We want this since we're\n // frequently sending events right before the user is switching pages (eg. whenfinishing navigation transactions).\n // Gotchas:\n // - `keepalive` isn't supported by Firefox\n // - As per spec (https://fetch.spec.whatwg.org/#http-network-or-cache-fetch):\n // If the sum of contentLength and inflightKeepaliveBytes is greater than 64 kibibytes, then return a network error.\n // We will therefore only activate the flag when we're below that limit.\n // There is also a limit of requests that can be open at the same time, so we also limit this to 15\n // See https://github.com/getsentry/sentry-javascript/pull/7553 for details\n keepalive: pendingBodySize <= 60_000 && pendingCount < 15,\n ...options.fetchOptions,\n };\n\n try {\n return nativeFetch(options.url, requestOptions).then(response => {\n pendingBodySize -= requestSize;\n pendingCount--;\n return {\n statusCode: response.status,\n headers: {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n },\n };\n });\n } catch (e) {\n clearCachedFetchImplementation();\n pendingBodySize -= requestSize;\n pendingCount--;\n return rejectedSyncPromise(e);\n }\n }\n\n return createTransport(options, makeRequest);\n}\n","import { createTransport } from '@sentry/core';\nimport type { Transport, TransportMakeRequestResponse, TransportRequest } from '@sentry/types';\nimport { SyncPromise } from '@sentry/utils';\n\nimport type { BrowserTransportOptions } from './types';\n\n/**\n * The DONE ready state for XmlHttpRequest\n *\n * Defining it here as a constant b/c XMLHttpRequest.DONE is not always defined\n * (e.g. during testing, it is `undefined`)\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState}\n */\nconst XHR_READYSTATE_DONE = 4;\n\n/**\n * Creates a Transport that uses the XMLHttpRequest API to send events to Sentry.\n */\nexport function makeXHRTransport(options: BrowserTransportOptions): Transport {\n function makeRequest(request: TransportRequest): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onerror = reject;\n\n xhr.onreadystatechange = (): void => {\n if (xhr.readyState === XHR_READYSTATE_DONE) {\n resolve({\n statusCode: xhr.status,\n headers: {\n 'x-sentry-rate-limits': xhr.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': xhr.getResponseHeader('Retry-After'),\n },\n });\n }\n };\n\n xhr.open('POST', options.url);\n\n for (const header in options.headers) {\n if (Object.prototype.hasOwnProperty.call(options.headers, header)) {\n xhr.setRequestHeader(header, options.headers[header]);\n }\n }\n\n xhr.send(request.body);\n });\n }\n\n return createTransport(options, makeRequest);\n}\n","import type { Hub } from '@sentry/core';\nimport { functionToStringIntegration, inboundFiltersIntegration } from '@sentry/core';\nimport {\n captureSession,\n getClient,\n getCurrentHub,\n getIntegrationsToSetup,\n getReportDialogEndpoint,\n initAndBind,\n startSession,\n} from '@sentry/core';\nimport type { Integration, Options, UserFeedback } from '@sentry/types';\nimport {\n addHistoryInstrumentationHandler,\n logger,\n stackParserFromStackParserOptions,\n supportsFetch,\n} from '@sentry/utils';\n\nimport type { BrowserClientOptions, BrowserOptions } from './client';\nimport { BrowserClient } from './client';\nimport { DEBUG_BUILD } from './debug-build';\nimport type { ReportDialogOptions } from './helpers';\nimport { WINDOW, wrap as internalWrap } from './helpers';\nimport { breadcrumbsIntegration } from './integrations/breadcrumbs';\nimport { dedupeIntegration } from './integrations/dedupe';\nimport { globalHandlersIntegration } from './integrations/globalhandlers';\nimport { httpContextIntegration } from './integrations/httpcontext';\nimport { linkedErrorsIntegration } from './integrations/linkederrors';\nimport { browserApiErrorsIntegration } from './integrations/trycatch';\nimport { defaultStackParser } from './stack-parsers';\nimport { makeFetchTransport, makeXHRTransport } from './transports';\n\n/** @deprecated Use `getDefaultIntegrations(options)` instead. */\nexport const defaultIntegrations = [\n inboundFiltersIntegration(),\n functionToStringIntegration(),\n browserApiErrorsIntegration(),\n breadcrumbsIntegration(),\n globalHandlersIntegration(),\n linkedErrorsIntegration(),\n dedupeIntegration(),\n httpContextIntegration(),\n];\n\n/** Get the default integrations for the browser SDK. */\nexport function getDefaultIntegrations(_options: Options): Integration[] {\n // We return a copy of the defaultIntegrations here to avoid mutating this\n return [\n // eslint-disable-next-line deprecation/deprecation\n ...defaultIntegrations,\n ];\n}\n\n/**\n * A magic string that build tooling can leverage in order to inject a release value into the SDK.\n */\ndeclare const __SENTRY_RELEASE__: string | undefined;\n\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nexport function init(options: BrowserOptions = {}): void {\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = getDefaultIntegrations(options);\n }\n if (options.release === undefined) {\n // This allows build tooling to find-and-replace __SENTRY_RELEASE__ to inject a release value\n if (typeof __SENTRY_RELEASE__ === 'string') {\n options.release = __SENTRY_RELEASE__;\n }\n\n // This supports the variable that sentry-webpack-plugin injects\n if (WINDOW.SENTRY_RELEASE && WINDOW.SENTRY_RELEASE.id) {\n options.release = WINDOW.SENTRY_RELEASE.id;\n }\n }\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = true;\n }\n if (options.sendClientReports === undefined) {\n options.sendClientReports = true;\n }\n\n const clientOptions: BrowserClientOptions = {\n ...options,\n stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n integrations: getIntegrationsToSetup(options),\n transport: options.transport || (supportsFetch() ? makeFetchTransport : makeXHRTransport),\n };\n\n initAndBind(BrowserClient, clientOptions);\n\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n}\n\ntype NewReportDialogOptions = ReportDialogOptions & { eventId: string }; // eslint-disable-line\n\ninterface ShowReportDialogFunction {\n /**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\n (options: NewReportDialogOptions): void;\n\n /**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n *\n * @deprecated Please always pass an `options` argument with `eventId`. The `hub` argument will not be used in the next version of the SDK.\n */\n // eslint-disable-next-line deprecation/deprecation\n (options?: ReportDialogOptions, hub?: Hub): void;\n}\n\nexport const showReportDialog: ShowReportDialogFunction = (\n // eslint-disable-next-line deprecation/deprecation\n options: ReportDialogOptions = {},\n // eslint-disable-next-line deprecation/deprecation\n hub: Hub = getCurrentHub(),\n) => {\n // doesn't work without a document (React Native)\n if (!WINDOW.document) {\n DEBUG_BUILD && logger.error('Global document not defined in showReportDialog call');\n return;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n const { client, scope } = hub.getStackTop();\n const dsn = options.dsn || (client && client.getDsn());\n if (!dsn) {\n DEBUG_BUILD && logger.error('DSN not configured for showReportDialog call');\n return;\n }\n\n if (scope) {\n options.user = {\n ...scope.getUser(),\n ...options.user,\n };\n }\n\n if (!options.eventId) {\n // eslint-disable-next-line deprecation/deprecation\n options.eventId = hub.lastEventId();\n }\n\n const script = WINDOW.document.createElement('script');\n script.async = true;\n script.crossOrigin = 'anonymous';\n script.src = getReportDialogEndpoint(dsn, options);\n\n if (options.onLoad) {\n script.onload = options.onLoad;\n }\n\n const { onClose } = options;\n if (onClose) {\n const reportDialogClosedMessageHandler = (event: MessageEvent): void => {\n if (event.data === '__sentry_reportdialog_closed__') {\n try {\n onClose();\n } finally {\n WINDOW.removeEventListener('message', reportDialogClosedMessageHandler);\n }\n }\n };\n WINDOW.addEventListener('message', reportDialogClosedMessageHandler);\n }\n\n const injectionPoint = WINDOW.document.head || WINDOW.document.body;\n if (injectionPoint) {\n injectionPoint.appendChild(script);\n } else {\n DEBUG_BUILD && logger.error('Not injecting report dialog. No injection point found in HTML');\n }\n};\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function forceLoad(): void {\n // Noop\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function onLoad(callback: () => void): void {\n callback();\n}\n\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @deprecated This function will be removed in v8.\n * It is not part of Sentry's official API and it's easily replaceable by using a try/catch block\n * and calling Sentry.captureException.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\n// TODO(v8): Remove this function\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function wrap(fn: (...args: any) => any): any {\n return internalWrap(fn)();\n}\n\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking(): void {\n if (typeof WINDOW.document === 'undefined') {\n DEBUG_BUILD && logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n\n // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n startSession({ ignoreDuration: true });\n captureSession();\n\n // We want to create a session for every navigation as well\n addHistoryInstrumentationHandler(({ from, to }) => {\n // Don't create an additional session for the initial route or if the location did not change\n if (from !== undefined && from !== to) {\n startSession({ ignoreDuration: true });\n captureSession();\n }\n });\n}\n\n/**\n * Captures user feedback and sends it to Sentry.\n */\nexport function captureUserFeedback(feedback: UserFeedback): void {\n const client = getClient();\n if (client) {\n client.captureUserFeedback(feedback);\n }\n}\n","import type { MeasurementUnit, Span } from '@sentry/types';\nimport type { MetricSummary } from '@sentry/types';\nimport type { Primitive } from '@sentry/types';\nimport { dropUndefinedKeys } from '@sentry/utils';\nimport { getActiveSpan } from '../tracing';\nimport type { MetricType } from './types';\n\n/**\n * key: bucketKey\n * value: [exportKey, MetricSummary]\n */\ntype MetricSummaryStorage = Map;\n\nlet SPAN_METRIC_SUMMARY: WeakMap | undefined;\n\nfunction getMetricStorageForSpan(span: Span): MetricSummaryStorage | undefined {\n return SPAN_METRIC_SUMMARY ? SPAN_METRIC_SUMMARY.get(span) : undefined;\n}\n\n/**\n * Fetches the metric summary if it exists for the passed span\n */\nexport function getMetricSummaryJsonForSpan(span: Span): Record> | undefined {\n const storage = getMetricStorageForSpan(span);\n\n if (!storage) {\n return undefined;\n }\n const output: Record> = {};\n\n for (const [, [exportKey, summary]] of storage) {\n if (!output[exportKey]) {\n output[exportKey] = [];\n }\n\n output[exportKey].push(dropUndefinedKeys(summary));\n }\n\n return output;\n}\n\n/**\n * Updates the metric summary on the currently active span\n */\nexport function updateMetricSummaryOnActiveSpan(\n metricType: MetricType,\n sanitizedName: string,\n value: number,\n unit: MeasurementUnit,\n tags: Record,\n bucketKey: string,\n): void {\n const span = getActiveSpan();\n if (span) {\n const storage = getMetricStorageForSpan(span) || new Map();\n\n const exportKey = `${metricType}:${sanitizedName}@${unit}`;\n const bucketItem = storage.get(bucketKey);\n\n if (bucketItem) {\n const [, summary] = bucketItem;\n storage.set(bucketKey, [\n exportKey,\n {\n min: Math.min(summary.min, value),\n max: Math.max(summary.max, value),\n count: (summary.count += 1),\n sum: (summary.sum += value),\n tags: summary.tags,\n },\n ]);\n } else {\n storage.set(bucketKey, [\n exportKey,\n {\n min: value,\n max: value,\n count: 1,\n sum: value,\n tags,\n },\n ]);\n }\n\n if (!SPAN_METRIC_SUMMARY) {\n SPAN_METRIC_SUMMARY = new WeakMap();\n }\n\n SPAN_METRIC_SUMMARY.set(span, storage);\n }\n}\n","/**\n * Use this attribute to represent the source of a span.\n * Should be one of: custom, url, route, view, component, task, unknown\n *\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_SOURCE = 'sentry.source';\n\n/**\n * Use this attribute to represent the sample rate used for a span.\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE = 'sentry.sample_rate';\n\n/**\n * Use this attribute to represent the operation of a span.\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_OP = 'sentry.op';\n\n/**\n * Use this attribute to represent the origin of a span.\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN = 'sentry.origin';\n\n/**\n * The id of the profile that this span occured in.\n */\nexport const SEMANTIC_ATTRIBUTE_PROFILE_ID = 'profile_id';\n","import type { Span } from '@sentry/types';\n\n/** The status of an Span.\n *\n * @deprecated Use string literals - if you require type casting, cast to SpanStatusType type\n */\nexport enum SpanStatus {\n /** The operation completed successfully. */\n Ok = 'ok',\n /** Deadline expired before operation could complete. */\n DeadlineExceeded = 'deadline_exceeded',\n /** 401 Unauthorized (actually does mean unauthenticated according to RFC 7235) */\n Unauthenticated = 'unauthenticated',\n /** 403 Forbidden */\n PermissionDenied = 'permission_denied',\n /** 404 Not Found. Some requested entity (file or directory) was not found. */\n NotFound = 'not_found',\n /** 429 Too Many Requests */\n ResourceExhausted = 'resource_exhausted',\n /** Client specified an invalid argument. 4xx. */\n InvalidArgument = 'invalid_argument',\n /** 501 Not Implemented */\n Unimplemented = 'unimplemented',\n /** 503 Service Unavailable */\n Unavailable = 'unavailable',\n /** Other/generic 5xx. */\n InternalError = 'internal_error',\n /** Unknown. Any non-standard HTTP status code. */\n UnknownError = 'unknown_error',\n /** The operation was cancelled (typically by the user). */\n Cancelled = 'cancelled',\n /** Already exists (409) */\n AlreadyExists = 'already_exists',\n /** Operation was rejected because the system is not in a state required for the operation's */\n FailedPrecondition = 'failed_precondition',\n /** The operation was aborted, typically due to a concurrency issue. */\n Aborted = 'aborted',\n /** Operation was attempted past the valid range. */\n OutOfRange = 'out_of_range',\n /** Unrecoverable data loss or corruption */\n DataLoss = 'data_loss',\n}\n\nexport type SpanStatusType =\n /** The operation completed successfully. */\n | 'ok'\n /** Deadline expired before operation could complete. */\n | 'deadline_exceeded'\n /** 401 Unauthorized (actually does mean unauthenticated according to RFC 7235) */\n | 'unauthenticated'\n /** 403 Forbidden */\n | 'permission_denied'\n /** 404 Not Found. Some requested entity (file or directory) was not found. */\n | 'not_found'\n /** 429 Too Many Requests */\n | 'resource_exhausted'\n /** Client specified an invalid argument. 4xx. */\n | 'invalid_argument'\n /** 501 Not Implemented */\n | 'unimplemented'\n /** 503 Service Unavailable */\n | 'unavailable'\n /** Other/generic 5xx. */\n | 'internal_error'\n /** Unknown. Any non-standard HTTP status code. */\n | 'unknown_error'\n /** The operation was cancelled (typically by the user). */\n | 'cancelled'\n /** Already exists (409) */\n | 'already_exists'\n /** Operation was rejected because the system is not in a state required for the operation's */\n | 'failed_precondition'\n /** The operation was aborted, typically due to a concurrency issue. */\n | 'aborted'\n /** Operation was attempted past the valid range. */\n | 'out_of_range'\n /** Unrecoverable data loss or corruption */\n | 'data_loss';\n\n/**\n * Converts a HTTP status code into a {@link SpanStatusType}.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or unknown_error.\n */\nexport function getSpanStatusFromHttpCode(httpStatus: number): SpanStatusType {\n if (httpStatus < 400 && httpStatus >= 100) {\n return 'ok';\n }\n\n if (httpStatus >= 400 && httpStatus < 500) {\n switch (httpStatus) {\n case 401:\n return 'unauthenticated';\n case 403:\n return 'permission_denied';\n case 404:\n return 'not_found';\n case 409:\n return 'already_exists';\n case 413:\n return 'failed_precondition';\n case 429:\n return 'resource_exhausted';\n default:\n return 'invalid_argument';\n }\n }\n\n if (httpStatus >= 500 && httpStatus < 600) {\n switch (httpStatus) {\n case 501:\n return 'unimplemented';\n case 503:\n return 'unavailable';\n case 504:\n return 'deadline_exceeded';\n default:\n return 'internal_error';\n }\n }\n\n return 'unknown_error';\n}\n\n/**\n * Converts a HTTP status code into a {@link SpanStatusType}.\n *\n * @deprecated Use {@link spanStatusFromHttpCode} instead.\n * This export will be removed in v8 as the signature contains a typo.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or unknown_error.\n */\nexport const spanStatusfromHttpCode = getSpanStatusFromHttpCode;\n\n/**\n * Sets the Http status attributes on the current span based on the http code.\n * Additionally, the span's status is updated, depending on the http code.\n */\nexport function setHttpStatus(span: Span, httpStatus: number): void {\n // TODO (v8): Remove these calls\n // Relay does not require us to send the status code as a tag\n // For now, just because users might expect it to land as a tag we keep sending it.\n // Same with data.\n // In v8, we replace both, simply with\n // span.setAttribute('http.response.status_code', httpStatus);\n\n // eslint-disable-next-line deprecation/deprecation\n span.setTag('http.status_code', String(httpStatus));\n // eslint-disable-next-line deprecation/deprecation\n span.setData('http.response.status_code', httpStatus);\n\n const spanStatus = getSpanStatusFromHttpCode(httpStatus);\n if (spanStatus !== 'unknown_error') {\n span.setStatus(spanStatus);\n }\n}\n","/* eslint-disable max-lines */\nimport type {\n Instrumenter,\n Measurements,\n Primitive,\n Span as SpanInterface,\n SpanAttributeValue,\n SpanAttributes,\n SpanContext,\n SpanContextData,\n SpanJSON,\n SpanOrigin,\n SpanTimeInput,\n TraceContext,\n Transaction,\n} from '@sentry/types';\nimport { dropUndefinedKeys, logger, timestampInSeconds, uuid4 } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport { getMetricSummaryJsonForSpan } from '../metrics/metric-summary';\nimport {\n SEMANTIC_ATTRIBUTE_PROFILE_ID,\n SEMANTIC_ATTRIBUTE_SENTRY_OP,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n} from '../semanticAttributes';\nimport { getRootSpan } from '../utils/getRootSpan';\nimport {\n TRACE_FLAG_NONE,\n TRACE_FLAG_SAMPLED,\n spanTimeInputToSeconds,\n spanToJSON,\n spanToTraceContext,\n spanToTraceHeader,\n} from '../utils/spanUtils';\nimport type { SpanStatusType } from './spanstatus';\nimport { setHttpStatus } from './spanstatus';\n\n/**\n * Keeps track of finished spans for a given transaction\n * @internal\n * @hideconstructor\n * @hidden\n */\nexport class SpanRecorder {\n public spans: Span[];\n\n private readonly _maxlen: number;\n\n public constructor(maxlen: number = 1000) {\n this._maxlen = maxlen;\n this.spans = [];\n }\n\n /**\n * This is just so that we don't run out of memory while recording a lot\n * of spans. At some point we just stop and flush out the start of the\n * trace tree (i.e.the first n spans with the smallest\n * start_timestamp).\n */\n public add(span: Span): void {\n if (this.spans.length > this._maxlen) {\n // eslint-disable-next-line deprecation/deprecation\n span.spanRecorder = undefined;\n } else {\n this.spans.push(span);\n }\n }\n}\n\n/**\n * Span contains all data about a span\n */\nexport class Span implements SpanInterface {\n /**\n * Tags for the span.\n * @deprecated Use `spanToJSON(span).atttributes` instead.\n */\n public tags: { [key: string]: Primitive };\n\n /**\n * Data for the span.\n * @deprecated Use `spanToJSON(span).atttributes` instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public data: { [key: string]: any };\n\n /**\n * List of spans that were finalized\n *\n * @deprecated This property will no longer be public. Span recording will be handled internally.\n */\n public spanRecorder?: SpanRecorder;\n\n /**\n * @inheritDoc\n * @deprecated Use top level `Sentry.getRootSpan()` instead\n */\n public transaction?: Transaction;\n\n /**\n * The instrumenter that created this span.\n *\n * TODO (v8): This can probably be replaced by an `instanceOf` check of the span class.\n * the instrumenter can only be sentry or otel so we can check the span instance\n * to verify which one it is and remove this field entirely.\n *\n * @deprecated This field will be removed.\n */\n public instrumenter: Instrumenter;\n\n protected _traceId: string;\n protected _spanId: string;\n protected _parentSpanId?: string | undefined;\n protected _sampled: boolean | undefined;\n protected _name?: string | undefined;\n protected _attributes: SpanAttributes;\n /** Epoch timestamp in seconds when the span started. */\n protected _startTime: number;\n /** Epoch timestamp in seconds when the span ended. */\n protected _endTime?: number | undefined;\n /** Internal keeper of the status */\n protected _status?: SpanStatusType | string | undefined;\n protected _exclusiveTime?: number;\n\n protected _measurements: Measurements;\n\n private _logMessage?: string;\n\n /**\n * You should never call the constructor manually, always use `Sentry.startTransaction()`\n * or call `startChild()` on an existing span.\n * @internal\n * @hideconstructor\n * @hidden\n */\n public constructor(spanContext: SpanContext = {}) {\n this._traceId = spanContext.traceId || uuid4();\n this._spanId = spanContext.spanId || uuid4().substring(16);\n this._startTime = spanContext.startTimestamp || timestampInSeconds();\n // eslint-disable-next-line deprecation/deprecation\n this.tags = spanContext.tags ? { ...spanContext.tags } : {};\n // eslint-disable-next-line deprecation/deprecation\n this.data = spanContext.data ? { ...spanContext.data } : {};\n // eslint-disable-next-line deprecation/deprecation\n this.instrumenter = spanContext.instrumenter || 'sentry';\n\n this._attributes = {};\n this.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: spanContext.origin || 'manual',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: spanContext.op,\n ...spanContext.attributes,\n });\n\n // eslint-disable-next-line deprecation/deprecation\n this._name = spanContext.name || spanContext.description;\n\n if (spanContext.parentSpanId) {\n this._parentSpanId = spanContext.parentSpanId;\n }\n // We want to include booleans as well here\n if ('sampled' in spanContext) {\n this._sampled = spanContext.sampled;\n }\n if (spanContext.status) {\n this._status = spanContext.status;\n }\n if (spanContext.endTimestamp) {\n this._endTime = spanContext.endTimestamp;\n }\n if (spanContext.exclusiveTime !== undefined) {\n this._exclusiveTime = spanContext.exclusiveTime;\n }\n this._measurements = spanContext.measurements ? { ...spanContext.measurements } : {};\n }\n\n // This rule conflicts with another eslint rule :(\n /* eslint-disable @typescript-eslint/member-ordering */\n\n /**\n * An alias for `description` of the Span.\n * @deprecated Use `spanToJSON(span).description` instead.\n */\n public get name(): string {\n return this._name || '';\n }\n\n /**\n * Update the name of the span.\n * @deprecated Use `spanToJSON(span).description` instead.\n */\n public set name(name: string) {\n this.updateName(name);\n }\n\n /**\n * Get the description of the Span.\n * @deprecated Use `spanToJSON(span).description` instead.\n */\n public get description(): string | undefined {\n return this._name;\n }\n\n /**\n * Get the description of the Span.\n * @deprecated Use `spanToJSON(span).description` instead.\n */\n public set description(description: string | undefined) {\n this._name = description;\n }\n\n /**\n * The ID of the trace.\n * @deprecated Use `spanContext().traceId` instead.\n */\n public get traceId(): string {\n return this._traceId;\n }\n\n /**\n * The ID of the trace.\n * @deprecated You cannot update the traceId of a span after span creation.\n */\n public set traceId(traceId: string) {\n this._traceId = traceId;\n }\n\n /**\n * The ID of the span.\n * @deprecated Use `spanContext().spanId` instead.\n */\n public get spanId(): string {\n return this._spanId;\n }\n\n /**\n * The ID of the span.\n * @deprecated You cannot update the spanId of a span after span creation.\n */\n public set spanId(spanId: string) {\n this._spanId = spanId;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `startSpan` functions instead.\n */\n public set parentSpanId(string) {\n this._parentSpanId = string;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `spanToJSON(span).parent_span_id` instead.\n */\n public get parentSpanId(): string | undefined {\n return this._parentSpanId;\n }\n\n /**\n * Was this span chosen to be sent as part of the sample?\n * @deprecated Use `isRecording()` instead.\n */\n public get sampled(): boolean | undefined {\n return this._sampled;\n }\n\n /**\n * Was this span chosen to be sent as part of the sample?\n * @deprecated You cannot update the sampling decision of a span after span creation.\n */\n public set sampled(sampled: boolean | undefined) {\n this._sampled = sampled;\n }\n\n /**\n * Attributes for the span.\n * @deprecated Use `spanToJSON(span).atttributes` instead.\n */\n public get attributes(): SpanAttributes {\n return this._attributes;\n }\n\n /**\n * Attributes for the span.\n * @deprecated Use `setAttributes()` instead.\n */\n public set attributes(attributes: SpanAttributes) {\n this._attributes = attributes;\n }\n\n /**\n * Timestamp in seconds (epoch time) indicating when the span started.\n * @deprecated Use `spanToJSON()` instead.\n */\n public get startTimestamp(): number {\n return this._startTime;\n }\n\n /**\n * Timestamp in seconds (epoch time) indicating when the span started.\n * @deprecated In v8, you will not be able to update the span start time after creation.\n */\n public set startTimestamp(startTime: number) {\n this._startTime = startTime;\n }\n\n /**\n * Timestamp in seconds when the span ended.\n * @deprecated Use `spanToJSON()` instead.\n */\n public get endTimestamp(): number | undefined {\n return this._endTime;\n }\n\n /**\n * Timestamp in seconds when the span ended.\n * @deprecated Set the end time via `span.end()` instead.\n */\n public set endTimestamp(endTime: number | undefined) {\n this._endTime = endTime;\n }\n\n /**\n * The status of the span.\n *\n * @deprecated Use `spanToJSON().status` instead to get the status.\n */\n public get status(): SpanStatusType | string | undefined {\n return this._status;\n }\n\n /**\n * The status of the span.\n *\n * @deprecated Use `.setStatus()` instead to set or update the status.\n */\n public set status(status: SpanStatusType | string | undefined) {\n this._status = status;\n }\n\n /**\n * Operation of the span\n *\n * @deprecated Use `spanToJSON().op` to read the op instead.\n */\n public get op(): string | undefined {\n return this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] as string | undefined;\n }\n\n /**\n * Operation of the span\n *\n * @deprecated Use `startSpan()` functions to set or `span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'op')\n * to update the span instead.\n */\n public set op(op: string | undefined) {\n this.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, op);\n }\n\n /**\n * The origin of the span, giving context about what created the span.\n *\n * @deprecated Use `spanToJSON().origin` to read the origin instead.\n */\n public get origin(): SpanOrigin | undefined {\n return this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] as SpanOrigin | undefined;\n }\n\n /**\n * The origin of the span, giving context about what created the span.\n *\n * @deprecated Use `startSpan()` functions to set the origin instead.\n */\n public set origin(origin: SpanOrigin | undefined) {\n this.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, origin);\n }\n\n /* eslint-enable @typescript-eslint/member-ordering */\n\n /** @inheritdoc */\n public spanContext(): SpanContextData {\n const { _spanId: spanId, _traceId: traceId, _sampled: sampled } = this;\n return {\n spanId,\n traceId,\n traceFlags: sampled ? TRACE_FLAG_SAMPLED : TRACE_FLAG_NONE,\n };\n }\n\n /**\n * Creates a new `Span` while setting the current `Span.id` as `parentSpanId`.\n * Also the `sampled` decision will be inherited.\n *\n * @deprecated Use `startSpan()`, `startSpanManual()` or `startInactiveSpan()` instead.\n */\n public startChild(\n spanContext?: Pick>,\n ): SpanInterface {\n const childSpan = new Span({\n ...spanContext,\n parentSpanId: this._spanId,\n sampled: this._sampled,\n traceId: this._traceId,\n });\n\n // eslint-disable-next-line deprecation/deprecation\n childSpan.spanRecorder = this.spanRecorder;\n // eslint-disable-next-line deprecation/deprecation\n if (childSpan.spanRecorder) {\n // eslint-disable-next-line deprecation/deprecation\n childSpan.spanRecorder.add(childSpan);\n }\n\n const rootSpan = getRootSpan(this);\n // TODO: still set span.transaction here until we have a more permanent solution\n // Probably similarly to the weakmap we hold in node-experimental\n // eslint-disable-next-line deprecation/deprecation\n childSpan.transaction = rootSpan as Transaction;\n\n if (DEBUG_BUILD && rootSpan) {\n const opStr = (spanContext && spanContext.op) || '< unknown op >';\n const nameStr = spanToJSON(childSpan).description || '< unknown name >';\n const idStr = rootSpan.spanContext().spanId;\n\n const logMessage = `[Tracing] Starting '${opStr}' span on transaction '${nameStr}' (${idStr}).`;\n logger.log(logMessage);\n this._logMessage = logMessage;\n }\n\n return childSpan;\n }\n\n /**\n * Sets the tag attribute on the current span.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key Tag key\n * @param value Tag value\n * @deprecated Use `setAttribute()` instead.\n */\n public setTag(key: string, value: Primitive): this {\n // eslint-disable-next-line deprecation/deprecation\n this.tags = { ...this.tags, [key]: value };\n return this;\n }\n\n /**\n * Sets the data attribute on the current span\n * @param key Data key\n * @param value Data value\n * @deprecated Use `setAttribute()` instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public setData(key: string, value: any): this {\n // eslint-disable-next-line deprecation/deprecation\n this.data = { ...this.data, [key]: value };\n return this;\n }\n\n /** @inheritdoc */\n public setAttribute(key: string, value: SpanAttributeValue | undefined): void {\n if (value === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._attributes[key];\n } else {\n this._attributes[key] = value;\n }\n }\n\n /** @inheritdoc */\n public setAttributes(attributes: SpanAttributes): void {\n Object.keys(attributes).forEach(key => this.setAttribute(key, attributes[key]));\n }\n\n /**\n * @inheritDoc\n */\n public setStatus(value: SpanStatusType): this {\n this._status = value;\n return this;\n }\n\n /**\n * @inheritDoc\n * @deprecated Use top-level `setHttpStatus()` instead.\n */\n public setHttpStatus(httpStatus: number): this {\n setHttpStatus(this, httpStatus);\n return this;\n }\n\n /**\n * @inheritdoc\n *\n * @deprecated Use `.updateName()` instead.\n */\n public setName(name: string): void {\n this.updateName(name);\n }\n\n /**\n * @inheritDoc\n */\n public updateName(name: string): this {\n this._name = name;\n return this;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `spanToJSON(span).status === 'ok'` instead.\n */\n public isSuccess(): boolean {\n return this._status === 'ok';\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `.end()` instead.\n */\n public finish(endTimestamp?: number): void {\n return this.end(endTimestamp);\n }\n\n /** @inheritdoc */\n public end(endTimestamp?: SpanTimeInput): void {\n // If already ended, skip\n if (this._endTime) {\n return;\n }\n const rootSpan = getRootSpan(this);\n if (\n DEBUG_BUILD &&\n // Don't call this for transactions\n rootSpan &&\n rootSpan.spanContext().spanId !== this._spanId\n ) {\n const logMessage = this._logMessage;\n if (logMessage) {\n logger.log((logMessage as string).replace('Starting', 'Finishing'));\n }\n }\n\n this._endTime = spanTimeInputToSeconds(endTimestamp);\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `spanToTraceHeader()` instead.\n */\n public toTraceparent(): string {\n return spanToTraceHeader(this);\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `spanToJSON()` or access the fields directly instead.\n */\n public toContext(): SpanContext {\n return dropUndefinedKeys({\n data: this._getData(),\n description: this._name,\n endTimestamp: this._endTime,\n // eslint-disable-next-line deprecation/deprecation\n op: this.op,\n parentSpanId: this._parentSpanId,\n sampled: this._sampled,\n spanId: this._spanId,\n startTimestamp: this._startTime,\n status: this._status,\n // eslint-disable-next-line deprecation/deprecation\n tags: this.tags,\n traceId: this._traceId,\n });\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Update the fields directly instead.\n */\n public updateWithContext(spanContext: SpanContext): this {\n // eslint-disable-next-line deprecation/deprecation\n this.data = spanContext.data || {};\n // eslint-disable-next-line deprecation/deprecation\n this._name = spanContext.name || spanContext.description;\n this._endTime = spanContext.endTimestamp;\n // eslint-disable-next-line deprecation/deprecation\n this.op = spanContext.op;\n this._parentSpanId = spanContext.parentSpanId;\n this._sampled = spanContext.sampled;\n this._spanId = spanContext.spanId || this._spanId;\n this._startTime = spanContext.startTimestamp || this._startTime;\n this._status = spanContext.status;\n // eslint-disable-next-line deprecation/deprecation\n this.tags = spanContext.tags || {};\n this._traceId = spanContext.traceId || this._traceId;\n\n return this;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `spanToTraceContext()` util function instead.\n */\n public getTraceContext(): TraceContext {\n return spanToTraceContext(this);\n }\n\n /**\n * Get JSON representation of this span.\n *\n * @hidden\n * @internal This method is purely for internal purposes and should not be used outside\n * of SDK code. If you need to get a JSON representation of a span,\n * use `spanToJSON(span)` instead.\n */\n public getSpanJSON(): SpanJSON {\n return dropUndefinedKeys({\n data: this._getData(),\n description: this._name,\n op: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] as string | undefined,\n parent_span_id: this._parentSpanId,\n span_id: this._spanId,\n start_timestamp: this._startTime,\n status: this._status,\n // eslint-disable-next-line deprecation/deprecation\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n timestamp: this._endTime,\n trace_id: this._traceId,\n origin: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] as SpanOrigin | undefined,\n _metrics_summary: getMetricSummaryJsonForSpan(this),\n profile_id: this._attributes[SEMANTIC_ATTRIBUTE_PROFILE_ID] as string | undefined,\n exclusive_time: this._exclusiveTime,\n measurements: Object.keys(this._measurements).length > 0 ? this._measurements : undefined,\n });\n }\n\n /** @inheritdoc */\n public isRecording(): boolean {\n return !this._endTime && !!this._sampled;\n }\n\n /**\n * Convert the object to JSON.\n * @deprecated Use `spanToJSON(span)` instead.\n */\n public toJSON(): SpanJSON {\n return this.getSpanJSON();\n }\n\n /**\n * Get the merged data for this span.\n * For now, this combines `data` and `attributes` together,\n * until eventually we can ingest `attributes` directly.\n */\n private _getData():\n | {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n }\n | undefined {\n // eslint-disable-next-line deprecation/deprecation\n const { data, _attributes: attributes } = this;\n\n const hasData = Object.keys(data).length > 0;\n const hasAttributes = Object.keys(attributes).length > 0;\n\n if (!hasData && !hasAttributes) {\n return undefined;\n }\n\n if (hasData && hasAttributes) {\n return {\n ...data,\n ...attributes,\n };\n }\n\n return hasData ? data : attributes;\n }\n}\n","import type { Options } from '@sentry/types';\n\nimport { getClient } from '../exports';\n\n// Treeshakable guard to remove all code related to tracing\ndeclare const __SENTRY_TRACING__: boolean | undefined;\n\n/**\n * Determines if tracing is currently enabled.\n *\n * Tracing is enabled when at least one of `tracesSampleRate` and `tracesSampler` is defined in the SDK config.\n */\nexport function hasTracingEnabled(\n maybeOptions?: Pick | undefined,\n): boolean {\n if (typeof __SENTRY_TRACING__ === 'boolean' && !__SENTRY_TRACING__) {\n return false;\n }\n\n const client = getClient();\n const options = maybeOptions || (client && client.getOptions());\n return !!options && (options.enableTracing || 'tracesSampleRate' in options || 'tracesSampler' in options);\n}\n","import type { Scope, Span, SpanTimeInput, StartSpanOptions, TransactionContext } from '@sentry/types';\n\nimport { addNonEnumerableProperty, dropUndefinedKeys, logger, tracingContextFromHeaders } from '@sentry/utils';\nimport { getDynamicSamplingContextFromSpan } from '.';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport { getCurrentScope, withScope } from '../exports';\nimport type { Hub } from '../hub';\nimport { runWithAsyncContext } from '../hub';\nimport { getIsolationScope } from '../hub';\nimport { getCurrentHub } from '../hub';\nimport type { Scope as ScopeClass } from '../scope';\nimport { handleCallbackErrors } from '../utils/handleCallbackErrors';\nimport { hasTracingEnabled } from '../utils/hasTracingEnabled';\nimport { spanIsSampled, spanTimeInputToSeconds, spanToJSON } from '../utils/spanUtils';\n\n/**\n * Wraps a function with a transaction/span and finishes the span after the function is done.\n *\n * Note that if you have not enabled tracing extensions via `addTracingExtensions`\n * or you didn't set `tracesSampleRate`, this function will not generate spans\n * and the `span` returned from the callback will be undefined.\n *\n * This function is meant to be used internally and may break at any time. Use at your own risk.\n *\n * @internal\n * @private\n *\n * @deprecated Use `startSpan` instead.\n */\nexport function trace(\n context: TransactionContext,\n callback: (span?: Span) => T,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onError: (error: unknown, span?: Span) => void = () => {},\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n afterFinish: () => void = () => {},\n): T {\n // eslint-disable-next-line deprecation/deprecation\n const hub = getCurrentHub();\n const scope = getCurrentScope();\n // eslint-disable-next-line deprecation/deprecation\n const parentSpan = scope.getSpan();\n\n const spanContext = normalizeContext(context);\n const activeSpan = createChildSpanOrTransaction(hub, {\n parentSpan,\n spanContext,\n forceTransaction: false,\n scope,\n });\n\n // eslint-disable-next-line deprecation/deprecation\n scope.setSpan(activeSpan);\n\n return handleCallbackErrors(\n () => callback(activeSpan),\n error => {\n activeSpan && activeSpan.setStatus('internal_error');\n onError(error, activeSpan);\n },\n () => {\n activeSpan && activeSpan.end();\n // eslint-disable-next-line deprecation/deprecation\n scope.setSpan(parentSpan);\n afterFinish();\n },\n );\n}\n\n/**\n * Wraps a function with a transaction/span and finishes the span after the function is done.\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getSpan()`, as long as the function is executed while the scope is active.\n *\n * If you want to create a span that is not set as active, use {@link startInactiveSpan}.\n *\n * Note that if you have not enabled tracing extensions via `addTracingExtensions`\n * or you didn't set `tracesSampleRate`, this function will not generate spans\n * and the `span` returned from the callback will be undefined.\n */\nexport function startSpan(context: StartSpanOptions, callback: (span: Span | undefined) => T): T {\n const spanContext = normalizeContext(context);\n\n return runWithAsyncContext(() => {\n return withScope(context.scope, scope => {\n // eslint-disable-next-line deprecation/deprecation\n const hub = getCurrentHub();\n // eslint-disable-next-line deprecation/deprecation\n const parentSpan = scope.getSpan();\n\n const shouldSkipSpan = context.onlyIfParent && !parentSpan;\n const activeSpan = shouldSkipSpan\n ? undefined\n : createChildSpanOrTransaction(hub, {\n parentSpan,\n spanContext,\n forceTransaction: context.forceTransaction,\n scope,\n });\n\n return handleCallbackErrors(\n () => callback(activeSpan),\n () => {\n // Only update the span status if it hasn't been changed yet\n if (activeSpan) {\n const { status } = spanToJSON(activeSpan);\n if (!status || status === 'ok') {\n activeSpan.setStatus('internal_error');\n }\n }\n },\n () => activeSpan && activeSpan.end(),\n );\n });\n });\n}\n\n/**\n * @deprecated Use {@link startSpan} instead.\n */\nexport const startActiveSpan = startSpan;\n\n/**\n * Similar to `Sentry.startSpan`. Wraps a function with a transaction/span, but does not finish the span\n * after the function is done automatically. You'll have to call `span.end()` manually.\n *\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getActiveSpan()`, as long as the function is executed while the scope is active.\n *\n * Note that if you have not enabled tracing extensions via `addTracingExtensions`\n * or you didn't set `tracesSampleRate`, this function will not generate spans\n * and the `span` returned from the callback will be undefined.\n */\nexport function startSpanManual(\n context: StartSpanOptions,\n callback: (span: Span | undefined, finish: () => void) => T,\n): T {\n const spanContext = normalizeContext(context);\n\n return runWithAsyncContext(() => {\n return withScope(context.scope, scope => {\n // eslint-disable-next-line deprecation/deprecation\n const hub = getCurrentHub();\n // eslint-disable-next-line deprecation/deprecation\n const parentSpan = scope.getSpan();\n\n const shouldSkipSpan = context.onlyIfParent && !parentSpan;\n const activeSpan = shouldSkipSpan\n ? undefined\n : createChildSpanOrTransaction(hub, {\n parentSpan,\n spanContext,\n forceTransaction: context.forceTransaction,\n scope,\n });\n\n function finishAndSetSpan(): void {\n activeSpan && activeSpan.end();\n }\n\n return handleCallbackErrors(\n () => callback(activeSpan, finishAndSetSpan),\n () => {\n // Only update the span status if it hasn't been changed yet, and the span is not yet finished\n if (activeSpan && activeSpan.isRecording()) {\n const { status } = spanToJSON(activeSpan);\n if (!status || status === 'ok') {\n activeSpan.setStatus('internal_error');\n }\n }\n },\n );\n });\n });\n}\n\n/**\n * Creates a span. This span is not set as active, so will not get automatic instrumentation spans\n * as children or be able to be accessed via `Sentry.getSpan()`.\n *\n * If you want to create a span that is set as active, use {@link startSpan}.\n *\n * Note that if you have not enabled tracing extensions via `addTracingExtensions`\n * or you didn't set `tracesSampleRate` or `tracesSampler`, this function will not generate spans\n * and the `span` returned from the callback will be undefined.\n */\nexport function startInactiveSpan(context: StartSpanOptions): Span | undefined {\n if (!hasTracingEnabled()) {\n return undefined;\n }\n\n const spanContext = normalizeContext(context);\n // eslint-disable-next-line deprecation/deprecation\n const hub = getCurrentHub();\n const parentSpan = context.scope\n ? // eslint-disable-next-line deprecation/deprecation\n context.scope.getSpan()\n : getActiveSpan();\n\n const shouldSkipSpan = context.onlyIfParent && !parentSpan;\n\n if (shouldSkipSpan) {\n return undefined;\n }\n\n const scope = context.scope || getCurrentScope();\n\n // Even though we don't actually want to make this span active on the current scope,\n // we need to make it active on a temporary scope that we use for event processing\n // as otherwise, it won't pick the correct span for the event when processing it\n const temporaryScope = (scope as ScopeClass).clone();\n\n return createChildSpanOrTransaction(hub, {\n parentSpan,\n spanContext,\n forceTransaction: context.forceTransaction,\n scope: temporaryScope,\n });\n}\n\n/**\n * Returns the currently active span.\n */\nexport function getActiveSpan(): Span | undefined {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentScope().getSpan();\n}\n\ninterface ContinueTrace {\n /**\n * Continue a trace from `sentry-trace` and `baggage` values.\n * These values can be obtained from incoming request headers,\n * or in the browser from `` and `` HTML tags.\n *\n * @deprecated Use the version of this function taking a callback as second parameter instead:\n *\n * ```\n * Sentry.continueTrace(sentryTrace: '...', baggage: '...' }, () => {\n * // ...\n * })\n * ```\n *\n */\n ({\n sentryTrace,\n baggage,\n }: {\n // eslint-disable-next-line deprecation/deprecation\n sentryTrace: Parameters[0];\n // eslint-disable-next-line deprecation/deprecation\n baggage: Parameters[1];\n }): Partial;\n\n /**\n * Continue a trace from `sentry-trace` and `baggage` values.\n * These values can be obtained from incoming request headers, or in the browser from ``\n * and `` HTML tags.\n *\n * Spans started with `startSpan`, `startSpanManual` and `startInactiveSpan`, within the callback will automatically\n * be attached to the incoming trace.\n *\n * Deprecation notice: In the next major version of the SDK the provided callback will not receive a transaction\n * context argument.\n */\n (\n {\n sentryTrace,\n baggage,\n }: {\n // eslint-disable-next-line deprecation/deprecation\n sentryTrace: Parameters[0];\n // eslint-disable-next-line deprecation/deprecation\n baggage: Parameters[1];\n },\n // TODO(v8): Remove parameter from this callback.\n callback: (transactionContext: Partial) => V,\n ): V;\n}\n\nexport const continueTrace: ContinueTrace = (\n {\n sentryTrace,\n baggage,\n }: {\n // eslint-disable-next-line deprecation/deprecation\n sentryTrace: Parameters[0];\n // eslint-disable-next-line deprecation/deprecation\n baggage: Parameters[1];\n },\n callback?: (transactionContext: Partial) => V,\n): V | Partial => {\n // TODO(v8): Change this function so it doesn't do anything besides setting the propagation context on the current scope:\n /*\n return withScope((scope) => {\n const propagationContext = propagationContextFromHeaders(sentryTrace, baggage);\n scope.setPropagationContext(propagationContext);\n return callback();\n })\n */\n\n const currentScope = getCurrentScope();\n\n // eslint-disable-next-line deprecation/deprecation\n const { traceparentData, dynamicSamplingContext, propagationContext } = tracingContextFromHeaders(\n sentryTrace,\n baggage,\n );\n\n currentScope.setPropagationContext(propagationContext);\n\n if (DEBUG_BUILD && traceparentData) {\n logger.log(`[Tracing] Continuing trace ${traceparentData.traceId}.`);\n }\n\n const transactionContext: Partial = {\n ...traceparentData,\n metadata: dropUndefinedKeys({\n dynamicSamplingContext,\n }),\n };\n\n if (!callback) {\n return transactionContext;\n }\n\n return runWithAsyncContext(() => {\n return callback(transactionContext);\n });\n};\n\nfunction createChildSpanOrTransaction(\n // eslint-disable-next-line deprecation/deprecation\n hub: Hub,\n {\n parentSpan,\n spanContext,\n forceTransaction,\n scope,\n }: {\n parentSpan: Span | undefined;\n spanContext: TransactionContext;\n forceTransaction?: boolean;\n scope: Scope;\n },\n): Span | undefined {\n if (!hasTracingEnabled()) {\n return undefined;\n }\n\n const isolationScope = getIsolationScope();\n\n let span: Span | undefined;\n if (parentSpan && !forceTransaction) {\n // eslint-disable-next-line deprecation/deprecation\n span = parentSpan.startChild(spanContext);\n } else if (parentSpan) {\n // If we forced a transaction but have a parent span, make sure to continue from the parent span, not the scope\n const dsc = getDynamicSamplingContextFromSpan(parentSpan);\n const { traceId, spanId: parentSpanId } = parentSpan.spanContext();\n const sampled = spanIsSampled(parentSpan);\n\n // eslint-disable-next-line deprecation/deprecation\n span = hub.startTransaction({\n traceId,\n parentSpanId,\n parentSampled: sampled,\n ...spanContext,\n metadata: {\n dynamicSamplingContext: dsc,\n // eslint-disable-next-line deprecation/deprecation\n ...spanContext.metadata,\n },\n });\n } else {\n const { traceId, dsc, parentSpanId, sampled } = {\n ...isolationScope.getPropagationContext(),\n ...scope.getPropagationContext(),\n };\n\n // eslint-disable-next-line deprecation/deprecation\n span = hub.startTransaction({\n traceId,\n parentSpanId,\n parentSampled: sampled,\n ...spanContext,\n metadata: {\n dynamicSamplingContext: dsc,\n // eslint-disable-next-line deprecation/deprecation\n ...spanContext.metadata,\n },\n });\n }\n\n // We always set this as active span on the scope\n // In the case of this being an inactive span, we ensure to pass a detached scope in here in the first place\n // But by having this here, we can ensure that the lookup through `getCapturedScopesOnSpan` results in the correct scope & span combo\n // eslint-disable-next-line deprecation/deprecation\n scope.setSpan(span);\n\n setCapturedScopesOnSpan(span, scope, isolationScope);\n\n return span;\n}\n\n/**\n * This converts StartSpanOptions to TransactionContext.\n * For the most part (for now) we accept the same options,\n * but some of them need to be transformed.\n *\n * Eventually the StartSpanOptions will be more aligned with OpenTelemetry.\n */\nfunction normalizeContext(context: StartSpanOptions): TransactionContext {\n if (context.startTime) {\n const ctx: TransactionContext & { startTime?: SpanTimeInput } = { ...context };\n ctx.startTimestamp = spanTimeInputToSeconds(context.startTime);\n delete ctx.startTime;\n return ctx;\n }\n\n return context;\n}\n\nconst SCOPE_ON_START_SPAN_FIELD = '_sentryScope';\nconst ISOLATION_SCOPE_ON_START_SPAN_FIELD = '_sentryIsolationScope';\n\ntype SpanWithScopes = Span & {\n [SCOPE_ON_START_SPAN_FIELD]?: Scope;\n [ISOLATION_SCOPE_ON_START_SPAN_FIELD]?: Scope;\n};\n\nfunction setCapturedScopesOnSpan(span: Span | undefined, scope: Scope, isolationScope: Scope): void {\n if (span) {\n addNonEnumerableProperty(span, ISOLATION_SCOPE_ON_START_SPAN_FIELD, isolationScope);\n addNonEnumerableProperty(span, SCOPE_ON_START_SPAN_FIELD, scope);\n }\n}\n\n/**\n * Grabs the scope and isolation scope off a span that were active when the span was started.\n */\nexport function getCapturedScopesOnSpan(span: Span): { scope?: Scope; isolationScope?: Scope } {\n return {\n scope: (span as SpanWithScopes)[SCOPE_ON_START_SPAN_FIELD],\n isolationScope: (span as SpanWithScopes)[ISOLATION_SCOPE_ON_START_SPAN_FIELD],\n };\n}\n","import type {\n Context,\n Contexts,\n DynamicSamplingContext,\n MeasurementUnit,\n SpanTimeInput,\n Transaction as TransactionInterface,\n TransactionContext,\n TransactionEvent,\n TransactionMetadata,\n} from '@sentry/types';\nimport { dropUndefinedKeys, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { Hub } from '../hub';\nimport { getCurrentHub } from '../hub';\nimport { getMetricSummaryJsonForSpan } from '../metrics/metric-summary';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes';\nimport { spanTimeInputToSeconds, spanToJSON, spanToTraceContext } from '../utils/spanUtils';\nimport { getDynamicSamplingContextFromSpan } from './dynamicSamplingContext';\nimport { Span as SpanClass, SpanRecorder } from './span';\nimport { getCapturedScopesOnSpan } from './trace';\n\n/** JSDoc */\nexport class Transaction extends SpanClass implements TransactionInterface {\n /**\n * The reference to the current hub.\n */\n // eslint-disable-next-line deprecation/deprecation\n public _hub: Hub;\n\n protected _name: string;\n\n private _contexts: Contexts;\n\n private _trimEnd?: boolean | undefined;\n\n // DO NOT yet remove this property, it is used in a hack for v7 backwards compatibility.\n private _frozenDynamicSamplingContext: Readonly> | undefined;\n\n private _metadata: Partial;\n\n /**\n * This constructor should never be called manually. Those instrumenting tracing should use\n * `Sentry.startTransaction()`, and internal methods should use `hub.startTransaction()`.\n * @internal\n * @hideconstructor\n * @hidden\n *\n * @deprecated Transactions will be removed in v8. Use spans instead.\n */\n // eslint-disable-next-line deprecation/deprecation\n public constructor(transactionContext: TransactionContext, hub?: Hub) {\n super(transactionContext);\n this._contexts = {};\n\n // eslint-disable-next-line deprecation/deprecation\n this._hub = hub || getCurrentHub();\n\n this._name = transactionContext.name || '';\n\n this._metadata = {\n // eslint-disable-next-line deprecation/deprecation\n ...transactionContext.metadata,\n };\n\n this._trimEnd = transactionContext.trimEnd;\n\n // this is because transactions are also spans, and spans have a transaction pointer\n // TODO (v8): Replace this with another way to set the root span\n // eslint-disable-next-line deprecation/deprecation\n this.transaction = this;\n\n // If Dynamic Sampling Context is provided during the creation of the transaction, we freeze it as it usually means\n // there is incoming Dynamic Sampling Context. (Either through an incoming request, a baggage meta-tag, or other means)\n const incomingDynamicSamplingContext = this._metadata.dynamicSamplingContext;\n if (incomingDynamicSamplingContext) {\n // We shallow copy this in case anything writes to the original reference of the passed in `dynamicSamplingContext`\n this._frozenDynamicSamplingContext = { ...incomingDynamicSamplingContext };\n }\n }\n\n // This sadly conflicts with the getter/setter ordering :(\n /* eslint-disable @typescript-eslint/member-ordering */\n\n /**\n * Getter for `name` property.\n * @deprecated Use `spanToJSON(span).description` instead.\n */\n public get name(): string {\n return this._name;\n }\n\n /**\n * Setter for `name` property, which also sets `source` as custom.\n * @deprecated Use `updateName()` and `setMetadata()` instead.\n */\n public set name(newName: string) {\n // eslint-disable-next-line deprecation/deprecation\n this.setName(newName);\n }\n\n /**\n * Get the metadata for this transaction.\n * @deprecated Use `spanGetMetadata(transaction)` instead.\n */\n public get metadata(): TransactionMetadata {\n // We merge attributes in for backwards compatibility\n return {\n // Defaults\n // eslint-disable-next-line deprecation/deprecation\n source: 'custom',\n spanMetadata: {},\n\n // Legacy metadata\n ...this._metadata,\n\n // From attributes\n ...(this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] && {\n source: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] as TransactionMetadata['source'],\n }),\n ...(this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE] && {\n sampleRate: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE] as TransactionMetadata['sampleRate'],\n }),\n };\n }\n\n /**\n * Update the metadata for this transaction.\n * @deprecated Use `spanGetMetadata(transaction)` instead.\n */\n public set metadata(metadata: TransactionMetadata) {\n this._metadata = metadata;\n }\n\n /* eslint-enable @typescript-eslint/member-ordering */\n\n /**\n * Setter for `name` property, which also sets `source` on the metadata.\n *\n * @deprecated Use `.updateName()` and `.setAttribute()` instead.\n */\n public setName(name: string, source: TransactionMetadata['source'] = 'custom'): void {\n this._name = name;\n this.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, source);\n }\n\n /** @inheritdoc */\n public updateName(name: string): this {\n this._name = name;\n return this;\n }\n\n /**\n * Attaches SpanRecorder to the span itself\n * @param maxlen maximum number of spans that can be recorded\n */\n public initSpanRecorder(maxlen: number = 1000): void {\n // eslint-disable-next-line deprecation/deprecation\n if (!this.spanRecorder) {\n // eslint-disable-next-line deprecation/deprecation\n this.spanRecorder = new SpanRecorder(maxlen);\n }\n // eslint-disable-next-line deprecation/deprecation\n this.spanRecorder.add(this);\n }\n\n /**\n * Set the context of a transaction event.\n * @deprecated Use either `.setAttribute()`, or set the context on the scope before creating the transaction.\n */\n public setContext(key: string, context: Context | null): void {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use top-level `setMeasurement()` instead.\n */\n public setMeasurement(name: string, value: number, unit: MeasurementUnit = ''): void {\n this._measurements[name] = { value, unit };\n }\n\n /**\n * Store metadata on this transaction.\n * @deprecated Use attributes or store data on the scope instead.\n */\n public setMetadata(newMetadata: Partial): void {\n this._metadata = { ...this._metadata, ...newMetadata };\n }\n\n /**\n * @inheritDoc\n */\n public end(endTimestamp?: SpanTimeInput): string | undefined {\n const timestampInS = spanTimeInputToSeconds(endTimestamp);\n const transaction = this._finishTransaction(timestampInS);\n if (!transaction) {\n return undefined;\n }\n // eslint-disable-next-line deprecation/deprecation\n return this._hub.captureEvent(transaction);\n }\n\n /**\n * @inheritDoc\n */\n public toContext(): TransactionContext {\n // eslint-disable-next-line deprecation/deprecation\n const spanContext = super.toContext();\n\n return dropUndefinedKeys({\n ...spanContext,\n name: this._name,\n trimEnd: this._trimEnd,\n });\n }\n\n /**\n * @inheritDoc\n */\n public updateWithContext(transactionContext: TransactionContext): this {\n // eslint-disable-next-line deprecation/deprecation\n super.updateWithContext(transactionContext);\n\n this._name = transactionContext.name || '';\n this._trimEnd = transactionContext.trimEnd;\n\n return this;\n }\n\n /**\n * @inheritdoc\n *\n * @experimental\n *\n * @deprecated Use top-level `getDynamicSamplingContextFromSpan` instead.\n */\n public getDynamicSamplingContext(): Readonly> {\n return getDynamicSamplingContextFromSpan(this);\n }\n\n /**\n * Override the current hub with a new one.\n * Used if you want another hub to finish the transaction.\n *\n * @internal\n */\n // eslint-disable-next-line deprecation/deprecation\n public setHub(hub: Hub): void {\n this._hub = hub;\n }\n\n /**\n * Get the profile id of the transaction.\n */\n public getProfileId(): string | undefined {\n if (this._contexts !== undefined && this._contexts['profile'] !== undefined) {\n return this._contexts['profile'].profile_id as string;\n }\n return undefined;\n }\n\n /**\n * Finish the transaction & prepare the event to send to Sentry.\n */\n protected _finishTransaction(endTimestamp?: number): TransactionEvent | undefined {\n // This transaction is already finished, so we should not flush it again.\n if (this._endTime !== undefined) {\n return undefined;\n }\n\n if (!this._name) {\n DEBUG_BUILD && logger.warn('Transaction has no name, falling back to ``.');\n this._name = '';\n }\n\n // just sets the end timestamp\n super.end(endTimestamp);\n\n // eslint-disable-next-line deprecation/deprecation\n const client = this._hub.getClient();\n if (client && client.emit) {\n client.emit('finishTransaction', this);\n }\n\n if (this._sampled !== true) {\n // At this point if `sampled !== true` we want to discard the transaction.\n DEBUG_BUILD && logger.log('[Tracing] Discarding transaction because its trace was not chosen to be sampled.');\n\n if (client) {\n client.recordDroppedEvent('sample_rate', 'transaction');\n }\n\n return undefined;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n const finishedSpans = this.spanRecorder\n ? // eslint-disable-next-line deprecation/deprecation\n this.spanRecorder.spans.filter(span => span !== this && spanToJSON(span).timestamp)\n : [];\n\n if (this._trimEnd && finishedSpans.length > 0) {\n const endTimes = finishedSpans.map(span => spanToJSON(span).timestamp).filter(Boolean) as number[];\n this._endTime = endTimes.reduce((prev, current) => {\n return prev > current ? prev : current;\n });\n }\n\n const { scope: capturedSpanScope, isolationScope: capturedSpanIsolationScope } = getCapturedScopesOnSpan(this);\n\n // eslint-disable-next-line deprecation/deprecation\n const { metadata } = this;\n // eslint-disable-next-line deprecation/deprecation\n const { source } = metadata;\n\n const transaction: TransactionEvent = {\n contexts: {\n ...this._contexts,\n // We don't want to override trace context\n trace: spanToTraceContext(this),\n },\n // TODO: Pass spans serialized via `spanToJSON()` here instead in v8.\n spans: finishedSpans,\n start_timestamp: this._startTime,\n // eslint-disable-next-line deprecation/deprecation\n tags: this.tags,\n timestamp: this._endTime,\n transaction: this._name,\n type: 'transaction',\n sdkProcessingMetadata: {\n ...metadata,\n capturedSpanScope,\n capturedSpanIsolationScope,\n ...dropUndefinedKeys({\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(this),\n }),\n },\n _metrics_summary: getMetricSummaryJsonForSpan(this),\n ...(source && {\n transaction_info: {\n source,\n },\n }),\n };\n\n const hasMeasurements = Object.keys(this._measurements).length > 0;\n\n if (hasMeasurements) {\n DEBUG_BUILD &&\n logger.log(\n '[Measurements] Adding measurements to transaction',\n JSON.stringify(this._measurements, undefined, 2),\n );\n transaction.measurements = this._measurements;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n DEBUG_BUILD && logger.log(`[Tracing] Finishing ${this.op} transaction: ${this._name}.`);\n\n return transaction;\n }\n}\n","/* eslint-disable max-lines */\nimport type { SpanTimeInput, TransactionContext } from '@sentry/types';\nimport { logger, timestampInSeconds } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { Hub } from '../hub';\nimport { spanTimeInputToSeconds, spanToJSON } from '../utils/spanUtils';\nimport type { Span } from './span';\nimport { SpanRecorder } from './span';\nimport { Transaction } from './transaction';\n\nexport const TRACING_DEFAULTS = {\n idleTimeout: 1000,\n finalTimeout: 30000,\n heartbeatInterval: 5000,\n};\n\nconst FINISH_REASON_TAG = 'finishReason';\n\nconst IDLE_TRANSACTION_FINISH_REASONS = [\n 'heartbeatFailed',\n 'idleTimeout',\n 'documentHidden',\n 'finalTimeout',\n 'externalFinish',\n 'cancelled',\n];\n\n/**\n * @inheritDoc\n */\nexport class IdleTransactionSpanRecorder extends SpanRecorder {\n public constructor(\n private readonly _pushActivity: (id: string) => void,\n private readonly _popActivity: (id: string) => void,\n public transactionSpanId: string,\n maxlen?: number,\n ) {\n super(maxlen);\n }\n\n /**\n * @inheritDoc\n */\n public add(span: Span): void {\n // We should make sure we do not push and pop activities for\n // the transaction that this span recorder belongs to.\n if (span.spanContext().spanId !== this.transactionSpanId) {\n // We patch span.end() to pop an activity after setting an endTimestamp.\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const originalEnd = span.end;\n span.end = (...rest: unknown[]) => {\n this._popActivity(span.spanContext().spanId);\n return originalEnd.apply(span, rest);\n };\n\n // We should only push new activities if the span does not have an end timestamp.\n if (spanToJSON(span).timestamp === undefined) {\n this._pushActivity(span.spanContext().spanId);\n }\n }\n\n super.add(span);\n }\n}\n\nexport type BeforeFinishCallback = (transactionSpan: IdleTransaction, endTimestamp: number) => void;\n\n/**\n * An IdleTransaction is a transaction that automatically finishes. It does this by tracking child spans as activities.\n * You can have multiple IdleTransactions active, but if the `onScope` option is specified, the idle transaction will\n * put itself on the scope on creation.\n */\nexport class IdleTransaction extends Transaction {\n // Activities store a list of active spans\n public activities: Record;\n // Track state of activities in previous heartbeat\n private _prevHeartbeatString: string | undefined;\n\n // Amount of times heartbeat has counted. Will cause transaction to finish after 3 beats.\n private _heartbeatCounter: number;\n\n // We should not use heartbeat if we finished a transaction\n private _finished: boolean;\n\n // Idle timeout was canceled and we should finish the transaction with the last span end.\n private _idleTimeoutCanceledPermanently: boolean;\n\n private readonly _beforeFinishCallbacks: BeforeFinishCallback[];\n\n /**\n * Timer that tracks Transaction idleTimeout\n */\n private _idleTimeoutID: ReturnType | undefined;\n\n private _finishReason: (typeof IDLE_TRANSACTION_FINISH_REASONS)[number];\n\n private _autoFinishAllowed: boolean;\n\n /**\n * @deprecated Transactions will be removed in v8. Use spans instead.\n */\n public constructor(\n transactionContext: TransactionContext,\n // eslint-disable-next-line deprecation/deprecation\n private readonly _idleHub: Hub,\n /**\n * The time to wait in ms until the idle transaction will be finished. This timer is started each time\n * there are no active spans on this transaction.\n */\n private readonly _idleTimeout: number = TRACING_DEFAULTS.idleTimeout,\n /**\n * The final value in ms that a transaction cannot exceed\n */\n private readonly _finalTimeout: number = TRACING_DEFAULTS.finalTimeout,\n private readonly _heartbeatInterval: number = TRACING_DEFAULTS.heartbeatInterval,\n // Whether or not the transaction should put itself on the scope when it starts and pop itself off when it ends\n private readonly _onScope: boolean = false,\n /**\n * When set to `true`, will disable the idle timeout (`_idleTimeout` option) and heartbeat mechanisms (`_heartbeatInterval`\n * option) until the `sendAutoFinishSignal()` method is called. The final timeout mechanism (`_finalTimeout` option)\n * will not be affected by this option, meaning the transaction will definitely be finished when the final timeout is\n * reached, no matter what this option is configured to.\n *\n * Defaults to `false`.\n */\n delayAutoFinishUntilSignal: boolean = false,\n ) {\n super(transactionContext, _idleHub);\n\n this.activities = {};\n this._heartbeatCounter = 0;\n this._finished = false;\n this._idleTimeoutCanceledPermanently = false;\n this._beforeFinishCallbacks = [];\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[4];\n this._autoFinishAllowed = !delayAutoFinishUntilSignal;\n\n if (_onScope) {\n // We set the transaction here on the scope so error events pick up the trace\n // context and attach it to the error.\n DEBUG_BUILD && logger.log(`Setting idle transaction on scope. Span ID: ${this.spanContext().spanId}`);\n // eslint-disable-next-line deprecation/deprecation\n _idleHub.getScope().setSpan(this);\n }\n\n if (!delayAutoFinishUntilSignal) {\n this._restartIdleTimeout();\n }\n\n setTimeout(() => {\n if (!this._finished) {\n this.setStatus('deadline_exceeded');\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[3];\n this.end();\n }\n }, this._finalTimeout);\n }\n\n /** {@inheritDoc} */\n public end(endTimestamp?: SpanTimeInput): string | undefined {\n const endTimestampInS = spanTimeInputToSeconds(endTimestamp);\n\n this._finished = true;\n this.activities = {};\n\n // eslint-disable-next-line deprecation/deprecation\n if (this.op === 'ui.action.click') {\n this.setAttribute(FINISH_REASON_TAG, this._finishReason);\n }\n\n // eslint-disable-next-line deprecation/deprecation\n if (this.spanRecorder) {\n DEBUG_BUILD &&\n // eslint-disable-next-line deprecation/deprecation\n logger.log('[Tracing] finishing IdleTransaction', new Date(endTimestampInS * 1000).toISOString(), this.op);\n\n for (const callback of this._beforeFinishCallbacks) {\n callback(this, endTimestampInS);\n }\n\n // eslint-disable-next-line deprecation/deprecation\n this.spanRecorder.spans = this.spanRecorder.spans.filter((span: Span) => {\n // If we are dealing with the transaction itself, we just return it\n if (span.spanContext().spanId === this.spanContext().spanId) {\n return true;\n }\n\n // We cancel all pending spans with status \"cancelled\" to indicate the idle transaction was finished early\n if (!spanToJSON(span).timestamp) {\n span.setStatus('cancelled');\n span.end(endTimestampInS);\n DEBUG_BUILD &&\n logger.log('[Tracing] cancelling span since transaction ended early', JSON.stringify(span, undefined, 2));\n }\n\n const { start_timestamp: startTime, timestamp: endTime } = spanToJSON(span);\n const spanStartedBeforeTransactionFinish = startTime && startTime < endTimestampInS;\n\n // Add a delta with idle timeout so that we prevent false positives\n const timeoutWithMarginOfError = (this._finalTimeout + this._idleTimeout) / 1000;\n const spanEndedBeforeFinalTimeout = endTime && startTime && endTime - startTime < timeoutWithMarginOfError;\n\n if (DEBUG_BUILD) {\n const stringifiedSpan = JSON.stringify(span, undefined, 2);\n if (!spanStartedBeforeTransactionFinish) {\n logger.log('[Tracing] discarding Span since it happened after Transaction was finished', stringifiedSpan);\n } else if (!spanEndedBeforeFinalTimeout) {\n logger.log('[Tracing] discarding Span since it finished after Transaction final timeout', stringifiedSpan);\n }\n }\n\n return spanStartedBeforeTransactionFinish && spanEndedBeforeFinalTimeout;\n });\n\n DEBUG_BUILD && logger.log('[Tracing] flushing IdleTransaction');\n } else {\n DEBUG_BUILD && logger.log('[Tracing] No active IdleTransaction');\n }\n\n // if `this._onScope` is `true`, the transaction put itself on the scope when it started\n if (this._onScope) {\n // eslint-disable-next-line deprecation/deprecation\n const scope = this._idleHub.getScope();\n // eslint-disable-next-line deprecation/deprecation\n if (scope.getTransaction() === this) {\n // eslint-disable-next-line deprecation/deprecation\n scope.setSpan(undefined);\n }\n }\n\n return super.end(endTimestamp);\n }\n\n /**\n * Register a callback function that gets executed before the transaction finishes.\n * Useful for cleanup or if you want to add any additional spans based on current context.\n *\n * This is exposed because users have no other way of running something before an idle transaction\n * finishes.\n */\n public registerBeforeFinishCallback(callback: BeforeFinishCallback): void {\n this._beforeFinishCallbacks.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n public initSpanRecorder(maxlen?: number): void {\n // eslint-disable-next-line deprecation/deprecation\n if (!this.spanRecorder) {\n const pushActivity = (id: string): void => {\n if (this._finished) {\n return;\n }\n this._pushActivity(id);\n };\n const popActivity = (id: string): void => {\n if (this._finished) {\n return;\n }\n this._popActivity(id);\n };\n\n // eslint-disable-next-line deprecation/deprecation\n this.spanRecorder = new IdleTransactionSpanRecorder(pushActivity, popActivity, this.spanContext().spanId, maxlen);\n\n // Start heartbeat so that transactions do not run forever.\n DEBUG_BUILD && logger.log('Starting heartbeat');\n this._pingHeartbeat();\n }\n // eslint-disable-next-line deprecation/deprecation\n this.spanRecorder.add(this);\n }\n\n /**\n * Cancels the existing idle timeout, if there is one.\n * @param restartOnChildSpanChange Default is `true`.\n * If set to false the transaction will end\n * with the last child span.\n */\n public cancelIdleTimeout(\n endTimestamp?: Parameters[0],\n {\n restartOnChildSpanChange,\n }: {\n restartOnChildSpanChange?: boolean;\n } = {\n restartOnChildSpanChange: true,\n },\n ): void {\n this._idleTimeoutCanceledPermanently = restartOnChildSpanChange === false;\n if (this._idleTimeoutID) {\n clearTimeout(this._idleTimeoutID);\n this._idleTimeoutID = undefined;\n\n if (Object.keys(this.activities).length === 0 && this._idleTimeoutCanceledPermanently) {\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[5];\n this.end(endTimestamp);\n }\n }\n }\n\n /**\n * Temporary method used to externally set the transaction's `finishReason`\n *\n * ** WARNING**\n * This is for the purpose of experimentation only and will be removed in the near future, do not use!\n *\n * @internal\n *\n */\n public setFinishReason(reason: string): void {\n this._finishReason = reason;\n }\n\n /**\n * Permits the IdleTransaction to automatically end itself via the idle timeout and heartbeat mechanisms when the `delayAutoFinishUntilSignal` option was set to `true`.\n */\n public sendAutoFinishSignal(): void {\n if (!this._autoFinishAllowed) {\n DEBUG_BUILD && logger.log('[Tracing] Received finish signal for idle transaction.');\n this._restartIdleTimeout();\n this._autoFinishAllowed = true;\n }\n }\n\n /**\n * Restarts idle timeout, if there is no running idle timeout it will start one.\n */\n private _restartIdleTimeout(endTimestamp?: Parameters[0]): void {\n this.cancelIdleTimeout();\n this._idleTimeoutID = setTimeout(() => {\n if (!this._finished && Object.keys(this.activities).length === 0) {\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[1];\n this.end(endTimestamp);\n }\n }, this._idleTimeout);\n }\n\n /**\n * Start tracking a specific activity.\n * @param spanId The span id that represents the activity\n */\n private _pushActivity(spanId: string): void {\n this.cancelIdleTimeout(undefined, { restartOnChildSpanChange: !this._idleTimeoutCanceledPermanently });\n DEBUG_BUILD && logger.log(`[Tracing] pushActivity: ${spanId}`);\n this.activities[spanId] = true;\n DEBUG_BUILD && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n\n /**\n * Remove an activity from usage\n * @param spanId The span id that represents the activity\n */\n private _popActivity(spanId: string): void {\n if (this.activities[spanId]) {\n DEBUG_BUILD && logger.log(`[Tracing] popActivity ${spanId}`);\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this.activities[spanId];\n DEBUG_BUILD && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n\n if (Object.keys(this.activities).length === 0) {\n const endTimestamp = timestampInSeconds();\n if (this._idleTimeoutCanceledPermanently) {\n if (this._autoFinishAllowed) {\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[5];\n this.end(endTimestamp);\n }\n } else {\n // We need to add the timeout here to have the real endtimestamp of the transaction\n // Remember timestampInSeconds is in seconds, timeout is in ms\n this._restartIdleTimeout(endTimestamp + this._idleTimeout / 1000);\n }\n }\n }\n\n /**\n * Checks when entries of this.activities are not changing for 3 beats.\n * If this occurs we finish the transaction.\n */\n private _beat(): void {\n // We should not be running heartbeat if the idle transaction is finished.\n if (this._finished) {\n return;\n }\n\n const heartbeatString = Object.keys(this.activities).join('');\n\n if (heartbeatString === this._prevHeartbeatString) {\n this._heartbeatCounter++;\n } else {\n this._heartbeatCounter = 1;\n }\n\n this._prevHeartbeatString = heartbeatString;\n\n if (this._heartbeatCounter >= 3) {\n if (this._autoFinishAllowed) {\n DEBUG_BUILD && logger.log('[Tracing] Transaction finished because of no change for 3 heart beats');\n this.setStatus('deadline_exceeded');\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[0];\n this.end();\n }\n } else {\n this._pingHeartbeat();\n }\n }\n\n /**\n * Pings the heartbeat\n */\n private _pingHeartbeat(): void {\n DEBUG_BUILD && logger.log(`pinging Heartbeat -> current counter: ${this._heartbeatCounter}`);\n setTimeout(() => {\n this._beat();\n }, this._heartbeatInterval);\n }\n}\n","import type { Transaction } from '@sentry/types';\nimport { extractTraceparentData as _extractTraceparentData } from '@sentry/utils';\n\nimport type { Hub } from '../hub';\nimport { getCurrentHub } from '../hub';\n\n/**\n * Grabs active transaction off scope.\n *\n * @deprecated You should not rely on the transaction, but just use `startSpan()` APIs instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getActiveTransaction(maybeHub?: Hub): T | undefined {\n // eslint-disable-next-line deprecation/deprecation\n const hub = maybeHub || getCurrentHub();\n // eslint-disable-next-line deprecation/deprecation\n const scope = hub.getScope();\n // eslint-disable-next-line deprecation/deprecation\n return scope.getTransaction() as T | undefined;\n}\n\n// so it can be used in manual instrumentation without necessitating a hard dependency on @sentry/utils\nexport { stripUrlQueryAndFragment } from '@sentry/utils';\n\n/**\n * The `extractTraceparentData` function and `TRACEPARENT_REGEXP` constant used\n * to be declared in this file. It was later moved into `@sentry/utils` as part of a\n * move to remove `@sentry/tracing` dependencies from `@sentry/node` (`extractTraceparentData`\n * is the only tracing function used by `@sentry/node`).\n *\n * These exports are kept here for backwards compatability's sake.\n *\n * See https://github.com/getsentry/sentry-javascript/issues/4642 for more details.\n *\n * @deprecated Import this function from `@sentry/utils` instead\n */\nexport const extractTraceparentData = _extractTraceparentData;\n","import {\n addGlobalErrorInstrumentationHandler,\n addGlobalUnhandledRejectionInstrumentationHandler,\n logger,\n} from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { SpanStatusType } from './spanstatus';\nimport { getActiveTransaction } from './utils';\n\nlet errorsInstrumented = false;\n\n/**\n * Configures global error listeners\n */\nexport function registerErrorInstrumentation(): void {\n if (errorsInstrumented) {\n return;\n }\n\n errorsInstrumented = true;\n addGlobalErrorInstrumentationHandler(errorCallback);\n addGlobalUnhandledRejectionInstrumentationHandler(errorCallback);\n}\n\n/**\n * If an error or unhandled promise occurs, we mark the active transaction as failed\n */\nfunction errorCallback(): void {\n // eslint-disable-next-line deprecation/deprecation\n const activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n const status: SpanStatusType = 'internal_error';\n DEBUG_BUILD && logger.log(`[Tracing] Transaction: ${status} -> Global error occured`);\n activeTransaction.setStatus(status);\n }\n}\n\n// The function name will be lost when bundling but we need to be able to identify this listener later to maintain the\n// node.js default exit behaviour\nerrorCallback.tag = 'sentry_tracingErrorCallback';\n","import type { Options, SamplingContext } from '@sentry/types';\nimport { isNaN, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE } from '../semanticAttributes';\nimport { hasTracingEnabled } from '../utils/hasTracingEnabled';\nimport { spanToJSON } from '../utils/spanUtils';\nimport type { Transaction } from './transaction';\n\n/**\n * Makes a sampling decision for the given transaction and stores it on the transaction.\n *\n * Called every time a transaction is created. Only transactions which emerge with a `sampled` value of `true` will be\n * sent to Sentry.\n *\n * This method muttes the given `transaction` and will set the `sampled` value on it.\n * It returns the same transaction, for convenience.\n */\nexport function sampleTransaction(\n transaction: T,\n options: Pick,\n samplingContext: SamplingContext,\n): T {\n // nothing to do if tracing is not enabled\n if (!hasTracingEnabled(options)) {\n // eslint-disable-next-line deprecation/deprecation\n transaction.sampled = false;\n return transaction;\n }\n\n // if the user has forced a sampling decision by passing a `sampled` value in their transaction context, go with that\n // eslint-disable-next-line deprecation/deprecation\n if (transaction.sampled !== undefined) {\n // eslint-disable-next-line deprecation/deprecation\n transaction.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, Number(transaction.sampled));\n return transaction;\n }\n\n // we would have bailed already if neither `tracesSampler` nor `tracesSampleRate` nor `enableTracing` were defined, so one of these should\n // work; prefer the hook if so\n let sampleRate;\n if (typeof options.tracesSampler === 'function') {\n sampleRate = options.tracesSampler(samplingContext);\n transaction.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, Number(sampleRate));\n } else if (samplingContext.parentSampled !== undefined) {\n sampleRate = samplingContext.parentSampled;\n } else if (typeof options.tracesSampleRate !== 'undefined') {\n sampleRate = options.tracesSampleRate;\n transaction.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, Number(sampleRate));\n } else {\n // When `enableTracing === true`, we use a sample rate of 100%\n sampleRate = 1;\n transaction.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, sampleRate);\n }\n\n // Since this is coming from the user (or from a function provided by the user), who knows what we might get. (The\n // only valid values are booleans or numbers between 0 and 1.)\n if (!isValidSampleRate(sampleRate)) {\n DEBUG_BUILD && logger.warn('[Tracing] Discarding transaction because of invalid sample rate.');\n // eslint-disable-next-line deprecation/deprecation\n transaction.sampled = false;\n return transaction;\n }\n\n // if the function returned 0 (or false), or if `tracesSampleRate` is 0, it's a sign the transaction should be dropped\n if (!sampleRate) {\n DEBUG_BUILD &&\n logger.log(\n `[Tracing] Discarding transaction because ${\n typeof options.tracesSampler === 'function'\n ? 'tracesSampler returned 0 or false'\n : 'a negative sampling decision was inherited or tracesSampleRate is set to 0'\n }`,\n );\n // eslint-disable-next-line deprecation/deprecation\n transaction.sampled = false;\n return transaction;\n }\n\n // Now we roll the dice. Math.random is inclusive of 0, but not of 1, so strict < is safe here. In case sampleRate is\n // a boolean, the < comparison will cause it to be automatically cast to 1 if it's true and 0 if it's false.\n // eslint-disable-next-line deprecation/deprecation\n transaction.sampled = Math.random() < (sampleRate as number | boolean);\n\n // if we're not going to keep it, we're done\n // eslint-disable-next-line deprecation/deprecation\n if (!transaction.sampled) {\n DEBUG_BUILD &&\n logger.log(\n `[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number(\n sampleRate,\n )})`,\n );\n return transaction;\n }\n\n DEBUG_BUILD &&\n // eslint-disable-next-line deprecation/deprecation\n logger.log(`[Tracing] starting ${transaction.op} transaction - ${spanToJSON(transaction).description}`);\n return transaction;\n}\n\n/**\n * Checks the given sample rate to make sure it is valid type and value (a boolean, or a number between 0 and 1).\n */\nexport function isValidSampleRate(rate: unknown): boolean {\n // we need to check NaN explicitly because it's of type 'number' and therefore wouldn't get caught by this typecheck\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isNaN(rate) || !(typeof rate === 'number' || typeof rate === 'boolean')) {\n DEBUG_BUILD &&\n logger.warn(\n `[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(\n rate,\n )} of type ${JSON.stringify(typeof rate)}.`,\n );\n return false;\n }\n\n // in case sampleRate is a boolean, it will get automatically cast to 1 if it's true and 0 if it's false\n if (rate < 0 || rate > 1) {\n DEBUG_BUILD &&\n logger.warn(`[Tracing] Given sample rate is invalid. Sample rate must be between 0 and 1. Got ${rate}.`);\n return false;\n }\n return true;\n}\n","import type { ClientOptions, CustomSamplingContext, TransactionContext } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { Hub } from '../hub';\nimport { getMainCarrier } from '../hub';\nimport { spanToTraceHeader } from '../utils/spanUtils';\nimport { registerErrorInstrumentation } from './errors';\nimport { IdleTransaction } from './idletransaction';\nimport { sampleTransaction } from './sampling';\nimport { Transaction } from './transaction';\n\n/** Returns all trace headers that are currently on the top scope. */\n// eslint-disable-next-line deprecation/deprecation\nfunction traceHeaders(this: Hub): { [key: string]: string } {\n // eslint-disable-next-line deprecation/deprecation\n const scope = this.getScope();\n // eslint-disable-next-line deprecation/deprecation\n const span = scope.getSpan();\n\n return span\n ? {\n 'sentry-trace': spanToTraceHeader(span),\n }\n : {};\n}\n\n/**\n * Creates a new transaction and adds a sampling decision if it doesn't yet have one.\n *\n * The Hub.startTransaction method delegates to this method to do its work, passing the Hub instance in as `this`, as if\n * it had been called on the hub directly. Exists as a separate function so that it can be injected into the class as an\n * \"extension method.\"\n *\n * @param this: The Hub starting the transaction\n * @param transactionContext: Data used to configure the transaction\n * @param CustomSamplingContext: Optional data to be provided to the `tracesSampler` function (if any)\n *\n * @returns The new transaction\n *\n * @see {@link Hub.startTransaction}\n */\nfunction _startTransaction(\n // eslint-disable-next-line deprecation/deprecation\n this: Hub,\n transactionContext: TransactionContext,\n customSamplingContext?: CustomSamplingContext,\n): Transaction {\n // eslint-disable-next-line deprecation/deprecation\n const client = this.getClient();\n const options: Partial = (client && client.getOptions()) || {};\n\n const configInstrumenter = options.instrumenter || 'sentry';\n const transactionInstrumenter = transactionContext.instrumenter || 'sentry';\n\n if (configInstrumenter !== transactionInstrumenter) {\n DEBUG_BUILD &&\n logger.error(\n `A transaction was started with instrumenter=\\`${transactionInstrumenter}\\`, but the SDK is configured with the \\`${configInstrumenter}\\` instrumenter.\nThe transaction will not be sampled. Please use the ${configInstrumenter} instrumentation to start transactions.`,\n );\n\n // eslint-disable-next-line deprecation/deprecation\n transactionContext.sampled = false;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n let transaction = new Transaction(transactionContext, this);\n transaction = sampleTransaction(transaction, options, {\n name: transactionContext.name,\n parentSampled: transactionContext.parentSampled,\n transactionContext,\n attributes: {\n // eslint-disable-next-line deprecation/deprecation\n ...transactionContext.data,\n ...transactionContext.attributes,\n },\n ...customSamplingContext,\n });\n if (transaction.isRecording()) {\n transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans as number));\n }\n if (client && client.emit) {\n client.emit('startTransaction', transaction);\n }\n return transaction;\n}\n\n/**\n * Create new idle transaction.\n */\nexport function startIdleTransaction(\n // eslint-disable-next-line deprecation/deprecation\n hub: Hub,\n transactionContext: TransactionContext,\n idleTimeout: number,\n finalTimeout: number,\n onScope?: boolean,\n customSamplingContext?: CustomSamplingContext,\n heartbeatInterval?: number,\n delayAutoFinishUntilSignal: boolean = false,\n): IdleTransaction {\n // eslint-disable-next-line deprecation/deprecation\n const client = hub.getClient();\n const options: Partial = (client && client.getOptions()) || {};\n\n // eslint-disable-next-line deprecation/deprecation\n let transaction = new IdleTransaction(\n transactionContext,\n hub,\n idleTimeout,\n finalTimeout,\n heartbeatInterval,\n onScope,\n delayAutoFinishUntilSignal,\n );\n transaction = sampleTransaction(transaction, options, {\n name: transactionContext.name,\n parentSampled: transactionContext.parentSampled,\n transactionContext,\n attributes: {\n // eslint-disable-next-line deprecation/deprecation\n ...transactionContext.data,\n ...transactionContext.attributes,\n },\n ...customSamplingContext,\n });\n if (transaction.isRecording()) {\n transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans as number));\n }\n if (client && client.emit) {\n client.emit('startTransaction', transaction);\n }\n return transaction;\n}\n\n/**\n * Adds tracing extensions to the global hub.\n */\nexport function addTracingExtensions(): void {\n const carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n carrier.__SENTRY__.extensions = carrier.__SENTRY__.extensions || {};\n if (!carrier.__SENTRY__.extensions.startTransaction) {\n carrier.__SENTRY__.extensions.startTransaction = _startTransaction;\n }\n if (!carrier.__SENTRY__.extensions.traceHeaders) {\n carrier.__SENTRY__.extensions.traceHeaders = traceHeaders;\n }\n\n registerErrorInstrumentation();\n}\n","declare const __DEBUG_BUILD__: boolean;\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nexport const DEBUG_BUILD = __DEBUG_BUILD__;\n","import { GLOBAL_OBJ } from '@sentry/utils';\n\nexport const WINDOW = GLOBAL_OBJ as typeof GLOBAL_OBJ &\n // document is not available in all browser environments (webworkers). We make it optional so you have to explicitly check for it\n Omit &\n Partial>;\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Metric, ReportCallback } from '../types';\n\nexport const bindReporter = (\n callback: ReportCallback,\n metric: Metric,\n reportAllChanges?: boolean,\n): ((forceReport?: boolean) => void) => {\n let prevValue: number;\n let delta: number;\n return (forceReport?: boolean) => {\n if (metric.value >= 0) {\n if (forceReport || reportAllChanges) {\n delta = metric.value - (prevValue || 0);\n\n // Report the metric if there's a non-zero delta or if no previous\n // value exists (which can happen in the case of the document becoming\n // hidden when the metric value is 0).\n // See: https://github.com/GoogleChrome/web-vitals/issues/14\n if (delta || prevValue === undefined) {\n prevValue = metric.value;\n metric.delta = delta;\n callback(metric);\n }\n }\n }\n };\n};\n","/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WINDOW } from '../../types';\nimport type { NavigationTimingPolyfillEntry } from '../types';\n\nconst getNavigationEntryFromPerformanceTiming = (): NavigationTimingPolyfillEntry => {\n // eslint-disable-next-line deprecation/deprecation\n const timing = WINDOW.performance.timing;\n // eslint-disable-next-line deprecation/deprecation\n const type = WINDOW.performance.navigation.type;\n\n const navigationEntry: { [key: string]: number | string } = {\n entryType: 'navigation',\n startTime: 0,\n type: type == 2 ? 'back_forward' : type === 1 ? 'reload' : 'navigate',\n };\n\n for (const key in timing) {\n if (key !== 'navigationStart' && key !== 'toJSON') {\n // eslint-disable-next-line deprecation/deprecation\n navigationEntry[key] = Math.max((timing[key as keyof PerformanceTiming] as number) - timing.navigationStart, 0);\n }\n }\n return navigationEntry as unknown as NavigationTimingPolyfillEntry;\n};\n\nexport const getNavigationEntry = (): PerformanceNavigationTiming | NavigationTimingPolyfillEntry | undefined => {\n if (WINDOW.__WEB_VITALS_POLYFILL__) {\n return (\n WINDOW.performance &&\n ((performance.getEntriesByType && performance.getEntriesByType('navigation')[0]) ||\n getNavigationEntryFromPerformanceTiming())\n );\n } else {\n return WINDOW.performance && performance.getEntriesByType && performance.getEntriesByType('navigation')[0];\n }\n};\n","/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getNavigationEntry } from './getNavigationEntry';\n\nexport const getActivationStart = (): number => {\n const navEntry = getNavigationEntry();\n return (navEntry && navEntry.activationStart) || 0;\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WINDOW } from '../../types';\nimport type { Metric } from '../types';\nimport { generateUniqueID } from './generateUniqueID';\nimport { getActivationStart } from './getActivationStart';\nimport { getNavigationEntry } from './getNavigationEntry';\n\nexport const initMetric = (name: Metric['name'], value?: number): Metric => {\n const navEntry = getNavigationEntry();\n let navigationType: Metric['navigationType'] = 'navigate';\n\n if (navEntry) {\n if ((WINDOW.document && WINDOW.document.prerendering) || getActivationStart() > 0) {\n navigationType = 'prerender';\n } else {\n navigationType = navEntry.type.replace(/_/g, '-') as Metric['navigationType'];\n }\n }\n\n return {\n name,\n value: typeof value === 'undefined' ? -1 : value,\n rating: 'good', // Will be updated if the value changes.\n delta: 0,\n entries: [],\n id: generateUniqueID(),\n navigationType,\n };\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Performantly generate a unique, 30-char string by combining a version\n * number, the current timestamp with a 13-digit number integer.\n * @return {string}\n */\nexport const generateUniqueID = (): string => {\n return `v3-${Date.now()}-${Math.floor(Math.random() * (9e12 - 1)) + 1e12}`;\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { FirstInputPolyfillEntry, NavigationTimingPolyfillEntry, PerformancePaintTiming } from '../types';\n\nexport interface PerformanceEntryHandler {\n (entry: PerformanceEntry): void;\n}\n\ninterface PerformanceEntryMap {\n event: PerformanceEventTiming[];\n paint: PerformancePaintTiming[];\n 'layout-shift': LayoutShift[];\n 'largest-contentful-paint': LargestContentfulPaint[];\n 'first-input': PerformanceEventTiming[] | FirstInputPolyfillEntry[];\n navigation: PerformanceNavigationTiming[] | NavigationTimingPolyfillEntry[];\n resource: PerformanceResourceTiming[];\n longtask: PerformanceEntry[];\n}\n\n/**\n * Takes a performance entry type and a callback function, and creates a\n * `PerformanceObserver` instance that will observe the specified entry type\n * with buffering enabled and call the callback _for each entry_.\n *\n * This function also feature-detects entry support and wraps the logic in a\n * try/catch to avoid errors in unsupporting browsers.\n */\nexport const observe = (\n type: K,\n callback: (entries: PerformanceEntryMap[K]) => void,\n opts?: PerformanceObserverInit,\n): PerformanceObserver | undefined => {\n try {\n if (PerformanceObserver.supportedEntryTypes.includes(type)) {\n const po = new PerformanceObserver(list => {\n callback(list.getEntries() as PerformanceEntryMap[K]);\n });\n po.observe(\n Object.assign(\n {\n type,\n buffered: true,\n },\n opts || {},\n ) as PerformanceObserverInit,\n );\n return po;\n }\n } catch (e) {\n // Do nothing.\n }\n return;\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WINDOW } from '../../types';\n\nexport interface OnHiddenCallback {\n (event: Event): void;\n}\n\nexport const onHidden = (cb: OnHiddenCallback, once?: boolean): void => {\n const onHiddenOrPageHide = (event: Event): void => {\n if (event.type === 'pagehide' || WINDOW.document!.visibilityState === 'hidden') {\n cb(event);\n if (once) {\n removeEventListener('visibilitychange', onHiddenOrPageHide, true);\n removeEventListener('pagehide', onHiddenOrPageHide, true);\n }\n }\n };\n\n if (WINDOW.document) {\n addEventListener('visibilitychange', onHiddenOrPageHide, true);\n // Some browsers have buggy implementations of visibilitychange,\n // so we use pagehide in addition, just to be safe.\n addEventListener('pagehide', onHiddenOrPageHide, true);\n }\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WINDOW } from '../../types';\nimport { onHidden } from './onHidden';\n\nlet firstHiddenTime = -1;\n\nconst initHiddenTime = (): void => {\n // If the document is hidden and not prerendering, assume it was always\n // hidden and the page was loaded in the background.\n if (WINDOW.document && WINDOW.document.visibilityState) {\n firstHiddenTime = WINDOW.document.visibilityState === 'hidden' && !WINDOW.document.prerendering ? 0 : Infinity;\n }\n};\n\nconst trackChanges = (): void => {\n // Update the time if/when the document becomes hidden.\n onHidden(({ timeStamp }) => {\n firstHiddenTime = timeStamp;\n }, true);\n};\n\nexport const getVisibilityWatcher = (): {\n readonly firstHiddenTime: number;\n} => {\n if (firstHiddenTime < 0) {\n // If the document is hidden when this code runs, assume it was hidden\n // since navigation start. This isn't a perfect heuristic, but it's the\n // best we can do until an API is available to support querying past\n // visibilityState.\n initHiddenTime();\n trackChanges();\n }\n return {\n get firstHiddenTime() {\n return firstHiddenTime;\n },\n };\n};\n","/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Metric } from '../../types';\nimport { observe } from '../observe';\n\ndeclare global {\n interface Performance {\n interactionCount: number;\n }\n}\n\nlet interactionCountEstimate = 0;\nlet minKnownInteractionId = Infinity;\nlet maxKnownInteractionId = 0;\n\nconst updateEstimate = (entries: Metric['entries']): void => {\n (entries as PerformanceEventTiming[]).forEach(e => {\n if (e.interactionId) {\n minKnownInteractionId = Math.min(minKnownInteractionId, e.interactionId);\n maxKnownInteractionId = Math.max(maxKnownInteractionId, e.interactionId);\n\n interactionCountEstimate = maxKnownInteractionId ? (maxKnownInteractionId - minKnownInteractionId) / 7 + 1 : 0;\n }\n });\n};\n\nlet po: PerformanceObserver | undefined;\n\n/**\n * Returns the `interactionCount` value using the native API (if available)\n * or the polyfill estimate in this module.\n */\nexport const getInteractionCount = (): number => {\n return po ? interactionCountEstimate : performance.interactionCount || 0;\n};\n\n/**\n * Feature detects native support or initializes the polyfill if needed.\n */\nexport const initInteractionCountPolyfill = (): void => {\n if ('interactionCount' in performance || po) return;\n\n po = observe('event', updateEstimate, {\n type: 'event',\n buffered: true,\n durationThreshold: 0,\n } as PerformanceObserverInit);\n};\n","/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bindReporter } from './lib/bindReporter';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport { getInteractionCount, initInteractionCountPolyfill } from './lib/polyfills/interactionCountPolyfill';\nimport type { ReportCallback, ReportOpts } from './types';\nimport type { INPMetric } from './types/inp';\n\ninterface Interaction {\n id: number;\n latency: number;\n entries: PerformanceEventTiming[];\n}\n\n/**\n * Returns the interaction count since the last bfcache restore (or for the\n * full page lifecycle if there were no bfcache restores).\n */\nconst getInteractionCountForNavigation = (): number => {\n return getInteractionCount();\n};\n\n// To prevent unnecessary memory usage on pages with lots of interactions,\n// store at most 10 of the longest interactions to consider as INP candidates.\nconst MAX_INTERACTIONS_TO_CONSIDER = 10;\n\n// A list of longest interactions on the page (by latency) sorted so the\n// longest one is first. The list is as most MAX_INTERACTIONS_TO_CONSIDER long.\nconst longestInteractionList: Interaction[] = [];\n\n// A mapping of longest interactions by their interaction ID.\n// This is used for faster lookup.\nconst longestInteractionMap: { [interactionId: string]: Interaction } = {};\n\n/**\n * Takes a performance entry and adds it to the list of worst interactions\n * if its duration is long enough to make it among the worst. If the\n * entry is part of an existing interaction, it is merged and the latency\n * and entries list is updated as needed.\n */\nconst processEntry = (entry: PerformanceEventTiming): void => {\n // The least-long of the 10 longest interactions.\n const minLongestInteraction = longestInteractionList[longestInteractionList.length - 1];\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const existingInteraction = longestInteractionMap[entry.interactionId!];\n\n // Only process the entry if it's possibly one of the ten longest,\n // or if it's part of an existing interaction.\n if (\n existingInteraction ||\n longestInteractionList.length < MAX_INTERACTIONS_TO_CONSIDER ||\n entry.duration > minLongestInteraction.latency\n ) {\n // If the interaction already exists, update it. Otherwise create one.\n if (existingInteraction) {\n existingInteraction.entries.push(entry);\n existingInteraction.latency = Math.max(existingInteraction.latency, entry.duration);\n } else {\n const interaction = {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n id: entry.interactionId!,\n latency: entry.duration,\n entries: [entry],\n };\n longestInteractionMap[interaction.id] = interaction;\n longestInteractionList.push(interaction);\n }\n\n // Sort the entries by latency (descending) and keep only the top ten.\n longestInteractionList.sort((a, b) => b.latency - a.latency);\n longestInteractionList.splice(MAX_INTERACTIONS_TO_CONSIDER).forEach(i => {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete longestInteractionMap[i.id];\n });\n }\n};\n\n/**\n * Returns the estimated p98 longest interaction based on the stored\n * interaction candidates and the interaction count for the current page.\n */\nconst estimateP98LongestInteraction = (): Interaction => {\n const candidateInteractionIndex = Math.min(\n longestInteractionList.length - 1,\n Math.floor(getInteractionCountForNavigation() / 50),\n );\n\n return longestInteractionList[candidateInteractionIndex];\n};\n\n/**\n * Calculates the [INP](https://web.dev/responsiveness/) value for the current\n * page and calls the `callback` function once the value is ready, along with\n * the `event` performance entries reported for that interaction. The reported\n * value is a `DOMHighResTimeStamp`.\n *\n * A custom `durationThreshold` configuration option can optionally be passed to\n * control what `event-timing` entries are considered for INP reporting. The\n * default threshold is `40`, which means INP scores of less than 40 are\n * reported as 0. Note that this will not affect your 75th percentile INP value\n * unless that value is also less than 40 (well below the recommended\n * [good](https://web.dev/inp/#what-is-a-good-inp-score) threshold).\n *\n * If the `reportAllChanges` configuration option is set to `true`, the\n * `callback` function will be called as soon as the value is initially\n * determined as well as any time the value changes throughout the page\n * lifespan.\n *\n * _**Important:** INP should be continually monitored for changes throughout\n * the entire lifespan of a page—including if the user returns to the page after\n * it's been hidden/backgrounded. However, since browsers often [will not fire\n * additional callbacks once the user has backgrounded a\n * page](https://developer.chrome.com/blog/page-lifecycle-api/#advice-hidden),\n * `callback` is always called when the page's visibility state changes to\n * hidden. As a result, the `callback` function might be called multiple times\n * during the same page load._\n */\nexport const onINP = (onReport: ReportCallback, opts?: ReportOpts): void => {\n // Set defaults\n // eslint-disable-next-line no-param-reassign\n opts = opts || {};\n\n // https://web.dev/inp/#what's-a-%22good%22-inp-value\n // const thresholds = [200, 500];\n\n // TODO(philipwalton): remove once the polyfill is no longer needed.\n initInteractionCountPolyfill();\n\n const metric = initMetric('INP');\n // eslint-disable-next-line prefer-const\n let report: ReturnType;\n\n const handleEntries = (entries: INPMetric['entries']): void => {\n entries.forEach(entry => {\n if (entry.interactionId) {\n processEntry(entry);\n }\n\n // Entries of type `first-input` don't currently have an `interactionId`,\n // so to consider them in INP we have to first check that an existing\n // entry doesn't match the `duration` and `startTime`.\n // Note that this logic assumes that `event` entries are dispatched\n // before `first-input` entries. This is true in Chrome but it is not\n // true in Firefox; however, Firefox doesn't support interactionId, so\n // it's not an issue at the moment.\n // TODO(philipwalton): remove once crbug.com/1325826 is fixed.\n if (entry.entryType === 'first-input') {\n const noMatchingEntry = !longestInteractionList.some(interaction => {\n return interaction.entries.some(prevEntry => {\n return entry.duration === prevEntry.duration && entry.startTime === prevEntry.startTime;\n });\n });\n if (noMatchingEntry) {\n processEntry(entry);\n }\n }\n });\n\n const inp = estimateP98LongestInteraction();\n\n if (inp && inp.latency !== metric.value) {\n metric.value = inp.latency;\n metric.entries = inp.entries;\n report();\n }\n };\n\n const po = observe('event', handleEntries, {\n // Event Timing entries have their durations rounded to the nearest 8ms,\n // so a duration of 40ms would be any event that spans 2.5 or more frames\n // at 60Hz. This threshold is chosen to strike a balance between usefulness\n // and performance. Running this callback for any interaction that spans\n // just one or two frames is likely not worth the insight that could be\n // gained.\n durationThreshold: opts.durationThreshold || 40,\n } as PerformanceObserverInit);\n\n report = bindReporter(onReport, metric, opts.reportAllChanges);\n\n if (po) {\n // Also observe entries of type `first-input`. This is useful in cases\n // where the first interaction is less than the `durationThreshold`.\n po.observe({ type: 'first-input', buffered: true });\n\n onHidden(() => {\n handleEntries(po.takeRecords() as INPMetric['entries']);\n\n // If the interaction count shows that there were interactions but\n // none were captured by the PerformanceObserver, report a latency of 0.\n if (metric.value < 0 && getInteractionCountForNavigation() > 0) {\n metric.value = 0;\n metric.entries = [];\n }\n\n report(true);\n });\n }\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WINDOW } from '../types';\nimport { bindReporter } from './lib/bindReporter';\nimport { getActivationStart } from './lib/getActivationStart';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport type { LCPMetric, ReportCallback, StopListening } from './types';\n\nconst reportedMetricIDs: Record = {};\n\n/**\n * Calculates the [LCP](https://web.dev/lcp/) value for the current page and\n * calls the `callback` function once the value is ready (along with the\n * relevant `largest-contentful-paint` performance entry used to determine the\n * value). The reported value is a `DOMHighResTimeStamp`.\n */\nexport const onLCP = (onReport: ReportCallback): StopListening | undefined => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('LCP');\n let report: ReturnType;\n\n const handleEntries = (entries: LCPMetric['entries']): void => {\n const lastEntry = entries[entries.length - 1] as LargestContentfulPaint;\n if (lastEntry) {\n // The startTime attribute returns the value of the renderTime if it is\n // not 0, and the value of the loadTime otherwise. The activationStart\n // reference is used because LCP should be relative to page activation\n // rather than navigation start if the page was prerendered.\n const value = Math.max(lastEntry.startTime - getActivationStart(), 0);\n\n // Only report if the page wasn't hidden prior to LCP.\n if (value < visibilityWatcher.firstHiddenTime) {\n metric.value = value;\n metric.entries = [lastEntry];\n report();\n }\n }\n };\n\n const po = observe('largest-contentful-paint', handleEntries);\n\n if (po) {\n report = bindReporter(onReport, metric);\n\n const stopListening = (): void => {\n if (!reportedMetricIDs[metric.id]) {\n handleEntries(po.takeRecords() as LCPMetric['entries']);\n po.disconnect();\n reportedMetricIDs[metric.id] = true;\n report(true);\n }\n };\n\n // Stop listening after input. Note: while scrolling is an input that\n // stop LCP observation, it's unreliable since it can be programmatically\n // generated. See: https://github.com/GoogleChrome/web-vitals/issues/75\n ['keydown', 'click'].forEach(type => {\n if (WINDOW.document) {\n addEventListener(type, stopListening, { once: true, capture: true });\n }\n });\n\n onHidden(stopListening, true);\n\n return stopListening;\n }\n\n return;\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WINDOW } from '../types';\nimport { bindReporter } from './lib/bindReporter';\nimport { getActivationStart } from './lib/getActivationStart';\nimport { getNavigationEntry } from './lib/getNavigationEntry';\nimport { initMetric } from './lib/initMetric';\nimport type { ReportCallback, ReportOpts } from './types';\nimport type { TTFBMetric } from './types/ttfb';\n\n/**\n * Runs in the next task after the page is done loading and/or prerendering.\n * @param callback\n */\nconst whenReady = (callback: () => void): void => {\n if (!WINDOW.document) {\n return;\n }\n\n if (WINDOW.document.prerendering) {\n addEventListener('prerenderingchange', () => whenReady(callback), true);\n } else if (WINDOW.document.readyState !== 'complete') {\n addEventListener('load', () => whenReady(callback), true);\n } else {\n // Queue a task so the callback runs after `loadEventEnd`.\n setTimeout(callback, 0);\n }\n};\n\n/**\n * Calculates the [TTFB](https://web.dev/time-to-first-byte/) value for the\n * current page and calls the `callback` function once the page has loaded,\n * along with the relevant `navigation` performance entry used to determine the\n * value. The reported value is a `DOMHighResTimeStamp`.\n *\n * Note, this function waits until after the page is loaded to call `callback`\n * in order to ensure all properties of the `navigation` entry are populated.\n * This is useful if you want to report on other metrics exposed by the\n * [Navigation Timing API](https://w3c.github.io/navigation-timing/). For\n * example, the TTFB metric starts from the page's [time\n * origin](https://www.w3.org/TR/hr-time-2/#sec-time-origin), which means it\n * includes time spent on DNS lookup, connection negotiation, network latency,\n * and server processing time.\n */\nexport const onTTFB = (onReport: ReportCallback, opts?: ReportOpts): void => {\n // Set defaults\n // eslint-disable-next-line no-param-reassign\n opts = opts || {};\n\n // https://web.dev/ttfb/#what-is-a-good-ttfb-score\n // const thresholds = [800, 1800];\n\n const metric = initMetric('TTFB');\n const report = bindReporter(onReport, metric, opts.reportAllChanges);\n\n whenReady(() => {\n const navEntry = getNavigationEntry() as TTFBMetric['entries'][number];\n\n if (navEntry) {\n // The activationStart reference is used because TTFB should be\n // relative to page activation rather than navigation start if the\n // page was prerendered. But in cases where `activationStart` occurs\n // after the first byte is received, this time should be clamped at 0.\n metric.value = Math.max(navEntry.responseStart - getActivationStart(), 0);\n\n // In some cases the value reported is negative or is larger\n // than the current page time. Ignore these cases:\n // https://github.com/GoogleChrome/web-vitals/issues/137\n // https://github.com/GoogleChrome/web-vitals/issues/162\n if (metric.value < 0 || metric.value > performance.now()) return;\n\n metric.entries = [navEntry];\n\n report(true);\n }\n });\n};\n","import { getFunctionName, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../common/debug-build';\nimport { onCLS } from './web-vitals/getCLS';\nimport { onFID } from './web-vitals/getFID';\nimport { onINP } from './web-vitals/getINP';\nimport { onLCP } from './web-vitals/getLCP';\nimport { observe } from './web-vitals/lib/observe';\nimport { onTTFB } from './web-vitals/onTTFB';\n\ntype InstrumentHandlerTypePerformanceObserver =\n | 'longtask'\n | 'event'\n | 'navigation'\n | 'paint'\n | 'resource'\n | 'first-input';\n\ntype InstrumentHandlerTypeMetric = 'cls' | 'lcp' | 'fid' | 'ttfb' | 'inp';\n\n// We provide this here manually instead of relying on a global, as this is not available in non-browser environements\n// And we do not want to expose such types\ninterface PerformanceEntry {\n readonly duration: number;\n readonly entryType: string;\n readonly name: string;\n readonly startTime: number;\n toJSON(): Record;\n}\ninterface PerformanceEventTiming extends PerformanceEntry {\n processingStart: number;\n processingEnd: number;\n duration: number;\n cancelable?: boolean;\n target?: unknown | null;\n interactionId?: number;\n}\n\ninterface Metric {\n /**\n * The name of the metric (in acronym form).\n */\n name: 'CLS' | 'FCP' | 'FID' | 'INP' | 'LCP' | 'TTFB';\n\n /**\n * The current value of the metric.\n */\n value: number;\n\n /**\n * The rating as to whether the metric value is within the \"good\",\n * \"needs improvement\", or \"poor\" thresholds of the metric.\n */\n rating: 'good' | 'needs-improvement' | 'poor';\n\n /**\n * The delta between the current value and the last-reported value.\n * On the first report, `delta` and `value` will always be the same.\n */\n delta: number;\n\n /**\n * A unique ID representing this particular metric instance. This ID can\n * be used by an analytics tool to dedupe multiple values sent for the same\n * metric instance, or to group multiple deltas together and calculate a\n * total. It can also be used to differentiate multiple different metric\n * instances sent from the same page, which can happen if the page is\n * restored from the back/forward cache (in that case new metrics object\n * get created).\n */\n id: string;\n\n /**\n * Any performance entries relevant to the metric value calculation.\n * The array may also be empty if the metric value was not based on any\n * entries (e.g. a CLS value of 0 given no layout shifts).\n */\n entries: PerformanceEntry[];\n\n /**\n * The type of navigation\n *\n * Navigation Timing API (or `undefined` if the browser doesn't\n * support that API). For pages that are restored from the bfcache, this\n * value will be 'back-forward-cache'.\n */\n navigationType: 'navigate' | 'reload' | 'back-forward' | 'back-forward-cache' | 'prerender';\n}\n\ntype InstrumentHandlerType = InstrumentHandlerTypeMetric | InstrumentHandlerTypePerformanceObserver;\n\ntype StopListening = undefined | void | (() => void);\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype InstrumentHandlerCallback = (data: any) => void;\n\ntype CleanupHandlerCallback = () => void;\n\nconst handlers: { [key in InstrumentHandlerType]?: InstrumentHandlerCallback[] } = {};\nconst instrumented: { [key in InstrumentHandlerType]?: boolean } = {};\n\nlet _previousCls: Metric | undefined;\nlet _previousFid: Metric | undefined;\nlet _previousLcp: Metric | undefined;\nlet _previousTtfb: Metric | undefined;\nlet _previousInp: Metric | undefined;\n\n/**\n * Add a callback that will be triggered when a CLS metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n *\n * Pass `stopOnCallback = true` to stop listening for CLS when the cleanup callback is called.\n * This will lead to the CLS being finalized and frozen.\n */\nexport function addClsInstrumentationHandler(\n callback: (data: { metric: Metric }) => void,\n stopOnCallback = false,\n): CleanupHandlerCallback {\n return addMetricObserver('cls', callback, instrumentCls, _previousCls, stopOnCallback);\n}\n\n/**\n * Add a callback that will be triggered when a LCP metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n *\n * Pass `stopOnCallback = true` to stop listening for LCP when the cleanup callback is called.\n * This will lead to the LCP being finalized and frozen.\n */\nexport function addLcpInstrumentationHandler(\n callback: (data: { metric: Metric }) => void,\n stopOnCallback = false,\n): CleanupHandlerCallback {\n return addMetricObserver('lcp', callback, instrumentLcp, _previousLcp, stopOnCallback);\n}\n\n/**\n * Add a callback that will be triggered when a FID metric is available.\n */\nexport function addTtfbInstrumentationHandler(callback: (data: { metric: Metric }) => void): CleanupHandlerCallback {\n return addMetricObserver('ttfb', callback, instrumentTtfb, _previousTtfb);\n}\n\n/**\n * Add a callback that will be triggered when a FID metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nexport function addFidInstrumentationHandler(callback: (data: { metric: Metric }) => void): CleanupHandlerCallback {\n return addMetricObserver('fid', callback, instrumentFid, _previousFid);\n}\n\n/**\n * Add a callback that will be triggered when a INP metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nexport function addInpInstrumentationHandler(\n callback: (data: { metric: Omit & { entries: PerformanceEventTiming[] } }) => void,\n): CleanupHandlerCallback {\n return addMetricObserver('inp', callback, instrumentInp, _previousInp);\n}\n\nexport function addPerformanceInstrumentationHandler(\n type: 'event' | 'first-input',\n callback: (data: { entries: ((PerformanceEntry & { target?: unknown | null }) | PerformanceEventTiming)[] }) => void,\n): CleanupHandlerCallback;\nexport function addPerformanceInstrumentationHandler(\n type: InstrumentHandlerTypePerformanceObserver,\n callback: (data: { entries: PerformanceEntry[] }) => void,\n): CleanupHandlerCallback;\n\n/**\n * Add a callback that will be triggered when a performance observer is triggered,\n * and receives the entries of the observer.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nexport function addPerformanceInstrumentationHandler(\n type: InstrumentHandlerTypePerformanceObserver,\n callback: (data: { entries: PerformanceEntry[] }) => void,\n): CleanupHandlerCallback {\n addHandler(type, callback);\n\n if (!instrumented[type]) {\n instrumentPerformanceObserver(type);\n instrumented[type] = true;\n }\n\n return getCleanupCallback(type, callback);\n}\n\n/** Trigger all handlers of a given type. */\nfunction triggerHandlers(type: InstrumentHandlerType, data: unknown): void {\n const typeHandlers = handlers[type];\n\n if (!typeHandlers || !typeHandlers.length) {\n return;\n }\n\n for (const handler of typeHandlers) {\n try {\n handler(data);\n } catch (e) {\n DEBUG_BUILD &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\nfunction instrumentCls(): StopListening {\n return onCLS(\n metric => {\n triggerHandlers('cls', {\n metric,\n });\n _previousCls = metric;\n },\n { reportAllChanges: true },\n );\n}\n\nfunction instrumentFid(): void {\n return onFID(metric => {\n triggerHandlers('fid', {\n metric,\n });\n _previousFid = metric;\n });\n}\n\nfunction instrumentLcp(): StopListening {\n return onLCP(metric => {\n triggerHandlers('lcp', {\n metric,\n });\n _previousLcp = metric;\n });\n}\n\nfunction instrumentTtfb(): StopListening {\n return onTTFB(metric => {\n triggerHandlers('ttfb', {\n metric,\n });\n _previousTtfb = metric;\n });\n}\n\nfunction instrumentInp(): void {\n return onINP(metric => {\n triggerHandlers('inp', {\n metric,\n });\n _previousInp = metric;\n });\n}\n\nfunction addMetricObserver(\n type: InstrumentHandlerTypeMetric,\n callback: InstrumentHandlerCallback,\n instrumentFn: () => StopListening,\n previousValue: Metric | undefined,\n stopOnCallback = false,\n): CleanupHandlerCallback {\n addHandler(type, callback);\n\n let stopListening: StopListening | undefined;\n\n if (!instrumented[type]) {\n stopListening = instrumentFn();\n instrumented[type] = true;\n }\n\n if (previousValue) {\n callback({ metric: previousValue });\n }\n\n return getCleanupCallback(type, callback, stopOnCallback ? stopListening : undefined);\n}\n\nfunction instrumentPerformanceObserver(type: InstrumentHandlerTypePerformanceObserver): void {\n const options: PerformanceObserverInit = {};\n\n // Special per-type options we want to use\n if (type === 'event') {\n options.durationThreshold = 0;\n }\n\n observe(\n type,\n entries => {\n triggerHandlers(type, { entries });\n },\n options,\n );\n}\n\nfunction addHandler(type: InstrumentHandlerType, handler: InstrumentHandlerCallback): void {\n handlers[type] = handlers[type] || [];\n (handlers[type] as InstrumentHandlerCallback[]).push(handler);\n}\n\n// Get a callback which can be called to remove the instrumentation handler\nfunction getCleanupCallback(\n type: InstrumentHandlerType,\n callback: InstrumentHandlerCallback,\n stopListening: StopListening,\n): CleanupHandlerCallback {\n return () => {\n if (stopListening) {\n stopListening();\n }\n\n const typeHandlers = handlers[type];\n\n if (!typeHandlers) {\n return;\n }\n\n const index = typeHandlers.indexOf(callback);\n if (index !== -1) {\n typeHandlers.splice(index, 1);\n }\n };\n}\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bindReporter } from './lib/bindReporter';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport type { CLSMetric, ReportCallback, StopListening } from './types';\n\n/**\n * Calculates the [CLS](https://web.dev/cls/) value for the current page and\n * calls the `callback` function once the value is ready to be reported, along\n * with all `layout-shift` performance entries that were used in the metric\n * value calculation. The reported value is a `double` (corresponding to a\n * [layout shift score](https://web.dev/cls/#layout-shift-score)).\n *\n * If the `reportAllChanges` configuration option is set to `true`, the\n * `callback` function will be called as soon as the value is initially\n * determined as well as any time the value changes throughout the page\n * lifespan.\n *\n * _**Important:** CLS should be continually monitored for changes throughout\n * the entire lifespan of a page—including if the user returns to the page after\n * it's been hidden/backgrounded. However, since browsers often [will not fire\n * additional callbacks once the user has backgrounded a\n * page](https://developer.chrome.com/blog/page-lifecycle-api/#advice-hidden),\n * `callback` is always called when the page's visibility state changes to\n * hidden. As a result, the `callback` function might be called multiple times\n * during the same page load._\n */\nexport const onCLS = (\n onReport: ReportCallback,\n options: { reportAllChanges?: boolean } = {},\n): StopListening | undefined => {\n const metric = initMetric('CLS', 0);\n let report: ReturnType;\n\n let sessionValue = 0;\n let sessionEntries: PerformanceEntry[] = [];\n\n // const handleEntries = (entries: Metric['entries']) => {\n const handleEntries = (entries: LayoutShift[]): void => {\n entries.forEach(entry => {\n // Only count layout shifts without recent user input.\n if (!entry.hadRecentInput) {\n const firstSessionEntry = sessionEntries[0];\n const lastSessionEntry = sessionEntries[sessionEntries.length - 1];\n\n // If the entry occurred less than 1 second after the previous entry and\n // less than 5 seconds after the first entry in the session, include the\n // entry in the current session. Otherwise, start a new session.\n if (\n sessionValue &&\n sessionEntries.length !== 0 &&\n entry.startTime - lastSessionEntry.startTime < 1000 &&\n entry.startTime - firstSessionEntry.startTime < 5000\n ) {\n sessionValue += entry.value;\n sessionEntries.push(entry);\n } else {\n sessionValue = entry.value;\n sessionEntries = [entry];\n }\n\n // If the current session value is larger than the current CLS value,\n // update CLS and the entries contributing to it.\n if (sessionValue > metric.value) {\n metric.value = sessionValue;\n metric.entries = sessionEntries;\n if (report) {\n report();\n }\n }\n }\n });\n };\n\n const po = observe('layout-shift', handleEntries);\n if (po) {\n report = bindReporter(onReport, metric, options.reportAllChanges);\n\n const stopListening = (): void => {\n handleEntries(po.takeRecords() as CLSMetric['entries']);\n report(true);\n };\n\n onHidden(stopListening);\n\n return stopListening;\n }\n\n return;\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bindReporter } from './lib/bindReporter';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport type { FIDMetric, PerformanceEventTiming, ReportCallback } from './types';\n\n/**\n * Calculates the [FID](https://web.dev/fid/) value for the current page and\n * calls the `callback` function once the value is ready, along with the\n * relevant `first-input` performance entry used to determine the value. The\n * reported value is a `DOMHighResTimeStamp`.\n *\n * _**Important:** since FID is only reported after the user interacts with the\n * page, it's possible that it will not be reported for some page loads._\n */\nexport const onFID = (onReport: ReportCallback): void => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('FID');\n // eslint-disable-next-line prefer-const\n let report: ReturnType;\n\n const handleEntry = (entry: PerformanceEventTiming): void => {\n // Only report if the page wasn't hidden prior to the first input.\n if (entry.startTime < visibilityWatcher.firstHiddenTime) {\n metric.value = entry.processingStart - entry.startTime;\n metric.entries.push(entry);\n report(true);\n }\n };\n\n const handleEntries = (entries: FIDMetric['entries']): void => {\n (entries as PerformanceEventTiming[]).forEach(handleEntry);\n };\n\n const po = observe('first-input', handleEntries);\n report = bindReporter(onReport, metric);\n\n if (po) {\n onHidden(() => {\n handleEntries(po.takeRecords() as FIDMetric['entries']);\n po.disconnect();\n }, true);\n }\n};\n","import type { DsnComponents, SpanEnvelope, SpanItem } from '@sentry/types';\nimport type { Span } from '@sentry/types';\nimport { createEnvelope, dsnToString } from '@sentry/utils';\n\n/**\n * Create envelope from Span item.\n */\nexport function createSpanEnvelope(spans: Span[], dsn?: DsnComponents): SpanEnvelope {\n const headers: SpanEnvelope[0] = {\n sent_at: new Date().toISOString(),\n };\n\n if (dsn) {\n headers.dsn = dsnToString(dsn);\n }\n\n const items = spans.map(createSpanItem);\n return createEnvelope(headers, items);\n}\n\nfunction createSpanItem(span: Span): SpanItem {\n const spanHeaders: SpanItem[0] = {\n type: 'span',\n };\n return [spanHeaders, span];\n}\n","import type { Transaction } from '@sentry/core';\nimport type { Span, SpanContext } from '@sentry/types';\n\n/**\n * Checks if a given value is a valid measurement value.\n */\nexport function isMeasurementValue(value: unknown): value is number {\n return typeof value === 'number' && isFinite(value);\n}\n\n/**\n * Helper function to start child on transactions. This function will make sure that the transaction will\n * use the start timestamp of the created child span if it is earlier than the transactions actual\n * start timestamp.\n *\n * Note: this will not be possible anymore in v8,\n * unless we do some special handling for browser here...\n */\nexport function _startChild(transaction: Transaction, { startTimestamp, ...ctx }: SpanContext): Span {\n // eslint-disable-next-line deprecation/deprecation\n if (startTimestamp && transaction.startTimestamp > startTimestamp) {\n // eslint-disable-next-line deprecation/deprecation\n transaction.startTimestamp = startTimestamp;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n return transaction.startChild({\n startTimestamp,\n ...ctx,\n });\n}\n","/* eslint-disable max-lines */\nimport type { IdleTransaction, Transaction } from '@sentry/core';\nimport {\n Span,\n getActiveTransaction,\n getClient,\n hasTracingEnabled,\n isValidSampleRate,\n setMeasurement,\n} from '@sentry/core';\nimport type { ClientOptions, Measurements, SpanContext, TransactionContext } from '@sentry/types';\nimport { browserPerformanceTimeOrigin, getComponentName, htmlTreeAsString, logger, parseUrl } from '@sentry/utils';\n\nimport { spanToJSON } from '@sentry/core';\nimport { DEBUG_BUILD } from '../../common/debug-build';\nimport {\n addClsInstrumentationHandler,\n addFidInstrumentationHandler,\n addInpInstrumentationHandler,\n addLcpInstrumentationHandler,\n addPerformanceInstrumentationHandler,\n addTtfbInstrumentationHandler,\n} from '../instrument';\nimport { WINDOW } from '../types';\nimport { getVisibilityWatcher } from '../web-vitals/lib/getVisibilityWatcher';\nimport type {\n InteractionRouteNameMapping,\n NavigatorDeviceMemory,\n NavigatorNetworkInformation,\n} from '../web-vitals/types';\nimport { _startChild, isMeasurementValue } from './utils';\n\nimport { createSpanEnvelope } from '@sentry/core';\nimport { getNavigationEntry } from '../web-vitals/lib/getNavigationEntry';\n\nconst MAX_INT_AS_BYTES = 2147483647;\n\n/**\n * Converts from milliseconds to seconds\n * @param time time in ms\n */\nfunction msToSec(time: number): number {\n return time / 1000;\n}\n\nfunction getBrowserPerformanceAPI(): Performance | undefined {\n // @ts-expect-error we want to make sure all of these are available, even if TS is sure they are\n return WINDOW && WINDOW.addEventListener && WINDOW.performance;\n}\n\nlet _performanceCursor: number = 0;\n\nlet _measurements: Measurements = {};\nlet _lcpEntry: LargestContentfulPaint | undefined;\nlet _clsEntry: LayoutShift | undefined;\n\n/**\n * Start tracking web vitals.\n * The callback returned by this function can be used to stop tracking & ensure all measurements are final & captured.\n *\n * @returns A function that forces web vitals collection\n */\nexport function startTrackingWebVitals(): () => void {\n const performance = getBrowserPerformanceAPI();\n if (performance && browserPerformanceTimeOrigin) {\n // @ts-expect-error we want to make sure all of these are available, even if TS is sure they are\n if (performance.mark) {\n WINDOW.performance.mark('sentry-tracing-init');\n }\n const fidCallback = _trackFID();\n const clsCallback = _trackCLS();\n const lcpCallback = _trackLCP();\n const ttfbCallback = _trackTtfb();\n\n return (): void => {\n fidCallback();\n clsCallback();\n lcpCallback();\n ttfbCallback();\n };\n }\n\n return () => undefined;\n}\n\n/**\n * Start tracking long tasks.\n */\nexport function startTrackingLongTasks(): void {\n addPerformanceInstrumentationHandler('longtask', ({ entries }) => {\n for (const entry of entries) {\n // eslint-disable-next-line deprecation/deprecation\n const transaction = getActiveTransaction() as IdleTransaction | undefined;\n if (!transaction) {\n return;\n }\n const startTime = msToSec((browserPerformanceTimeOrigin as number) + entry.startTime);\n const duration = msToSec(entry.duration);\n\n // eslint-disable-next-line deprecation/deprecation\n transaction.startChild({\n description: 'Main UI thread blocked',\n op: 'ui.long-task',\n origin: 'auto.ui.browser.metrics',\n startTimestamp: startTime,\n endTimestamp: startTime + duration,\n });\n }\n });\n}\n\n/**\n * Start tracking interaction events.\n */\nexport function startTrackingInteractions(): void {\n addPerformanceInstrumentationHandler('event', ({ entries }) => {\n for (const entry of entries) {\n // eslint-disable-next-line deprecation/deprecation\n const transaction = getActiveTransaction() as IdleTransaction | undefined;\n if (!transaction) {\n return;\n }\n\n if (entry.name === 'click') {\n const startTime = msToSec((browserPerformanceTimeOrigin as number) + entry.startTime);\n const duration = msToSec(entry.duration);\n\n const span: SpanContext = {\n description: htmlTreeAsString(entry.target),\n op: `ui.interaction.${entry.name}`,\n origin: 'auto.ui.browser.metrics',\n startTimestamp: startTime,\n endTimestamp: startTime + duration,\n };\n\n const componentName = getComponentName(entry.target);\n if (componentName) {\n span.attributes = { 'ui.component_name': componentName };\n }\n\n // eslint-disable-next-line deprecation/deprecation\n transaction.startChild(span);\n }\n }\n });\n}\n\n/**\n * Start tracking INP webvital events.\n */\nexport function startTrackingINP(\n interactionIdtoRouteNameMapping: InteractionRouteNameMapping,\n interactionsSampleRate: number,\n): () => void {\n const performance = getBrowserPerformanceAPI();\n if (performance && browserPerformanceTimeOrigin) {\n const inpCallback = _trackINP(interactionIdtoRouteNameMapping, interactionsSampleRate);\n\n return (): void => {\n inpCallback();\n };\n }\n\n return () => undefined;\n}\n\n/** Starts tracking the Cumulative Layout Shift on the current page. */\nfunction _trackCLS(): () => void {\n return addClsInstrumentationHandler(({ metric }) => {\n const entry = metric.entries[metric.entries.length - 1];\n if (!entry) {\n return;\n }\n\n DEBUG_BUILD && logger.log('[Measurements] Adding CLS');\n _measurements['cls'] = { value: metric.value, unit: '' };\n _clsEntry = entry as LayoutShift;\n }, true);\n}\n\n/** Starts tracking the Largest Contentful Paint on the current page. */\nfunction _trackLCP(): () => void {\n return addLcpInstrumentationHandler(({ metric }) => {\n const entry = metric.entries[metric.entries.length - 1];\n if (!entry) {\n return;\n }\n\n DEBUG_BUILD && logger.log('[Measurements] Adding LCP');\n _measurements['lcp'] = { value: metric.value, unit: 'millisecond' };\n _lcpEntry = entry as LargestContentfulPaint;\n }, true);\n}\n\n/** Starts tracking the First Input Delay on the current page. */\nfunction _trackFID(): () => void {\n return addFidInstrumentationHandler(({ metric }) => {\n const entry = metric.entries[metric.entries.length - 1];\n if (!entry) {\n return;\n }\n\n const timeOrigin = msToSec(browserPerformanceTimeOrigin as number);\n const startTime = msToSec(entry.startTime);\n DEBUG_BUILD && logger.log('[Measurements] Adding FID');\n _measurements['fid'] = { value: metric.value, unit: 'millisecond' };\n _measurements['mark.fid'] = { value: timeOrigin + startTime, unit: 'second' };\n });\n}\n\nfunction _trackTtfb(): () => void {\n return addTtfbInstrumentationHandler(({ metric }) => {\n const entry = metric.entries[metric.entries.length - 1];\n if (!entry) {\n return;\n }\n\n DEBUG_BUILD && logger.log('[Measurements] Adding TTFB');\n _measurements['ttfb'] = { value: metric.value, unit: 'millisecond' };\n });\n}\n\nconst INP_ENTRY_MAP: Record = {\n click: 'click',\n pointerdown: 'click',\n pointerup: 'click',\n mousedown: 'click',\n mouseup: 'click',\n touchstart: 'click',\n touchend: 'click',\n mouseover: 'hover',\n mouseout: 'hover',\n mouseenter: 'hover',\n mouseleave: 'hover',\n pointerover: 'hover',\n pointerout: 'hover',\n pointerenter: 'hover',\n pointerleave: 'hover',\n dragstart: 'drag',\n dragend: 'drag',\n drag: 'drag',\n dragenter: 'drag',\n dragleave: 'drag',\n dragover: 'drag',\n drop: 'drag',\n keydown: 'press',\n keyup: 'press',\n keypress: 'press',\n input: 'press',\n};\n\n/** Starts tracking the Interaction to Next Paint on the current page. */\nfunction _trackINP(\n interactionIdToRouteNameMapping: InteractionRouteNameMapping,\n interactionsSampleRate: number,\n): () => void {\n return addInpInstrumentationHandler(({ metric }) => {\n if (metric.value === undefined) {\n return;\n }\n const entry = metric.entries.find(\n entry => entry.duration === metric.value && INP_ENTRY_MAP[entry.name] !== undefined,\n );\n const client = getClient();\n if (!entry || !client) {\n return;\n }\n const interactionType = INP_ENTRY_MAP[entry.name];\n const options = client.getOptions();\n /** Build the INP span, create an envelope from the span, and then send the envelope */\n const startTime = msToSec((browserPerformanceTimeOrigin as number) + entry.startTime);\n const duration = msToSec(metric.value);\n const interaction =\n entry.interactionId !== undefined ? interactionIdToRouteNameMapping[entry.interactionId] : undefined;\n if (interaction === undefined) {\n return;\n }\n const { routeName, parentContext, activeTransaction, user, replayId } = interaction;\n const userDisplay = user !== undefined ? user.email || user.id || user.ip_address : undefined;\n // eslint-disable-next-line deprecation/deprecation\n const profileId = activeTransaction !== undefined ? activeTransaction.getProfileId() : undefined;\n const span = new Span({\n startTimestamp: startTime,\n endTimestamp: startTime + duration,\n op: `ui.interaction.${interactionType}`,\n name: htmlTreeAsString(entry.target),\n attributes: {\n release: options.release,\n environment: options.environment,\n transaction: routeName,\n ...(userDisplay !== undefined && userDisplay !== '' ? { user: userDisplay } : {}),\n ...(profileId !== undefined ? { profile_id: profileId } : {}),\n ...(replayId !== undefined ? { replay_id: replayId } : {}),\n },\n exclusiveTime: metric.value,\n measurements: {\n inp: { value: metric.value, unit: 'millisecond' },\n },\n });\n\n /** Check to see if the span should be sampled */\n const sampleRate = getSampleRate(parentContext, options, interactionsSampleRate);\n\n if (!sampleRate) {\n return;\n }\n\n if (Math.random() < (sampleRate as number | boolean)) {\n const envelope = span ? createSpanEnvelope([span], client.getDsn()) : undefined;\n const transport = client && client.getTransport();\n if (transport && envelope) {\n transport.send(envelope).then(null, reason => {\n DEBUG_BUILD && logger.error('Error while sending interaction:', reason);\n });\n }\n return;\n }\n });\n}\n\n/** Add performance related spans to a transaction */\nexport function addPerformanceEntries(transaction: Transaction): void {\n const performance = getBrowserPerformanceAPI();\n if (!performance || !WINDOW.performance.getEntries || !browserPerformanceTimeOrigin) {\n // Gatekeeper if performance API not available\n return;\n }\n\n DEBUG_BUILD && logger.log('[Tracing] Adding & adjusting spans using Performance API');\n const timeOrigin = msToSec(browserPerformanceTimeOrigin);\n\n const performanceEntries = performance.getEntries();\n\n const { op, start_timestamp: transactionStartTime } = spanToJSON(transaction);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n performanceEntries.slice(_performanceCursor).forEach((entry: Record) => {\n const startTime = msToSec(entry.startTime);\n const duration = msToSec(entry.duration);\n\n // eslint-disable-next-line deprecation/deprecation\n if (transaction.op === 'navigation' && transactionStartTime && timeOrigin + startTime < transactionStartTime) {\n return;\n }\n\n switch (entry.entryType) {\n case 'navigation': {\n _addNavigationSpans(transaction, entry, timeOrigin);\n break;\n }\n case 'mark':\n case 'paint':\n case 'measure': {\n _addMeasureSpans(transaction, entry, startTime, duration, timeOrigin);\n\n // capture web vitals\n const firstHidden = getVisibilityWatcher();\n // Only report if the page wasn't hidden prior to the web vital.\n const shouldRecord = entry.startTime < firstHidden.firstHiddenTime;\n\n if (entry.name === 'first-paint' && shouldRecord) {\n DEBUG_BUILD && logger.log('[Measurements] Adding FP');\n _measurements['fp'] = { value: entry.startTime, unit: 'millisecond' };\n }\n if (entry.name === 'first-contentful-paint' && shouldRecord) {\n DEBUG_BUILD && logger.log('[Measurements] Adding FCP');\n _measurements['fcp'] = { value: entry.startTime, unit: 'millisecond' };\n }\n break;\n }\n case 'resource': {\n _addResourceSpans(transaction, entry, entry.name as string, startTime, duration, timeOrigin);\n break;\n }\n default:\n // Ignore other entry types.\n }\n });\n\n _performanceCursor = Math.max(performanceEntries.length - 1, 0);\n\n _trackNavigator(transaction);\n\n // Measurements are only available for pageload transactions\n if (op === 'pageload') {\n _addTtfbRequestTimeToMeasurements(_measurements);\n\n ['fcp', 'fp', 'lcp'].forEach(name => {\n if (!_measurements[name] || !transactionStartTime || timeOrigin >= transactionStartTime) {\n return;\n }\n // The web vitals, fcp, fp, lcp, and ttfb, all measure relative to timeOrigin.\n // Unfortunately, timeOrigin is not captured within the transaction span data, so these web vitals will need\n // to be adjusted to be relative to transaction.startTimestamp.\n const oldValue = _measurements[name].value;\n const measurementTimestamp = timeOrigin + msToSec(oldValue);\n\n // normalizedValue should be in milliseconds\n const normalizedValue = Math.abs((measurementTimestamp - transactionStartTime) * 1000);\n const delta = normalizedValue - oldValue;\n\n DEBUG_BUILD && logger.log(`[Measurements] Normalized ${name} from ${oldValue} to ${normalizedValue} (${delta})`);\n _measurements[name].value = normalizedValue;\n });\n\n const fidMark = _measurements['mark.fid'];\n if (fidMark && _measurements['fid']) {\n // create span for FID\n _startChild(transaction, {\n description: 'first input delay',\n endTimestamp: fidMark.value + msToSec(_measurements['fid'].value),\n op: 'ui.action',\n origin: 'auto.ui.browser.metrics',\n startTimestamp: fidMark.value,\n });\n\n // Delete mark.fid as we don't want it to be part of final payload\n delete _measurements['mark.fid'];\n }\n\n // If FCP is not recorded we should not record the cls value\n // according to the new definition of CLS.\n if (!('fcp' in _measurements)) {\n delete _measurements.cls;\n }\n\n Object.keys(_measurements).forEach(measurementName => {\n setMeasurement(measurementName, _measurements[measurementName].value, _measurements[measurementName].unit);\n });\n\n _tagMetricInfo(transaction);\n }\n\n _lcpEntry = undefined;\n _clsEntry = undefined;\n _measurements = {};\n}\n\n/** Create measure related spans */\nexport function _addMeasureSpans(\n transaction: Transaction,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n entry: Record,\n startTime: number,\n duration: number,\n timeOrigin: number,\n): number {\n const measureStartTimestamp = timeOrigin + startTime;\n const measureEndTimestamp = measureStartTimestamp + duration;\n\n _startChild(transaction, {\n description: entry.name as string,\n endTimestamp: measureEndTimestamp,\n op: entry.entryType as string,\n origin: 'auto.resource.browser.metrics',\n startTimestamp: measureStartTimestamp,\n });\n\n return measureStartTimestamp;\n}\n\n/** Instrument navigation entries */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _addNavigationSpans(transaction: Transaction, entry: Record, timeOrigin: number): void {\n ['unloadEvent', 'redirect', 'domContentLoadedEvent', 'loadEvent', 'connect'].forEach(event => {\n _addPerformanceNavigationTiming(transaction, entry, event, timeOrigin);\n });\n _addPerformanceNavigationTiming(transaction, entry, 'secureConnection', timeOrigin, 'TLS/SSL', 'connectEnd');\n _addPerformanceNavigationTiming(transaction, entry, 'fetch', timeOrigin, 'cache', 'domainLookupStart');\n _addPerformanceNavigationTiming(transaction, entry, 'domainLookup', timeOrigin, 'DNS');\n _addRequest(transaction, entry, timeOrigin);\n}\n\n/** Create performance navigation related spans */\nfunction _addPerformanceNavigationTiming(\n transaction: Transaction,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n entry: Record,\n event: string,\n timeOrigin: number,\n description?: string,\n eventEnd?: string,\n): void {\n const end = eventEnd ? (entry[eventEnd] as number | undefined) : (entry[`${event}End`] as number | undefined);\n const start = entry[`${event}Start`] as number | undefined;\n if (!start || !end) {\n return;\n }\n _startChild(transaction, {\n op: 'browser',\n origin: 'auto.browser.browser.metrics',\n description: description || event,\n startTimestamp: timeOrigin + msToSec(start),\n endTimestamp: timeOrigin + msToSec(end),\n });\n}\n\n/** Create request and response related spans */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _addRequest(transaction: Transaction, entry: Record, timeOrigin: number): void {\n if (entry.responseEnd) {\n // It is possible that we are collecting these metrics when the page hasn't finished loading yet, for example when the HTML slowly streams in.\n // In this case, ie. when the document request hasn't finished yet, `entry.responseEnd` will be 0.\n // In order not to produce faulty spans, where the end timestamp is before the start timestamp, we will only collect\n // these spans when the responseEnd value is available. The backend (Relay) would drop the entire transaction if it contained faulty spans.\n _startChild(transaction, {\n op: 'browser',\n origin: 'auto.browser.browser.metrics',\n description: 'request',\n startTimestamp: timeOrigin + msToSec(entry.requestStart as number),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd as number),\n });\n\n _startChild(transaction, {\n op: 'browser',\n origin: 'auto.browser.browser.metrics',\n description: 'response',\n startTimestamp: timeOrigin + msToSec(entry.responseStart as number),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd as number),\n });\n }\n}\n\nexport interface ResourceEntry extends Record {\n initiatorType?: string;\n transferSize?: number;\n encodedBodySize?: number;\n decodedBodySize?: number;\n renderBlockingStatus?: string;\n}\n\n/** Create resource-related spans */\nexport function _addResourceSpans(\n transaction: Transaction,\n entry: ResourceEntry,\n resourceUrl: string,\n startTime: number,\n duration: number,\n timeOrigin: number,\n): void {\n // we already instrument based on fetch and xhr, so we don't need to\n // duplicate spans here.\n if (entry.initiatorType === 'xmlhttprequest' || entry.initiatorType === 'fetch') {\n return;\n }\n\n const parsedUrl = parseUrl(resourceUrl);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const data: Record = {};\n setResourceEntrySizeData(data, entry, 'transferSize', 'http.response_transfer_size');\n setResourceEntrySizeData(data, entry, 'encodedBodySize', 'http.response_content_length');\n setResourceEntrySizeData(data, entry, 'decodedBodySize', 'http.decoded_response_content_length');\n\n if ('renderBlockingStatus' in entry) {\n data['resource.render_blocking_status'] = entry.renderBlockingStatus;\n }\n if (parsedUrl.protocol) {\n data['url.scheme'] = parsedUrl.protocol.split(':').pop(); // the protocol returned by parseUrl includes a :, but OTEL spec does not, so we remove it.\n }\n\n if (parsedUrl.host) {\n data['server.address'] = parsedUrl.host;\n }\n\n data['url.same_origin'] = resourceUrl.includes(WINDOW.location.origin);\n\n const startTimestamp = timeOrigin + startTime;\n const endTimestamp = startTimestamp + duration;\n\n _startChild(transaction, {\n description: resourceUrl.replace(WINDOW.location.origin, ''),\n endTimestamp,\n op: entry.initiatorType ? `resource.${entry.initiatorType}` : 'resource.other',\n origin: 'auto.resource.browser.metrics',\n startTimestamp,\n data,\n });\n}\n\n/**\n * Capture the information of the user agent.\n */\nfunction _trackNavigator(transaction: Transaction): void {\n const navigator = WINDOW.navigator as null | (Navigator & NavigatorNetworkInformation & NavigatorDeviceMemory);\n if (!navigator) {\n return;\n }\n\n // track network connectivity\n const connection = navigator.connection;\n if (connection) {\n if (connection.effectiveType) {\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('effectiveConnectionType', connection.effectiveType);\n }\n\n if (connection.type) {\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('connectionType', connection.type);\n }\n\n if (isMeasurementValue(connection.rtt)) {\n _measurements['connection.rtt'] = { value: connection.rtt, unit: 'millisecond' };\n }\n }\n\n if (isMeasurementValue(navigator.deviceMemory)) {\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('deviceMemory', `${navigator.deviceMemory} GB`);\n }\n\n if (isMeasurementValue(navigator.hardwareConcurrency)) {\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('hardwareConcurrency', String(navigator.hardwareConcurrency));\n }\n}\n\n/** Add LCP / CLS data to transaction to allow debugging */\nfunction _tagMetricInfo(transaction: Transaction): void {\n if (_lcpEntry) {\n DEBUG_BUILD && logger.log('[Measurements] Adding LCP Data');\n\n // Capture Properties of the LCP element that contributes to the LCP.\n\n if (_lcpEntry.element) {\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('lcp.element', htmlTreeAsString(_lcpEntry.element));\n }\n\n if (_lcpEntry.id) {\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('lcp.id', _lcpEntry.id);\n }\n\n if (_lcpEntry.url) {\n // Trim URL to the first 200 characters.\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('lcp.url', _lcpEntry.url.trim().slice(0, 200));\n }\n\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('lcp.size', _lcpEntry.size);\n }\n\n // See: https://developer.mozilla.org/en-US/docs/Web/API/LayoutShift\n if (_clsEntry && _clsEntry.sources) {\n DEBUG_BUILD && logger.log('[Measurements] Adding CLS Data');\n _clsEntry.sources.forEach((source, index) =>\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag(`cls.source.${index + 1}`, htmlTreeAsString(source.node)),\n );\n }\n}\n\nfunction setResourceEntrySizeData(\n data: Record,\n entry: ResourceEntry,\n key: keyof Pick,\n dataKey: 'http.response_transfer_size' | 'http.response_content_length' | 'http.decoded_response_content_length',\n): void {\n const entryVal = entry[key];\n if (entryVal != null && entryVal < MAX_INT_AS_BYTES) {\n data[dataKey] = entryVal;\n }\n}\n\n/**\n * Add ttfb request time information to measurements.\n *\n * ttfb information is added via vendored web vitals library.\n */\nfunction _addTtfbRequestTimeToMeasurements(_measurements: Measurements): void {\n const navEntry = getNavigationEntry();\n if (!navEntry) {\n return;\n }\n\n const { responseStart, requestStart } = navEntry;\n\n if (requestStart <= responseStart) {\n DEBUG_BUILD && logger.log('[Measurements] Adding TTFB Request Time');\n _measurements['ttfb.requestTime'] = {\n value: responseStart - requestStart,\n unit: 'millisecond',\n };\n }\n}\n\n/** Taken from @sentry/core sampling.ts */\nfunction getSampleRate(\n transactionContext: TransactionContext | undefined,\n options: ClientOptions,\n interactionsSampleRate: number,\n): number | boolean {\n if (!hasTracingEnabled(options)) {\n return false;\n }\n let sampleRate;\n if (transactionContext !== undefined && typeof options.tracesSampler === 'function') {\n sampleRate = options.tracesSampler({\n transactionContext,\n name: transactionContext.name,\n parentSampled: transactionContext.parentSampled,\n attributes: {\n // eslint-disable-next-line deprecation/deprecation\n ...transactionContext.data,\n ...transactionContext.attributes,\n },\n location: WINDOW.location,\n });\n } else if (transactionContext !== undefined && transactionContext.sampled !== undefined) {\n sampleRate = transactionContext.sampled;\n } else if (typeof options.tracesSampleRate !== 'undefined') {\n sampleRate = options.tracesSampleRate;\n } else {\n sampleRate = 1;\n }\n if (!isValidSampleRate(sampleRate)) {\n DEBUG_BUILD && logger.warn('[Tracing] Discarding interaction span because of invalid sample rate.');\n return false;\n }\n if (sampleRate === true) {\n return interactionsSampleRate;\n } else if (sampleRate === false) {\n return 0;\n }\n return sampleRate * interactionsSampleRate;\n}\n","import type { MeasurementUnit } from '@sentry/types';\n\nimport { getActiveTransaction } from './utils';\n\n/**\n * Adds a measurement to the current active transaction.\n */\nexport function setMeasurement(name: string, value: number, unit: MeasurementUnit): void {\n // eslint-disable-next-line deprecation/deprecation\n const transaction = getActiveTransaction();\n if (transaction) {\n // eslint-disable-next-line deprecation/deprecation\n transaction.setMeasurement(name, value, unit);\n }\n}\n","import {\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n getClient,\n getCurrentScope,\n getDynamicSamplingContextFromClient,\n getDynamicSamplingContextFromSpan,\n getIsolationScope,\n hasTracingEnabled,\n setHttpStatus,\n spanToTraceHeader,\n startInactiveSpan,\n} from '@sentry/core';\nimport type { Client, HandlerDataFetch, Scope, Span, SpanOrigin } from '@sentry/types';\nimport {\n BAGGAGE_HEADER_NAME,\n dynamicSamplingContextToSentryBaggageHeader,\n generateSentryTraceHeader,\n isInstanceOf,\n parseUrl,\n} from '@sentry/utils';\n\ntype PolymorphicRequestHeaders =\n | Record\n | Array<[string, string]>\n // the below is not preicsely the Header type used in Request, but it'll pass duck-typing\n | {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n append: (key: string, value: string) => void;\n get: (key: string) => string | null | undefined;\n };\n\n/**\n * Create and track fetch request spans for usage in combination with `addInstrumentationHandler`.\n *\n * @returns Span if a span was created, otherwise void.\n */\nexport function instrumentFetchRequest(\n handlerData: HandlerDataFetch,\n shouldCreateSpan: (url: string) => boolean,\n shouldAttachHeaders: (url: string) => boolean,\n spans: Record,\n spanOrigin: SpanOrigin = 'auto.http.browser',\n): Span | undefined {\n if (!hasTracingEnabled() || !handlerData.fetchData) {\n return undefined;\n }\n\n const shouldCreateSpanResult = shouldCreateSpan(handlerData.fetchData.url);\n\n if (handlerData.endTimestamp && shouldCreateSpanResult) {\n const spanId = handlerData.fetchData.__span;\n if (!spanId) return;\n\n const span = spans[spanId];\n if (span) {\n endSpan(span, handlerData);\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[spanId];\n }\n return undefined;\n }\n\n const scope = getCurrentScope();\n const client = getClient();\n\n const { method, url } = handlerData.fetchData;\n\n const fullUrl = getFullURL(url);\n const host = fullUrl ? parseUrl(fullUrl).host : undefined;\n\n const span = shouldCreateSpanResult\n ? startInactiveSpan({\n name: `${method} ${url}`,\n onlyIfParent: true,\n attributes: {\n url,\n type: 'fetch',\n 'http.method': method,\n 'http.url': fullUrl,\n 'server.address': host,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: spanOrigin,\n },\n op: 'http.client',\n })\n : undefined;\n\n if (span) {\n handlerData.fetchData.__span = span.spanContext().spanId;\n spans[span.spanContext().spanId] = span;\n }\n\n if (shouldAttachHeaders(handlerData.fetchData.url) && client) {\n const request: string | Request = handlerData.args[0];\n\n // In case the user hasn't set the second argument of a fetch call we default it to `{}`.\n handlerData.args[1] = handlerData.args[1] || {};\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const options: { [key: string]: any } = handlerData.args[1];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n options.headers = addTracingHeadersToFetchRequest(request, client, scope, options, span);\n }\n\n return span;\n}\n\n/**\n * Adds sentry-trace and baggage headers to the various forms of fetch headers\n */\nexport function addTracingHeadersToFetchRequest(\n request: string | unknown, // unknown is actually type Request but we can't export DOM types from this package,\n client: Client,\n scope: Scope,\n options: {\n headers?:\n | {\n [key: string]: string[] | string | undefined;\n }\n | PolymorphicRequestHeaders;\n },\n requestSpan?: Span,\n): PolymorphicRequestHeaders | undefined {\n // eslint-disable-next-line deprecation/deprecation\n const span = requestSpan || scope.getSpan();\n\n const isolationScope = getIsolationScope();\n\n const { traceId, spanId, sampled, dsc } = {\n ...isolationScope.getPropagationContext(),\n ...scope.getPropagationContext(),\n };\n\n const sentryTraceHeader = span ? spanToTraceHeader(span) : generateSentryTraceHeader(traceId, spanId, sampled);\n\n const sentryBaggageHeader = dynamicSamplingContextToSentryBaggageHeader(\n dsc ||\n (span ? getDynamicSamplingContextFromSpan(span) : getDynamicSamplingContextFromClient(traceId, client, scope)),\n );\n\n const headers =\n options.headers ||\n (typeof Request !== 'undefined' && isInstanceOf(request, Request) ? (request as Request).headers : undefined);\n\n if (!headers) {\n return { 'sentry-trace': sentryTraceHeader, baggage: sentryBaggageHeader };\n } else if (typeof Headers !== 'undefined' && isInstanceOf(headers, Headers)) {\n const newHeaders = new Headers(headers as Headers);\n\n newHeaders.append('sentry-trace', sentryTraceHeader);\n\n if (sentryBaggageHeader) {\n // If the same header is appended multiple times the browser will merge the values into a single request header.\n // Its therefore safe to simply push a \"baggage\" entry, even though there might already be another baggage header.\n newHeaders.append(BAGGAGE_HEADER_NAME, sentryBaggageHeader);\n }\n\n return newHeaders as PolymorphicRequestHeaders;\n } else if (Array.isArray(headers)) {\n const newHeaders = [...headers, ['sentry-trace', sentryTraceHeader]];\n\n if (sentryBaggageHeader) {\n // If there are multiple entries with the same key, the browser will merge the values into a single request header.\n // Its therefore safe to simply push a \"baggage\" entry, even though there might already be another baggage header.\n newHeaders.push([BAGGAGE_HEADER_NAME, sentryBaggageHeader]);\n }\n\n return newHeaders as PolymorphicRequestHeaders;\n } else {\n const existingBaggageHeader = 'baggage' in headers ? headers.baggage : undefined;\n const newBaggageHeaders: string[] = [];\n\n if (Array.isArray(existingBaggageHeader)) {\n newBaggageHeaders.push(...existingBaggageHeader);\n } else if (existingBaggageHeader) {\n newBaggageHeaders.push(existingBaggageHeader);\n }\n\n if (sentryBaggageHeader) {\n newBaggageHeaders.push(sentryBaggageHeader);\n }\n\n return {\n ...(headers as Exclude),\n 'sentry-trace': sentryTraceHeader,\n baggage: newBaggageHeaders.length > 0 ? newBaggageHeaders.join(',') : undefined,\n };\n }\n}\n\nfunction getFullURL(url: string): string | undefined {\n try {\n const parsed = new URL(url);\n return parsed.href;\n } catch {\n return undefined;\n }\n}\n\nfunction endSpan(span: Span, handlerData: HandlerDataFetch): void {\n if (handlerData.response) {\n setHttpStatus(span, handlerData.response.status);\n\n const contentLength =\n handlerData.response && handlerData.response.headers && handlerData.response.headers.get('content-length');\n\n if (contentLength) {\n const contentLengthNum = parseInt(contentLength);\n if (contentLengthNum > 0) {\n span.setAttribute('http.response_content_length', contentLengthNum);\n }\n }\n } else if (handlerData.error) {\n span.setStatus('internal_error');\n }\n span.end();\n}\n","/* eslint-disable max-lines */\nimport {\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n getClient,\n getCurrentScope,\n getDynamicSamplingContextFromClient,\n getDynamicSamplingContextFromSpan,\n getIsolationScope,\n hasTracingEnabled,\n setHttpStatus,\n spanToJSON,\n spanToTraceHeader,\n startInactiveSpan,\n} from '@sentry/core';\nimport type { HandlerDataXhr, SentryWrappedXMLHttpRequest, Span } from '@sentry/types';\nimport {\n BAGGAGE_HEADER_NAME,\n SENTRY_XHR_DATA_KEY,\n addFetchInstrumentationHandler,\n addXhrInstrumentationHandler,\n browserPerformanceTimeOrigin,\n dynamicSamplingContextToSentryBaggageHeader,\n generateSentryTraceHeader,\n parseUrl,\n stringMatchesSomePattern,\n} from '@sentry/utils';\n\nimport { instrumentFetchRequest } from '../common/fetch';\nimport { addPerformanceInstrumentationHandler } from './instrument';\nimport { WINDOW } from './types';\n\nexport const DEFAULT_TRACE_PROPAGATION_TARGETS = ['localhost', /^\\/(?!\\/)/];\n\n/** Options for Request Instrumentation */\nexport interface RequestInstrumentationOptions {\n /**\n * @deprecated Will be removed in v8.\n * Use `shouldCreateSpanForRequest` to control span creation and `tracePropagationTargets` to control\n * trace header attachment.\n */\n tracingOrigins: Array;\n\n /**\n * List of strings and/or regexes used to determine which outgoing requests will have `sentry-trace` and `baggage`\n * headers attached.\n *\n * @deprecated Use the top-level `tracePropagationTargets` option in `Sentry.init` instead.\n * This option will be removed in v8.\n *\n * Default: ['localhost', /^\\//] @see {DEFAULT_TRACE_PROPAGATION_TARGETS}\n */\n tracePropagationTargets: Array;\n\n /**\n * Flag to disable patching all together for fetch requests.\n *\n * Default: true\n */\n traceFetch: boolean;\n\n /**\n * Flag to disable patching all together for xhr requests.\n *\n * Default: true\n */\n traceXHR: boolean;\n\n /**\n * If true, Sentry will capture http timings and add them to the corresponding http spans.\n *\n * Default: true\n */\n enableHTTPTimings: boolean;\n\n /**\n * This function will be called before creating a span for a request with the given url.\n * Return false if you don't want a span for the given url.\n *\n * Default: (url: string) => true\n */\n shouldCreateSpanForRequest?(this: void, url: string): boolean;\n}\n\nexport const defaultRequestInstrumentationOptions: RequestInstrumentationOptions = {\n traceFetch: true,\n traceXHR: true,\n enableHTTPTimings: true,\n // TODO (v8): Remove this property\n tracingOrigins: DEFAULT_TRACE_PROPAGATION_TARGETS,\n tracePropagationTargets: DEFAULT_TRACE_PROPAGATION_TARGETS,\n};\n\n/** Registers span creators for xhr and fetch requests */\nexport function instrumentOutgoingRequests(_options?: Partial): void {\n const {\n traceFetch,\n traceXHR,\n // eslint-disable-next-line deprecation/deprecation\n tracePropagationTargets,\n // eslint-disable-next-line deprecation/deprecation\n tracingOrigins,\n shouldCreateSpanForRequest,\n enableHTTPTimings,\n } = {\n traceFetch: defaultRequestInstrumentationOptions.traceFetch,\n traceXHR: defaultRequestInstrumentationOptions.traceXHR,\n ..._options,\n };\n\n const shouldCreateSpan =\n typeof shouldCreateSpanForRequest === 'function' ? shouldCreateSpanForRequest : (_: string) => true;\n\n // TODO(v8) Remove tracingOrigins here\n // The only reason we're passing it in here is because this instrumentOutgoingRequests function is publicly exported\n // and we don't want to break the API. We can remove it in v8.\n const shouldAttachHeadersWithTargets = (url: string): boolean =>\n shouldAttachHeaders(url, tracePropagationTargets || tracingOrigins);\n\n const spans: Record = {};\n\n if (traceFetch) {\n addFetchInstrumentationHandler(handlerData => {\n const createdSpan = instrumentFetchRequest(handlerData, shouldCreateSpan, shouldAttachHeadersWithTargets, spans);\n // We cannot use `window.location` in the generic fetch instrumentation,\n // but we need it for reliable `server.address` attribute.\n // so we extend this in here\n if (createdSpan) {\n const fullUrl = getFullURL(handlerData.fetchData.url);\n const host = fullUrl ? parseUrl(fullUrl).host : undefined;\n createdSpan.setAttributes({\n 'http.url': fullUrl,\n 'server.address': host,\n });\n }\n\n if (enableHTTPTimings && createdSpan) {\n addHTTPTimings(createdSpan);\n }\n });\n }\n\n if (traceXHR) {\n addXhrInstrumentationHandler(handlerData => {\n const createdSpan = xhrCallback(handlerData, shouldCreateSpan, shouldAttachHeadersWithTargets, spans);\n if (enableHTTPTimings && createdSpan) {\n addHTTPTimings(createdSpan);\n }\n });\n }\n}\n\nfunction isPerformanceResourceTiming(entry: PerformanceEntry): entry is PerformanceResourceTiming {\n return (\n entry.entryType === 'resource' &&\n 'initiatorType' in entry &&\n typeof (entry as PerformanceResourceTiming).nextHopProtocol === 'string' &&\n (entry.initiatorType === 'fetch' || entry.initiatorType === 'xmlhttprequest')\n );\n}\n\n/**\n * Creates a temporary observer to listen to the next fetch/xhr resourcing timings,\n * so that when timings hit their per-browser limit they don't need to be removed.\n *\n * @param span A span that has yet to be finished, must contain `url` on data.\n */\nfunction addHTTPTimings(span: Span): void {\n const { url } = spanToJSON(span).data || {};\n\n if (!url || typeof url !== 'string') {\n return;\n }\n\n const cleanup = addPerformanceInstrumentationHandler('resource', ({ entries }) => {\n entries.forEach(entry => {\n if (isPerformanceResourceTiming(entry) && entry.name.endsWith(url)) {\n const spanData = resourceTimingEntryToSpanData(entry);\n spanData.forEach(data => span.setAttribute(...data));\n // In the next tick, clean this handler up\n // We have to wait here because otherwise this cleans itself up before it is fully done\n setTimeout(cleanup);\n }\n });\n });\n}\n\n/**\n * Converts ALPN protocol ids to name and version.\n *\n * (https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids)\n * @param nextHopProtocol PerformanceResourceTiming.nextHopProtocol\n */\nexport function extractNetworkProtocol(nextHopProtocol: string): { name: string; version: string } {\n let name = 'unknown';\n let version = 'unknown';\n let _name = '';\n for (const char of nextHopProtocol) {\n // http/1.1 etc.\n if (char === '/') {\n [name, version] = nextHopProtocol.split('/');\n break;\n }\n // h2, h3 etc.\n if (!isNaN(Number(char))) {\n name = _name === 'h' ? 'http' : _name;\n version = nextHopProtocol.split(_name)[1];\n break;\n }\n _name += char;\n }\n if (_name === nextHopProtocol) {\n // webrtc, ftp, etc.\n name = _name;\n }\n return { name, version };\n}\n\nfunction getAbsoluteTime(time: number = 0): number {\n return ((browserPerformanceTimeOrigin || performance.timeOrigin) + time) / 1000;\n}\n\nfunction resourceTimingEntryToSpanData(resourceTiming: PerformanceResourceTiming): [string, string | number][] {\n const { name, version } = extractNetworkProtocol(resourceTiming.nextHopProtocol);\n\n const timingSpanData: [string, string | number][] = [];\n\n timingSpanData.push(['network.protocol.version', version], ['network.protocol.name', name]);\n\n if (!browserPerformanceTimeOrigin) {\n return timingSpanData;\n }\n return [\n ...timingSpanData,\n ['http.request.redirect_start', getAbsoluteTime(resourceTiming.redirectStart)],\n ['http.request.fetch_start', getAbsoluteTime(resourceTiming.fetchStart)],\n ['http.request.domain_lookup_start', getAbsoluteTime(resourceTiming.domainLookupStart)],\n ['http.request.domain_lookup_end', getAbsoluteTime(resourceTiming.domainLookupEnd)],\n ['http.request.connect_start', getAbsoluteTime(resourceTiming.connectStart)],\n ['http.request.secure_connection_start', getAbsoluteTime(resourceTiming.secureConnectionStart)],\n ['http.request.connection_end', getAbsoluteTime(resourceTiming.connectEnd)],\n ['http.request.request_start', getAbsoluteTime(resourceTiming.requestStart)],\n ['http.request.response_start', getAbsoluteTime(resourceTiming.responseStart)],\n ['http.request.response_end', getAbsoluteTime(resourceTiming.responseEnd)],\n ];\n}\n\n/**\n * A function that determines whether to attach tracing headers to a request.\n * This was extracted from `instrumentOutgoingRequests` to make it easier to test shouldAttachHeaders.\n * We only export this fuction for testing purposes.\n */\nexport function shouldAttachHeaders(url: string, tracePropagationTargets: (string | RegExp)[] | undefined): boolean {\n return stringMatchesSomePattern(url, tracePropagationTargets || DEFAULT_TRACE_PROPAGATION_TARGETS);\n}\n\n/**\n * Create and track xhr request spans\n *\n * @returns Span if a span was created, otherwise void.\n */\n// eslint-disable-next-line complexity\nexport function xhrCallback(\n handlerData: HandlerDataXhr,\n shouldCreateSpan: (url: string) => boolean,\n shouldAttachHeaders: (url: string) => boolean,\n spans: Record,\n): Span | undefined {\n const xhr = handlerData.xhr;\n const sentryXhrData = xhr && xhr[SENTRY_XHR_DATA_KEY];\n\n if (!hasTracingEnabled() || !xhr || xhr.__sentry_own_request__ || !sentryXhrData) {\n return undefined;\n }\n\n const shouldCreateSpanResult = shouldCreateSpan(sentryXhrData.url);\n\n // check first if the request has finished and is tracked by an existing span which should now end\n if (handlerData.endTimestamp && shouldCreateSpanResult) {\n const spanId = xhr.__sentry_xhr_span_id__;\n if (!spanId) return;\n\n const span = spans[spanId];\n if (span && sentryXhrData.status_code !== undefined) {\n setHttpStatus(span, sentryXhrData.status_code);\n span.end();\n\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[spanId];\n }\n return undefined;\n }\n\n const scope = getCurrentScope();\n const isolationScope = getIsolationScope();\n\n const fullUrl = getFullURL(sentryXhrData.url);\n const host = fullUrl ? parseUrl(fullUrl).host : undefined;\n\n const span = shouldCreateSpanResult\n ? startInactiveSpan({\n name: `${sentryXhrData.method} ${sentryXhrData.url}`,\n onlyIfParent: true,\n attributes: {\n type: 'xhr',\n 'http.method': sentryXhrData.method,\n 'http.url': fullUrl,\n url: sentryXhrData.url,\n 'server.address': host,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.browser',\n },\n op: 'http.client',\n })\n : undefined;\n\n if (span) {\n xhr.__sentry_xhr_span_id__ = span.spanContext().spanId;\n spans[xhr.__sentry_xhr_span_id__] = span;\n }\n\n const client = getClient();\n\n if (xhr.setRequestHeader && shouldAttachHeaders(sentryXhrData.url) && client) {\n const { traceId, spanId, sampled, dsc } = {\n ...isolationScope.getPropagationContext(),\n ...scope.getPropagationContext(),\n };\n\n const sentryTraceHeader = span ? spanToTraceHeader(span) : generateSentryTraceHeader(traceId, spanId, sampled);\n\n const sentryBaggageHeader = dynamicSamplingContextToSentryBaggageHeader(\n dsc ||\n (span ? getDynamicSamplingContextFromSpan(span) : getDynamicSamplingContextFromClient(traceId, client, scope)),\n );\n\n setHeaderOnXhr(xhr, sentryTraceHeader, sentryBaggageHeader);\n }\n\n return span;\n}\n\nfunction setHeaderOnXhr(\n xhr: SentryWrappedXMLHttpRequest,\n sentryTraceHeader: string,\n sentryBaggageHeader: string | undefined,\n): void {\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n xhr.setRequestHeader!('sentry-trace', sentryTraceHeader);\n if (sentryBaggageHeader) {\n // From MDN: \"If this method is called several times with the same header, the values are merged into one single request header.\"\n // We can therefore simply set a baggage header without checking what was there before\n // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n xhr.setRequestHeader!(BAGGAGE_HEADER_NAME, sentryBaggageHeader);\n }\n } catch (_) {\n // Error: InvalidStateError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.\n }\n}\n\nfunction getFullURL(url: string): string | undefined {\n try {\n // By adding a base URL to new URL(), this will also work for relative urls\n // If `url` is a full URL, the base URL is ignored anyhow\n const parsed = new URL(url, WINDOW.location.origin);\n return parsed.href;\n } catch {\n return undefined;\n }\n}\n","/* eslint-disable max-lines */\nimport type { Hub, IdleTransaction } from '@sentry/core';\nimport { getClient, getCurrentScope } from '@sentry/core';\nimport {\n SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n TRACING_DEFAULTS,\n addTracingExtensions,\n getActiveTransaction,\n startIdleTransaction,\n} from '@sentry/core';\nimport type { EventProcessor, Integration, Transaction, TransactionContext, TransactionSource } from '@sentry/types';\nimport { getDomElement, logger, propagationContextFromHeaders } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../common/debug-build';\nimport { registerBackgroundTabDetection } from './backgroundtab';\nimport { addPerformanceInstrumentationHandler } from './instrument';\nimport {\n addPerformanceEntries,\n startTrackingINP,\n startTrackingInteractions,\n startTrackingLongTasks,\n startTrackingWebVitals,\n} from './metrics';\nimport type { RequestInstrumentationOptions } from './request';\nimport { defaultRequestInstrumentationOptions, instrumentOutgoingRequests } from './request';\nimport { instrumentRoutingWithDefaults } from './router';\nimport { WINDOW } from './types';\nimport type { InteractionRouteNameMapping } from './web-vitals/types';\n\nexport const BROWSER_TRACING_INTEGRATION_ID = 'BrowserTracing';\n\n/** Options for Browser Tracing integration */\nexport interface BrowserTracingOptions extends RequestInstrumentationOptions {\n /**\n * The time to wait in ms until the transaction will be finished during an idle state. An idle state is defined\n * by a moment where there are no in-progress spans.\n *\n * The transaction will use the end timestamp of the last finished span as the endtime for the transaction.\n * If there are still active spans when this the `idleTimeout` is set, the `idleTimeout` will get reset.\n * Time is in ms.\n *\n * Default: 1000\n */\n idleTimeout: number;\n\n /**\n * The max duration for a transaction. If a transaction duration hits the `finalTimeout` value, it\n * will be finished.\n * Time is in ms.\n *\n * Default: 30000\n */\n finalTimeout: number;\n\n /**\n * The heartbeat interval. If no new spans are started or open spans are finished within 3 heartbeats,\n * the transaction will be finished.\n * Time is in ms.\n *\n * Default: 5000\n */\n heartbeatInterval: number;\n\n /**\n * Flag to enable/disable creation of `navigation` transaction on history changes.\n *\n * Default: true\n */\n startTransactionOnLocationChange: boolean;\n\n /**\n * Flag to enable/disable creation of `pageload` transaction on first pageload.\n *\n * Default: true\n */\n startTransactionOnPageLoad: boolean;\n\n /**\n * Flag Transactions where tabs moved to background with \"cancelled\". Browser background tab timing is\n * not suited towards doing precise measurements of operations. By default, we recommend that this option\n * be enabled as background transactions can mess up your statistics in nondeterministic ways.\n *\n * Default: true\n */\n markBackgroundTransactions: boolean;\n\n /**\n * If true, Sentry will capture long tasks and add them to the corresponding transaction.\n *\n * Default: true\n */\n enableLongTask: boolean;\n\n /**\n * If true, Sentry will capture INP web vitals as standalone spans .\n *\n * Default: false\n */\n enableInp: boolean;\n\n /**\n * Sample rate to determine interaction span sampling.\n * interactionsSampleRate is applied on top of the global tracesSampleRate.\n * ie a tracesSampleRate of 0.1 and interactionsSampleRate of 0.5 will result in a 0.05 sample rate for interactions.\n *\n * Default: 1\n */\n interactionsSampleRate: number;\n\n /**\n * _metricOptions allows the user to send options to change how metrics are collected.\n *\n * _metricOptions is currently experimental.\n *\n * Default: undefined\n */\n _metricOptions?: Partial<{\n /**\n * @deprecated This property no longer has any effect and will be removed in v8.\n */\n _reportAllChanges: boolean;\n }>;\n\n /**\n * _experiments allows the user to send options to define how this integration works.\n * Note that the `enableLongTask` options is deprecated in favor of the option at the top level, and will be removed in v8.\n *\n * TODO (v8): Remove enableLongTask\n *\n * Default: undefined\n */\n _experiments: Partial<{\n enableLongTask: boolean;\n enableInteractions: boolean;\n // eslint-disable-next-line deprecation/deprecation\n onStartRouteTransaction: (t: Transaction | undefined, ctx: TransactionContext, getCurrentHub: () => Hub) => void;\n }>;\n\n /**\n * beforeNavigate is called before a pageload/navigation transaction is created and allows users to modify transaction\n * context data, or drop the transaction entirely (by setting `sampled = false` in the context).\n *\n * Note: For legacy reasons, transactions can also be dropped by returning `undefined`.\n *\n * @param context: The context data which will be passed to `startTransaction` by default\n *\n * @returns A (potentially) modified context object, with `sampled = false` if the transaction should be dropped.\n */\n beforeNavigate?(this: void, context: TransactionContext): TransactionContext | undefined;\n\n /**\n * Instrumentation that creates routing change transactions. By default creates\n * pageload and navigation transactions.\n */\n routingInstrumentation(\n this: void,\n customStartTransaction: (context: TransactionContext) => T | undefined,\n startTransactionOnPageLoad?: boolean,\n startTransactionOnLocationChange?: boolean,\n ): void;\n}\n\nconst DEFAULT_BROWSER_TRACING_OPTIONS: BrowserTracingOptions = {\n ...TRACING_DEFAULTS,\n markBackgroundTransactions: true,\n routingInstrumentation: instrumentRoutingWithDefaults,\n startTransactionOnLocationChange: true,\n startTransactionOnPageLoad: true,\n enableLongTask: true,\n enableInp: false,\n interactionsSampleRate: 1,\n _experiments: {},\n ...defaultRequestInstrumentationOptions,\n};\n\n/** We store up to 10 interaction candidates max to cap memory usage. This is the same cap as getINP from web-vitals */\nconst MAX_INTERACTIONS = 10;\n\n/**\n * The Browser Tracing integration automatically instruments browser pageload/navigation\n * actions as transactions, and captures requests, metrics and errors as spans.\n *\n * The integration can be configured with a variety of options, and can be extended to use\n * any routing library. This integration uses {@see IdleTransaction} to create transactions.\n *\n * @deprecated Use `browserTracingIntegration()` instead.\n */\nexport class BrowserTracing implements Integration {\n // This class currently doesn't have a static `id` field like the other integration classes, because it prevented\n // @sentry/tracing from being treeshaken. Tree shakers do not like static fields, because they behave like side effects.\n // TODO: Come up with a better plan, than using static fields on integration classes, and use that plan on all\n // integrations.\n\n /** Browser Tracing integration options */\n public options: BrowserTracingOptions;\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n // eslint-disable-next-line deprecation/deprecation\n private _getCurrentHub?: () => Hub;\n\n private _collectWebVitals: () => void;\n\n private _hasSetTracePropagationTargets: boolean;\n private _interactionIdToRouteNameMapping: InteractionRouteNameMapping;\n private _latestRoute: {\n name: string | undefined;\n context: TransactionContext | undefined;\n };\n\n public constructor(_options?: Partial) {\n this.name = BROWSER_TRACING_INTEGRATION_ID;\n this._hasSetTracePropagationTargets = false;\n\n addTracingExtensions();\n\n if (DEBUG_BUILD) {\n this._hasSetTracePropagationTargets = !!(\n _options &&\n // eslint-disable-next-line deprecation/deprecation\n (_options.tracePropagationTargets || _options.tracingOrigins)\n );\n }\n\n this.options = {\n ...DEFAULT_BROWSER_TRACING_OPTIONS,\n ..._options,\n };\n\n // Special case: enableLongTask can be set in _experiments\n // TODO (v8): Remove this in v8\n if (this.options._experiments.enableLongTask !== undefined) {\n this.options.enableLongTask = this.options._experiments.enableLongTask;\n }\n\n // TODO (v8): remove this block after tracingOrigins is removed\n // Set tracePropagationTargets to tracingOrigins if specified by the user\n // In case both are specified, tracePropagationTargets takes precedence\n // eslint-disable-next-line deprecation/deprecation\n if (_options && !_options.tracePropagationTargets && _options.tracingOrigins) {\n // eslint-disable-next-line deprecation/deprecation\n this.options.tracePropagationTargets = _options.tracingOrigins;\n }\n\n this._collectWebVitals = startTrackingWebVitals();\n /** Stores a mapping of interactionIds from PerformanceEventTimings to the origin interaction path */\n this._interactionIdToRouteNameMapping = {};\n\n if (this.options.enableInp) {\n startTrackingINP(this._interactionIdToRouteNameMapping, this.options.interactionsSampleRate);\n }\n if (this.options.enableLongTask) {\n startTrackingLongTasks();\n }\n if (this.options._experiments.enableInteractions) {\n startTrackingInteractions();\n }\n\n this._latestRoute = {\n name: undefined,\n context: undefined,\n };\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line deprecation/deprecation\n public setupOnce(_: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n this._getCurrentHub = getCurrentHub;\n const hub = getCurrentHub();\n // eslint-disable-next-line deprecation/deprecation\n const client = hub.getClient();\n const clientOptions = client && client.getOptions();\n\n const {\n routingInstrumentation: instrumentRouting,\n startTransactionOnLocationChange,\n startTransactionOnPageLoad,\n markBackgroundTransactions,\n traceFetch,\n traceXHR,\n shouldCreateSpanForRequest,\n enableHTTPTimings,\n _experiments,\n } = this.options;\n\n const clientOptionsTracePropagationTargets = clientOptions && clientOptions.tracePropagationTargets;\n // There are three ways to configure tracePropagationTargets:\n // 1. via top level client option `tracePropagationTargets`\n // 2. via BrowserTracing option `tracePropagationTargets`\n // 3. via BrowserTracing option `tracingOrigins` (deprecated)\n //\n // To avoid confusion, favour top level client option `tracePropagationTargets`, and fallback to\n // BrowserTracing option `tracePropagationTargets` and then `tracingOrigins` (deprecated).\n // This is done as it minimizes bundle size (we don't have to have undefined checks).\n //\n // If both 1 and either one of 2 or 3 are set (from above), we log out a warning.\n // eslint-disable-next-line deprecation/deprecation\n const tracePropagationTargets = clientOptionsTracePropagationTargets || this.options.tracePropagationTargets;\n if (DEBUG_BUILD && this._hasSetTracePropagationTargets && clientOptionsTracePropagationTargets) {\n logger.warn(\n '[Tracing] The `tracePropagationTargets` option was set in the BrowserTracing integration and top level `Sentry.init`. The top level `Sentry.init` value is being used.',\n );\n }\n\n instrumentRouting(\n (context: TransactionContext) => {\n const transaction = this._createRouteTransaction(context);\n\n this.options._experiments.onStartRouteTransaction &&\n this.options._experiments.onStartRouteTransaction(transaction, context, getCurrentHub);\n\n return transaction;\n },\n startTransactionOnPageLoad,\n startTransactionOnLocationChange,\n );\n\n if (markBackgroundTransactions) {\n registerBackgroundTabDetection();\n }\n\n if (_experiments.enableInteractions) {\n this._registerInteractionListener();\n }\n\n if (this.options.enableInp) {\n this._registerInpInteractionListener();\n }\n\n instrumentOutgoingRequests({\n traceFetch,\n traceXHR,\n tracePropagationTargets,\n shouldCreateSpanForRequest,\n enableHTTPTimings,\n });\n }\n\n /** Create routing idle transaction. */\n private _createRouteTransaction(context: TransactionContext): Transaction | undefined {\n if (!this._getCurrentHub) {\n DEBUG_BUILD &&\n logger.warn(`[Tracing] Did not create ${context.op} transaction because _getCurrentHub is invalid.`);\n return undefined;\n }\n\n const hub = this._getCurrentHub();\n\n const { beforeNavigate, idleTimeout, finalTimeout, heartbeatInterval } = this.options;\n\n const isPageloadTransaction = context.op === 'pageload';\n\n let expandedContext: TransactionContext;\n if (isPageloadTransaction) {\n const sentryTrace = isPageloadTransaction ? getMetaContent('sentry-trace') : '';\n const baggage = isPageloadTransaction ? getMetaContent('baggage') : undefined;\n const { traceId, dsc, parentSpanId, sampled } = propagationContextFromHeaders(sentryTrace, baggage);\n expandedContext = {\n traceId,\n parentSpanId,\n parentSampled: sampled,\n ...context,\n metadata: {\n // eslint-disable-next-line deprecation/deprecation\n ...context.metadata,\n dynamicSamplingContext: dsc,\n },\n trimEnd: true,\n };\n } else {\n expandedContext = {\n trimEnd: true,\n ...context,\n };\n }\n\n const modifiedContext = typeof beforeNavigate === 'function' ? beforeNavigate(expandedContext) : expandedContext;\n\n // For backwards compatibility reasons, beforeNavigate can return undefined to \"drop\" the transaction (prevent it\n // from being sent to Sentry).\n const finalContext = modifiedContext === undefined ? { ...expandedContext, sampled: false } : modifiedContext;\n\n // If `beforeNavigate` set a custom name, record that fact\n // eslint-disable-next-line deprecation/deprecation\n finalContext.metadata =\n finalContext.name !== expandedContext.name\n ? // eslint-disable-next-line deprecation/deprecation\n { ...finalContext.metadata, source: 'custom' }\n : // eslint-disable-next-line deprecation/deprecation\n finalContext.metadata;\n\n this._latestRoute.name = finalContext.name;\n this._latestRoute.context = finalContext;\n\n // eslint-disable-next-line deprecation/deprecation\n if (finalContext.sampled === false) {\n DEBUG_BUILD && logger.log(`[Tracing] Will not send ${finalContext.op} transaction because of beforeNavigate.`);\n }\n\n DEBUG_BUILD && logger.log(`[Tracing] Starting ${finalContext.op} transaction on scope`);\n\n const { location } = WINDOW;\n\n const idleTransaction = startIdleTransaction(\n hub,\n finalContext,\n idleTimeout,\n finalTimeout,\n true,\n { location }, // for use in the tracesSampler\n heartbeatInterval,\n isPageloadTransaction, // should wait for finish signal if it's a pageload transaction\n );\n\n if (isPageloadTransaction) {\n if (WINDOW.document) {\n WINDOW.document.addEventListener('readystatechange', () => {\n if (['interactive', 'complete'].includes(WINDOW.document!.readyState)) {\n idleTransaction.sendAutoFinishSignal();\n }\n });\n\n if (['interactive', 'complete'].includes(WINDOW.document.readyState)) {\n idleTransaction.sendAutoFinishSignal();\n }\n }\n }\n\n idleTransaction.registerBeforeFinishCallback(transaction => {\n this._collectWebVitals();\n addPerformanceEntries(transaction);\n });\n\n return idleTransaction as Transaction;\n }\n\n /** Start listener for interaction transactions */\n private _registerInteractionListener(): void {\n let inflightInteractionTransaction: IdleTransaction | undefined;\n const registerInteractionTransaction = (): void => {\n const { idleTimeout, finalTimeout, heartbeatInterval } = this.options;\n const op = 'ui.action.click';\n\n // eslint-disable-next-line deprecation/deprecation\n const currentTransaction = getActiveTransaction();\n if (currentTransaction && currentTransaction.op && ['navigation', 'pageload'].includes(currentTransaction.op)) {\n DEBUG_BUILD &&\n logger.warn(\n `[Tracing] Did not create ${op} transaction because a pageload or navigation transaction is in progress.`,\n );\n return undefined;\n }\n\n if (inflightInteractionTransaction) {\n inflightInteractionTransaction.setFinishReason('interactionInterrupted');\n inflightInteractionTransaction.end();\n inflightInteractionTransaction = undefined;\n }\n\n if (!this._getCurrentHub) {\n DEBUG_BUILD && logger.warn(`[Tracing] Did not create ${op} transaction because _getCurrentHub is invalid.`);\n return undefined;\n }\n\n if (!this._latestRoute.name) {\n DEBUG_BUILD && logger.warn(`[Tracing] Did not create ${op} transaction because _latestRouteName is missing.`);\n return undefined;\n }\n\n const hub = this._getCurrentHub();\n const { location } = WINDOW;\n\n const context: TransactionContext = {\n name: this._latestRoute.name,\n op,\n trimEnd: true,\n data: {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: this._latestRoute.context\n ? getSource(this._latestRoute.context)\n : undefined || 'url',\n },\n };\n\n inflightInteractionTransaction = startIdleTransaction(\n hub,\n context,\n idleTimeout,\n finalTimeout,\n true,\n { location }, // for use in the tracesSampler\n heartbeatInterval,\n );\n };\n\n ['click'].forEach(type => {\n if (WINDOW.document) {\n addEventListener(type, registerInteractionTransaction, { once: false, capture: true });\n }\n });\n }\n\n /** Creates a listener on interaction entries, and maps interactionIds to the origin path of the interaction */\n private _registerInpInteractionListener(): void {\n const handleEntries = ({ entries }: { entries: PerformanceEntry[] }): void => {\n const client = getClient();\n // We need to get the replay, user, and activeTransaction from the current scope\n // so that we can associate replay id, profile id, and a user display to the span\n const replay =\n client !== undefined && client.getIntegrationByName !== undefined\n ? (client.getIntegrationByName('Replay') as Integration & { getReplayId: () => string })\n : undefined;\n const replayId = replay !== undefined ? replay.getReplayId() : undefined;\n // eslint-disable-next-line deprecation/deprecation\n const activeTransaction = getActiveTransaction();\n const currentScope = getCurrentScope();\n const user = currentScope !== undefined ? currentScope.getUser() : undefined;\n entries.forEach(entry => {\n if (isPerformanceEventTiming(entry)) {\n const interactionId = entry.interactionId;\n if (interactionId === undefined) {\n return;\n }\n const existingInteraction = this._interactionIdToRouteNameMapping[interactionId];\n const duration = entry.duration;\n const startTime = entry.startTime;\n const keys = Object.keys(this._interactionIdToRouteNameMapping);\n const minInteractionId =\n keys.length > 0\n ? keys.reduce((a, b) => {\n return this._interactionIdToRouteNameMapping[a].duration <\n this._interactionIdToRouteNameMapping[b].duration\n ? a\n : b;\n })\n : undefined;\n // For a first input event to be considered, we must check that an interaction event does not already exist with the same duration and start time.\n // This is also checked in the web-vitals library.\n if (entry.entryType === 'first-input') {\n const matchingEntry = keys\n .map(key => this._interactionIdToRouteNameMapping[key])\n .some(interaction => {\n return interaction.duration === duration && interaction.startTime === startTime;\n });\n if (matchingEntry) {\n return;\n }\n }\n // Interactions with an id of 0 and are not first-input are not valid.\n if (!interactionId) {\n return;\n }\n // If the interaction already exists, we want to use the duration of the longest entry, since that is what the INP metric uses.\n if (existingInteraction) {\n existingInteraction.duration = Math.max(existingInteraction.duration, duration);\n } else if (\n keys.length < MAX_INTERACTIONS ||\n minInteractionId === undefined ||\n duration > this._interactionIdToRouteNameMapping[minInteractionId].duration\n ) {\n // If the interaction does not exist, we want to add it to the mapping if there is space, or if the duration is longer than the shortest entry.\n const routeName = this._latestRoute.name;\n const parentContext = this._latestRoute.context;\n if (routeName && parentContext) {\n if (minInteractionId && Object.keys(this._interactionIdToRouteNameMapping).length >= MAX_INTERACTIONS) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._interactionIdToRouteNameMapping[minInteractionId];\n }\n this._interactionIdToRouteNameMapping[interactionId] = {\n routeName,\n duration,\n parentContext,\n user,\n activeTransaction,\n replayId,\n startTime,\n };\n }\n }\n }\n });\n };\n addPerformanceInstrumentationHandler('event', handleEntries);\n addPerformanceInstrumentationHandler('first-input', handleEntries);\n }\n}\n\n/** Returns the value of a meta tag */\nexport function getMetaContent(metaName: string): string | undefined {\n // Can't specify generic to `getDomElement` because tracing can be used\n // in a variety of environments, have to disable `no-unsafe-member-access`\n // as a result.\n const metaTag = getDomElement(`meta[name=${metaName}]`);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return metaTag ? metaTag.getAttribute('content') : undefined;\n}\n\nfunction getSource(context: TransactionContext): TransactionSource | undefined {\n const sourceFromAttributes = context.attributes && context.attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n // eslint-disable-next-line deprecation/deprecation\n const sourceFromData = context.data && context.data[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n // eslint-disable-next-line deprecation/deprecation\n const sourceFromMetadata = context.metadata && context.metadata.source;\n\n return sourceFromAttributes || sourceFromData || sourceFromMetadata;\n}\n\nfunction isPerformanceEventTiming(entry: PerformanceEntry): entry is PerformanceEventTiming {\n return 'duration' in entry;\n}\n","import type { Transaction, TransactionContext } from '@sentry/types';\nimport { addHistoryInstrumentationHandler, browserPerformanceTimeOrigin, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../common/debug-build';\nimport { WINDOW } from './types';\n\n/**\n * Default function implementing pageload and navigation transactions\n */\nexport function instrumentRoutingWithDefaults(\n customStartTransaction: (context: TransactionContext) => T | undefined,\n startTransactionOnPageLoad: boolean = true,\n startTransactionOnLocationChange: boolean = true,\n): void {\n if (!WINDOW || !WINDOW.location) {\n DEBUG_BUILD && logger.warn('Could not initialize routing instrumentation due to invalid location');\n return;\n }\n\n let startingUrl: string | undefined = WINDOW.location.href;\n\n let activeTransaction: T | undefined;\n if (startTransactionOnPageLoad) {\n activeTransaction = customStartTransaction({\n name: WINDOW.location.pathname,\n // pageload should always start at timeOrigin (and needs to be in s, not ms)\n startTimestamp: browserPerformanceTimeOrigin ? browserPerformanceTimeOrigin / 1000 : undefined,\n op: 'pageload',\n origin: 'auto.pageload.browser',\n metadata: { source: 'url' },\n });\n }\n\n if (startTransactionOnLocationChange) {\n addHistoryInstrumentationHandler(({ to, from }) => {\n /**\n * This early return is there to account for some cases where a navigation transaction starts right after\n * long-running pageload. We make sure that if `from` is undefined and a valid `startingURL` exists, we don't\n * create an uneccessary navigation transaction.\n *\n * This was hard to duplicate, but this behavior stopped as soon as this fix was applied. This issue might also\n * only be caused in certain development environments where the usage of a hot module reloader is causing\n * errors.\n */\n if (from === undefined && startingUrl && startingUrl.indexOf(to) !== -1) {\n startingUrl = undefined;\n return;\n }\n\n if (from !== to) {\n startingUrl = undefined;\n if (activeTransaction) {\n DEBUG_BUILD && logger.log(`[Tracing] Finishing current transaction with op: ${activeTransaction.op}`);\n // If there's an open transaction on the scope, we need to finish it before creating an new one.\n activeTransaction.end();\n }\n activeTransaction = customStartTransaction({\n name: WINDOW.location.pathname,\n op: 'navigation',\n origin: 'auto.navigation.browser',\n metadata: { source: 'url' },\n });\n }\n });\n }\n}\n","// https://github.com/alangpierce/sucrase/tree/265887868966917f3b924ce38dfad01fbab1329f\n//\n// The MIT License (MIT)\n//\n// Copyright (c) 2012-2018 various contributors (see AUTHORS)\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\nimport type { GenericFunction } from './types';\n\n/**\n * Polyfill for the optional chain operator, `?.`, given previous conversion of the expression into an array of values,\n * descriptors, and functions.\n *\n * Adapted from Sucrase (https://github.com/alangpierce/sucrase)\n * See https://github.com/alangpierce/sucrase/blob/265887868966917f3b924ce38dfad01fbab1329f/src/transformers/OptionalChainingNullishTransformer.ts#L15\n *\n * @param ops Array result of expression conversion\n * @returns The value of the expression\n */\nexport function _optionalChain(ops: unknown[]): unknown {\n let lastAccessLHS: unknown = undefined;\n let value = ops[0];\n let i = 1;\n while (i < ops.length) {\n const op = ops[i] as string;\n const fn = ops[i + 1] as (intermediateValue: unknown) => unknown;\n i += 2;\n // by checking for loose equality to `null`, we catch both `null` and `undefined`\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n // really we're meaning to return `undefined` as an actual value here, but it saves bytes not to write it\n return;\n }\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn((...args: unknown[]) => (value as GenericFunction).call(lastAccessLHS, ...args));\n lastAccessLHS = undefined;\n }\n }\n return value;\n}\n\n// Sucrase version\n// function _optionalChain(ops) {\n// let lastAccessLHS = undefined;\n// let value = ops[0];\n// let i = 1;\n// while (i < ops.length) {\n// const op = ops[i];\n// const fn = ops[i + 1];\n// i += 2;\n// if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n// return undefined;\n// }\n// if (op === 'access' || op === 'optionalAccess') {\n// lastAccessLHS = value;\n// value = fn(value);\n// } else if (op === 'call' || op === 'optionalCall') {\n// value = fn((...args) => value.call(lastAccessLHS, ...args));\n// lastAccessLHS = undefined;\n// }\n// }\n// return value;\n// }\n","import type { Client, DsnComponents, Hub } from '@sentry/types';\n\n/**\n * Checks whether given url points to Sentry server\n * @param url url to verify\n *\n * TODO(v8): Remove Hub fallback type\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function isSentryRequestUrl(url: string, hubOrClient: Hub | Client | undefined): boolean {\n const client =\n hubOrClient && isHub(hubOrClient)\n ? // eslint-disable-next-line deprecation/deprecation\n hubOrClient.getClient()\n : hubOrClient;\n const dsn = client && client.getDsn();\n const tunnel = client && client.getOptions().tunnel;\n\n return checkDsn(url, dsn) || checkTunnel(url, tunnel);\n}\n\nfunction checkTunnel(url: string, tunnel: string | undefined): boolean {\n if (!tunnel) {\n return false;\n }\n\n return removeTrailingSlash(url) === removeTrailingSlash(tunnel);\n}\n\nfunction checkDsn(url: string, dsn: DsnComponents | undefined): boolean {\n return dsn ? url.includes(dsn.host) : false;\n}\n\nfunction removeTrailingSlash(str: string): string {\n return str[str.length - 1] === '/' ? str.slice(0, -1) : str;\n}\n\n// eslint-disable-next-line deprecation/deprecation\nfunction isHub(hubOrClient: Hub | Client | undefined): hubOrClient is Hub {\n // eslint-disable-next-line deprecation/deprecation\n return (hubOrClient as Hub).getClient !== undefined;\n}\n","import { isNodeEnv } from './node';\nimport { GLOBAL_OBJ } from './worldwide';\n\n/**\n * Returns true if we are in the browser.\n */\nexport function isBrowser(): boolean {\n // eslint-disable-next-line no-restricted-globals\n return typeof window !== 'undefined' && (!isNodeEnv() || isElectronNodeRenderer());\n}\n\ntype ElectronProcess = { type?: string };\n\n// Electron renderers with nodeIntegration enabled are detected as Node.js so we specifically test for them\nfunction isElectronNodeRenderer(): boolean {\n return (\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (GLOBAL_OBJ as any).process !== undefined && ((GLOBAL_OBJ as any).process as ElectronProcess).type === 'renderer'\n );\n}\n","import { GLOBAL_OBJ } from '@sentry/utils';\n\n// exporting a separate copy of `WINDOW` rather than exporting the one from `@sentry/browser`\n// prevents the browser package from being bundled in the CDN bundle, and avoids a\n// circular dependency between the browser and replay packages should `@sentry/browser` import\n// from `@sentry/replay` in the future\nexport const WINDOW = GLOBAL_OBJ as typeof GLOBAL_OBJ & Window;\n\nexport const REPLAY_SESSION_KEY = 'sentryReplaySession';\nexport const REPLAY_EVENT_NAME = 'replay_event';\nexport const RECORDING_EVENT_NAME = 'replay_recording';\nexport const UNABLE_TO_SEND_REPLAY = 'Unable to send Replay';\n\n// The idle limit for a session after which recording is paused.\nexport const SESSION_IDLE_PAUSE_DURATION = 300_000; // 5 minutes in ms\n\n// The idle limit for a session after which the session expires.\nexport const SESSION_IDLE_EXPIRE_DURATION = 900_000; // 15 minutes in ms\n\n/** Default flush delays */\nexport const DEFAULT_FLUSH_MIN_DELAY = 5_000;\n// XXX: Temp fix for our debounce logic where `maxWait` would never occur if it\n// was the same as `wait`\nexport const DEFAULT_FLUSH_MAX_DELAY = 5_500;\n\n/* How long to wait for error checkouts */\nexport const BUFFER_CHECKOUT_TIME = 60_000;\n\nexport const RETRY_BASE_INTERVAL = 5000;\nexport const RETRY_MAX_COUNT = 3;\n\n/* The max (uncompressed) size in bytes of a network body. Any body larger than this will be truncated. */\nexport const NETWORK_BODY_MAX_SIZE = 150_000;\n\n/* The max size of a single console arg that is captured. Any arg larger than this will be truncated. */\nexport const CONSOLE_ARG_MAX_SIZE = 5_000;\n\n/* Min. time to wait before we consider something a slow click. */\nexport const SLOW_CLICK_THRESHOLD = 3_000;\n/* For scroll actions after a click, we only look for a very short time period to detect programmatic scrolling. */\nexport const SLOW_CLICK_SCROLL_TIMEOUT = 300;\n\n/** When encountering a total segment size exceeding this size, stop the replay (as we cannot properly ingest it). */\nexport const REPLAY_MAX_EVENT_BUFFER_SIZE = 20_000_000; // ~20MB\n\n/** Replays must be min. 5s long before we send them. */\nexport const MIN_REPLAY_DURATION = 4_999;\n/* The max. allowed value that the minReplayDuration can be set to. */\nexport const MIN_REPLAY_DURATION_LIMIT = 15_000;\n\n/** The max. length of a replay. */\nexport const MAX_REPLAY_DURATION = 3_600_000; // 60 minutes in ms;\n\n/** Default attributes to be ignored when `maskAllText` is enabled */\nexport const DEFAULT_IGNORED_ATTRIBUTES = ['title', 'placeholder'];\n","var NodeType;\r\n(function (NodeType) {\r\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\r\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\r\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\r\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\r\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\r\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\r\n})(NodeType || (NodeType = {}));\n\nfunction isElement(n) {\r\n return n.nodeType === n.ELEMENT_NODE;\r\n}\r\nfunction isShadowRoot(n) {\r\n const host = n?.host;\r\n return Boolean(host?.shadowRoot === n);\r\n}\r\nfunction isNativeShadowDom(shadowRoot) {\r\n return Object.prototype.toString.call(shadowRoot) === '[object ShadowRoot]';\r\n}\r\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\r\n if (cssText.includes(' background-clip: text;') &&\r\n !cssText.includes(' -webkit-background-clip: text;')) {\r\n cssText = cssText.replace(' background-clip: text;', ' -webkit-background-clip: text; background-clip: text;');\r\n }\r\n return cssText;\r\n}\r\nfunction escapeImportStatement(rule) {\r\n const { cssText } = rule;\r\n if (cssText.split('\"').length < 3)\r\n return cssText;\r\n const statement = ['@import', `url(${JSON.stringify(rule.href)})`];\r\n if (rule.layerName === '') {\r\n statement.push(`layer`);\r\n }\r\n else if (rule.layerName) {\r\n statement.push(`layer(${rule.layerName})`);\r\n }\r\n if (rule.supportsText) {\r\n statement.push(`supports(${rule.supportsText})`);\r\n }\r\n if (rule.media.length) {\r\n statement.push(rule.media.mediaText);\r\n }\r\n return statement.join(' ') + ';';\r\n}\r\nfunction stringifyStylesheet(s) {\r\n try {\r\n const rules = s.rules || s.cssRules;\r\n return rules\r\n ? fixBrowserCompatibilityIssuesInCSS(Array.from(rules, stringifyRule).join(''))\r\n : null;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n}\r\nfunction stringifyRule(rule) {\r\n let importStringified;\r\n if (isCSSImportRule(rule)) {\r\n try {\r\n importStringified =\r\n stringifyStylesheet(rule.styleSheet) ||\r\n escapeImportStatement(rule);\r\n }\r\n catch (error) {\r\n }\r\n }\r\n else if (isCSSStyleRule(rule) && rule.selectorText.includes(':')) {\r\n return fixSafariColons(rule.cssText);\r\n }\r\n return importStringified || rule.cssText;\r\n}\r\nfunction fixSafariColons(cssStringified) {\r\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\r\n return cssStringified.replace(regex, '$1\\\\$2');\r\n}\r\nfunction isCSSImportRule(rule) {\r\n return 'styleSheet' in rule;\r\n}\r\nfunction isCSSStyleRule(rule) {\r\n return 'selectorText' in rule;\r\n}\r\nclass Mirror {\r\n constructor() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n getId(n) {\r\n if (!n)\r\n return -1;\r\n const id = this.getMeta(n)?.id;\r\n return id ?? -1;\r\n }\r\n getNode(id) {\r\n return this.idNodeMap.get(id) || null;\r\n }\r\n getIds() {\r\n return Array.from(this.idNodeMap.keys());\r\n }\r\n getMeta(n) {\r\n return this.nodeMetaMap.get(n) || null;\r\n }\r\n removeNodeFromMap(n) {\r\n const id = this.getId(n);\r\n this.idNodeMap.delete(id);\r\n if (n.childNodes) {\r\n n.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\r\n }\r\n }\r\n has(id) {\r\n return this.idNodeMap.has(id);\r\n }\r\n hasNode(node) {\r\n return this.nodeMetaMap.has(node);\r\n }\r\n add(n, meta) {\r\n const id = meta.id;\r\n this.idNodeMap.set(id, n);\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n replace(id, n) {\r\n const oldNode = this.getNode(id);\r\n if (oldNode) {\r\n const meta = this.nodeMetaMap.get(oldNode);\r\n if (meta)\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n this.idNodeMap.set(id, n);\r\n }\r\n reset() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n}\r\nfunction createMirror() {\r\n return new Mirror();\r\n}\r\nfunction shouldMaskInput({ maskInputOptions, tagName, type, }) {\r\n if (tagName === 'OPTION') {\r\n tagName = 'SELECT';\r\n }\r\n return Boolean(maskInputOptions[tagName.toLowerCase()] ||\r\n (type && maskInputOptions[type]) ||\r\n type === 'password' ||\r\n (tagName === 'INPUT' && !type && maskInputOptions['text']));\r\n}\r\nfunction maskInputValue({ isMasked, element, value, maskInputFn, }) {\r\n let text = value || '';\r\n if (!isMasked) {\r\n return text;\r\n }\r\n if (maskInputFn) {\r\n text = maskInputFn(text, element);\r\n }\r\n return '*'.repeat(text.length);\r\n}\r\nfunction toLowerCase(str) {\r\n return str.toLowerCase();\r\n}\r\nfunction toUpperCase(str) {\r\n return str.toUpperCase();\r\n}\r\nconst ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';\r\nfunction is2DCanvasBlank(canvas) {\r\n const ctx = canvas.getContext('2d');\r\n if (!ctx)\r\n return true;\r\n const chunkSize = 50;\r\n for (let x = 0; x < canvas.width; x += chunkSize) {\r\n for (let y = 0; y < canvas.height; y += chunkSize) {\r\n const getImageData = ctx.getImageData;\r\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData\r\n ? getImageData[ORIGINAL_ATTRIBUTE_NAME]\r\n : getImageData;\r\n const pixelBuffer = new Uint32Array(originalGetImageData.call(ctx, x, y, Math.min(chunkSize, canvas.width - x), Math.min(chunkSize, canvas.height - y)).data.buffer);\r\n if (pixelBuffer.some((pixel) => pixel !== 0))\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction isNodeMetaEqual(a, b) {\r\n if (!a || !b || a.type !== b.type)\r\n return false;\r\n if (a.type === NodeType.Document)\r\n return a.compatMode === b.compatMode;\r\n else if (a.type === NodeType.DocumentType)\r\n return (a.name === b.name &&\r\n a.publicId === b.publicId &&\r\n a.systemId === b.systemId);\r\n else if (a.type === NodeType.Comment ||\r\n a.type === NodeType.Text ||\r\n a.type === NodeType.CDATA)\r\n return a.textContent === b.textContent;\r\n else if (a.type === NodeType.Element)\r\n return (a.tagName === b.tagName &&\r\n JSON.stringify(a.attributes) ===\r\n JSON.stringify(b.attributes) &&\r\n a.isSVG === b.isSVG &&\r\n a.needBlock === b.needBlock);\r\n return false;\r\n}\r\nfunction getInputType(element) {\r\n const type = element.type;\r\n return element.hasAttribute('data-rr-is-password')\r\n ? 'password'\r\n : type\r\n ?\r\n toLowerCase(type)\r\n : null;\r\n}\r\nfunction getInputValue(el, tagName, type) {\r\n if (tagName === 'INPUT' && (type === 'radio' || type === 'checkbox')) {\r\n return el.getAttribute('value') || '';\r\n }\r\n return el.value;\r\n}\n\nlet _id = 1;\r\nconst tagNameRegex = new RegExp('[^a-z0-9-_:]');\r\nconst IGNORED_NODE = -2;\r\nfunction genId() {\r\n return _id++;\r\n}\r\nfunction getValidTagName(element) {\r\n if (element instanceof HTMLFormElement) {\r\n return 'form';\r\n }\r\n const processedTagName = toLowerCase(element.tagName);\r\n if (tagNameRegex.test(processedTagName)) {\r\n return 'div';\r\n }\r\n return processedTagName;\r\n}\r\nfunction extractOrigin(url) {\r\n let origin = '';\r\n if (url.indexOf('//') > -1) {\r\n origin = url.split('/').slice(0, 3).join('/');\r\n }\r\n else {\r\n origin = url.split('/')[0];\r\n }\r\n origin = origin.split('?')[0];\r\n return origin;\r\n}\r\nlet canvasService;\r\nlet canvasCtx;\r\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\r\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\r\nconst URL_WWW_MATCH = /^www\\..*/i;\r\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\r\nfunction absoluteToStylesheet(cssText, href) {\r\n return (cssText || '').replace(URL_IN_CSS_REF, (origin, quote1, path1, quote2, path2, path3) => {\r\n const filePath = path1 || path2 || path3;\r\n const maybeQuote = quote1 || quote2 || '';\r\n if (!filePath) {\r\n return origin;\r\n }\r\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (DATA_URI.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (filePath[0] === '/') {\r\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\r\n }\r\n const stack = href.split('/');\r\n const parts = filePath.split('/');\r\n stack.pop();\r\n for (const part of parts) {\r\n if (part === '.') {\r\n continue;\r\n }\r\n else if (part === '..') {\r\n stack.pop();\r\n }\r\n else {\r\n stack.push(part);\r\n }\r\n }\r\n return `url(${maybeQuote}${stack.join('/')}${maybeQuote})`;\r\n });\r\n}\r\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\r\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\r\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\r\n if (attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n let pos = 0;\r\n function collectCharacters(regEx) {\r\n let chars;\r\n const match = regEx.exec(attributeValue.substring(pos));\r\n if (match) {\r\n chars = match[0];\r\n pos += chars.length;\r\n return chars;\r\n }\r\n return '';\r\n }\r\n const output = [];\r\n while (true) {\r\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\r\n if (pos >= attributeValue.length) {\r\n break;\r\n }\r\n let url = collectCharacters(SRCSET_NOT_SPACES);\r\n if (url.slice(-1) === ',') {\r\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\r\n output.push(url);\r\n }\r\n else {\r\n let descriptorsStr = '';\r\n url = absoluteToDoc(doc, url);\r\n let inParens = false;\r\n while (true) {\r\n const c = attributeValue.charAt(pos);\r\n if (c === '') {\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (!inParens) {\r\n if (c === ',') {\r\n pos += 1;\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (c === '(') {\r\n inParens = true;\r\n }\r\n }\r\n else {\r\n if (c === ')') {\r\n inParens = false;\r\n }\r\n }\r\n descriptorsStr += c;\r\n pos += 1;\r\n }\r\n }\r\n }\r\n return output.join(', ');\r\n}\r\nfunction absoluteToDoc(doc, attributeValue) {\r\n if (!attributeValue || attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n const a = doc.createElement('a');\r\n a.href = attributeValue;\r\n return a.href;\r\n}\r\nfunction isSVGElement(el) {\r\n return Boolean(el.tagName === 'svg' || el.ownerSVGElement);\r\n}\r\nfunction getHref() {\r\n const a = document.createElement('a');\r\n a.href = '';\r\n return a.href;\r\n}\r\nfunction transformAttribute(doc, tagName, name, value, element, maskAttributeFn) {\r\n if (!value) {\r\n return value;\r\n }\r\n if (name === 'src' ||\r\n (name === 'href' && !(tagName === 'use' && value[0] === '#'))) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'xlink:href' && value[0] !== '#') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'background' &&\r\n (tagName === 'table' || tagName === 'td' || tagName === 'th')) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'srcset') {\r\n return getAbsoluteSrcsetString(doc, value);\r\n }\r\n else if (name === 'style') {\r\n return absoluteToStylesheet(value, getHref());\r\n }\r\n else if (tagName === 'object' && name === 'data') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n if (typeof maskAttributeFn === 'function') {\r\n return maskAttributeFn(name, value, element);\r\n }\r\n return value;\r\n}\r\nfunction ignoreAttribute(tagName, name, _value) {\r\n return (tagName === 'video' || tagName === 'audio') && name === 'autoplay';\r\n}\r\nfunction _isBlockedElement(element, blockClass, blockSelector, unblockSelector) {\r\n try {\r\n if (unblockSelector && element.matches(unblockSelector)) {\r\n return false;\r\n }\r\n if (typeof blockClass === 'string') {\r\n if (element.classList.contains(blockClass)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n for (let eIndex = element.classList.length; eIndex--;) {\r\n const className = element.classList[eIndex];\r\n if (blockClass.test(className)) {\r\n return true;\r\n }\r\n }\r\n }\r\n if (blockSelector) {\r\n return element.matches(blockSelector);\r\n }\r\n }\r\n catch (e) {\r\n }\r\n return false;\r\n}\r\nfunction elementClassMatchesRegex(el, regex) {\r\n for (let eIndex = el.classList.length; eIndex--;) {\r\n const className = el.classList[eIndex];\r\n if (regex.test(className)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction distanceToMatch(node, matchPredicate, limit = Infinity, distance = 0) {\r\n if (!node)\r\n return -1;\r\n if (node.nodeType !== node.ELEMENT_NODE)\r\n return -1;\r\n if (distance > limit)\r\n return -1;\r\n if (matchPredicate(node))\r\n return distance;\r\n return distanceToMatch(node.parentNode, matchPredicate, limit, distance + 1);\r\n}\r\nfunction createMatchPredicate(className, selector) {\r\n return (node) => {\r\n const el = node;\r\n if (el === null)\r\n return false;\r\n try {\r\n if (className) {\r\n if (typeof className === 'string') {\r\n if (el.matches(`.${className}`))\r\n return true;\r\n }\r\n else if (elementClassMatchesRegex(el, className)) {\r\n return true;\r\n }\r\n }\r\n if (selector && el.matches(selector))\r\n return true;\r\n return false;\r\n }\r\n catch {\r\n return false;\r\n }\r\n };\r\n}\r\nfunction needMaskingText(node, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, maskAllText) {\r\n try {\r\n const el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n if (el === null)\r\n return false;\r\n if (el.tagName === 'INPUT') {\r\n const autocomplete = el.getAttribute('autocomplete');\r\n const disallowedAutocompleteValues = [\r\n 'current-password',\r\n 'new-password',\r\n 'cc-number',\r\n 'cc-exp',\r\n 'cc-exp-month',\r\n 'cc-exp-year',\r\n 'cc-csc',\r\n ];\r\n if (disallowedAutocompleteValues.includes(autocomplete)) {\r\n return true;\r\n }\r\n }\r\n let maskDistance = -1;\r\n let unmaskDistance = -1;\r\n if (maskAllText) {\r\n unmaskDistance = distanceToMatch(el, createMatchPredicate(unmaskTextClass, unmaskTextSelector));\r\n if (unmaskDistance < 0) {\r\n return true;\r\n }\r\n maskDistance = distanceToMatch(el, createMatchPredicate(maskTextClass, maskTextSelector), unmaskDistance >= 0 ? unmaskDistance : Infinity);\r\n }\r\n else {\r\n maskDistance = distanceToMatch(el, createMatchPredicate(maskTextClass, maskTextSelector));\r\n if (maskDistance < 0) {\r\n return false;\r\n }\r\n unmaskDistance = distanceToMatch(el, createMatchPredicate(unmaskTextClass, unmaskTextSelector), maskDistance >= 0 ? maskDistance : Infinity);\r\n }\r\n return maskDistance >= 0\r\n ? unmaskDistance >= 0\r\n ? maskDistance <= unmaskDistance\r\n : true\r\n : unmaskDistance >= 0\r\n ? false\r\n : !!maskAllText;\r\n }\r\n catch (e) {\r\n }\r\n return !!maskAllText;\r\n}\r\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\r\n const win = iframeEl.contentWindow;\r\n if (!win) {\r\n return;\r\n }\r\n let fired = false;\r\n let readyState;\r\n try {\r\n readyState = win.document.readyState;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (readyState !== 'complete') {\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, iframeLoadTimeout);\r\n iframeEl.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n return;\r\n }\r\n const blankUrl = 'about:blank';\r\n if (win.location.href !== blankUrl ||\r\n iframeEl.src === blankUrl ||\r\n iframeEl.src === '') {\r\n setTimeout(listener, 0);\r\n return iframeEl.addEventListener('load', listener);\r\n }\r\n iframeEl.addEventListener('load', listener);\r\n}\r\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\r\n let fired = false;\r\n let styleSheetLoaded;\r\n try {\r\n styleSheetLoaded = link.sheet;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (styleSheetLoaded)\r\n return;\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, styleSheetLoadTimeout);\r\n link.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n}\r\nfunction serializeNode(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, unblockSelector, maskAllText, maskAttributeFn, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, inlineStylesheet, maskInputOptions = {}, maskTextFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, } = options;\r\n const rootId = getRootId(doc, mirror);\r\n switch (n.nodeType) {\r\n case n.DOCUMENT_NODE:\r\n if (n.compatMode !== 'CSS1Compat') {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: [],\r\n compatMode: n.compatMode,\r\n };\r\n }\r\n else {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: [],\r\n };\r\n }\r\n case n.DOCUMENT_TYPE_NODE:\r\n return {\r\n type: NodeType.DocumentType,\r\n name: n.name,\r\n publicId: n.publicId,\r\n systemId: n.systemId,\r\n rootId,\r\n };\r\n case n.ELEMENT_NODE:\r\n return serializeElementNode(n, {\r\n doc,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n inlineStylesheet,\r\n maskAttributeFn,\r\n maskInputOptions,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n rootId,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n });\r\n case n.TEXT_NODE:\r\n return serializeTextNode(n, {\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n maskTextFn,\r\n maskInputOptions,\r\n maskInputFn,\r\n rootId,\r\n });\r\n case n.CDATA_SECTION_NODE:\r\n return {\r\n type: NodeType.CDATA,\r\n textContent: '',\r\n rootId,\r\n };\r\n case n.COMMENT_NODE:\r\n return {\r\n type: NodeType.Comment,\r\n textContent: n.textContent || '',\r\n rootId,\r\n };\r\n default:\r\n return false;\r\n }\r\n}\r\nfunction getRootId(doc, mirror) {\r\n if (!mirror.hasNode(doc))\r\n return undefined;\r\n const docId = mirror.getId(doc);\r\n return docId === 1 ? undefined : docId;\r\n}\r\nfunction serializeTextNode(n, options) {\r\n const { maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, maskTextFn, maskInputOptions, maskInputFn, rootId, } = options;\r\n const parentTagName = n.parentNode && n.parentNode.tagName;\r\n let textContent = n.textContent;\r\n const isStyle = parentTagName === 'STYLE' ? true : undefined;\r\n const isScript = parentTagName === 'SCRIPT' ? true : undefined;\r\n const isTextarea = parentTagName === 'TEXTAREA' ? true : undefined;\r\n if (isStyle && textContent) {\r\n try {\r\n if (n.nextSibling || n.previousSibling) {\r\n }\r\n else if (n.parentNode.sheet?.cssRules) {\r\n textContent = stringifyStylesheet(n.parentNode.sheet);\r\n }\r\n }\r\n catch (err) {\r\n console.warn(`Cannot get CSS styles from text's parentNode. Error: ${err}`, n);\r\n }\r\n textContent = absoluteToStylesheet(textContent, getHref());\r\n }\r\n if (isScript) {\r\n textContent = 'SCRIPT_PLACEHOLDER';\r\n }\r\n const forceMask = needMaskingText(n, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, maskAllText);\r\n if (!isStyle && !isScript && !isTextarea && textContent && forceMask) {\r\n textContent = maskTextFn\r\n ? maskTextFn(textContent, n.parentElement)\r\n : textContent.replace(/[\\S]/g, '*');\r\n }\r\n if (isTextarea && textContent && (maskInputOptions.textarea || forceMask)) {\r\n textContent = maskInputFn\r\n ? maskInputFn(textContent, n.parentNode)\r\n : textContent.replace(/[\\S]/g, '*');\r\n }\r\n if (parentTagName === 'OPTION' && textContent) {\r\n const isInputMasked = shouldMaskInput({\r\n type: null,\r\n tagName: parentTagName,\r\n maskInputOptions,\r\n });\r\n textContent = maskInputValue({\r\n isMasked: needMaskingText(n, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, isInputMasked),\r\n element: n,\r\n value: textContent,\r\n maskInputFn,\r\n });\r\n }\r\n return {\r\n type: NodeType.Text,\r\n textContent: textContent || '',\r\n isStyle,\r\n rootId,\r\n };\r\n}\r\nfunction serializeElementNode(n, options) {\r\n const { doc, blockClass, blockSelector, unblockSelector, inlineStylesheet, maskInputOptions = {}, maskAttributeFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, rootId, maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, } = options;\r\n const needBlock = _isBlockedElement(n, blockClass, blockSelector, unblockSelector);\r\n const tagName = getValidTagName(n);\r\n let attributes = {};\r\n const len = n.attributes.length;\r\n for (let i = 0; i < len; i++) {\r\n const attr = n.attributes[i];\r\n if (attr.name && !ignoreAttribute(tagName, attr.name, attr.value)) {\r\n attributes[attr.name] = transformAttribute(doc, tagName, toLowerCase(attr.name), attr.value, n, maskAttributeFn);\r\n }\r\n }\r\n if (tagName === 'link' && inlineStylesheet) {\r\n const stylesheet = Array.from(doc.styleSheets).find((s) => {\r\n return s.href === n.href;\r\n });\r\n let cssText = null;\r\n if (stylesheet) {\r\n cssText = stringifyStylesheet(stylesheet);\r\n }\r\n if (cssText) {\r\n delete attributes.rel;\r\n delete attributes.href;\r\n attributes._cssText = absoluteToStylesheet(cssText, stylesheet.href);\r\n }\r\n }\r\n if (tagName === 'style' &&\r\n n.sheet &&\r\n !(n.innerText || n.textContent || '').trim().length) {\r\n const cssText = stringifyStylesheet(n.sheet);\r\n if (cssText) {\r\n attributes._cssText = absoluteToStylesheet(cssText, getHref());\r\n }\r\n }\r\n if (tagName === 'input' ||\r\n tagName === 'textarea' ||\r\n tagName === 'select' ||\r\n tagName === 'option') {\r\n const el = n;\r\n const type = getInputType(el);\r\n const value = getInputValue(el, toUpperCase(tagName), type);\r\n const checked = el.checked;\r\n if (type !== 'submit' && type !== 'button' && value) {\r\n const forceMask = needMaskingText(el, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, shouldMaskInput({\r\n type,\r\n tagName: toUpperCase(tagName),\r\n maskInputOptions,\r\n }));\r\n attributes.value = maskInputValue({\r\n isMasked: forceMask,\r\n element: el,\r\n value,\r\n maskInputFn,\r\n });\r\n }\r\n if (checked) {\r\n attributes.checked = checked;\r\n }\r\n }\r\n if (tagName === 'option') {\r\n if (n.selected && !maskInputOptions['select']) {\r\n attributes.selected = true;\r\n }\r\n else {\r\n delete attributes.selected;\r\n }\r\n }\r\n if (tagName === 'canvas' && recordCanvas) {\r\n if (n.__context === '2d') {\r\n if (!is2DCanvasBlank(n)) {\r\n attributes.rr_dataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n }\r\n else if (!('__context' in n)) {\r\n const canvasDataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n const blankCanvas = document.createElement('canvas');\r\n blankCanvas.width = n.width;\r\n blankCanvas.height = n.height;\r\n const blankCanvasDataURL = blankCanvas.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n if (canvasDataURL !== blankCanvasDataURL) {\r\n attributes.rr_dataURL = canvasDataURL;\r\n }\r\n }\r\n }\r\n if (tagName === 'img' && inlineImages) {\r\n if (!canvasService) {\r\n canvasService = doc.createElement('canvas');\r\n canvasCtx = canvasService.getContext('2d');\r\n }\r\n const image = n;\r\n const oldValue = image.crossOrigin;\r\n image.crossOrigin = 'anonymous';\r\n const recordInlineImage = () => {\r\n image.removeEventListener('load', recordInlineImage);\r\n try {\r\n canvasService.width = image.naturalWidth;\r\n canvasService.height = image.naturalHeight;\r\n canvasCtx.drawImage(image, 0, 0);\r\n attributes.rr_dataURL = canvasService.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n catch (err) {\r\n console.warn(`Cannot inline img src=${image.currentSrc}! Error: ${err}`);\r\n }\r\n oldValue\r\n ? (attributes.crossOrigin = oldValue)\r\n : image.removeAttribute('crossorigin');\r\n };\r\n if (image.complete && image.naturalWidth !== 0)\r\n recordInlineImage();\r\n else\r\n image.addEventListener('load', recordInlineImage);\r\n }\r\n if (tagName === 'audio' || tagName === 'video') {\r\n attributes.rr_mediaState = n.paused\r\n ? 'paused'\r\n : 'played';\r\n attributes.rr_mediaCurrentTime = n.currentTime;\r\n }\r\n if (!newlyAddedElement) {\r\n if (n.scrollLeft) {\r\n attributes.rr_scrollLeft = n.scrollLeft;\r\n }\r\n if (n.scrollTop) {\r\n attributes.rr_scrollTop = n.scrollTop;\r\n }\r\n }\r\n if (needBlock) {\r\n const { width, height } = n.getBoundingClientRect();\r\n attributes = {\r\n class: attributes.class,\r\n rr_width: `${width}px`,\r\n rr_height: `${height}px`,\r\n };\r\n }\r\n if (tagName === 'iframe' && !keepIframeSrcFn(attributes.src)) {\r\n if (!n.contentDocument) {\r\n attributes.rr_src = attributes.src;\r\n }\r\n delete attributes.src;\r\n }\r\n let isCustomElement;\r\n try {\r\n if (customElements.get(tagName))\r\n isCustomElement = true;\r\n }\r\n catch (e) {\r\n }\r\n return {\r\n type: NodeType.Element,\r\n tagName,\r\n attributes,\r\n childNodes: [],\r\n isSVG: isSVGElement(n) || undefined,\r\n needBlock,\r\n rootId,\r\n isCustom: isCustomElement,\r\n };\r\n}\r\nfunction lowerIfExists(maybeAttr) {\r\n if (maybeAttr === undefined || maybeAttr === null) {\r\n return '';\r\n }\r\n else {\r\n return maybeAttr.toLowerCase();\r\n }\r\n}\r\nfunction slimDOMExcluded(sn, slimDOMOptions) {\r\n if (slimDOMOptions.comment && sn.type === NodeType.Comment) {\r\n return true;\r\n }\r\n else if (sn.type === NodeType.Element) {\r\n if (slimDOMOptions.script &&\r\n (sn.tagName === 'script' ||\r\n (sn.tagName === 'link' &&\r\n (sn.attributes.rel === 'preload' ||\r\n sn.attributes.rel === 'modulepreload') &&\r\n sn.attributes.as === 'script') ||\r\n (sn.tagName === 'link' &&\r\n sn.attributes.rel === 'prefetch' &&\r\n typeof sn.attributes.href === 'string' &&\r\n sn.attributes.href.endsWith('.js')))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headFavicon &&\r\n ((sn.tagName === 'link' && sn.attributes.rel === 'shortcut icon') ||\r\n (sn.tagName === 'meta' &&\r\n (lowerIfExists(sn.attributes.name).match(/^msapplication-tile(image|color)$/) ||\r\n lowerIfExists(sn.attributes.name) === 'application-name' ||\r\n lowerIfExists(sn.attributes.rel) === 'icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'apple-touch-icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'shortcut icon')))) {\r\n return true;\r\n }\r\n else if (sn.tagName === 'meta') {\r\n if (slimDOMOptions.headMetaDescKeywords &&\r\n lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaSocial &&\r\n (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) ||\r\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) ||\r\n lowerIfExists(sn.attributes.name) === 'pinterest')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaRobots &&\r\n (lowerIfExists(sn.attributes.name) === 'robots' ||\r\n lowerIfExists(sn.attributes.name) === 'googlebot' ||\r\n lowerIfExists(sn.attributes.name) === 'bingbot')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaHttpEquiv &&\r\n sn.attributes['http-equiv'] !== undefined) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaAuthorship &&\r\n (lowerIfExists(sn.attributes.name) === 'author' ||\r\n lowerIfExists(sn.attributes.name) === 'generator' ||\r\n lowerIfExists(sn.attributes.name) === 'framework' ||\r\n lowerIfExists(sn.attributes.name) === 'publisher' ||\r\n lowerIfExists(sn.attributes.name) === 'progid' ||\r\n lowerIfExists(sn.attributes.property).match(/^article:/) ||\r\n lowerIfExists(sn.attributes.property).match(/^product:/))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaVerification &&\r\n (lowerIfExists(sn.attributes.name) === 'google-site-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'yandex-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'csrf-token' ||\r\n lowerIfExists(sn.attributes.name) === 'p:domain_verify' ||\r\n lowerIfExists(sn.attributes.name) === 'verify-v1' ||\r\n lowerIfExists(sn.attributes.name) === 'verification' ||\r\n lowerIfExists(sn.attributes.name) === 'shopify-checkout-api-token')) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\nfunction serializeNodeWithId(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, unblockSelector, maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, skipChild = false, inlineStylesheet = true, maskInputOptions = {}, maskAttributeFn, maskTextFn, maskInputFn, slimDOMOptions, dataURLOptions = {}, inlineImages = false, recordCanvas = false, onSerialize, onIframeLoad, iframeLoadTimeout = 5000, onStylesheetLoad, stylesheetLoadTimeout = 5000, keepIframeSrcFn = () => false, newlyAddedElement = false, } = options;\r\n let { preserveWhiteSpace = true } = options;\r\n const _serializedNode = serializeNode(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskAllText,\r\n unblockSelector,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n });\r\n if (!_serializedNode) {\r\n console.warn(n, 'not serialized');\r\n return null;\r\n }\r\n let id;\r\n if (mirror.hasNode(n)) {\r\n id = mirror.getId(n);\r\n }\r\n else if (slimDOMExcluded(_serializedNode, slimDOMOptions) ||\r\n (!preserveWhiteSpace &&\r\n _serializedNode.type === NodeType.Text &&\r\n !_serializedNode.isStyle &&\r\n !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, '').length)) {\r\n id = IGNORED_NODE;\r\n }\r\n else {\r\n id = genId();\r\n }\r\n const serializedNode = Object.assign(_serializedNode, { id });\r\n mirror.add(n, serializedNode);\r\n if (id === IGNORED_NODE) {\r\n return null;\r\n }\r\n if (onSerialize) {\r\n onSerialize(n);\r\n }\r\n let recordChild = !skipChild;\r\n if (serializedNode.type === NodeType.Element) {\r\n recordChild = recordChild && !serializedNode.needBlock;\r\n delete serializedNode.needBlock;\r\n const shadowRoot = n.shadowRoot;\r\n if (shadowRoot && isNativeShadowDom(shadowRoot))\r\n serializedNode.isShadowHost = true;\r\n }\r\n if ((serializedNode.type === NodeType.Document ||\r\n serializedNode.type === NodeType.Element) &&\r\n recordChild) {\r\n if (slimDOMOptions.headWhitespace &&\r\n serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'head') {\r\n preserveWhiteSpace = false;\r\n }\r\n const bypassOptions = {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskAllText,\r\n unblockSelector,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n };\r\n for (const childN of Array.from(n.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n if (isElement(n) && n.shadowRoot) {\r\n for (const childN of Array.from(n.shadowRoot.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n isNativeShadowDom(n.shadowRoot) &&\r\n (serializedChildNode.isShadow = true);\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n }\r\n }\r\n if (n.parentNode &&\r\n isShadowRoot(n.parentNode) &&\r\n isNativeShadowDom(n.parentNode)) {\r\n serializedNode.isShadow = true;\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'iframe') {\r\n onceIframeLoaded(n, () => {\r\n const iframeDoc = n.contentDocument;\r\n if (iframeDoc && onIframeLoad) {\r\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\r\n doc: iframeDoc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedIframeNode) {\r\n onIframeLoad(n, serializedIframeNode);\r\n }\r\n }\r\n }, iframeLoadTimeout);\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'link' &&\r\n serializedNode.attributes.rel === 'stylesheet') {\r\n onceStylesheetLoaded(n, () => {\r\n if (onStylesheetLoad) {\r\n const serializedLinkNode = serializeNodeWithId(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedLinkNode) {\r\n onStylesheetLoad(n, serializedLinkNode);\r\n }\r\n }\r\n }, stylesheetLoadTimeout);\r\n }\r\n return serializedNode;\r\n}\r\nfunction snapshot(n, options) {\r\n const { mirror = new Mirror(), blockClass = 'rr-block', blockSelector = null, unblockSelector = null, maskAllText = false, maskTextClass = 'rr-mask', unmaskTextClass = null, maskTextSelector = null, unmaskTextSelector = null, inlineStylesheet = true, inlineImages = false, recordCanvas = false, maskAllInputs = false, maskAttributeFn, maskTextFn, maskInputFn, slimDOM = false, dataURLOptions, preserveWhiteSpace, onSerialize, onIframeLoad, iframeLoadTimeout, onStylesheetLoad, stylesheetLoadTimeout, keepIframeSrcFn = () => false, } = options || {};\r\n const maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n }\r\n : maskAllInputs === false\r\n ? {}\r\n : maskAllInputs;\r\n const slimDOMOptions = slimDOM === true || slimDOM === 'all'\r\n ?\r\n {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaDescKeywords: slimDOM === 'all',\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaAuthorship: true,\r\n headMetaVerification: true,\r\n }\r\n : slimDOM === false\r\n ? {}\r\n : slimDOM;\r\n return serializeNodeWithId(n, {\r\n doc: n,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n newlyAddedElement: false,\r\n });\r\n}\r\n\nconst commentre = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\r\nfunction parse(css, options = {}) {\r\n let lineno = 1;\r\n let column = 1;\r\n function updatePosition(str) {\r\n const lines = str.match(/\\n/g);\r\n if (lines) {\r\n lineno += lines.length;\r\n }\r\n const i = str.lastIndexOf('\\n');\r\n column = i === -1 ? column + str.length : str.length - i;\r\n }\r\n function position() {\r\n const start = { line: lineno, column };\r\n return (node) => {\r\n node.position = new Position(start);\r\n whitespace();\r\n return node;\r\n };\r\n }\r\n class Position {\r\n constructor(start) {\r\n this.start = start;\r\n this.end = { line: lineno, column };\r\n this.source = options.source;\r\n }\r\n }\r\n Position.prototype.content = css;\r\n const errorsList = [];\r\n function error(msg) {\r\n const err = new Error(`${options.source || ''}:${lineno}:${column}: ${msg}`);\r\n err.reason = msg;\r\n err.filename = options.source;\r\n err.line = lineno;\r\n err.column = column;\r\n err.source = css;\r\n if (options.silent) {\r\n errorsList.push(err);\r\n }\r\n else {\r\n throw err;\r\n }\r\n }\r\n function stylesheet() {\r\n const rulesList = rules();\r\n return {\r\n type: 'stylesheet',\r\n stylesheet: {\r\n source: options.source,\r\n rules: rulesList,\r\n parsingErrors: errorsList,\r\n },\r\n };\r\n }\r\n function open() {\r\n return match(/^{\\s*/);\r\n }\r\n function close() {\r\n return match(/^}/);\r\n }\r\n function rules() {\r\n let node;\r\n const rules = [];\r\n whitespace();\r\n comments(rules);\r\n while (css.length && css.charAt(0) !== '}' && (node = atrule() || rule())) {\r\n if (node) {\r\n rules.push(node);\r\n comments(rules);\r\n }\r\n }\r\n return rules;\r\n }\r\n function match(re) {\r\n const m = re.exec(css);\r\n if (!m) {\r\n return;\r\n }\r\n const str = m[0];\r\n updatePosition(str);\r\n css = css.slice(str.length);\r\n return m;\r\n }\r\n function whitespace() {\r\n match(/^\\s*/);\r\n }\r\n function comments(rules = []) {\r\n let c;\r\n while ((c = comment())) {\r\n if (c) {\r\n rules.push(c);\r\n }\r\n c = comment();\r\n }\r\n return rules;\r\n }\r\n function comment() {\r\n const pos = position();\r\n if ('/' !== css.charAt(0) || '*' !== css.charAt(1)) {\r\n return;\r\n }\r\n let i = 2;\r\n while ('' !== css.charAt(i) &&\r\n ('*' !== css.charAt(i) || '/' !== css.charAt(i + 1))) {\r\n ++i;\r\n }\r\n i += 2;\r\n if ('' === css.charAt(i - 1)) {\r\n return error('End of comment missing');\r\n }\r\n const str = css.slice(2, i - 2);\r\n column += 2;\r\n updatePosition(str);\r\n css = css.slice(i);\r\n column += 2;\r\n return pos({\r\n type: 'comment',\r\n comment: str,\r\n });\r\n }\r\n function selector() {\r\n whitespace();\r\n while (css[0] == '}') {\r\n error('extra closing bracket');\r\n css = css.slice(1);\r\n whitespace();\r\n }\r\n const m = match(/^((\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'|[^{])+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const cleanedInput = m[0]\r\n .trim()\r\n .replace(/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*\\/+/g, '')\r\n .replace(/\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, (m) => {\r\n return m.replace(/,/g, '\\u200C');\r\n });\r\n return customSplit(cleanedInput).map((s) => s.replace(/\\u200C/g, ',').trim());\r\n }\r\n function customSplit(input) {\r\n const result = [];\r\n let currentSegment = '';\r\n let depthParentheses = 0;\r\n let depthBrackets = 0;\r\n let currentStringChar = null;\r\n for (const char of input) {\r\n const hasStringEscape = currentSegment.endsWith('\\\\');\r\n if (currentStringChar) {\r\n if (currentStringChar === char && !hasStringEscape) {\r\n currentStringChar = null;\r\n }\r\n }\r\n else if (char === '(') {\r\n depthParentheses++;\r\n }\r\n else if (char === ')') {\r\n depthParentheses--;\r\n }\r\n else if (char === '[') {\r\n depthBrackets++;\r\n }\r\n else if (char === ']') {\r\n depthBrackets--;\r\n }\r\n else if ('\\'\"'.includes(char)) {\r\n currentStringChar = char;\r\n }\r\n if (char === ',' && depthParentheses === 0 && depthBrackets === 0) {\r\n result.push(currentSegment);\r\n currentSegment = '';\r\n }\r\n else {\r\n currentSegment += char;\r\n }\r\n }\r\n if (currentSegment) {\r\n result.push(currentSegment);\r\n }\r\n return result;\r\n }\r\n function declaration() {\r\n const pos = position();\r\n const propMatch = match(/^(\\*?[-#\\/\\*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\r\n if (!propMatch) {\r\n return;\r\n }\r\n const prop = trim(propMatch[0]);\r\n if (!match(/^:\\s*/)) {\r\n return error(`property missing ':'`);\r\n }\r\n const val = match(/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^\\)]*?\\)|[^};])+)/);\r\n const ret = pos({\r\n type: 'declaration',\r\n property: prop.replace(commentre, ''),\r\n value: val ? trim(val[0]).replace(commentre, '') : '',\r\n });\r\n match(/^[;\\s]*/);\r\n return ret;\r\n }\r\n function declarations() {\r\n const decls = [];\r\n if (!open()) {\r\n return error(`missing '{'`);\r\n }\r\n comments(decls);\r\n let decl;\r\n while ((decl = declaration())) {\r\n if (decl !== false) {\r\n decls.push(decl);\r\n comments(decls);\r\n }\r\n decl = declaration();\r\n }\r\n if (!close()) {\r\n return error(`missing '}'`);\r\n }\r\n return decls;\r\n }\r\n function keyframe() {\r\n let m;\r\n const vals = [];\r\n const pos = position();\r\n while ((m = match(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/))) {\r\n vals.push(m[1]);\r\n match(/^,\\s*/);\r\n }\r\n if (!vals.length) {\r\n return;\r\n }\r\n return pos({\r\n type: 'keyframe',\r\n values: vals,\r\n declarations: declarations(),\r\n });\r\n }\r\n function atkeyframes() {\r\n const pos = position();\r\n let m = match(/^@([-\\w]+)?keyframes\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n const vendor = m[1];\r\n m = match(/^([-\\w]+)\\s*/);\r\n if (!m) {\r\n return error('@keyframes missing name');\r\n }\r\n const name = m[1];\r\n if (!open()) {\r\n return error(`@keyframes missing '{'`);\r\n }\r\n let frame;\r\n let frames = comments();\r\n while ((frame = keyframe())) {\r\n frames.push(frame);\r\n frames = frames.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@keyframes missing '}'`);\r\n }\r\n return pos({\r\n type: 'keyframes',\r\n name,\r\n vendor,\r\n keyframes: frames,\r\n });\r\n }\r\n function atsupports() {\r\n const pos = position();\r\n const m = match(/^@supports *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const supports = trim(m[1]);\r\n if (!open()) {\r\n return error(`@supports missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@supports missing '}'`);\r\n }\r\n return pos({\r\n type: 'supports',\r\n supports,\r\n rules: style,\r\n });\r\n }\r\n function athost() {\r\n const pos = position();\r\n const m = match(/^@host\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n if (!open()) {\r\n return error(`@host missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@host missing '}'`);\r\n }\r\n return pos({\r\n type: 'host',\r\n rules: style,\r\n });\r\n }\r\n function atmedia() {\r\n const pos = position();\r\n const m = match(/^@media *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const media = trim(m[1]);\r\n if (!open()) {\r\n return error(`@media missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@media missing '}'`);\r\n }\r\n return pos({\r\n type: 'media',\r\n media,\r\n rules: style,\r\n });\r\n }\r\n function atcustommedia() {\r\n const pos = position();\r\n const m = match(/^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/);\r\n if (!m) {\r\n return;\r\n }\r\n return pos({\r\n type: 'custom-media',\r\n name: trim(m[1]),\r\n media: trim(m[2]),\r\n });\r\n }\r\n function atpage() {\r\n const pos = position();\r\n const m = match(/^@page */);\r\n if (!m) {\r\n return;\r\n }\r\n const sel = selector() || [];\r\n if (!open()) {\r\n return error(`@page missing '{'`);\r\n }\r\n let decls = comments();\r\n let decl;\r\n while ((decl = declaration())) {\r\n decls.push(decl);\r\n decls = decls.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@page missing '}'`);\r\n }\r\n return pos({\r\n type: 'page',\r\n selectors: sel,\r\n declarations: decls,\r\n });\r\n }\r\n function atdocument() {\r\n const pos = position();\r\n const m = match(/^@([-\\w]+)?document *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const vendor = trim(m[1]);\r\n const doc = trim(m[2]);\r\n if (!open()) {\r\n return error(`@document missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@document missing '}'`);\r\n }\r\n return pos({\r\n type: 'document',\r\n document: doc,\r\n vendor,\r\n rules: style,\r\n });\r\n }\r\n function atfontface() {\r\n const pos = position();\r\n const m = match(/^@font-face\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n if (!open()) {\r\n return error(`@font-face missing '{'`);\r\n }\r\n let decls = comments();\r\n let decl;\r\n while ((decl = declaration())) {\r\n decls.push(decl);\r\n decls = decls.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@font-face missing '}'`);\r\n }\r\n return pos({\r\n type: 'font-face',\r\n declarations: decls,\r\n });\r\n }\r\n const atimport = _compileAtrule('import');\r\n const atcharset = _compileAtrule('charset');\r\n const atnamespace = _compileAtrule('namespace');\r\n function _compileAtrule(name) {\r\n const re = new RegExp('^@' + name + '\\\\s*([^;]+);');\r\n return () => {\r\n const pos = position();\r\n const m = match(re);\r\n if (!m) {\r\n return;\r\n }\r\n const ret = { type: name };\r\n ret[name] = m[1].trim();\r\n return pos(ret);\r\n };\r\n }\r\n function atrule() {\r\n if (css[0] !== '@') {\r\n return;\r\n }\r\n return (atkeyframes() ||\r\n atmedia() ||\r\n atcustommedia() ||\r\n atsupports() ||\r\n atimport() ||\r\n atcharset() ||\r\n atnamespace() ||\r\n atdocument() ||\r\n atpage() ||\r\n athost() ||\r\n atfontface());\r\n }\r\n function rule() {\r\n const pos = position();\r\n const sel = selector();\r\n if (!sel) {\r\n return error('selector missing');\r\n }\r\n comments();\r\n return pos({\r\n type: 'rule',\r\n selectors: sel,\r\n declarations: declarations(),\r\n });\r\n }\r\n return addParent(stylesheet());\r\n}\r\nfunction trim(str) {\r\n return str ? str.replace(/^\\s+|\\s+$/g, '') : '';\r\n}\r\nfunction addParent(obj, parent) {\r\n const isNode = obj && typeof obj.type === 'string';\r\n const childParent = isNode ? obj : parent;\r\n for (const k of Object.keys(obj)) {\r\n const value = obj[k];\r\n if (Array.isArray(value)) {\r\n value.forEach((v) => {\r\n addParent(v, childParent);\r\n });\r\n }\r\n else if (value && typeof value === 'object') {\r\n addParent(value, childParent);\r\n }\r\n }\r\n if (isNode) {\r\n Object.defineProperty(obj, 'parent', {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: parent || null,\r\n });\r\n }\r\n return obj;\r\n}\n\nconst tagMap = {\r\n script: 'noscript',\r\n altglyph: 'altGlyph',\r\n altglyphdef: 'altGlyphDef',\r\n altglyphitem: 'altGlyphItem',\r\n animatecolor: 'animateColor',\r\n animatemotion: 'animateMotion',\r\n animatetransform: 'animateTransform',\r\n clippath: 'clipPath',\r\n feblend: 'feBlend',\r\n fecolormatrix: 'feColorMatrix',\r\n fecomponenttransfer: 'feComponentTransfer',\r\n fecomposite: 'feComposite',\r\n feconvolvematrix: 'feConvolveMatrix',\r\n fediffuselighting: 'feDiffuseLighting',\r\n fedisplacementmap: 'feDisplacementMap',\r\n fedistantlight: 'feDistantLight',\r\n fedropshadow: 'feDropShadow',\r\n feflood: 'feFlood',\r\n fefunca: 'feFuncA',\r\n fefuncb: 'feFuncB',\r\n fefuncg: 'feFuncG',\r\n fefuncr: 'feFuncR',\r\n fegaussianblur: 'feGaussianBlur',\r\n feimage: 'feImage',\r\n femerge: 'feMerge',\r\n femergenode: 'feMergeNode',\r\n femorphology: 'feMorphology',\r\n feoffset: 'feOffset',\r\n fepointlight: 'fePointLight',\r\n fespecularlighting: 'feSpecularLighting',\r\n fespotlight: 'feSpotLight',\r\n fetile: 'feTile',\r\n feturbulence: 'feTurbulence',\r\n foreignobject: 'foreignObject',\r\n glyphref: 'glyphRef',\r\n lineargradient: 'linearGradient',\r\n radialgradient: 'radialGradient',\r\n};\r\nfunction getTagName(n) {\r\n let tagName = tagMap[n.tagName] ? tagMap[n.tagName] : n.tagName;\r\n if (tagName === 'link' && n.attributes._cssText) {\r\n tagName = 'style';\r\n }\r\n return tagName;\r\n}\r\nfunction escapeRegExp(str) {\r\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n}\r\nconst HOVER_SELECTOR = /([^\\\\]):hover/;\r\nconst HOVER_SELECTOR_GLOBAL = new RegExp(HOVER_SELECTOR.source, 'g');\r\nfunction addHoverClass(cssText, cache) {\r\n const cachedStyle = cache?.stylesWithHoverClass.get(cssText);\r\n if (cachedStyle)\r\n return cachedStyle;\r\n if (cssText.length >= 1000000) {\r\n return cssText;\r\n }\r\n const ast = parse(cssText, {\r\n silent: true,\r\n });\r\n if (!ast.stylesheet) {\r\n return cssText;\r\n }\r\n const selectors = [];\r\n ast.stylesheet.rules.forEach((rule) => {\r\n if ('selectors' in rule) {\r\n (rule.selectors || []).forEach((selector) => {\r\n if (HOVER_SELECTOR.test(selector)) {\r\n selectors.push(selector);\r\n }\r\n });\r\n }\r\n });\r\n if (selectors.length === 0) {\r\n return cssText;\r\n }\r\n const selectorMatcher = new RegExp(selectors\r\n .filter((selector, index) => selectors.indexOf(selector) === index)\r\n .sort((a, b) => b.length - a.length)\r\n .map((selector) => {\r\n return escapeRegExp(selector);\r\n })\r\n .join('|'), 'g');\r\n const result = cssText.replace(selectorMatcher, (selector) => {\r\n const newSelector = selector.replace(HOVER_SELECTOR_GLOBAL, '$1.\\\\:hover');\r\n return `${selector}, ${newSelector}`;\r\n });\r\n cache?.stylesWithHoverClass.set(cssText, result);\r\n return result;\r\n}\r\nfunction createCache() {\r\n const stylesWithHoverClass = new Map();\r\n return {\r\n stylesWithHoverClass,\r\n };\r\n}\r\nfunction buildNode(n, options) {\r\n const { doc, hackCss, cache } = options;\r\n switch (n.type) {\r\n case NodeType.Document:\r\n return doc.implementation.createDocument(null, '', null);\r\n case NodeType.DocumentType:\r\n return doc.implementation.createDocumentType(n.name || 'html', n.publicId, n.systemId);\r\n case NodeType.Element: {\r\n const tagName = getTagName(n);\r\n let node;\r\n if (n.isSVG) {\r\n node = doc.createElementNS('http://www.w3.org/2000/svg', tagName);\r\n }\r\n else {\r\n if (n.isCustom &&\r\n doc.defaultView?.customElements &&\r\n !doc.defaultView.customElements.get(n.tagName))\r\n doc.defaultView.customElements.define(n.tagName, class extends doc.defaultView.HTMLElement {\r\n });\r\n node = doc.createElement(tagName);\r\n }\r\n const specialAttributes = {};\r\n for (const name in n.attributes) {\r\n if (!Object.prototype.hasOwnProperty.call(n.attributes, name)) {\r\n continue;\r\n }\r\n let value = n.attributes[name];\r\n if (tagName === 'option' &&\r\n name === 'selected' &&\r\n value === false) {\r\n continue;\r\n }\r\n if (value === null) {\r\n continue;\r\n }\r\n if (value === true)\r\n value = '';\r\n if (name.startsWith('rr_')) {\r\n specialAttributes[name] = value;\r\n continue;\r\n }\r\n const isTextarea = tagName === 'textarea' && name === 'value';\r\n const isRemoteOrDynamicCss = tagName === 'style' && name === '_cssText';\r\n if (isRemoteOrDynamicCss && hackCss && typeof value === 'string') {\r\n value = addHoverClass(value, cache);\r\n }\r\n if ((isTextarea || isRemoteOrDynamicCss) && typeof value === 'string') {\r\n const child = doc.createTextNode(value);\r\n for (const c of Array.from(node.childNodes)) {\r\n if (c.nodeType === node.TEXT_NODE) {\r\n node.removeChild(c);\r\n }\r\n }\r\n node.appendChild(child);\r\n continue;\r\n }\r\n try {\r\n if (n.isSVG && name === 'xlink:href') {\r\n node.setAttributeNS('http://www.w3.org/1999/xlink', name, value.toString());\r\n }\r\n else if (name === 'onload' ||\r\n name === 'onclick' ||\r\n name.substring(0, 7) === 'onmouse') {\r\n node.setAttribute('_' + name, value.toString());\r\n }\r\n else if (tagName === 'meta' &&\r\n n.attributes['http-equiv'] === 'Content-Security-Policy' &&\r\n name === 'content') {\r\n node.setAttribute('csp-content', value.toString());\r\n continue;\r\n }\r\n else if (tagName === 'link' &&\r\n (n.attributes.rel === 'preload' ||\r\n n.attributes.rel === 'modulepreload') &&\r\n n.attributes.as === 'script') {\r\n }\r\n else if (tagName === 'link' &&\r\n n.attributes.rel === 'prefetch' &&\r\n typeof n.attributes.href === 'string' &&\r\n n.attributes.href.endsWith('.js')) {\r\n }\r\n else if (tagName === 'img' &&\r\n n.attributes.srcset &&\r\n n.attributes.rr_dataURL) {\r\n node.setAttribute('rrweb-original-srcset', n.attributes.srcset);\r\n }\r\n else {\r\n node.setAttribute(name, value.toString());\r\n }\r\n }\r\n catch (error) {\r\n }\r\n }\r\n for (const name in specialAttributes) {\r\n const value = specialAttributes[name];\r\n if (tagName === 'canvas' && name === 'rr_dataURL') {\r\n const image = document.createElement('img');\r\n image.onload = () => {\r\n const ctx = node.getContext('2d');\r\n if (ctx) {\r\n ctx.drawImage(image, 0, 0, image.width, image.height);\r\n }\r\n };\r\n image.src = value.toString();\r\n if (node.RRNodeType)\r\n node.rr_dataURL = value.toString();\r\n }\r\n else if (tagName === 'img' && name === 'rr_dataURL') {\r\n const image = node;\r\n if (!image.currentSrc.startsWith('data:')) {\r\n image.setAttribute('rrweb-original-src', n.attributes.src);\r\n image.src = value.toString();\r\n }\r\n }\r\n if (name === 'rr_width') {\r\n node.style.setProperty('width', value.toString());\r\n }\r\n else if (name === 'rr_height') {\r\n node.style.setProperty('height', value.toString());\r\n }\r\n else if (name === 'rr_mediaCurrentTime' &&\r\n typeof value === 'number') {\r\n node.currentTime = value;\r\n }\r\n else if (name === 'rr_mediaState') {\r\n switch (value) {\r\n case 'played':\r\n node\r\n .play()\r\n .catch((e) => console.warn('media playback error', e));\r\n break;\r\n case 'paused':\r\n node.pause();\r\n break;\r\n }\r\n }\r\n }\r\n if (n.isShadowHost) {\r\n if (!node.shadowRoot) {\r\n node.attachShadow({ mode: 'open' });\r\n }\r\n else {\r\n while (node.shadowRoot.firstChild) {\r\n node.shadowRoot.removeChild(node.shadowRoot.firstChild);\r\n }\r\n }\r\n }\r\n return node;\r\n }\r\n case NodeType.Text:\r\n return doc.createTextNode(n.isStyle && hackCss\r\n ? addHoverClass(n.textContent, cache)\r\n : n.textContent);\r\n case NodeType.CDATA:\r\n return doc.createCDATASection(n.textContent);\r\n case NodeType.Comment:\r\n return doc.createComment(n.textContent);\r\n default:\r\n return null;\r\n }\r\n}\r\nfunction buildNodeWithSN(n, options) {\r\n const { doc, mirror, skipChild = false, hackCss = true, afterAppend, cache, } = options;\r\n if (mirror.has(n.id)) {\r\n const nodeInMirror = mirror.getNode(n.id);\r\n const meta = mirror.getMeta(nodeInMirror);\r\n if (isNodeMetaEqual(meta, n))\r\n return mirror.getNode(n.id);\r\n }\r\n let node = buildNode(n, { doc, hackCss, cache });\r\n if (!node) {\r\n return null;\r\n }\r\n if (n.rootId && mirror.getNode(n.rootId) !== doc) {\r\n mirror.replace(n.rootId, doc);\r\n }\r\n if (n.type === NodeType.Document) {\r\n doc.close();\r\n doc.open();\r\n if (n.compatMode === 'BackCompat' &&\r\n n.childNodes &&\r\n n.childNodes[0].type !== NodeType.DocumentType) {\r\n if (n.childNodes[0].type === NodeType.Element &&\r\n 'xmlns' in n.childNodes[0].attributes &&\r\n n.childNodes[0].attributes.xmlns === 'http://www.w3.org/1999/xhtml') {\r\n doc.write('');\r\n }\r\n else {\r\n doc.write('');\r\n }\r\n }\r\n node = doc;\r\n }\r\n mirror.add(node, n);\r\n if ((n.type === NodeType.Document || n.type === NodeType.Element) &&\r\n !skipChild) {\r\n for (const childN of n.childNodes) {\r\n const childNode = buildNodeWithSN(childN, {\r\n doc,\r\n mirror,\r\n skipChild: false,\r\n hackCss,\r\n afterAppend,\r\n cache,\r\n });\r\n if (!childNode) {\r\n console.warn('Failed to rebuild', childN);\r\n continue;\r\n }\r\n if (childN.isShadow && isElement(node) && node.shadowRoot) {\r\n node.shadowRoot.appendChild(childNode);\r\n }\r\n else if (n.type === NodeType.Document &&\r\n childN.type == NodeType.Element) {\r\n const htmlElement = childNode;\r\n let body = null;\r\n htmlElement.childNodes.forEach((child) => {\r\n if (child.nodeName === 'BODY')\r\n body = child;\r\n });\r\n if (body) {\r\n htmlElement.removeChild(body);\r\n node.appendChild(childNode);\r\n htmlElement.appendChild(body);\r\n }\r\n else {\r\n node.appendChild(childNode);\r\n }\r\n }\r\n else {\r\n node.appendChild(childNode);\r\n }\r\n if (afterAppend) {\r\n afterAppend(childNode, childN.id);\r\n }\r\n }\r\n }\r\n return node;\r\n}\r\nfunction visit(mirror, onVisit) {\r\n function walk(node) {\r\n onVisit(node);\r\n }\r\n for (const id of mirror.getIds()) {\r\n if (mirror.has(id)) {\r\n walk(mirror.getNode(id));\r\n }\r\n }\r\n}\r\nfunction handleScroll(node, mirror) {\r\n const n = mirror.getMeta(node);\r\n if (n?.type !== NodeType.Element) {\r\n return;\r\n }\r\n const el = node;\r\n for (const name in n.attributes) {\r\n if (!(Object.prototype.hasOwnProperty.call(n.attributes, name) &&\r\n name.startsWith('rr_'))) {\r\n continue;\r\n }\r\n const value = n.attributes[name];\r\n if (name === 'rr_scrollLeft') {\r\n el.scrollLeft = value;\r\n }\r\n if (name === 'rr_scrollTop') {\r\n el.scrollTop = value;\r\n }\r\n }\r\n}\r\nfunction rebuild(n, options) {\r\n const { doc, onVisit, hackCss = true, afterAppend, cache, mirror = new Mirror(), } = options;\r\n const node = buildNodeWithSN(n, {\r\n doc,\r\n mirror,\r\n skipChild: false,\r\n hackCss,\r\n afterAppend,\r\n cache,\r\n });\r\n visit(mirror, (visitedNode) => {\r\n if (onVisit) {\r\n onVisit(visitedNode);\r\n }\r\n handleScroll(visitedNode, mirror);\r\n });\r\n return node;\r\n}\n\nexport { IGNORED_NODE, Mirror, NodeType, addHoverClass, buildNodeWithSN, createCache, createMatchPredicate, createMirror, distanceToMatch, escapeImportStatement, fixSafariColons, genId, getInputType, getInputValue, ignoreAttribute, is2DCanvasBlank, isCSSImportRule, isCSSStyleRule, isElement, isNativeShadowDom, isNodeMetaEqual, isShadowRoot, maskInputValue, needMaskingText, rebuild, serializeNodeWithId, shouldMaskInput, snapshot, stringifyRule, stringifyStylesheet, toLowerCase, toUpperCase, transformAttribute };\n","import { distanceToMatch, IGNORED_NODE, isShadowRoot, createMatchPredicate } from '../../rrweb-snapshot/es/rrweb-snapshot.js';\n\nfunction on(type, fn, target = document) {\r\n const options = { capture: true, passive: true };\r\n target.addEventListener(type, fn, options);\r\n return () => target.removeEventListener(type, fn, options);\r\n}\r\nconst DEPARTED_MIRROR_ACCESS_WARNING = 'Please stop import mirror directly. Instead of that,' +\r\n '\\r\\n' +\r\n 'now you can use replayer.getMirror() to access the mirror instance of a replayer,' +\r\n '\\r\\n' +\r\n 'or you can use record.mirror to access the mirror instance during recording.';\r\nlet _mirror = {\r\n map: {},\r\n getId() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return -1;\r\n },\r\n getNode() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return null;\r\n },\r\n removeNodeFromMap() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n },\r\n has() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return false;\r\n },\r\n reset() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n },\r\n};\r\nif (typeof window !== 'undefined' && window.Proxy && window.Reflect) {\r\n _mirror = new Proxy(_mirror, {\r\n get(target, prop, receiver) {\r\n if (prop === 'map') {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n }\r\n return Reflect.get(target, prop, receiver);\r\n },\r\n });\r\n}\r\nfunction throttle(func, wait, options = {}) {\r\n let timeout = null;\r\n let previous = 0;\r\n return function (...args) {\r\n const now = Date.now();\r\n if (!previous && options.leading === false) {\r\n previous = now;\r\n }\r\n const remaining = wait - (now - previous);\r\n const context = this;\r\n if (remaining <= 0 || remaining > wait) {\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n timeout = null;\r\n }\r\n previous = now;\r\n func.apply(context, args);\r\n }\r\n else if (!timeout && options.trailing !== false) {\r\n timeout = setTimeout(() => {\r\n previous = options.leading === false ? 0 : Date.now();\r\n timeout = null;\r\n func.apply(context, args);\r\n }, remaining);\r\n }\r\n };\r\n}\r\nfunction hookSetter(target, key, d, isRevoked, win = window) {\r\n const original = win.Object.getOwnPropertyDescriptor(target, key);\r\n win.Object.defineProperty(target, key, isRevoked\r\n ? d\r\n : {\r\n set(value) {\r\n setTimeout(() => {\r\n d.set.call(this, value);\r\n }, 0);\r\n if (original && original.set) {\r\n original.set.call(this, value);\r\n }\r\n },\r\n });\r\n return () => hookSetter(target, key, original || {}, true);\r\n}\r\nfunction patch(source, name, replacement) {\r\n try {\r\n if (!(name in source)) {\r\n return () => {\r\n };\r\n }\r\n const original = source[name];\r\n const wrapped = replacement(original);\r\n if (typeof wrapped === 'function') {\r\n wrapped.prototype = wrapped.prototype || {};\r\n Object.defineProperties(wrapped, {\r\n __rrweb_original__: {\r\n enumerable: false,\r\n value: original,\r\n },\r\n });\r\n }\r\n source[name] = wrapped;\r\n return () => {\r\n source[name] = original;\r\n };\r\n }\r\n catch {\r\n return () => {\r\n };\r\n }\r\n}\r\nlet nowTimestamp = Date.now;\r\nif (!(/[1-9][0-9]{12}/.test(Date.now().toString()))) {\r\n nowTimestamp = () => new Date().getTime();\r\n}\r\nfunction getWindowScroll(win) {\r\n const doc = win.document;\r\n return {\r\n left: doc.scrollingElement\r\n ? doc.scrollingElement.scrollLeft\r\n : win.pageXOffset !== undefined\r\n ? win.pageXOffset\r\n : doc?.documentElement.scrollLeft ||\r\n doc?.body?.parentElement?.scrollLeft ||\r\n doc?.body?.scrollLeft ||\r\n 0,\r\n top: doc.scrollingElement\r\n ? doc.scrollingElement.scrollTop\r\n : win.pageYOffset !== undefined\r\n ? win.pageYOffset\r\n : doc?.documentElement.scrollTop ||\r\n doc?.body?.parentElement?.scrollTop ||\r\n doc?.body?.scrollTop ||\r\n 0,\r\n };\r\n}\r\nfunction getWindowHeight() {\r\n return (window.innerHeight ||\r\n (document.documentElement && document.documentElement.clientHeight) ||\r\n (document.body && document.body.clientHeight));\r\n}\r\nfunction getWindowWidth() {\r\n return (window.innerWidth ||\r\n (document.documentElement && document.documentElement.clientWidth) ||\r\n (document.body && document.body.clientWidth));\r\n}\r\nfunction closestElementOfNode(node) {\r\n if (!node) {\r\n return null;\r\n }\r\n const el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n return el;\r\n}\r\nfunction isBlocked(node, blockClass, blockSelector, unblockSelector, checkAncestors) {\r\n if (!node) {\r\n return false;\r\n }\r\n const el = closestElementOfNode(node);\r\n if (!el) {\r\n return false;\r\n }\r\n const blockedPredicate = createMatchPredicate(blockClass, blockSelector);\r\n if (!checkAncestors) {\r\n const isUnblocked = unblockSelector && el.matches(unblockSelector);\r\n return blockedPredicate(el) && !isUnblocked;\r\n }\r\n const blockDistance = distanceToMatch(el, blockedPredicate);\r\n let unblockDistance = -1;\r\n if (blockDistance < 0) {\r\n return false;\r\n }\r\n if (unblockSelector) {\r\n unblockDistance = distanceToMatch(el, createMatchPredicate(null, unblockSelector));\r\n }\r\n if (blockDistance > -1 && unblockDistance < 0) {\r\n return true;\r\n }\r\n return blockDistance < unblockDistance;\r\n}\r\nfunction isSerialized(n, mirror) {\r\n return mirror.getId(n) !== -1;\r\n}\r\nfunction isIgnored(n, mirror) {\r\n return mirror.getId(n) === IGNORED_NODE;\r\n}\r\nfunction isAncestorRemoved(target, mirror) {\r\n if (isShadowRoot(target)) {\r\n return false;\r\n }\r\n const id = mirror.getId(target);\r\n if (!mirror.has(id)) {\r\n return true;\r\n }\r\n if (target.parentNode &&\r\n target.parentNode.nodeType === target.DOCUMENT_NODE) {\r\n return false;\r\n }\r\n if (!target.parentNode) {\r\n return true;\r\n }\r\n return isAncestorRemoved(target.parentNode, mirror);\r\n}\r\nfunction legacy_isTouchEvent(event) {\r\n return Boolean(event.changedTouches);\r\n}\r\nfunction polyfill(win = window) {\r\n if ('NodeList' in win && !win.NodeList.prototype.forEach) {\r\n win.NodeList.prototype.forEach = Array.prototype\r\n .forEach;\r\n }\r\n if ('DOMTokenList' in win && !win.DOMTokenList.prototype.forEach) {\r\n win.DOMTokenList.prototype.forEach = Array.prototype\r\n .forEach;\r\n }\r\n if (!Node.prototype.contains) {\r\n Node.prototype.contains = (...args) => {\r\n let node = args[0];\r\n if (!(0 in args)) {\r\n throw new TypeError('1 argument is required');\r\n }\r\n do {\r\n if (this === node) {\r\n return true;\r\n }\r\n } while ((node = node && node.parentNode));\r\n return false;\r\n };\r\n }\r\n}\r\nfunction queueToResolveTrees(queue) {\r\n const queueNodeMap = {};\r\n const putIntoMap = (m, parent) => {\r\n const nodeInTree = {\r\n value: m,\r\n parent,\r\n children: [],\r\n };\r\n queueNodeMap[m.node.id] = nodeInTree;\r\n return nodeInTree;\r\n };\r\n const queueNodeTrees = [];\r\n for (const mutation of queue) {\r\n const { nextId, parentId } = mutation;\r\n if (nextId && nextId in queueNodeMap) {\r\n const nextInTree = queueNodeMap[nextId];\r\n if (nextInTree.parent) {\r\n const idx = nextInTree.parent.children.indexOf(nextInTree);\r\n nextInTree.parent.children.splice(idx, 0, putIntoMap(mutation, nextInTree.parent));\r\n }\r\n else {\r\n const idx = queueNodeTrees.indexOf(nextInTree);\r\n queueNodeTrees.splice(idx, 0, putIntoMap(mutation, null));\r\n }\r\n continue;\r\n }\r\n if (parentId in queueNodeMap) {\r\n const parentInTree = queueNodeMap[parentId];\r\n parentInTree.children.push(putIntoMap(mutation, parentInTree));\r\n continue;\r\n }\r\n queueNodeTrees.push(putIntoMap(mutation, null));\r\n }\r\n return queueNodeTrees;\r\n}\r\nfunction iterateResolveTree(tree, cb) {\r\n cb(tree.value);\r\n for (let i = tree.children.length - 1; i >= 0; i--) {\r\n iterateResolveTree(tree.children[i], cb);\r\n }\r\n}\r\nfunction isSerializedIframe(n, mirror) {\r\n return Boolean(n.nodeName === 'IFRAME' && mirror.getMeta(n));\r\n}\r\nfunction isSerializedStylesheet(n, mirror) {\r\n return Boolean(n.nodeName === 'LINK' &&\r\n n.nodeType === n.ELEMENT_NODE &&\r\n n.getAttribute &&\r\n n.getAttribute('rel') === 'stylesheet' &&\r\n mirror.getMeta(n));\r\n}\r\nfunction getBaseDimension(node, rootIframe) {\r\n const frameElement = node.ownerDocument?.defaultView?.frameElement;\r\n if (!frameElement || frameElement === rootIframe) {\r\n return {\r\n x: 0,\r\n y: 0,\r\n relativeScale: 1,\r\n absoluteScale: 1,\r\n };\r\n }\r\n const frameDimension = frameElement.getBoundingClientRect();\r\n const frameBaseDimension = getBaseDimension(frameElement, rootIframe);\r\n const relativeScale = frameDimension.height / frameElement.clientHeight;\r\n return {\r\n x: frameDimension.x * frameBaseDimension.relativeScale +\r\n frameBaseDimension.x,\r\n y: frameDimension.y * frameBaseDimension.relativeScale +\r\n frameBaseDimension.y,\r\n relativeScale,\r\n absoluteScale: frameBaseDimension.absoluteScale * relativeScale,\r\n };\r\n}\r\nfunction hasShadowRoot(n) {\r\n return Boolean(n?.shadowRoot);\r\n}\r\nfunction getNestedRule(rules, position) {\r\n const rule = rules[position[0]];\r\n if (position.length === 1) {\r\n return rule;\r\n }\r\n else {\r\n return getNestedRule(rule.cssRules[position[1]].cssRules, position.slice(2));\r\n }\r\n}\r\nfunction getPositionsAndIndex(nestedIndex) {\r\n const positions = [...nestedIndex];\r\n const index = positions.pop();\r\n return { positions, index };\r\n}\r\nfunction uniqueTextMutations(mutations) {\r\n const idSet = new Set();\r\n const uniqueMutations = [];\r\n for (let i = mutations.length; i--;) {\r\n const mutation = mutations[i];\r\n if (!idSet.has(mutation.id)) {\r\n uniqueMutations.push(mutation);\r\n idSet.add(mutation.id);\r\n }\r\n }\r\n return uniqueMutations;\r\n}\r\nclass StyleSheetMirror {\r\n constructor() {\r\n this.id = 1;\r\n this.styleIDMap = new WeakMap();\r\n this.idStyleMap = new Map();\r\n }\r\n getId(stylesheet) {\r\n return this.styleIDMap.get(stylesheet) ?? -1;\r\n }\r\n has(stylesheet) {\r\n return this.styleIDMap.has(stylesheet);\r\n }\r\n add(stylesheet, id) {\r\n if (this.has(stylesheet))\r\n return this.getId(stylesheet);\r\n let newId;\r\n if (id === undefined) {\r\n newId = this.id++;\r\n }\r\n else\r\n newId = id;\r\n this.styleIDMap.set(stylesheet, newId);\r\n this.idStyleMap.set(newId, stylesheet);\r\n return newId;\r\n }\r\n getStyle(id) {\r\n return this.idStyleMap.get(id) || null;\r\n }\r\n reset() {\r\n this.styleIDMap = new WeakMap();\r\n this.idStyleMap = new Map();\r\n this.id = 1;\r\n }\r\n generateId() {\r\n return this.id++;\r\n }\r\n}\r\nfunction getShadowHost(n) {\r\n let shadowHost = null;\r\n if (n.getRootNode?.()?.nodeType === Node.DOCUMENT_FRAGMENT_NODE &&\r\n n.getRootNode().host)\r\n shadowHost = n.getRootNode().host;\r\n return shadowHost;\r\n}\r\nfunction getRootShadowHost(n) {\r\n let rootShadowHost = n;\r\n let shadowHost;\r\n while ((shadowHost = getShadowHost(rootShadowHost)))\r\n rootShadowHost = shadowHost;\r\n return rootShadowHost;\r\n}\r\nfunction shadowHostInDom(n) {\r\n const doc = n.ownerDocument;\r\n if (!doc)\r\n return false;\r\n const shadowHost = getRootShadowHost(n);\r\n return doc.contains(shadowHost);\r\n}\r\nfunction inDom(n) {\r\n const doc = n.ownerDocument;\r\n if (!doc)\r\n return false;\r\n return doc.contains(n) || shadowHostInDom(n);\r\n}\r\nconst cachedImplementations = {};\r\nfunction getImplementation(name) {\r\n const cached = cachedImplementations[name];\r\n if (cached) {\r\n return cached;\r\n }\r\n const document = window.document;\r\n let impl = window[name];\r\n if (document && typeof document.createElement === 'function') {\r\n try {\r\n const sandbox = document.createElement('iframe');\r\n sandbox.hidden = true;\r\n document.head.appendChild(sandbox);\r\n const contentWindow = sandbox.contentWindow;\r\n if (contentWindow && contentWindow[name]) {\r\n impl =\r\n contentWindow[name];\r\n }\r\n document.head.removeChild(sandbox);\r\n }\r\n catch (e) {\r\n }\r\n }\r\n return (cachedImplementations[name] = impl.bind(window));\r\n}\r\nfunction onRequestAnimationFrame(...rest) {\r\n return getImplementation('requestAnimationFrame')(...rest);\r\n}\r\nfunction setTimeout(...rest) {\r\n return getImplementation('setTimeout')(...rest);\r\n}\r\nfunction clearTimeout(...rest) {\r\n return getImplementation('clearTimeout')(...rest);\r\n}\n\nexport { StyleSheetMirror, _mirror, clearTimeout, closestElementOfNode, getBaseDimension, getNestedRule, getPositionsAndIndex, getRootShadowHost, getShadowHost, getWindowHeight, getWindowScroll, getWindowWidth, hasShadowRoot, hookSetter, inDom, isAncestorRemoved, isBlocked, isIgnored, isSerialized, isSerializedIframe, isSerializedStylesheet, iterateResolveTree, legacy_isTouchEvent, nowTimestamp, on, onRequestAnimationFrame, patch, polyfill, queueToResolveTrees, setTimeout, shadowHostInDom, throttle, uniqueTextMutations };\n","// https://github.com/alangpierce/sucrase/tree/265887868966917f3b924ce38dfad01fbab1329f\n//\n// The MIT License (MIT)\n//\n// Copyright (c) 2012-2018 various contributors (see AUTHORS)\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\n/**\n * Polyfill for the nullish coalescing operator (`??`).\n *\n * Note that the RHS is wrapped in a function so that if it's a computed value, that evaluation won't happen unless the\n * LHS evaluates to a nullish value, to mimic the operator's short-circuiting behavior.\n *\n * Adapted from Sucrase (https://github.com/alangpierce/sucrase)\n *\n * @param lhs The value of the expression to the left of the `??`\n * @param rhsFn A function returning the value of the expression to the right of the `??`\n * @returns The LHS value, unless it's `null` or `undefined`, in which case, the RHS value\n */\nexport function _nullishCoalesce(lhs: unknown, rhsFn: () => unknown): unknown {\n // by checking for loose equality to `null`, we catch both `null` and `undefined`\n return lhs != null ? lhs : rhsFn();\n}\n\n// Sucrase version:\n// function _nullishCoalesce(lhs, rhsFn) {\n// if (lhs != null) {\n// return lhs;\n// } else {\n// return rhsFn();\n// }\n// }\n","var EventType = /* @__PURE__ */ ((EventType2) => {\n EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n return EventType2;\n})(EventType || {});\nvar IncrementalSource = /* @__PURE__ */ ((IncrementalSource2) => {\n IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n return IncrementalSource2;\n})(IncrementalSource || {});\nvar MouseInteractions = /* @__PURE__ */ ((MouseInteractions2) => {\n MouseInteractions2[MouseInteractions2[\"MouseUp\"] = 0] = \"MouseUp\";\n MouseInteractions2[MouseInteractions2[\"MouseDown\"] = 1] = \"MouseDown\";\n MouseInteractions2[MouseInteractions2[\"Click\"] = 2] = \"Click\";\n MouseInteractions2[MouseInteractions2[\"ContextMenu\"] = 3] = \"ContextMenu\";\n MouseInteractions2[MouseInteractions2[\"DblClick\"] = 4] = \"DblClick\";\n MouseInteractions2[MouseInteractions2[\"Focus\"] = 5] = \"Focus\";\n MouseInteractions2[MouseInteractions2[\"Blur\"] = 6] = \"Blur\";\n MouseInteractions2[MouseInteractions2[\"TouchStart\"] = 7] = \"TouchStart\";\n MouseInteractions2[MouseInteractions2[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n MouseInteractions2[MouseInteractions2[\"TouchEnd\"] = 9] = \"TouchEnd\";\n MouseInteractions2[MouseInteractions2[\"TouchCancel\"] = 10] = \"TouchCancel\";\n return MouseInteractions2;\n})(MouseInteractions || {});\nvar PointerTypes = /* @__PURE__ */ ((PointerTypes2) => {\n PointerTypes2[PointerTypes2[\"Mouse\"] = 0] = \"Mouse\";\n PointerTypes2[PointerTypes2[\"Pen\"] = 1] = \"Pen\";\n PointerTypes2[PointerTypes2[\"Touch\"] = 2] = \"Touch\";\n return PointerTypes2;\n})(PointerTypes || {});\nvar CanvasContext = /* @__PURE__ */ ((CanvasContext2) => {\n CanvasContext2[CanvasContext2[\"2D\"] = 0] = \"2D\";\n CanvasContext2[CanvasContext2[\"WebGL\"] = 1] = \"WebGL\";\n CanvasContext2[CanvasContext2[\"WebGL2\"] = 2] = \"WebGL2\";\n return CanvasContext2;\n})(CanvasContext || {});\nvar ReplayerEvents = /* @__PURE__ */ ((ReplayerEvents2) => {\n ReplayerEvents2[\"Start\"] = \"start\";\n ReplayerEvents2[\"Pause\"] = \"pause\";\n ReplayerEvents2[\"Resume\"] = \"resume\";\n ReplayerEvents2[\"Resize\"] = \"resize\";\n ReplayerEvents2[\"Finish\"] = \"finish\";\n ReplayerEvents2[\"FullsnapshotRebuilded\"] = \"fullsnapshot-rebuilded\";\n ReplayerEvents2[\"LoadStylesheetStart\"] = \"load-stylesheet-start\";\n ReplayerEvents2[\"LoadStylesheetEnd\"] = \"load-stylesheet-end\";\n ReplayerEvents2[\"SkipStart\"] = \"skip-start\";\n ReplayerEvents2[\"SkipEnd\"] = \"skip-end\";\n ReplayerEvents2[\"MouseInteraction\"] = \"mouse-interaction\";\n ReplayerEvents2[\"EventCast\"] = \"event-cast\";\n ReplayerEvents2[\"CustomEvent\"] = \"custom-event\";\n ReplayerEvents2[\"Flush\"] = \"flush\";\n ReplayerEvents2[\"StateChange\"] = \"state-change\";\n ReplayerEvents2[\"PlayBack\"] = \"play-back\";\n ReplayerEvents2[\"Destroy\"] = \"destroy\";\n return ReplayerEvents2;\n})(ReplayerEvents || {});\n\nexport { CanvasContext, EventType, IncrementalSource, MouseInteractions, PointerTypes, ReplayerEvents };\n","import { isShadowRoot, isNativeShadowDom, getInputType, getInputValue, shouldMaskInput, needMaskingText, maskInputValue, ignoreAttribute, transformAttribute, toLowerCase, IGNORED_NODE, serializeNodeWithId } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { isIgnored, isBlocked, isSerialized, isAncestorRemoved, closestElementOfNode, hasShadowRoot, inDom, getShadowHost, isSerializedIframe, isSerializedStylesheet } from '../utils.js';\n\nfunction isNodeInLinkedList(n) {\r\n return '__ln' in n;\r\n}\r\nclass DoubleLinkedList {\r\n constructor() {\r\n this.length = 0;\r\n this.head = null;\r\n this.tail = null;\r\n }\r\n get(position) {\r\n if (position >= this.length) {\r\n throw new Error('Position outside of list range');\r\n }\r\n let current = this.head;\r\n for (let index = 0; index < position; index++) {\r\n current = current?.next || null;\r\n }\r\n return current;\r\n }\r\n addNode(n) {\r\n const node = {\r\n value: n,\r\n previous: null,\r\n next: null,\r\n };\r\n n.__ln = node;\r\n if (n.previousSibling && isNodeInLinkedList(n.previousSibling)) {\r\n const current = n.previousSibling.__ln.next;\r\n node.next = current;\r\n node.previous = n.previousSibling.__ln;\r\n n.previousSibling.__ln.next = node;\r\n if (current) {\r\n current.previous = node;\r\n }\r\n }\r\n else if (n.nextSibling &&\r\n isNodeInLinkedList(n.nextSibling) &&\r\n n.nextSibling.__ln.previous) {\r\n const current = n.nextSibling.__ln.previous;\r\n node.previous = current;\r\n node.next = n.nextSibling.__ln;\r\n n.nextSibling.__ln.previous = node;\r\n if (current) {\r\n current.next = node;\r\n }\r\n }\r\n else {\r\n if (this.head) {\r\n this.head.previous = node;\r\n }\r\n node.next = this.head;\r\n this.head = node;\r\n }\r\n if (node.next === null) {\r\n this.tail = node;\r\n }\r\n this.length++;\r\n }\r\n removeNode(n) {\r\n const current = n.__ln;\r\n if (!this.head) {\r\n return;\r\n }\r\n if (!current.previous) {\r\n this.head = current.next;\r\n if (this.head) {\r\n this.head.previous = null;\r\n }\r\n else {\r\n this.tail = null;\r\n }\r\n }\r\n else {\r\n current.previous.next = current.next;\r\n if (current.next) {\r\n current.next.previous = current.previous;\r\n }\r\n else {\r\n this.tail = current.previous;\r\n }\r\n }\r\n if (n.__ln) {\r\n delete n.__ln;\r\n }\r\n this.length--;\r\n }\r\n}\r\nconst moveKey = (id, parentId) => `${id}@${parentId}`;\r\nclass MutationBuffer {\r\n constructor() {\r\n this.frozen = false;\r\n this.locked = false;\r\n this.texts = [];\r\n this.attributes = [];\r\n this.attributeMap = new WeakMap();\r\n this.removes = [];\r\n this.mapRemoves = [];\r\n this.movedMap = {};\r\n this.addedSet = new Set();\r\n this.movedSet = new Set();\r\n this.droppedSet = new Set();\r\n this.processMutations = (mutations) => {\r\n mutations.forEach(this.processMutation);\r\n this.emit();\r\n };\r\n this.emit = () => {\r\n if (this.frozen || this.locked) {\r\n return;\r\n }\r\n const adds = [];\r\n const addedIds = new Set();\r\n const addList = new DoubleLinkedList();\r\n const getNextId = (n) => {\r\n let ns = n;\r\n let nextId = IGNORED_NODE;\r\n while (nextId === IGNORED_NODE) {\r\n ns = ns && ns.nextSibling;\r\n nextId = ns && this.mirror.getId(ns);\r\n }\r\n return nextId;\r\n };\r\n const pushAdd = (n) => {\r\n if (!n.parentNode || !inDom(n)) {\r\n return;\r\n }\r\n const parentId = isShadowRoot(n.parentNode)\r\n ? this.mirror.getId(getShadowHost(n))\r\n : this.mirror.getId(n.parentNode);\r\n const nextId = getNextId(n);\r\n if (parentId === -1 || nextId === -1) {\r\n return addList.addNode(n);\r\n }\r\n const sn = serializeNodeWithId(n, {\r\n doc: this.doc,\r\n mirror: this.mirror,\r\n blockClass: this.blockClass,\r\n blockSelector: this.blockSelector,\r\n maskAllText: this.maskAllText,\r\n unblockSelector: this.unblockSelector,\r\n maskTextClass: this.maskTextClass,\r\n unmaskTextClass: this.unmaskTextClass,\r\n maskTextSelector: this.maskTextSelector,\r\n unmaskTextSelector: this.unmaskTextSelector,\r\n skipChild: true,\r\n newlyAddedElement: true,\r\n inlineStylesheet: this.inlineStylesheet,\r\n maskInputOptions: this.maskInputOptions,\r\n maskAttributeFn: this.maskAttributeFn,\r\n maskTextFn: this.maskTextFn,\r\n maskInputFn: this.maskInputFn,\r\n slimDOMOptions: this.slimDOMOptions,\r\n dataURLOptions: this.dataURLOptions,\r\n recordCanvas: this.recordCanvas,\r\n inlineImages: this.inlineImages,\r\n onSerialize: (currentN) => {\r\n if (isSerializedIframe(currentN, this.mirror)) {\r\n this.iframeManager.addIframe(currentN);\r\n }\r\n if (isSerializedStylesheet(currentN, this.mirror)) {\r\n this.stylesheetManager.trackLinkElement(currentN);\r\n }\r\n if (hasShadowRoot(n)) {\r\n this.shadowDomManager.addShadowRoot(n.shadowRoot, this.doc);\r\n }\r\n },\r\n onIframeLoad: (iframe, childSn) => {\r\n this.iframeManager.attachIframe(iframe, childSn);\r\n this.shadowDomManager.observeAttachShadow(iframe);\r\n },\r\n onStylesheetLoad: (link, childSn) => {\r\n this.stylesheetManager.attachLinkElement(link, childSn);\r\n },\r\n });\r\n if (sn) {\r\n adds.push({\r\n parentId,\r\n nextId,\r\n node: sn,\r\n });\r\n addedIds.add(sn.id);\r\n }\r\n };\r\n while (this.mapRemoves.length) {\r\n this.mirror.removeNodeFromMap(this.mapRemoves.shift());\r\n }\r\n for (const n of this.movedSet) {\r\n if (isParentRemoved(this.removes, n, this.mirror) &&\r\n !this.movedSet.has(n.parentNode)) {\r\n continue;\r\n }\r\n pushAdd(n);\r\n }\r\n for (const n of this.addedSet) {\r\n if (!isAncestorInSet(this.droppedSet, n) &&\r\n !isParentRemoved(this.removes, n, this.mirror)) {\r\n pushAdd(n);\r\n }\r\n else if (isAncestorInSet(this.movedSet, n)) {\r\n pushAdd(n);\r\n }\r\n else {\r\n this.droppedSet.add(n);\r\n }\r\n }\r\n let candidate = null;\r\n while (addList.length) {\r\n let node = null;\r\n if (candidate) {\r\n const parentId = this.mirror.getId(candidate.value.parentNode);\r\n const nextId = getNextId(candidate.value);\r\n if (parentId !== -1 && nextId !== -1) {\r\n node = candidate;\r\n }\r\n }\r\n if (!node) {\r\n let tailNode = addList.tail;\r\n while (tailNode) {\r\n const _node = tailNode;\r\n tailNode = tailNode.previous;\r\n if (_node) {\r\n const parentId = this.mirror.getId(_node.value.parentNode);\r\n const nextId = getNextId(_node.value);\r\n if (nextId === -1)\r\n continue;\r\n else if (parentId !== -1) {\r\n node = _node;\r\n break;\r\n }\r\n else {\r\n const unhandledNode = _node.value;\r\n if (unhandledNode.parentNode &&\r\n unhandledNode.parentNode.nodeType ===\r\n Node.DOCUMENT_FRAGMENT_NODE) {\r\n const shadowHost = unhandledNode.parentNode\r\n .host;\r\n const parentId = this.mirror.getId(shadowHost);\r\n if (parentId !== -1) {\r\n node = _node;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (!node) {\r\n while (addList.head) {\r\n addList.removeNode(addList.head.value);\r\n }\r\n break;\r\n }\r\n candidate = node.previous;\r\n addList.removeNode(node.value);\r\n pushAdd(node.value);\r\n }\r\n const payload = {\r\n texts: this.texts\r\n .map((text) => ({\r\n id: this.mirror.getId(text.node),\r\n value: text.value,\r\n }))\r\n .filter((text) => !addedIds.has(text.id))\r\n .filter((text) => this.mirror.has(text.id)),\r\n attributes: this.attributes\r\n .map((attribute) => {\r\n const { attributes } = attribute;\r\n if (typeof attributes.style === 'string') {\r\n const diffAsStr = JSON.stringify(attribute.styleDiff);\r\n const unchangedAsStr = JSON.stringify(attribute._unchangedStyles);\r\n if (diffAsStr.length < attributes.style.length) {\r\n if ((diffAsStr + unchangedAsStr).split('var(').length ===\r\n attributes.style.split('var(').length) {\r\n attributes.style = attribute.styleDiff;\r\n }\r\n }\r\n }\r\n return {\r\n id: this.mirror.getId(attribute.node),\r\n attributes: attributes,\r\n };\r\n })\r\n .filter((attribute) => !addedIds.has(attribute.id))\r\n .filter((attribute) => this.mirror.has(attribute.id)),\r\n removes: this.removes,\r\n adds,\r\n };\r\n if (!payload.texts.length &&\r\n !payload.attributes.length &&\r\n !payload.removes.length &&\r\n !payload.adds.length) {\r\n return;\r\n }\r\n this.texts = [];\r\n this.attributes = [];\r\n this.attributeMap = new WeakMap();\r\n this.removes = [];\r\n this.addedSet = new Set();\r\n this.movedSet = new Set();\r\n this.droppedSet = new Set();\r\n this.movedMap = {};\r\n this.mutationCb(payload);\r\n };\r\n this.processMutation = (m) => {\r\n if (isIgnored(m.target, this.mirror)) {\r\n return;\r\n }\r\n switch (m.type) {\r\n case 'characterData': {\r\n const value = m.target.textContent;\r\n if (!isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, false) &&\r\n value !== m.oldValue) {\r\n this.texts.push({\r\n value: needMaskingText(m.target, this.maskTextClass, this.maskTextSelector, this.unmaskTextClass, this.unmaskTextSelector, this.maskAllText) && value\r\n ? this.maskTextFn\r\n ? this.maskTextFn(value, closestElementOfNode(m.target))\r\n : value.replace(/[\\S]/g, '*')\r\n : value,\r\n node: m.target,\r\n });\r\n }\r\n break;\r\n }\r\n case 'attributes': {\r\n const target = m.target;\r\n let attributeName = m.attributeName;\r\n let value = m.target.getAttribute(attributeName);\r\n if (attributeName === 'value') {\r\n const type = getInputType(target);\r\n const tagName = target.tagName;\r\n value = getInputValue(target, tagName, type);\r\n const isInputMasked = shouldMaskInput({\r\n maskInputOptions: this.maskInputOptions,\r\n tagName,\r\n type,\r\n });\r\n const forceMask = needMaskingText(m.target, this.maskTextClass, this.maskTextSelector, this.unmaskTextClass, this.unmaskTextSelector, isInputMasked);\r\n value = maskInputValue({\r\n isMasked: forceMask,\r\n element: target,\r\n value,\r\n maskInputFn: this.maskInputFn,\r\n });\r\n }\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, false) ||\r\n value === m.oldValue) {\r\n return;\r\n }\r\n let item = this.attributeMap.get(m.target);\r\n if (target.tagName === 'IFRAME' &&\r\n attributeName === 'src' &&\r\n !this.keepIframeSrcFn(value)) {\r\n if (!target.contentDocument) {\r\n attributeName = 'rr_src';\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n if (!item) {\r\n item = {\r\n node: m.target,\r\n attributes: {},\r\n styleDiff: {},\r\n _unchangedStyles: {},\r\n };\r\n this.attributes.push(item);\r\n this.attributeMap.set(m.target, item);\r\n }\r\n if (attributeName === 'type' &&\r\n target.tagName === 'INPUT' &&\r\n (m.oldValue || '').toLowerCase() === 'password') {\r\n target.setAttribute('data-rr-is-password', 'true');\r\n }\r\n if (!ignoreAttribute(target.tagName, attributeName)) {\r\n item.attributes[attributeName] = transformAttribute(this.doc, toLowerCase(target.tagName), toLowerCase(attributeName), value, target, this.maskAttributeFn);\r\n if (attributeName === 'style') {\r\n if (!this.unattachedDoc) {\r\n try {\r\n this.unattachedDoc =\r\n document.implementation.createHTMLDocument();\r\n }\r\n catch (e) {\r\n this.unattachedDoc = this.doc;\r\n }\r\n }\r\n const old = this.unattachedDoc.createElement('span');\r\n if (m.oldValue) {\r\n old.setAttribute('style', m.oldValue);\r\n }\r\n for (const pname of Array.from(target.style)) {\r\n const newValue = target.style.getPropertyValue(pname);\r\n const newPriority = target.style.getPropertyPriority(pname);\r\n if (newValue !== old.style.getPropertyValue(pname) ||\r\n newPriority !== old.style.getPropertyPriority(pname)) {\r\n if (newPriority === '') {\r\n item.styleDiff[pname] = newValue;\r\n }\r\n else {\r\n item.styleDiff[pname] = [newValue, newPriority];\r\n }\r\n }\r\n else {\r\n item._unchangedStyles[pname] = [newValue, newPriority];\r\n }\r\n }\r\n for (const pname of Array.from(old.style)) {\r\n if (target.style.getPropertyValue(pname) === '') {\r\n item.styleDiff[pname] = false;\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n case 'childList': {\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, true)) {\r\n return;\r\n }\r\n m.addedNodes.forEach((n) => this.genAdds(n, m.target));\r\n m.removedNodes.forEach((n) => {\r\n const nodeId = this.mirror.getId(n);\r\n const parentId = isShadowRoot(m.target)\r\n ? this.mirror.getId(m.target.host)\r\n : this.mirror.getId(m.target);\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, false) ||\r\n isIgnored(n, this.mirror) ||\r\n !isSerialized(n, this.mirror)) {\r\n return;\r\n }\r\n if (this.addedSet.has(n)) {\r\n deepDelete(this.addedSet, n);\r\n this.droppedSet.add(n);\r\n }\r\n else if (this.addedSet.has(m.target) && nodeId === -1) ;\r\n else if (isAncestorRemoved(m.target, this.mirror)) ;\r\n else if (this.movedSet.has(n) &&\r\n this.movedMap[moveKey(nodeId, parentId)]) {\r\n deepDelete(this.movedSet, n);\r\n }\r\n else {\r\n this.removes.push({\r\n parentId,\r\n id: nodeId,\r\n isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target)\r\n ? true\r\n : undefined,\r\n });\r\n }\r\n this.mapRemoves.push(n);\r\n });\r\n break;\r\n }\r\n }\r\n };\r\n this.genAdds = (n, target) => {\r\n if (this.processedNodeManager.inOtherBuffer(n, this))\r\n return;\r\n if (this.addedSet.has(n) || this.movedSet.has(n))\r\n return;\r\n if (this.mirror.hasNode(n)) {\r\n if (isIgnored(n, this.mirror)) {\r\n return;\r\n }\r\n this.movedSet.add(n);\r\n let targetId = null;\r\n if (target && this.mirror.hasNode(target)) {\r\n targetId = this.mirror.getId(target);\r\n }\r\n if (targetId && targetId !== -1) {\r\n this.movedMap[moveKey(this.mirror.getId(n), targetId)] = true;\r\n }\r\n }\r\n else {\r\n this.addedSet.add(n);\r\n this.droppedSet.delete(n);\r\n }\r\n if (!isBlocked(n, this.blockClass, this.blockSelector, this.unblockSelector, false)) {\r\n n.childNodes.forEach((childN) => this.genAdds(childN));\r\n if (hasShadowRoot(n)) {\r\n n.shadowRoot.childNodes.forEach((childN) => {\r\n this.processedNodeManager.add(childN, this);\r\n this.genAdds(childN, n);\r\n });\r\n }\r\n }\r\n };\r\n }\r\n init(options) {\r\n [\r\n 'mutationCb',\r\n 'blockClass',\r\n 'blockSelector',\r\n 'unblockSelector',\r\n 'maskAllText',\r\n 'maskTextClass',\r\n 'unmaskTextClass',\r\n 'maskTextSelector',\r\n 'unmaskTextSelector',\r\n 'inlineStylesheet',\r\n 'maskInputOptions',\r\n 'maskAttributeFn',\r\n 'maskTextFn',\r\n 'maskInputFn',\r\n 'keepIframeSrcFn',\r\n 'recordCanvas',\r\n 'inlineImages',\r\n 'slimDOMOptions',\r\n 'dataURLOptions',\r\n 'doc',\r\n 'mirror',\r\n 'iframeManager',\r\n 'stylesheetManager',\r\n 'shadowDomManager',\r\n 'canvasManager',\r\n 'processedNodeManager',\r\n ].forEach((key) => {\r\n this[key] = options[key];\r\n });\r\n }\r\n freeze() {\r\n this.frozen = true;\r\n this.canvasManager.freeze();\r\n }\r\n unfreeze() {\r\n this.frozen = false;\r\n this.canvasManager.unfreeze();\r\n this.emit();\r\n }\r\n isFrozen() {\r\n return this.frozen;\r\n }\r\n lock() {\r\n this.locked = true;\r\n this.canvasManager.lock();\r\n }\r\n unlock() {\r\n this.locked = false;\r\n this.canvasManager.unlock();\r\n this.emit();\r\n }\r\n reset() {\r\n this.shadowDomManager.reset();\r\n this.canvasManager.reset();\r\n }\r\n}\r\nfunction deepDelete(addsSet, n) {\r\n addsSet.delete(n);\r\n n.childNodes.forEach((childN) => deepDelete(addsSet, childN));\r\n}\r\nfunction isParentRemoved(removes, n, mirror) {\r\n if (removes.length === 0)\r\n return false;\r\n return _isParentRemoved(removes, n, mirror);\r\n}\r\nfunction _isParentRemoved(removes, n, mirror) {\r\n const { parentNode } = n;\r\n if (!parentNode) {\r\n return false;\r\n }\r\n const parentId = mirror.getId(parentNode);\r\n if (removes.some((r) => r.id === parentId)) {\r\n return true;\r\n }\r\n return _isParentRemoved(removes, parentNode, mirror);\r\n}\r\nfunction isAncestorInSet(set, n) {\r\n if (set.size === 0)\r\n return false;\r\n return _isAncestorInSet(set, n);\r\n}\r\nfunction _isAncestorInSet(set, n) {\r\n const { parentNode } = n;\r\n if (!parentNode) {\r\n return false;\r\n }\r\n if (set.has(parentNode)) {\r\n return true;\r\n }\r\n return _isAncestorInSet(set, parentNode);\r\n}\n\nexport { MutationBuffer as default };\n","let errorHandler;\r\nfunction registerErrorHandler(handler) {\r\n errorHandler = handler;\r\n}\r\nfunction unregisterErrorHandler() {\r\n errorHandler = undefined;\r\n}\r\nconst callbackWrapper = (cb) => {\r\n if (!errorHandler) {\r\n return cb;\r\n }\r\n const rrwebWrapped = ((...rest) => {\r\n try {\r\n return cb(...rest);\r\n }\r\n catch (error) {\r\n if (errorHandler && errorHandler(error) === true) {\r\n return () => {\r\n };\r\n }\r\n throw error;\r\n }\r\n });\r\n return rrwebWrapped;\r\n};\n\nexport { callbackWrapper, registerErrorHandler, unregisterErrorHandler };\n","import { toLowerCase, toUpperCase, getInputType, getInputValue, shouldMaskInput, needMaskingText, maskInputValue } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { on, throttle, isBlocked, getWindowScroll, hookSetter, patch, setTimeout, legacy_isTouchEvent, nowTimestamp, getWindowHeight, getWindowWidth } from '../utils.js';\nimport { MouseInteractions, IncrementalSource, PointerTypes } from '../../../types/dist/rrweb-types.js';\nimport MutationBuffer from './mutation.js';\nimport { callbackWrapper } from './error-handler.js';\n\nconst mutationBuffers = [];\r\nfunction getEventTarget(event) {\r\n try {\r\n if ('composedPath' in event) {\r\n const path = event.composedPath();\r\n if (path.length) {\r\n return path[0];\r\n }\r\n }\r\n else if ('path' in event && event.path.length) {\r\n return event.path[0];\r\n }\r\n }\r\n catch {\r\n }\r\n return event && event.target;\r\n}\r\nfunction initMutationObserver(options, rootEl) {\r\n const mutationBuffer = new MutationBuffer();\r\n mutationBuffers.push(mutationBuffer);\r\n mutationBuffer.init(options);\r\n let mutationObserverCtor = window.MutationObserver ||\r\n window.__rrMutationObserver;\r\n const angularZoneSymbol = window?.Zone?.__symbol__?.('MutationObserver');\r\n if (angularZoneSymbol &&\r\n window[angularZoneSymbol]) {\r\n mutationObserverCtor = window[angularZoneSymbol];\r\n }\r\n const observer = new mutationObserverCtor(callbackWrapper((mutations) => {\r\n if (options.onMutation && options.onMutation(mutations) === false) {\r\n return;\r\n }\r\n mutationBuffer.processMutations.bind(mutationBuffer)(mutations);\r\n }));\r\n observer.observe(rootEl, {\r\n attributes: true,\r\n attributeOldValue: true,\r\n characterData: true,\r\n characterDataOldValue: true,\r\n childList: true,\r\n subtree: true,\r\n });\r\n return observer;\r\n}\r\nfunction initMoveObserver({ mousemoveCb, sampling, doc, mirror, }) {\r\n if (sampling.mousemove === false) {\r\n return () => {\r\n };\r\n }\r\n const threshold = typeof sampling.mousemove === 'number' ? sampling.mousemove : 50;\r\n const callbackThreshold = typeof sampling.mousemoveCallback === 'number'\r\n ? sampling.mousemoveCallback\r\n : 500;\r\n let positions = [];\r\n let timeBaseline;\r\n const wrappedCb = throttle(callbackWrapper((source) => {\r\n const totalOffset = Date.now() - timeBaseline;\r\n mousemoveCb(positions.map((p) => {\r\n p.timeOffset -= totalOffset;\r\n return p;\r\n }), source);\r\n positions = [];\r\n timeBaseline = null;\r\n }), callbackThreshold);\r\n const updatePosition = callbackWrapper(throttle(callbackWrapper((evt) => {\r\n const target = getEventTarget(evt);\r\n const { clientX, clientY } = legacy_isTouchEvent(evt)\r\n ? evt.changedTouches[0]\r\n : evt;\r\n if (!timeBaseline) {\r\n timeBaseline = nowTimestamp();\r\n }\r\n positions.push({\r\n x: clientX,\r\n y: clientY,\r\n id: mirror.getId(target),\r\n timeOffset: nowTimestamp() - timeBaseline,\r\n });\r\n wrappedCb(typeof DragEvent !== 'undefined' && evt instanceof DragEvent\r\n ? IncrementalSource.Drag\r\n : evt instanceof MouseEvent\r\n ? IncrementalSource.MouseMove\r\n : IncrementalSource.TouchMove);\r\n }), threshold, {\r\n trailing: false,\r\n }));\r\n const handlers = [\r\n on('mousemove', updatePosition, doc),\r\n on('touchmove', updatePosition, doc),\r\n on('drag', updatePosition, doc),\r\n ];\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initMouseInteractionObserver({ mouseInteractionCb, doc, mirror, blockClass, blockSelector, unblockSelector, sampling, }) {\r\n if (sampling.mouseInteraction === false) {\r\n return () => {\r\n };\r\n }\r\n const disableMap = sampling.mouseInteraction === true ||\r\n sampling.mouseInteraction === undefined\r\n ? {}\r\n : sampling.mouseInteraction;\r\n const handlers = [];\r\n let currentPointerType = null;\r\n const getHandler = (eventKey) => {\r\n return (event) => {\r\n const target = getEventTarget(event);\r\n if (isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\r\n return;\r\n }\r\n let pointerType = null;\r\n let thisEventKey = eventKey;\r\n if ('pointerType' in event) {\r\n switch (event.pointerType) {\r\n case 'mouse':\r\n pointerType = PointerTypes.Mouse;\r\n break;\r\n case 'touch':\r\n pointerType = PointerTypes.Touch;\r\n break;\r\n case 'pen':\r\n pointerType = PointerTypes.Pen;\r\n break;\r\n }\r\n if (pointerType === PointerTypes.Touch) {\r\n if (MouseInteractions[eventKey] === MouseInteractions.MouseDown) {\r\n thisEventKey = 'TouchStart';\r\n }\r\n else if (MouseInteractions[eventKey] === MouseInteractions.MouseUp) {\r\n thisEventKey = 'TouchEnd';\r\n }\r\n }\r\n else if (pointerType === PointerTypes.Pen) ;\r\n }\r\n else if (legacy_isTouchEvent(event)) {\r\n pointerType = PointerTypes.Touch;\r\n }\r\n if (pointerType !== null) {\r\n currentPointerType = pointerType;\r\n if ((thisEventKey.startsWith('Touch') &&\r\n pointerType === PointerTypes.Touch) ||\r\n (thisEventKey.startsWith('Mouse') &&\r\n pointerType === PointerTypes.Mouse)) {\r\n pointerType = null;\r\n }\r\n }\r\n else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\r\n pointerType = currentPointerType;\r\n currentPointerType = null;\r\n }\r\n const e = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\r\n if (!e) {\r\n return;\r\n }\r\n const id = mirror.getId(target);\r\n const { clientX, clientY } = e;\r\n callbackWrapper(mouseInteractionCb)({\r\n type: MouseInteractions[thisEventKey],\r\n id,\r\n x: clientX,\r\n y: clientY,\r\n ...(pointerType !== null && { pointerType }),\r\n });\r\n };\r\n };\r\n Object.keys(MouseInteractions)\r\n .filter((key) => Number.isNaN(Number(key)) &&\r\n !key.endsWith('_Departed') &&\r\n disableMap[key] !== false)\r\n .forEach((eventKey) => {\r\n let eventName = toLowerCase(eventKey);\r\n const handler = getHandler(eventKey);\r\n if (window.PointerEvent) {\r\n switch (MouseInteractions[eventKey]) {\r\n case MouseInteractions.MouseDown:\r\n case MouseInteractions.MouseUp:\r\n eventName = eventName.replace('mouse', 'pointer');\r\n break;\r\n case MouseInteractions.TouchStart:\r\n case MouseInteractions.TouchEnd:\r\n return;\r\n }\r\n }\r\n handlers.push(on(eventName, handler, doc));\r\n });\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initScrollObserver({ scrollCb, doc, mirror, blockClass, blockSelector, unblockSelector, sampling, }) {\r\n const updatePosition = callbackWrapper(throttle(callbackWrapper((evt) => {\r\n const target = getEventTarget(evt);\r\n if (!target ||\r\n isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\r\n return;\r\n }\r\n const id = mirror.getId(target);\r\n if (target === doc && doc.defaultView) {\r\n const scrollLeftTop = getWindowScroll(doc.defaultView);\r\n scrollCb({\r\n id,\r\n x: scrollLeftTop.left,\r\n y: scrollLeftTop.top,\r\n });\r\n }\r\n else {\r\n scrollCb({\r\n id,\r\n x: target.scrollLeft,\r\n y: target.scrollTop,\r\n });\r\n }\r\n }), sampling.scroll || 100));\r\n return on('scroll', updatePosition, doc);\r\n}\r\nfunction initViewportResizeObserver({ viewportResizeCb }, { win }) {\r\n let lastH = -1;\r\n let lastW = -1;\r\n const updateDimension = callbackWrapper(throttle(callbackWrapper(() => {\r\n const height = getWindowHeight();\r\n const width = getWindowWidth();\r\n if (lastH !== height || lastW !== width) {\r\n viewportResizeCb({\r\n width: Number(width),\r\n height: Number(height),\r\n });\r\n lastH = height;\r\n lastW = width;\r\n }\r\n }), 200));\r\n return on('resize', updateDimension, win);\r\n}\r\nconst INPUT_TAGS = ['INPUT', 'TEXTAREA', 'SELECT'];\r\nconst lastInputValueMap = new WeakMap();\r\nfunction initInputObserver({ inputCb, doc, mirror, blockClass, blockSelector, unblockSelector, ignoreClass, ignoreSelector, maskInputOptions, maskInputFn, sampling, userTriggeredOnInput, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, }) {\r\n function eventHandler(event) {\r\n let target = getEventTarget(event);\r\n const userTriggered = event.isTrusted;\r\n const tagName = target && toUpperCase(target.tagName);\r\n if (tagName === 'OPTION')\r\n target = target.parentElement;\r\n if (!target ||\r\n !tagName ||\r\n INPUT_TAGS.indexOf(tagName) < 0 ||\r\n isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\r\n return;\r\n }\r\n const el = target;\r\n if (el.classList.contains(ignoreClass) ||\r\n (ignoreSelector && el.matches(ignoreSelector))) {\r\n return;\r\n }\r\n const type = getInputType(target);\r\n let text = getInputValue(el, tagName, type);\r\n let isChecked = false;\r\n const isInputMasked = shouldMaskInput({\r\n maskInputOptions,\r\n tagName,\r\n type,\r\n });\r\n const forceMask = needMaskingText(target, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, isInputMasked);\r\n if (type === 'radio' || type === 'checkbox') {\r\n isChecked = target.checked;\r\n }\r\n text = maskInputValue({\r\n isMasked: forceMask,\r\n element: target,\r\n value: text,\r\n maskInputFn,\r\n });\r\n cbWithDedup(target, userTriggeredOnInput\r\n ? { text, isChecked, userTriggered }\r\n : { text, isChecked });\r\n const name = target.name;\r\n if (type === 'radio' && name && isChecked) {\r\n doc\r\n .querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`)\r\n .forEach((el) => {\r\n if (el !== target) {\r\n const text = maskInputValue({\r\n isMasked: forceMask,\r\n element: el,\r\n value: getInputValue(el, tagName, type),\r\n maskInputFn,\r\n });\r\n cbWithDedup(el, userTriggeredOnInput\r\n ? { text, isChecked: !isChecked, userTriggered: false }\r\n : { text, isChecked: !isChecked });\r\n }\r\n });\r\n }\r\n }\r\n function cbWithDedup(target, v) {\r\n const lastInputValue = lastInputValueMap.get(target);\r\n if (!lastInputValue ||\r\n lastInputValue.text !== v.text ||\r\n lastInputValue.isChecked !== v.isChecked) {\r\n lastInputValueMap.set(target, v);\r\n const id = mirror.getId(target);\r\n callbackWrapper(inputCb)({\r\n ...v,\r\n id,\r\n });\r\n }\r\n }\r\n const events = sampling.input === 'last' ? ['change'] : ['input', 'change'];\r\n const handlers = events.map((eventName) => on(eventName, callbackWrapper(eventHandler), doc));\r\n const currentWindow = doc.defaultView;\r\n if (!currentWindow) {\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n }\r\n const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(currentWindow.HTMLInputElement.prototype, 'value');\r\n const hookProperties = [\r\n [currentWindow.HTMLInputElement.prototype, 'value'],\r\n [currentWindow.HTMLInputElement.prototype, 'checked'],\r\n [currentWindow.HTMLSelectElement.prototype, 'value'],\r\n [currentWindow.HTMLTextAreaElement.prototype, 'value'],\r\n [currentWindow.HTMLSelectElement.prototype, 'selectedIndex'],\r\n [currentWindow.HTMLOptionElement.prototype, 'selected'],\r\n ];\r\n if (propertyDescriptor && propertyDescriptor.set) {\r\n handlers.push(...hookProperties.map((p) => hookSetter(p[0], p[1], {\r\n set() {\r\n callbackWrapper(eventHandler)({\r\n target: this,\r\n isTrusted: false,\r\n });\r\n },\r\n }, false, currentWindow)));\r\n }\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction getNestedCSSRulePositions(rule) {\r\n const positions = [];\r\n function recurse(childRule, pos) {\r\n if ((hasNestedCSSRule('CSSGroupingRule') &&\r\n childRule.parentRule instanceof CSSGroupingRule) ||\r\n (hasNestedCSSRule('CSSMediaRule') &&\r\n childRule.parentRule instanceof CSSMediaRule) ||\r\n (hasNestedCSSRule('CSSSupportsRule') &&\r\n childRule.parentRule instanceof CSSSupportsRule) ||\r\n (hasNestedCSSRule('CSSConditionRule') &&\r\n childRule.parentRule instanceof CSSConditionRule)) {\r\n const rules = Array.from(childRule.parentRule.cssRules);\r\n const index = rules.indexOf(childRule);\r\n pos.unshift(index);\r\n }\r\n else if (childRule.parentStyleSheet) {\r\n const rules = Array.from(childRule.parentStyleSheet.cssRules);\r\n const index = rules.indexOf(childRule);\r\n pos.unshift(index);\r\n }\r\n return pos;\r\n }\r\n return recurse(rule, positions);\r\n}\r\nfunction getIdAndStyleId(sheet, mirror, styleMirror) {\r\n let id, styleId;\r\n if (!sheet)\r\n return {};\r\n if (sheet.ownerNode)\r\n id = mirror.getId(sheet.ownerNode);\r\n else\r\n styleId = styleMirror.getId(sheet);\r\n return {\r\n styleId,\r\n id,\r\n };\r\n}\r\nfunction initStyleSheetObserver({ styleSheetRuleCb, mirror, stylesheetManager }, { win }) {\r\n if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\r\n return () => {\r\n };\r\n }\r\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\r\n win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [rule, index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n adds: [{ rule, index }],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\r\n win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n removes: [{ index }],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n let replace;\r\n if (win.CSSStyleSheet.prototype.replace) {\r\n replace = win.CSSStyleSheet.prototype.replace;\r\n win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [text] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n replace: text,\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n }\r\n let replaceSync;\r\n if (win.CSSStyleSheet.prototype.replaceSync) {\r\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\r\n win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [text] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n replaceSync: text,\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n }\r\n const supportedNestedCSSRuleTypes = {};\r\n if (canMonkeyPatchNestedCSSRule('CSSGroupingRule')) {\r\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\r\n }\r\n else {\r\n if (canMonkeyPatchNestedCSSRule('CSSMediaRule')) {\r\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\r\n }\r\n if (canMonkeyPatchNestedCSSRule('CSSConditionRule')) {\r\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\r\n }\r\n if (canMonkeyPatchNestedCSSRule('CSSSupportsRule')) {\r\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\r\n }\r\n }\r\n const unmodifiedFunctions = {};\r\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\r\n unmodifiedFunctions[typeKey] = {\r\n insertRule: type.prototype.insertRule,\r\n deleteRule: type.prototype.deleteRule,\r\n };\r\n type.prototype.insertRule = new Proxy(unmodifiedFunctions[typeKey].insertRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [rule, index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n adds: [\r\n {\r\n rule,\r\n index: [\r\n ...getNestedCSSRulePositions(thisArg),\r\n index || 0,\r\n ],\r\n },\r\n ],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n type.prototype.deleteRule = new Proxy(unmodifiedFunctions[typeKey].deleteRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n removes: [\r\n { index: [...getNestedCSSRulePositions(thisArg), index] },\r\n ],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n });\r\n return callbackWrapper(() => {\r\n win.CSSStyleSheet.prototype.insertRule = insertRule;\r\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\r\n replace && (win.CSSStyleSheet.prototype.replace = replace);\r\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\r\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\r\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\r\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\r\n });\r\n });\r\n}\r\nfunction initAdoptedStyleSheetObserver({ mirror, stylesheetManager, }, host) {\r\n let hostId = null;\r\n if (host.nodeName === '#document')\r\n hostId = mirror.getId(host);\r\n else\r\n hostId = mirror.getId(host.host);\r\n const patchTarget = host.nodeName === '#document'\r\n ? host.defaultView?.Document\r\n : host.ownerDocument?.defaultView?.ShadowRoot;\r\n const originalPropertyDescriptor = patchTarget?.prototype\r\n ? Object.getOwnPropertyDescriptor(patchTarget?.prototype, 'adoptedStyleSheets')\r\n : undefined;\r\n if (hostId === null ||\r\n hostId === -1 ||\r\n !patchTarget ||\r\n !originalPropertyDescriptor)\r\n return () => {\r\n };\r\n Object.defineProperty(host, 'adoptedStyleSheets', {\r\n configurable: originalPropertyDescriptor.configurable,\r\n enumerable: originalPropertyDescriptor.enumerable,\r\n get() {\r\n return originalPropertyDescriptor.get?.call(this);\r\n },\r\n set(sheets) {\r\n const result = originalPropertyDescriptor.set?.call(this, sheets);\r\n if (hostId !== null && hostId !== -1) {\r\n try {\r\n stylesheetManager.adoptStyleSheets(sheets, hostId);\r\n }\r\n catch (e) {\r\n }\r\n }\r\n return result;\r\n },\r\n });\r\n return callbackWrapper(() => {\r\n Object.defineProperty(host, 'adoptedStyleSheets', {\r\n configurable: originalPropertyDescriptor.configurable,\r\n enumerable: originalPropertyDescriptor.enumerable,\r\n get: originalPropertyDescriptor.get,\r\n set: originalPropertyDescriptor.set,\r\n });\r\n });\r\n}\r\nfunction initStyleDeclarationObserver({ styleDeclarationCb, mirror, ignoreCSSAttributes, stylesheetManager, }, { win }) {\r\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\r\n win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [property, value, priority] = argumentsList;\r\n if (ignoreCSSAttributes.has(property)) {\r\n return setProperty.apply(thisArg, [property, value, priority]);\r\n }\r\n const { id, styleId } = getIdAndStyleId(thisArg.parentRule?.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleDeclarationCb({\r\n id,\r\n styleId,\r\n set: {\r\n property,\r\n value,\r\n priority,\r\n },\r\n index: getNestedCSSRulePositions(thisArg.parentRule),\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\r\n win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [property] = argumentsList;\r\n if (ignoreCSSAttributes.has(property)) {\r\n return removeProperty.apply(thisArg, [property]);\r\n }\r\n const { id, styleId } = getIdAndStyleId(thisArg.parentRule?.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleDeclarationCb({\r\n id,\r\n styleId,\r\n remove: {\r\n property,\r\n },\r\n index: getNestedCSSRulePositions(thisArg.parentRule),\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n return callbackWrapper(() => {\r\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\r\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\r\n });\r\n}\r\nfunction initMediaInteractionObserver({ mediaInteractionCb, blockClass, blockSelector, unblockSelector, mirror, sampling, doc, }) {\r\n const handler = callbackWrapper((type) => throttle(callbackWrapper((event) => {\r\n const target = getEventTarget(event);\r\n if (!target ||\r\n isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\r\n return;\r\n }\r\n const { currentTime, volume, muted, playbackRate } = target;\r\n mediaInteractionCb({\r\n type,\r\n id: mirror.getId(target),\r\n currentTime,\r\n volume,\r\n muted,\r\n playbackRate,\r\n });\r\n }), sampling.media || 500));\r\n const handlers = [\r\n on('play', handler(0), doc),\r\n on('pause', handler(1), doc),\r\n on('seeked', handler(2), doc),\r\n on('volumechange', handler(3), doc),\r\n on('ratechange', handler(4), doc),\r\n ];\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initFontObserver({ fontCb, doc }) {\r\n const win = doc.defaultView;\r\n if (!win) {\r\n return () => {\r\n };\r\n }\r\n const handlers = [];\r\n const fontMap = new WeakMap();\r\n const originalFontFace = win.FontFace;\r\n win.FontFace = function FontFace(family, source, descriptors) {\r\n const fontFace = new originalFontFace(family, source, descriptors);\r\n fontMap.set(fontFace, {\r\n family,\r\n buffer: typeof source !== 'string',\r\n descriptors,\r\n fontSource: typeof source === 'string'\r\n ? source\r\n : JSON.stringify(Array.from(new Uint8Array(source))),\r\n });\r\n return fontFace;\r\n };\r\n const restoreHandler = patch(doc.fonts, 'add', function (original) {\r\n return function (fontFace) {\r\n setTimeout(callbackWrapper(() => {\r\n const p = fontMap.get(fontFace);\r\n if (p) {\r\n fontCb(p);\r\n fontMap.delete(fontFace);\r\n }\r\n }), 0);\r\n return original.apply(this, [fontFace]);\r\n };\r\n });\r\n handlers.push(() => {\r\n win.FontFace = originalFontFace;\r\n });\r\n handlers.push(restoreHandler);\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initSelectionObserver(param) {\r\n const { doc, mirror, blockClass, blockSelector, unblockSelector, selectionCb, } = param;\r\n let collapsed = true;\r\n const updateSelection = callbackWrapper(() => {\r\n const selection = doc.getSelection();\r\n if (!selection || (collapsed && selection?.isCollapsed))\r\n return;\r\n collapsed = selection.isCollapsed || false;\r\n const ranges = [];\r\n const count = selection.rangeCount || 0;\r\n for (let i = 0; i < count; i++) {\r\n const range = selection.getRangeAt(i);\r\n const { startContainer, startOffset, endContainer, endOffset } = range;\r\n const blocked = isBlocked(startContainer, blockClass, blockSelector, unblockSelector, true) ||\r\n isBlocked(endContainer, blockClass, blockSelector, unblockSelector, true);\r\n if (blocked)\r\n continue;\r\n ranges.push({\r\n start: mirror.getId(startContainer),\r\n startOffset,\r\n end: mirror.getId(endContainer),\r\n endOffset,\r\n });\r\n }\r\n selectionCb({ ranges });\r\n });\r\n updateSelection();\r\n return on('selectionchange', updateSelection);\r\n}\r\nfunction initCustomElementObserver({ doc, customElementCb, }) {\r\n const win = doc.defaultView;\r\n if (!win || !win.customElements)\r\n return () => { };\r\n const restoreHandler = patch(win.customElements, 'define', function (original) {\r\n return function (name, constructor, options) {\r\n try {\r\n customElementCb({\r\n define: {\r\n name,\r\n },\r\n });\r\n }\r\n catch (e) {\r\n }\r\n return original.apply(this, [name, constructor, options]);\r\n };\r\n });\r\n return restoreHandler;\r\n}\r\nfunction initObservers(o, _hooks = {}) {\r\n const currentWindow = o.doc.defaultView;\r\n if (!currentWindow) {\r\n return () => {\r\n };\r\n }\r\n const mutationObserver = initMutationObserver(o, o.doc);\r\n const mousemoveHandler = initMoveObserver(o);\r\n const mouseInteractionHandler = initMouseInteractionObserver(o);\r\n const scrollHandler = initScrollObserver(o);\r\n const viewportResizeHandler = initViewportResizeObserver(o, {\r\n win: currentWindow,\r\n });\r\n const inputHandler = initInputObserver(o);\r\n const mediaInteractionHandler = initMediaInteractionObserver(o);\r\n const styleSheetObserver = initStyleSheetObserver(o, { win: currentWindow });\r\n const adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o, o.doc);\r\n const styleDeclarationObserver = initStyleDeclarationObserver(o, {\r\n win: currentWindow,\r\n });\r\n const fontObserver = o.collectFonts\r\n ? initFontObserver(o)\r\n : () => {\r\n };\r\n const selectionObserver = initSelectionObserver(o);\r\n const customElementObserver = initCustomElementObserver(o);\r\n const pluginHandlers = [];\r\n for (const plugin of o.plugins) {\r\n pluginHandlers.push(plugin.observer(plugin.callback, currentWindow, plugin.options));\r\n }\r\n return callbackWrapper(() => {\r\n mutationBuffers.forEach((b) => b.reset());\r\n mutationObserver.disconnect();\r\n mousemoveHandler();\r\n mouseInteractionHandler();\r\n scrollHandler();\r\n viewportResizeHandler();\r\n inputHandler();\r\n mediaInteractionHandler();\r\n styleSheetObserver();\r\n adoptedStyleSheetObserver();\r\n styleDeclarationObserver();\r\n fontObserver();\r\n selectionObserver();\r\n customElementObserver();\r\n pluginHandlers.forEach((h) => h());\r\n });\r\n}\r\nfunction hasNestedCSSRule(prop) {\r\n return typeof window[prop] !== 'undefined';\r\n}\r\nfunction canMonkeyPatchNestedCSSRule(prop) {\r\n return Boolean(typeof window[prop] !== 'undefined' &&\r\n window[prop].prototype &&\r\n 'insertRule' in window[prop].prototype &&\r\n 'deleteRule' in window[prop].prototype);\r\n}\n\nexport { INPUT_TAGS, initAdoptedStyleSheetObserver, initMutationObserver, initObservers, initScrollObserver, mutationBuffers };\n","class CrossOriginIframeMirror {\r\n constructor(generateIdFn) {\r\n this.generateIdFn = generateIdFn;\r\n this.iframeIdToRemoteIdMap = new WeakMap();\r\n this.iframeRemoteIdToIdMap = new WeakMap();\r\n }\r\n getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\r\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\r\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\r\n let id = idToRemoteIdMap.get(remoteId);\r\n if (!id) {\r\n id = this.generateIdFn();\r\n idToRemoteIdMap.set(remoteId, id);\r\n remoteIdToIdMap.set(id, remoteId);\r\n }\r\n return id;\r\n }\r\n getIds(iframe, remoteId) {\r\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\r\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\r\n return remoteId.map((id) => this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap));\r\n }\r\n getRemoteId(iframe, id, map) {\r\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\r\n if (typeof id !== 'number')\r\n return id;\r\n const remoteId = remoteIdToIdMap.get(id);\r\n if (!remoteId)\r\n return -1;\r\n return remoteId;\r\n }\r\n getRemoteIds(iframe, ids) {\r\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\r\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\r\n }\r\n reset(iframe) {\r\n if (!iframe) {\r\n this.iframeIdToRemoteIdMap = new WeakMap();\r\n this.iframeRemoteIdToIdMap = new WeakMap();\r\n return;\r\n }\r\n this.iframeIdToRemoteIdMap.delete(iframe);\r\n this.iframeRemoteIdToIdMap.delete(iframe);\r\n }\r\n getIdToRemoteIdMap(iframe) {\r\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\r\n if (!idToRemoteIdMap) {\r\n idToRemoteIdMap = new Map();\r\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\r\n }\r\n return idToRemoteIdMap;\r\n }\r\n getRemoteIdToIdMap(iframe) {\r\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\r\n if (!remoteIdToIdMap) {\r\n remoteIdToIdMap = new Map();\r\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\r\n }\r\n return remoteIdToIdMap;\r\n }\r\n}\n\nexport { CrossOriginIframeMirror as default };\n","import { genId, NodeType } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport CrossOriginIframeMirror from './cross-origin-iframe-mirror.js';\nimport { EventType, IncrementalSource } from '../../../types/dist/rrweb-types.js';\n\nclass IframeManagerNoop {\r\n constructor() {\r\n this.crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\r\n this.crossOriginIframeRootIdMap = new WeakMap();\r\n }\r\n addIframe() {\r\n }\r\n addLoadListener() {\r\n }\r\n attachIframe() {\r\n }\r\n}\r\nclass IframeManager {\r\n constructor(options) {\r\n this.iframes = new WeakMap();\r\n this.crossOriginIframeMap = new WeakMap();\r\n this.crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\r\n this.crossOriginIframeRootIdMap = new WeakMap();\r\n this.mutationCb = options.mutationCb;\r\n this.wrappedEmit = options.wrappedEmit;\r\n this.stylesheetManager = options.stylesheetManager;\r\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\r\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror));\r\n this.mirror = options.mirror;\r\n if (this.recordCrossOriginIframes) {\r\n window.addEventListener('message', this.handleMessage.bind(this));\r\n }\r\n }\r\n addIframe(iframeEl) {\r\n this.iframes.set(iframeEl, true);\r\n if (iframeEl.contentWindow)\r\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\r\n }\r\n addLoadListener(cb) {\r\n this.loadListener = cb;\r\n }\r\n attachIframe(iframeEl, childSn) {\r\n this.mutationCb({\r\n adds: [\r\n {\r\n parentId: this.mirror.getId(iframeEl),\r\n nextId: null,\r\n node: childSn,\r\n },\r\n ],\r\n removes: [],\r\n texts: [],\r\n attributes: [],\r\n isAttachIframe: true,\r\n });\r\n this.loadListener?.(iframeEl);\r\n if (iframeEl.contentDocument &&\r\n iframeEl.contentDocument.adoptedStyleSheets &&\r\n iframeEl.contentDocument.adoptedStyleSheets.length > 0)\r\n this.stylesheetManager.adoptStyleSheets(iframeEl.contentDocument.adoptedStyleSheets, this.mirror.getId(iframeEl.contentDocument));\r\n }\r\n handleMessage(message) {\r\n const crossOriginMessageEvent = message;\r\n if (crossOriginMessageEvent.data.type !== 'rrweb' ||\r\n crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin)\r\n return;\r\n const iframeSourceWindow = message.source;\r\n if (!iframeSourceWindow)\r\n return;\r\n const iframeEl = this.crossOriginIframeMap.get(message.source);\r\n if (!iframeEl)\r\n return;\r\n const transformedEvent = this.transformCrossOriginEvent(iframeEl, crossOriginMessageEvent.data.event);\r\n if (transformedEvent)\r\n this.wrappedEmit(transformedEvent, crossOriginMessageEvent.data.isCheckout);\r\n }\r\n transformCrossOriginEvent(iframeEl, e) {\r\n switch (e.type) {\r\n case EventType.FullSnapshot: {\r\n this.crossOriginIframeMirror.reset(iframeEl);\r\n this.crossOriginIframeStyleMirror.reset(iframeEl);\r\n this.replaceIdOnNode(e.data.node, iframeEl);\r\n const rootId = e.data.node.id;\r\n this.crossOriginIframeRootIdMap.set(iframeEl, rootId);\r\n this.patchRootIdOnNode(e.data.node, rootId);\r\n return {\r\n timestamp: e.timestamp,\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.Mutation,\r\n adds: [\r\n {\r\n parentId: this.mirror.getId(iframeEl),\r\n nextId: null,\r\n node: e.data.node,\r\n },\r\n ],\r\n removes: [],\r\n texts: [],\r\n attributes: [],\r\n isAttachIframe: true,\r\n },\r\n };\r\n }\r\n case EventType.Meta:\r\n case EventType.Load:\r\n case EventType.DomContentLoaded: {\r\n return false;\r\n }\r\n case EventType.Plugin: {\r\n return e;\r\n }\r\n case EventType.Custom: {\r\n this.replaceIds(e.data.payload, iframeEl, ['id', 'parentId', 'previousId', 'nextId']);\r\n return e;\r\n }\r\n case EventType.IncrementalSnapshot: {\r\n switch (e.data.source) {\r\n case IncrementalSource.Mutation: {\r\n e.data.adds.forEach((n) => {\r\n this.replaceIds(n, iframeEl, [\r\n 'parentId',\r\n 'nextId',\r\n 'previousId',\r\n ]);\r\n this.replaceIdOnNode(n.node, iframeEl);\r\n const rootId = this.crossOriginIframeRootIdMap.get(iframeEl);\r\n rootId && this.patchRootIdOnNode(n.node, rootId);\r\n });\r\n e.data.removes.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['parentId', 'id']);\r\n });\r\n e.data.attributes.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['id']);\r\n });\r\n e.data.texts.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['id']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.Drag:\r\n case IncrementalSource.TouchMove:\r\n case IncrementalSource.MouseMove: {\r\n e.data.positions.forEach((p) => {\r\n this.replaceIds(p, iframeEl, ['id']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.ViewportResize: {\r\n return false;\r\n }\r\n case IncrementalSource.MediaInteraction:\r\n case IncrementalSource.MouseInteraction:\r\n case IncrementalSource.Scroll:\r\n case IncrementalSource.CanvasMutation:\r\n case IncrementalSource.Input: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n return e;\r\n }\r\n case IncrementalSource.StyleSheetRule:\r\n case IncrementalSource.StyleDeclaration: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n this.replaceStyleIds(e.data, iframeEl, ['styleId']);\r\n return e;\r\n }\r\n case IncrementalSource.Font: {\r\n return e;\r\n }\r\n case IncrementalSource.Selection: {\r\n e.data.ranges.forEach((range) => {\r\n this.replaceIds(range, iframeEl, ['start', 'end']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.AdoptedStyleSheet: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n this.replaceStyleIds(e.data, iframeEl, ['styleIds']);\r\n e.data.styles?.forEach((style) => {\r\n this.replaceStyleIds(style, iframeEl, ['styleId']);\r\n });\r\n return e;\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n replace(iframeMirror, obj, iframeEl, keys) {\r\n for (const key of keys) {\r\n if (!Array.isArray(obj[key]) && typeof obj[key] !== 'number')\r\n continue;\r\n if (Array.isArray(obj[key])) {\r\n obj[key] = iframeMirror.getIds(iframeEl, obj[key]);\r\n }\r\n else {\r\n obj[key] = iframeMirror.getId(iframeEl, obj[key]);\r\n }\r\n }\r\n return obj;\r\n }\r\n replaceIds(obj, iframeEl, keys) {\r\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\r\n }\r\n replaceStyleIds(obj, iframeEl, keys) {\r\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\r\n }\r\n replaceIdOnNode(node, iframeEl) {\r\n this.replaceIds(node, iframeEl, ['id', 'rootId']);\r\n if ('childNodes' in node) {\r\n node.childNodes.forEach((child) => {\r\n this.replaceIdOnNode(child, iframeEl);\r\n });\r\n }\r\n }\r\n patchRootIdOnNode(node, rootId) {\r\n if (node.type !== NodeType.Document && !node.rootId)\r\n node.rootId = rootId;\r\n if ('childNodes' in node) {\r\n node.childNodes.forEach((child) => {\r\n this.patchRootIdOnNode(child, rootId);\r\n });\r\n }\r\n }\r\n}\n\nexport { IframeManager, IframeManagerNoop };\n","import { initMutationObserver, initScrollObserver, initAdoptedStyleSheetObserver } from './observer.js';\nimport { setTimeout, patch, inDom } from '../utils.js';\nimport { isNativeShadowDom } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\n\nclass ShadowDomManagerNoop {\r\n init() {\r\n }\r\n addShadowRoot() {\r\n }\r\n observeAttachShadow() {\r\n }\r\n reset() {\r\n }\r\n}\r\nclass ShadowDomManager {\r\n constructor(options) {\r\n this.shadowDoms = new WeakSet();\r\n this.restoreHandlers = [];\r\n this.mutationCb = options.mutationCb;\r\n this.scrollCb = options.scrollCb;\r\n this.bypassOptions = options.bypassOptions;\r\n this.mirror = options.mirror;\r\n this.init();\r\n }\r\n init() {\r\n this.reset();\r\n this.patchAttachShadow(Element, document);\r\n }\r\n addShadowRoot(shadowRoot, doc) {\r\n if (!isNativeShadowDom(shadowRoot))\r\n return;\r\n if (this.shadowDoms.has(shadowRoot))\r\n return;\r\n this.shadowDoms.add(shadowRoot);\r\n const observer = initMutationObserver({\r\n ...this.bypassOptions,\r\n doc,\r\n mutationCb: this.mutationCb,\r\n mirror: this.mirror,\r\n shadowDomManager: this,\r\n }, shadowRoot);\r\n this.restoreHandlers.push(() => observer.disconnect());\r\n this.restoreHandlers.push(initScrollObserver({\r\n ...this.bypassOptions,\r\n scrollCb: this.scrollCb,\r\n doc: shadowRoot,\r\n mirror: this.mirror,\r\n }));\r\n setTimeout(() => {\r\n if (shadowRoot.adoptedStyleSheets &&\r\n shadowRoot.adoptedStyleSheets.length > 0)\r\n this.bypassOptions.stylesheetManager.adoptStyleSheets(shadowRoot.adoptedStyleSheets, this.mirror.getId(shadowRoot.host));\r\n this.restoreHandlers.push(initAdoptedStyleSheetObserver({\r\n mirror: this.mirror,\r\n stylesheetManager: this.bypassOptions.stylesheetManager,\r\n }, shadowRoot));\r\n }, 0);\r\n }\r\n observeAttachShadow(iframeElement) {\r\n if (!iframeElement.contentWindow || !iframeElement.contentDocument)\r\n return;\r\n this.patchAttachShadow(iframeElement.contentWindow.Element, iframeElement.contentDocument);\r\n }\r\n patchAttachShadow(element, doc) {\r\n const manager = this;\r\n this.restoreHandlers.push(patch(element.prototype, 'attachShadow', function (original) {\r\n return function (option) {\r\n const shadowRoot = original.call(this, option);\r\n if (this.shadowRoot && inDom(this))\r\n manager.addShadowRoot(this.shadowRoot, doc);\r\n return shadowRoot;\r\n };\r\n }));\r\n }\r\n reset() {\r\n this.restoreHandlers.forEach((handler) => {\r\n try {\r\n handler();\r\n }\r\n catch (e) {\r\n }\r\n });\r\n this.restoreHandlers = [];\r\n this.shadowDoms = new WeakSet();\r\n }\r\n}\n\nexport { ShadowDomManager, ShadowDomManagerNoop };\n","import { onRequestAnimationFrame, isBlocked } from '../../../utils.js';\nimport { CanvasContext } from '../../../../../types/dist/rrweb-types.js';\nimport initCanvas2DMutationObserver from './2d.js';\nimport initCanvasContextObserver from './canvas.js';\nimport initCanvasWebGLMutationObserver from './webgl.js';\nimport { getImageBitmapDataUrlWorkerURL as t } from '../../../../../rrweb-worker/es/rrweb-worker/index.js';\nimport { callbackWrapper, registerErrorHandler } from '../../error-handler.js';\n\nclass CanvasManagerNoop {\r\n reset() {\r\n }\r\n freeze() {\r\n }\r\n unfreeze() {\r\n }\r\n lock() {\r\n }\r\n unlock() {\r\n }\r\n snapshot() {\r\n }\r\n}\r\nclass CanvasManager {\r\n reset() {\r\n this.pendingCanvasMutations.clear();\r\n this.resetObservers && this.resetObservers();\r\n }\r\n freeze() {\r\n this.frozen = true;\r\n }\r\n unfreeze() {\r\n this.frozen = false;\r\n }\r\n lock() {\r\n this.locked = true;\r\n }\r\n unlock() {\r\n this.locked = false;\r\n }\r\n constructor(options) {\r\n this.pendingCanvasMutations = new Map();\r\n this.rafStamps = { latestId: 0, invokeId: null };\r\n this.frozen = false;\r\n this.locked = false;\r\n this.processMutation = (target, mutation) => {\r\n const newFrame = this.rafStamps.invokeId &&\r\n this.rafStamps.latestId !== this.rafStamps.invokeId;\r\n if (newFrame || !this.rafStamps.invokeId)\r\n this.rafStamps.invokeId = this.rafStamps.latestId;\r\n if (!this.pendingCanvasMutations.has(target)) {\r\n this.pendingCanvasMutations.set(target, []);\r\n }\r\n this.pendingCanvasMutations.get(target).push(mutation);\r\n };\r\n const { sampling = 'all', win, blockClass, blockSelector, unblockSelector, maxCanvasSize, recordCanvas, dataURLOptions, errorHandler, } = options;\r\n this.mutationCb = options.mutationCb;\r\n this.mirror = options.mirror;\r\n this.options = options;\r\n if (errorHandler) {\r\n registerErrorHandler(errorHandler);\r\n }\r\n if (options.enableManualSnapshot) {\r\n return;\r\n }\r\n callbackWrapper(() => {\r\n if (recordCanvas && sampling === 'all')\r\n this.initCanvasMutationObserver(win, blockClass, blockSelector, unblockSelector);\r\n if (recordCanvas && typeof sampling === 'number')\r\n this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, unblockSelector, maxCanvasSize, {\r\n dataURLOptions,\r\n });\r\n })();\r\n }\r\n initCanvasFPSObserver(fps, win, blockClass, blockSelector, unblockSelector, maxCanvasSize, options) {\r\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, unblockSelector, true);\r\n const rafId = this.takeSnapshot(false, fps, win, blockClass, blockSelector, unblockSelector, maxCanvasSize, options.dataURLOptions);\r\n this.resetObservers = () => {\r\n canvasContextReset();\r\n cancelAnimationFrame(rafId);\r\n };\r\n }\r\n initCanvasMutationObserver(win, blockClass, blockSelector, unblockSelector) {\r\n this.startRAFTimestamping();\r\n this.startPendingCanvasMutationFlusher();\r\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, unblockSelector, false);\r\n const canvas2DReset = initCanvas2DMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector, unblockSelector);\r\n const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector, unblockSelector, this.mirror);\r\n this.resetObservers = () => {\r\n canvasContextReset();\r\n canvas2DReset();\r\n canvasWebGL1and2Reset();\r\n };\r\n }\r\n snapshot(canvasElement) {\r\n const { options } = this;\r\n const rafId = this.takeSnapshot(true, options.sampling === 'all' ? 2 : options.sampling || 2, options.win, options.blockClass, options.blockSelector, options.unblockSelector, options.maxCanvasSize, options.dataURLOptions, canvasElement);\r\n this.resetObservers = () => {\r\n cancelAnimationFrame(rafId);\r\n };\r\n }\r\n takeSnapshot(isManualSnapshot, fps, win, blockClass, blockSelector, unblockSelector, maxCanvasSize, dataURLOptions, canvasElement) {\r\n const snapshotInProgressMap = new Map();\r\n const worker = new Worker(t());\r\n worker.onmessage = (e) => {\r\n const data = e.data;\r\n const { id } = data;\r\n snapshotInProgressMap.set(id, false);\r\n if (!('base64' in data))\r\n return;\r\n const { base64, type, width, height } = data;\r\n this.mutationCb({\r\n id,\r\n type: CanvasContext['2D'],\r\n commands: [\r\n {\r\n property: 'clearRect',\r\n args: [0, 0, width, height],\r\n },\r\n {\r\n property: 'drawImage',\r\n args: [\r\n {\r\n rr_type: 'ImageBitmap',\r\n args: [\r\n {\r\n rr_type: 'Blob',\r\n data: [{ rr_type: 'ArrayBuffer', base64 }],\r\n type,\r\n },\r\n ],\r\n },\r\n 0,\r\n 0,\r\n width,\r\n height,\r\n ],\r\n },\r\n ],\r\n });\r\n };\r\n const timeBetweenSnapshots = 1000 / fps;\r\n let lastSnapshotTime = 0;\r\n let rafId;\r\n const getCanvas = (canvasElement) => {\r\n if (canvasElement) {\r\n return [canvasElement];\r\n }\r\n const matchedCanvas = [];\r\n win.document.querySelectorAll('canvas').forEach((canvas) => {\r\n if (!isBlocked(canvas, blockClass, blockSelector, unblockSelector, true)) {\r\n matchedCanvas.push(canvas);\r\n }\r\n });\r\n return matchedCanvas;\r\n };\r\n const takeCanvasSnapshots = (timestamp) => {\r\n if (lastSnapshotTime &&\r\n timestamp - lastSnapshotTime < timeBetweenSnapshots) {\r\n rafId = onRequestAnimationFrame(takeCanvasSnapshots);\r\n return;\r\n }\r\n lastSnapshotTime = timestamp;\r\n getCanvas(canvasElement).forEach((canvas) => {\r\n const id = this.mirror.getId(canvas);\r\n if (snapshotInProgressMap.get(id))\r\n return;\r\n if (!canvas.width || !canvas.height)\r\n return;\r\n snapshotInProgressMap.set(id, true);\r\n if (!isManualSnapshot &&\r\n ['webgl', 'webgl2'].includes(canvas.__context)) {\r\n const context = canvas.getContext(canvas.__context);\r\n if (context?.getContextAttributes()?.preserveDrawingBuffer === false) {\r\n context.clear(context.COLOR_BUFFER_BIT);\r\n }\r\n }\r\n createImageBitmap(canvas)\r\n .then((bitmap) => {\r\n worker.postMessage({\r\n id,\r\n bitmap,\r\n width: canvas.width,\r\n height: canvas.height,\r\n dataURLOptions,\r\n maxCanvasSize,\r\n }, [bitmap]);\r\n })\r\n .catch((error) => {\r\n callbackWrapper(() => {\r\n throw error;\r\n })();\r\n });\r\n });\r\n rafId = onRequestAnimationFrame(takeCanvasSnapshots);\r\n };\r\n rafId = onRequestAnimationFrame(takeCanvasSnapshots);\r\n return rafId;\r\n }\r\n startPendingCanvasMutationFlusher() {\r\n onRequestAnimationFrame(() => this.flushPendingCanvasMutations());\r\n }\r\n startRAFTimestamping() {\r\n const setLatestRAFTimestamp = (timestamp) => {\r\n this.rafStamps.latestId = timestamp;\r\n onRequestAnimationFrame(setLatestRAFTimestamp);\r\n };\r\n onRequestAnimationFrame(setLatestRAFTimestamp);\r\n }\r\n flushPendingCanvasMutations() {\r\n this.pendingCanvasMutations.forEach((values, canvas) => {\r\n const id = this.mirror.getId(canvas);\r\n this.flushPendingCanvasMutationFor(canvas, id);\r\n });\r\n onRequestAnimationFrame(() => this.flushPendingCanvasMutations());\r\n }\r\n flushPendingCanvasMutationFor(canvas, id) {\r\n if (this.frozen || this.locked) {\r\n return;\r\n }\r\n const valuesWithType = this.pendingCanvasMutations.get(canvas);\r\n if (!valuesWithType || id === -1)\r\n return;\r\n const values = valuesWithType.map((value) => {\r\n const { type, ...rest } = value;\r\n return rest;\r\n });\r\n const { type } = valuesWithType[0];\r\n this.mutationCb({ id, type, commands: values });\r\n this.pendingCanvasMutations.delete(canvas);\r\n }\r\n}\n\nexport { CanvasManager, CanvasManagerNoop };\n","import { stringifyRule } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { StyleSheetMirror } from '../utils.js';\n\nclass StylesheetManager {\r\n constructor(options) {\r\n this.trackedLinkElements = new WeakSet();\r\n this.styleMirror = new StyleSheetMirror();\r\n this.mutationCb = options.mutationCb;\r\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\r\n }\r\n attachLinkElement(linkEl, childSn) {\r\n if ('_cssText' in childSn.attributes)\r\n this.mutationCb({\r\n adds: [],\r\n removes: [],\r\n texts: [],\r\n attributes: [\r\n {\r\n id: childSn.id,\r\n attributes: childSn\r\n .attributes,\r\n },\r\n ],\r\n });\r\n this.trackLinkElement(linkEl);\r\n }\r\n trackLinkElement(linkEl) {\r\n if (this.trackedLinkElements.has(linkEl))\r\n return;\r\n this.trackedLinkElements.add(linkEl);\r\n this.trackStylesheetInLinkElement(linkEl);\r\n }\r\n adoptStyleSheets(sheets, hostId) {\r\n if (sheets.length === 0)\r\n return;\r\n const adoptedStyleSheetData = {\r\n id: hostId,\r\n styleIds: [],\r\n };\r\n const styles = [];\r\n for (const sheet of sheets) {\r\n let styleId;\r\n if (!this.styleMirror.has(sheet)) {\r\n styleId = this.styleMirror.add(sheet);\r\n styles.push({\r\n styleId,\r\n rules: Array.from(sheet.rules || CSSRule, (r, index) => ({\r\n rule: stringifyRule(r),\r\n index,\r\n })),\r\n });\r\n }\r\n else\r\n styleId = this.styleMirror.getId(sheet);\r\n adoptedStyleSheetData.styleIds.push(styleId);\r\n }\r\n if (styles.length > 0)\r\n adoptedStyleSheetData.styles = styles;\r\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\r\n }\r\n reset() {\r\n this.styleMirror.reset();\r\n this.trackedLinkElements = new WeakSet();\r\n }\r\n trackStylesheetInLinkElement(linkEl) {\r\n }\r\n}\n\nexport { StylesheetManager };\n","import { onRequestAnimationFrame } from '../utils.js';\n\nclass ProcessedNodeManager {\r\n constructor() {\r\n this.nodeMap = new WeakMap();\r\n this.loop = true;\r\n this.periodicallyClear();\r\n }\r\n periodicallyClear() {\r\n onRequestAnimationFrame(() => {\r\n this.clear();\r\n if (this.loop)\r\n this.periodicallyClear();\r\n });\r\n }\r\n inOtherBuffer(node, thisBuffer) {\r\n const buffers = this.nodeMap.get(node);\r\n return (buffers && Array.from(buffers).some((buffer) => buffer !== thisBuffer));\r\n }\r\n add(node, buffer) {\r\n this.nodeMap.set(node, (this.nodeMap.get(node) || new Set()).add(buffer));\r\n }\r\n clear() {\r\n this.nodeMap = new WeakMap();\r\n }\r\n destroy() {\r\n this.loop = false;\r\n }\r\n}\n\nexport { ProcessedNodeManager as default };\n","import { createMirror, snapshot } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { initObservers, mutationBuffers } from './observer.js';\nimport { polyfill, on, nowTimestamp, getWindowWidth, getWindowHeight, getWindowScroll, isSerializedIframe, isSerializedStylesheet, hasShadowRoot } from '../utils.js';\nimport { EventType, IncrementalSource } from '../../../types/dist/rrweb-types.js';\nimport { IframeManagerNoop, IframeManager } from './iframe-manager.js';\nimport { ShadowDomManagerNoop, ShadowDomManager } from './shadow-dom-manager.js';\nimport { CanvasManagerNoop } from './observers/canvas/canvas-manager.js';\nexport { CanvasManager } from './observers/canvas/canvas-manager.js';\nimport { StylesheetManager } from './stylesheet-manager.js';\nimport ProcessedNodeManager from './processed-node-manager.js';\nimport { callbackWrapper, unregisterErrorHandler, registerErrorHandler } from './error-handler.js';\n\nlet wrappedEmit;\r\nlet _wrappedEmit;\r\nlet _takeFullSnapshot;\r\nconst mirror = createMirror();\r\nfunction record(options = {}) {\r\n const { emit, checkoutEveryNms, checkoutEveryNth, blockClass = 'rr-block', blockSelector = null, unblockSelector = null, ignoreClass = 'rr-ignore', ignoreSelector = null, maskAllText = false, maskTextClass = 'rr-mask', unmaskTextClass = null, maskTextSelector = null, unmaskTextSelector = null, inlineStylesheet = true, maskAllInputs, maskInputOptions: _maskInputOptions, slimDOMOptions: _slimDOMOptions, maskAttributeFn, maskInputFn, maskTextFn, maxCanvasSize = null, packFn, sampling = {}, dataURLOptions = {}, mousemoveWait, recordCanvas = false, recordCrossOriginIframes = false, recordAfter = options.recordAfter === 'DOMContentLoaded'\r\n ? options.recordAfter\r\n : 'load', userTriggeredOnInput = false, collectFonts = false, inlineImages = false, plugins, keepIframeSrcFn = () => false, ignoreCSSAttributes = new Set([]), errorHandler, onMutation, getCanvasManager, } = options;\r\n registerErrorHandler(errorHandler);\r\n const inEmittingFrame = recordCrossOriginIframes\r\n ? window.parent === window\r\n : true;\r\n let passEmitsToParent = false;\r\n if (!inEmittingFrame) {\r\n try {\r\n if (window.parent.document) {\r\n passEmitsToParent = false;\r\n }\r\n }\r\n catch (e) {\r\n passEmitsToParent = true;\r\n }\r\n }\r\n if (inEmittingFrame && !emit) {\r\n throw new Error('emit function is required');\r\n }\r\n if (mousemoveWait !== undefined && sampling.mousemove === undefined) {\r\n sampling.mousemove = mousemoveWait;\r\n }\r\n mirror.reset();\r\n const maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n radio: true,\r\n checkbox: true,\r\n }\r\n : _maskInputOptions !== undefined\r\n ? _maskInputOptions\r\n : {};\r\n const slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === 'all'\r\n ? {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaVerification: true,\r\n headMetaAuthorship: _slimDOMOptions === 'all',\r\n headMetaDescKeywords: _slimDOMOptions === 'all',\r\n }\r\n : _slimDOMOptions\r\n ? _slimDOMOptions\r\n : {};\r\n polyfill();\r\n let lastFullSnapshotEvent;\r\n let incrementalSnapshotCount = 0;\r\n const eventProcessor = (e) => {\r\n for (const plugin of plugins || []) {\r\n if (plugin.eventProcessor) {\r\n e = plugin.eventProcessor(e);\r\n }\r\n }\r\n if (packFn &&\r\n !passEmitsToParent) {\r\n e = packFn(e);\r\n }\r\n return e;\r\n };\r\n wrappedEmit = (r, isCheckout) => {\r\n const e = r;\r\n e.timestamp = nowTimestamp();\r\n if (mutationBuffers[0]?.isFrozen() &&\r\n e.type !== EventType.FullSnapshot &&\r\n !(e.type === EventType.IncrementalSnapshot &&\r\n e.data.source === IncrementalSource.Mutation)) {\r\n mutationBuffers.forEach((buf) => buf.unfreeze());\r\n }\r\n if (inEmittingFrame) {\r\n emit?.(eventProcessor(e), isCheckout);\r\n }\r\n else if (passEmitsToParent) {\r\n const message = {\r\n type: 'rrweb',\r\n event: eventProcessor(e),\r\n origin: window.location.origin,\r\n isCheckout,\r\n };\r\n window.parent.postMessage(message, '*');\r\n }\r\n if (e.type === EventType.FullSnapshot) {\r\n lastFullSnapshotEvent = e;\r\n incrementalSnapshotCount = 0;\r\n }\r\n else if (e.type === EventType.IncrementalSnapshot) {\r\n if (e.data.source === IncrementalSource.Mutation &&\r\n e.data.isAttachIframe) {\r\n return;\r\n }\r\n incrementalSnapshotCount++;\r\n const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\r\n const exceedTime = checkoutEveryNms &&\r\n lastFullSnapshotEvent &&\r\n e.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\r\n if (exceedCount || exceedTime) {\r\n takeFullSnapshot(true);\r\n }\r\n }\r\n };\r\n _wrappedEmit = wrappedEmit;\r\n const wrappedMutationEmit = (m) => {\r\n wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.Mutation,\r\n ...m,\r\n },\r\n });\r\n };\r\n const wrappedScrollEmit = (p) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.Scroll,\r\n ...p,\r\n },\r\n });\r\n const wrappedCanvasMutationEmit = (p) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.CanvasMutation,\r\n ...p,\r\n },\r\n });\r\n const wrappedAdoptedStyleSheetEmit = (a) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.AdoptedStyleSheet,\r\n ...a,\r\n },\r\n });\r\n const stylesheetManager = new StylesheetManager({\r\n mutationCb: wrappedMutationEmit,\r\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit,\r\n });\r\n const iframeManager = typeof __RRWEB_EXCLUDE_IFRAME__ === 'boolean' && __RRWEB_EXCLUDE_IFRAME__\r\n ? new IframeManagerNoop()\r\n : new IframeManager({\r\n mirror,\r\n mutationCb: wrappedMutationEmit,\r\n stylesheetManager: stylesheetManager,\r\n recordCrossOriginIframes,\r\n wrappedEmit,\r\n });\r\n for (const plugin of plugins || []) {\r\n if (plugin.getMirror)\r\n plugin.getMirror({\r\n nodeMirror: mirror,\r\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\r\n crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror,\r\n });\r\n }\r\n const processedNodeManager = new ProcessedNodeManager();\r\n const canvasManager = _getCanvasManager(getCanvasManager, {\r\n mirror,\r\n win: window,\r\n mutationCb: (p) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.CanvasMutation,\r\n ...p,\r\n },\r\n }),\r\n recordCanvas,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maxCanvasSize,\r\n sampling: sampling['canvas'],\r\n dataURLOptions,\r\n errorHandler,\r\n });\r\n const shadowDomManager = typeof __RRWEB_EXCLUDE_SHADOW_DOM__ === 'boolean' &&\r\n __RRWEB_EXCLUDE_SHADOW_DOM__\r\n ? new ShadowDomManagerNoop()\r\n : new ShadowDomManager({\r\n mutationCb: wrappedMutationEmit,\r\n scrollCb: wrappedScrollEmit,\r\n bypassOptions: {\r\n onMutation,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n dataURLOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n recordCanvas,\r\n inlineImages,\r\n sampling,\r\n slimDOMOptions,\r\n iframeManager,\r\n stylesheetManager,\r\n canvasManager,\r\n keepIframeSrcFn,\r\n processedNodeManager,\r\n },\r\n mirror,\r\n });\r\n const takeFullSnapshot = (isCheckout = false) => {\r\n wrappedEmit({\r\n type: EventType.Meta,\r\n data: {\r\n href: window.location.href,\r\n width: getWindowWidth(),\r\n height: getWindowHeight(),\r\n },\r\n }, isCheckout);\r\n stylesheetManager.reset();\r\n shadowDomManager.init();\r\n mutationBuffers.forEach((buf) => buf.lock());\r\n const node = snapshot(document, {\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n inlineStylesheet,\r\n maskAllInputs: maskInputOptions,\r\n maskAttributeFn,\r\n maskInputFn,\r\n maskTextFn,\r\n slimDOM: slimDOMOptions,\r\n dataURLOptions,\r\n recordCanvas,\r\n inlineImages,\r\n onSerialize: (n) => {\r\n if (isSerializedIframe(n, mirror)) {\r\n iframeManager.addIframe(n);\r\n }\r\n if (isSerializedStylesheet(n, mirror)) {\r\n stylesheetManager.trackLinkElement(n);\r\n }\r\n if (hasShadowRoot(n)) {\r\n shadowDomManager.addShadowRoot(n.shadowRoot, document);\r\n }\r\n },\r\n onIframeLoad: (iframe, childSn) => {\r\n iframeManager.attachIframe(iframe, childSn);\r\n shadowDomManager.observeAttachShadow(iframe);\r\n },\r\n onStylesheetLoad: (linkEl, childSn) => {\r\n stylesheetManager.attachLinkElement(linkEl, childSn);\r\n },\r\n keepIframeSrcFn,\r\n });\r\n if (!node) {\r\n return console.warn('Failed to snapshot the document');\r\n }\r\n wrappedEmit({\r\n type: EventType.FullSnapshot,\r\n data: {\r\n node,\r\n initialOffset: getWindowScroll(window),\r\n },\r\n });\r\n mutationBuffers.forEach((buf) => buf.unlock());\r\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\r\n stylesheetManager.adoptStyleSheets(document.adoptedStyleSheets, mirror.getId(document));\r\n };\r\n _takeFullSnapshot = takeFullSnapshot;\r\n try {\r\n const handlers = [];\r\n const observe = (doc) => {\r\n return callbackWrapper(initObservers)({\r\n onMutation,\r\n mutationCb: wrappedMutationEmit,\r\n mousemoveCb: (positions, source) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source,\r\n positions,\r\n },\r\n }),\r\n mouseInteractionCb: (d) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.MouseInteraction,\r\n ...d,\r\n },\r\n }),\r\n scrollCb: wrappedScrollEmit,\r\n viewportResizeCb: (d) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.ViewportResize,\r\n ...d,\r\n },\r\n }),\r\n inputCb: (v) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.Input,\r\n ...v,\r\n },\r\n }),\r\n mediaInteractionCb: (p) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.MediaInteraction,\r\n ...p,\r\n },\r\n }),\r\n styleSheetRuleCb: (r) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.StyleSheetRule,\r\n ...r,\r\n },\r\n }),\r\n styleDeclarationCb: (r) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.StyleDeclaration,\r\n ...r,\r\n },\r\n }),\r\n canvasMutationCb: wrappedCanvasMutationEmit,\r\n fontCb: (p) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.Font,\r\n ...p,\r\n },\r\n }),\r\n selectionCb: (p) => {\r\n wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.Selection,\r\n ...p,\r\n },\r\n });\r\n },\r\n customElementCb: (c) => {\r\n wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.CustomElement,\r\n ...c,\r\n },\r\n });\r\n },\r\n blockClass,\r\n ignoreClass,\r\n ignoreSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n maskInputOptions,\r\n inlineStylesheet,\r\n sampling,\r\n recordCanvas,\r\n inlineImages,\r\n userTriggeredOnInput,\r\n collectFonts,\r\n doc,\r\n maskAttributeFn,\r\n maskInputFn,\r\n maskTextFn,\r\n keepIframeSrcFn,\r\n blockSelector,\r\n unblockSelector,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n mirror,\r\n iframeManager,\r\n stylesheetManager,\r\n shadowDomManager,\r\n processedNodeManager,\r\n canvasManager,\r\n ignoreCSSAttributes,\r\n plugins: plugins\r\n ?.filter((p) => p.observer)\r\n ?.map((p) => ({\r\n observer: p.observer,\r\n options: p.options,\r\n callback: (payload) => wrappedEmit({\r\n type: EventType.Plugin,\r\n data: {\r\n plugin: p.name,\r\n payload,\r\n },\r\n }),\r\n })) || [],\r\n }, {});\r\n };\r\n iframeManager.addLoadListener((iframeEl) => {\r\n try {\r\n handlers.push(observe(iframeEl.contentDocument));\r\n }\r\n catch (error) {\r\n console.warn(error);\r\n }\r\n });\r\n const init = () => {\r\n takeFullSnapshot();\r\n handlers.push(observe(document));\r\n };\r\n if (document.readyState === 'interactive' ||\r\n document.readyState === 'complete') {\r\n init();\r\n }\r\n else {\r\n handlers.push(on('DOMContentLoaded', () => {\r\n wrappedEmit({\r\n type: EventType.DomContentLoaded,\r\n data: {},\r\n });\r\n if (recordAfter === 'DOMContentLoaded')\r\n init();\r\n }));\r\n handlers.push(on('load', () => {\r\n wrappedEmit({\r\n type: EventType.Load,\r\n data: {},\r\n });\r\n if (recordAfter === 'load')\r\n init();\r\n }, window));\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n processedNodeManager.destroy();\r\n _takeFullSnapshot = undefined;\r\n unregisterErrorHandler();\r\n };\r\n }\r\n catch (error) {\r\n console.warn(error);\r\n }\r\n}\r\nfunction addCustomEvent(tag, payload) {\r\n if (!_wrappedEmit) {\r\n throw new Error('please add custom event after start recording');\r\n }\r\n wrappedEmit({\r\n type: EventType.Custom,\r\n data: {\r\n tag,\r\n payload,\r\n },\r\n });\r\n}\r\nfunction freezePage() {\r\n mutationBuffers.forEach((buf) => buf.freeze());\r\n}\r\nfunction takeFullSnapshot(isCheckout) {\r\n if (!_takeFullSnapshot) {\r\n throw new Error('please take full snapshot after start recording');\r\n }\r\n _takeFullSnapshot(isCheckout);\r\n}\r\nrecord.mirror = mirror;\r\nrecord.takeFullSnapshot = takeFullSnapshot;\r\nfunction _getCanvasManager(getCanvasManagerFn, options) {\r\n try {\r\n return getCanvasManagerFn\r\n ? getCanvasManagerFn(options)\r\n : new CanvasManagerNoop();\r\n }\r\n catch {\r\n console.warn('Unable to initialize CanvasManager');\r\n return new CanvasManagerNoop();\r\n }\r\n}\n\nexport { addCustomEvent, record as default, freezePage, mirror, takeFullSnapshot };\n","/**\n * Converts a timestamp to ms, if it was in s, or keeps it as ms.\n */\nexport function timestampToMs(timestamp: number): number {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp : timestamp * 1000;\n}\n\n/**\n * Converts a timestamp to s, if it was in ms, or keeps it as s.\n */\nexport function timestampToS(timestamp: number): number {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp / 1000 : timestamp;\n}\n","import { EventType } from '@sentry-internal/rrweb';\nimport type { Breadcrumb } from '@sentry/types';\nimport { normalize } from '@sentry/utils';\n\nimport type { ReplayContainer } from '../../types';\n\n/**\n * Add a breadcrumb event to replay.\n */\nexport function addBreadcrumbEvent(replay: ReplayContainer, breadcrumb: Breadcrumb): void {\n if (breadcrumb.category === 'sentry.transaction') {\n return;\n }\n\n if (['ui.click', 'ui.input'].includes(breadcrumb.category as string)) {\n replay.triggerUserActivity();\n } else {\n replay.checkAndHandleExpiredSession();\n }\n\n replay.addUpdate(() => {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.throttledAddEvent({\n type: EventType.Custom,\n // TODO: We were converting from ms to seconds for breadcrumbs, spans,\n // but maybe we should just keep them as milliseconds\n timestamp: (breadcrumb.timestamp || 0) * 1000,\n data: {\n tag: 'breadcrumb',\n // normalize to max. 10 depth and 1_000 properties per object\n payload: normalize(breadcrumb, 10, 1_000),\n },\n });\n\n // Do not flush after console log messages\n return breadcrumb.category === 'console';\n });\n}\n","import type { INode } from '@sentry-internal/rrweb-snapshot';\n\nconst INTERACTIVE_SELECTOR = 'button,a';\n\n/** Get the closest interactive parent element, or else return the given element. */\nexport function getClosestInteractive(element: Element): Element {\n const closestInteractive = element.closest(INTERACTIVE_SELECTOR);\n return closestInteractive || element;\n}\n\n/**\n * For clicks, we check if the target is inside of a button or link\n * If so, we use this as the target instead\n * This is useful because if you click on the image in ,\n * The target will be the image, not the button, which we don't want here\n */\nexport function getClickTargetNode(event: Event | MouseEvent | Node): Node | INode | null {\n const target = getTargetNode(event);\n\n if (!target || !(target instanceof Element)) {\n return target;\n }\n\n return getClosestInteractive(target);\n}\n\n/** Get the event target node. */\nexport function getTargetNode(event: Node | { target: EventTarget | null }): Node | INode | null {\n if (isEventWithTarget(event)) {\n return event.target as Node | null;\n }\n\n return event;\n}\n\nfunction isEventWithTarget(event: unknown): event is { target: EventTarget | null } {\n return typeof event === 'object' && !!event && 'target' in event;\n}\n","import { fill } from '@sentry/utils';\n\nimport { WINDOW } from '../../constants';\n\ntype WindowOpenHandler = () => void;\n\nlet handlers: undefined | WindowOpenHandler[];\n\n/**\n * Register a handler to be called when `window.open()` is called.\n * Returns a cleanup function.\n */\nexport function onWindowOpen(cb: WindowOpenHandler): () => void {\n // Ensure to only register this once\n if (!handlers) {\n handlers = [];\n monkeyPatchWindowOpen();\n }\n\n handlers.push(cb);\n\n return () => {\n const pos = handlers ? handlers.indexOf(cb) : -1;\n if (pos > -1) {\n (handlers as WindowOpenHandler[]).splice(pos, 1);\n }\n };\n}\n\nfunction monkeyPatchWindowOpen(): void {\n fill(WINDOW, 'open', function (originalWindowOpen: () => void): () => void {\n return function (...args: unknown[]): void {\n if (handlers) {\n try {\n handlers.forEach(handler => handler());\n } catch (e) {\n // ignore errors in here\n }\n }\n\n return originalWindowOpen.apply(WINDOW, args);\n };\n });\n}\n","import { IncrementalSource, MouseInteractions, record } from '@sentry-internal/rrweb';\nimport type { Breadcrumb } from '@sentry/types';\n\nimport { WINDOW } from '../constants';\nimport type {\n RecordingEvent,\n ReplayClickDetector,\n ReplayContainer,\n ReplayMultiClickFrame,\n ReplaySlowClickFrame,\n SlowClickConfig,\n} from '../types';\nimport { ReplayEventTypeIncrementalSnapshot } from '../types';\nimport { timestampToS } from '../util/timestamp';\nimport { addBreadcrumbEvent } from './util/addBreadcrumbEvent';\nimport { getClosestInteractive } from './util/domUtils';\nimport { onWindowOpen } from './util/onWindowOpen';\n\ntype ClickBreadcrumb = Breadcrumb & {\n timestamp: number;\n};\n\ninterface Click {\n timestamp: number;\n mutationAfter?: number;\n scrollAfter?: number;\n clickBreadcrumb: ClickBreadcrumb;\n clickCount: number;\n node: HTMLElement;\n}\n\ntype IncrementalRecordingEvent = RecordingEvent & {\n type: typeof ReplayEventTypeIncrementalSnapshot;\n data: { source: IncrementalSource };\n};\n\ntype IncrementalMouseInteractionRecordingEvent = IncrementalRecordingEvent & {\n type: typeof ReplayEventTypeIncrementalSnapshot;\n data: { type: MouseInteractions; id: number };\n};\n\n/** Handle a click. */\nexport function handleClick(clickDetector: ReplayClickDetector, clickBreadcrumb: Breadcrumb, node: HTMLElement): void {\n clickDetector.handleClick(clickBreadcrumb, node);\n}\n\n/** A click detector class that can be used to detect slow or rage clicks on elements. */\nexport class ClickDetector implements ReplayClickDetector {\n // protected for testing\n protected _lastMutation: number;\n protected _lastScroll: number;\n\n private _clicks: Click[];\n private _teardown: undefined | (() => void);\n\n private _threshold: number;\n private _scollTimeout: number;\n private _timeout: number;\n private _ignoreSelector: string;\n\n private _replay: ReplayContainer;\n private _checkClickTimeout?: ReturnType;\n private _addBreadcrumbEvent: typeof addBreadcrumbEvent;\n\n public constructor(\n replay: ReplayContainer,\n slowClickConfig: SlowClickConfig,\n // Just for easier testing\n _addBreadcrumbEvent = addBreadcrumbEvent,\n ) {\n this._lastMutation = 0;\n this._lastScroll = 0;\n this._clicks = [];\n\n // We want everything in s, but options are in ms\n this._timeout = slowClickConfig.timeout / 1000;\n this._threshold = slowClickConfig.threshold / 1000;\n this._scollTimeout = slowClickConfig.scrollTimeout / 1000;\n this._replay = replay;\n this._ignoreSelector = slowClickConfig.ignoreSelector;\n this._addBreadcrumbEvent = _addBreadcrumbEvent;\n }\n\n /** Register click detection handlers on mutation or scroll. */\n public addListeners(): void {\n const cleanupWindowOpen = onWindowOpen(() => {\n // Treat window.open as mutation\n this._lastMutation = nowInSeconds();\n });\n\n this._teardown = () => {\n cleanupWindowOpen();\n\n this._clicks = [];\n this._lastMutation = 0;\n this._lastScroll = 0;\n };\n }\n\n /** Clean up listeners. */\n public removeListeners(): void {\n if (this._teardown) {\n this._teardown();\n }\n\n if (this._checkClickTimeout) {\n clearTimeout(this._checkClickTimeout);\n }\n }\n\n /** @inheritDoc */\n public handleClick(breadcrumb: Breadcrumb, node: HTMLElement): void {\n if (ignoreElement(node, this._ignoreSelector) || !isClickBreadcrumb(breadcrumb)) {\n return;\n }\n\n const newClick: Click = {\n timestamp: timestampToS(breadcrumb.timestamp),\n clickBreadcrumb: breadcrumb,\n // Set this to 0 so we know it originates from the click breadcrumb\n clickCount: 0,\n node,\n };\n\n // If there was a click in the last 1s on the same element, ignore it - only keep a single reference per second\n if (\n this._clicks.some(click => click.node === newClick.node && Math.abs(click.timestamp - newClick.timestamp) < 1)\n ) {\n return;\n }\n\n this._clicks.push(newClick);\n\n // If this is the first new click, set a timeout to check for multi clicks\n if (this._clicks.length === 1) {\n this._scheduleCheckClicks();\n }\n }\n\n /** @inheritDoc */\n public registerMutation(timestamp = Date.now()): void {\n this._lastMutation = timestampToS(timestamp);\n }\n\n /** @inheritDoc */\n public registerScroll(timestamp = Date.now()): void {\n this._lastScroll = timestampToS(timestamp);\n }\n\n /** @inheritDoc */\n public registerClick(element: HTMLElement): void {\n const node = getClosestInteractive(element);\n this._handleMultiClick(node as HTMLElement);\n }\n\n /** Count multiple clicks on elements. */\n private _handleMultiClick(node: HTMLElement): void {\n this._getClicks(node).forEach(click => {\n click.clickCount++;\n });\n }\n\n /** Get all pending clicks for a given node. */\n private _getClicks(node: HTMLElement): Click[] {\n return this._clicks.filter(click => click.node === node);\n }\n\n /** Check the clicks that happened. */\n private _checkClicks(): void {\n const timedOutClicks: Click[] = [];\n\n const now = nowInSeconds();\n\n this._clicks.forEach(click => {\n if (!click.mutationAfter && this._lastMutation) {\n click.mutationAfter = click.timestamp <= this._lastMutation ? this._lastMutation - click.timestamp : undefined;\n }\n if (!click.scrollAfter && this._lastScroll) {\n click.scrollAfter = click.timestamp <= this._lastScroll ? this._lastScroll - click.timestamp : undefined;\n }\n\n // All of these are in seconds!\n if (click.timestamp + this._timeout <= now) {\n timedOutClicks.push(click);\n }\n });\n\n // Remove \"old\" clicks\n for (const click of timedOutClicks) {\n const pos = this._clicks.indexOf(click);\n\n if (pos > -1) {\n this._generateBreadcrumbs(click);\n this._clicks.splice(pos, 1);\n }\n }\n\n // Trigger new check, unless no clicks left\n if (this._clicks.length) {\n this._scheduleCheckClicks();\n }\n }\n\n /** Generate matching breadcrumb(s) for the click. */\n private _generateBreadcrumbs(click: Click): void {\n const replay = this._replay;\n const hadScroll = click.scrollAfter && click.scrollAfter <= this._scollTimeout;\n const hadMutation = click.mutationAfter && click.mutationAfter <= this._threshold;\n\n const isSlowClick = !hadScroll && !hadMutation;\n const { clickCount, clickBreadcrumb } = click;\n\n // Slow click\n if (isSlowClick) {\n // If `mutationAfter` is set, it means a mutation happened after the threshold, but before the timeout\n // If not, it means we just timed out without scroll & mutation\n const timeAfterClickMs = Math.min(click.mutationAfter || this._timeout, this._timeout) * 1000;\n const endReason = timeAfterClickMs < this._timeout * 1000 ? 'mutation' : 'timeout';\n\n const breadcrumb: ReplaySlowClickFrame = {\n type: 'default',\n message: clickBreadcrumb.message,\n timestamp: clickBreadcrumb.timestamp,\n category: 'ui.slowClickDetected',\n data: {\n ...clickBreadcrumb.data,\n url: WINDOW.location.href,\n route: replay.getCurrentRoute(),\n timeAfterClickMs,\n endReason,\n // If clickCount === 0, it means multiClick was not correctly captured here\n // - we still want to send 1 in this case\n clickCount: clickCount || 1,\n },\n };\n\n this._addBreadcrumbEvent(replay, breadcrumb);\n return;\n }\n\n // Multi click\n if (clickCount > 1) {\n const breadcrumb: ReplayMultiClickFrame = {\n type: 'default',\n message: clickBreadcrumb.message,\n timestamp: clickBreadcrumb.timestamp,\n category: 'ui.multiClick',\n data: {\n ...clickBreadcrumb.data,\n url: WINDOW.location.href,\n route: replay.getCurrentRoute(),\n clickCount,\n metric: true,\n },\n };\n\n this._addBreadcrumbEvent(replay, breadcrumb);\n }\n }\n\n /** Schedule to check current clicks. */\n private _scheduleCheckClicks(): void {\n if (this._checkClickTimeout) {\n clearTimeout(this._checkClickTimeout);\n }\n\n this._checkClickTimeout = setTimeout(() => this._checkClicks(), 1000);\n }\n}\n\nconst SLOW_CLICK_TAGS = ['A', 'BUTTON', 'INPUT'];\n\n/** exported for tests only */\nexport function ignoreElement(node: HTMLElement, ignoreSelector: string): boolean {\n if (!SLOW_CLICK_TAGS.includes(node.tagName)) {\n return true;\n }\n\n // If tag, we only want to consider input[type='submit'] & input[type='button']\n if (node.tagName === 'INPUT' && !['submit', 'button'].includes(node.getAttribute('type') || '')) {\n return true;\n }\n\n // If tag, detect special variants that may not lead to an action\n // If target !== _self, we may open the link somewhere else, which would lead to no action\n // Also, when downloading a file, we may not leave the page, but still not trigger an action\n if (\n node.tagName === 'A' &&\n (node.hasAttribute('download') || (node.hasAttribute('target') && node.getAttribute('target') !== '_self'))\n ) {\n return true;\n }\n\n if (ignoreSelector && node.matches(ignoreSelector)) {\n return true;\n }\n\n return false;\n}\n\nfunction isClickBreadcrumb(breadcrumb: Breadcrumb): breadcrumb is ClickBreadcrumb {\n return !!(breadcrumb.data && typeof breadcrumb.data.nodeId === 'number' && breadcrumb.timestamp);\n}\n\n// This is good enough for us, and is easier to test/mock than `timestampInSeconds`\nfunction nowInSeconds(): number {\n return Date.now() / 1000;\n}\n\n/** Update the click detector based on a recording event of rrweb. */\nexport function updateClickDetectorForRecordingEvent(clickDetector: ReplayClickDetector, event: RecordingEvent): void {\n try {\n // note: We only consider incremental snapshots here\n // This means that any full snapshot is ignored for mutation detection - the reason is that we simply cannot know if a mutation happened here.\n // E.g. think that we are buffering, an error happens and we take a full snapshot because we switched to session mode -\n // in this scenario, we would not know if a dead click happened because of the error, which is a key dead click scenario.\n // Instead, by ignoring full snapshots, we have the risk that we generate a false positive\n // (if a mutation _did_ happen but was \"swallowed\" by the full snapshot)\n // But this should be more unlikely as we'd generally capture the incremental snapshot right away\n\n if (!isIncrementalEvent(event)) {\n return;\n }\n\n const { source } = event.data;\n if (source === IncrementalSource.Mutation) {\n clickDetector.registerMutation(event.timestamp);\n }\n\n if (source === IncrementalSource.Scroll) {\n clickDetector.registerScroll(event.timestamp);\n }\n\n if (isIncrementalMouseInteraction(event)) {\n const { type, id } = event.data;\n const node = record.mirror.getNode(id);\n\n if (node instanceof HTMLElement && type === MouseInteractions.Click) {\n clickDetector.registerClick(node);\n }\n }\n } catch {\n // ignore errors here, e.g. if accessing something that does not exist\n }\n}\n\nfunction isIncrementalEvent(event: RecordingEvent): event is IncrementalRecordingEvent {\n return event.type === ReplayEventTypeIncrementalSnapshot;\n}\n\nfunction isIncrementalMouseInteraction(\n event: IncrementalRecordingEvent,\n): event is IncrementalMouseInteractionRecordingEvent {\n return event.data.source === IncrementalSource.MouseInteraction;\n}\n","type ClassOption = string | RegExp;\n\n/** Duplicate this from @sentry-internal/rrweb so we can export this as well. */\nexport const ReplayEventTypeDomContentLoaded = 0;\nexport const ReplayEventTypeLoad = 1;\nexport const ReplayEventTypeFullSnapshot = 2;\nexport const ReplayEventTypeIncrementalSnapshot = 3;\nexport const ReplayEventTypeMeta = 4;\nexport const ReplayEventTypeCustom = 5;\nexport const ReplayEventTypePlugin = 6;\n\nexport type ReplayEventType =\n | typeof ReplayEventTypeDomContentLoaded\n | typeof ReplayEventTypeLoad\n | typeof ReplayEventTypeFullSnapshot\n | typeof ReplayEventTypeIncrementalSnapshot\n | typeof ReplayEventTypeMeta\n | typeof ReplayEventTypeCustom\n | typeof ReplayEventTypePlugin;\n\n/**\n * This is a partial copy of rrweb's eventWithTime type which only contains the properties\n * we specifcally need in the SDK.\n */\nexport type ReplayEventWithTime = {\n type: ReplayEventType;\n data: unknown;\n timestamp: number;\n delay?: number;\n};\n\n/**\n * This is a partial copy of rrweb's recording options which only contains the properties\n * we specifically us in the SDK. Users can specify additional properties, hence we add the\n * Record union type.\n */\nexport type RrwebRecordOptions = {\n maskAllText?: boolean;\n maskAllInputs?: boolean;\n blockClass?: ClassOption;\n ignoreClass?: string;\n maskTextClass?: ClassOption;\n maskTextSelector?: string;\n blockSelector?: string;\n maskInputOptions?: Record;\n} & Record;\n\nexport interface CanvasManagerInterface {\n reset(): void;\n freeze(): void;\n unfreeze(): void;\n lock(): void;\n unlock(): void;\n snapshot(): void;\n}\n\nexport interface CanvasManagerOptions {\n recordCanvas: boolean;\n enableManualSnapshot?: boolean;\n blockClass: string | RegExp;\n blockSelector: string | null;\n unblockSelector: string | null;\n sampling?: 'all' | number;\n dataURLOptions: Partial<{\n type: string;\n quality: number;\n }>;\n mutationCb: (p: any) => void;\n win: typeof globalThis & Window;\n mirror: any;\n}\n","import type { ReplayBreadcrumbFrame } from '../types/replayFrame';\n\n/**\n * Create a breadcrumb for a replay.\n */\nexport function createBreadcrumb(\n breadcrumb: Omit & Partial>,\n): ReplayBreadcrumbFrame {\n return {\n timestamp: Date.now() / 1000,\n type: 'default',\n ...breadcrumb,\n };\n}\n","var NodeType;\r\n(function (NodeType) {\r\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\r\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\r\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\r\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\r\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\r\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\r\n})(NodeType || (NodeType = {}));\n\nfunction isElement(n) {\r\n return n.nodeType === n.ELEMENT_NODE;\r\n}\r\nfunction isShadowRoot(n) {\r\n const host = n?.host;\r\n return Boolean(host?.shadowRoot === n);\r\n}\r\nfunction isNativeShadowDom(shadowRoot) {\r\n return Object.prototype.toString.call(shadowRoot) === '[object ShadowRoot]';\r\n}\r\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\r\n if (cssText.includes(' background-clip: text;') &&\r\n !cssText.includes(' -webkit-background-clip: text;')) {\r\n cssText = cssText.replace(' background-clip: text;', ' -webkit-background-clip: text; background-clip: text;');\r\n }\r\n return cssText;\r\n}\r\nfunction escapeImportStatement(rule) {\r\n const { cssText } = rule;\r\n if (cssText.split('\"').length < 3)\r\n return cssText;\r\n const statement = ['@import', `url(${JSON.stringify(rule.href)})`];\r\n if (rule.layerName === '') {\r\n statement.push(`layer`);\r\n }\r\n else if (rule.layerName) {\r\n statement.push(`layer(${rule.layerName})`);\r\n }\r\n if (rule.supportsText) {\r\n statement.push(`supports(${rule.supportsText})`);\r\n }\r\n if (rule.media.length) {\r\n statement.push(rule.media.mediaText);\r\n }\r\n return statement.join(' ') + ';';\r\n}\r\nfunction stringifyStylesheet(s) {\r\n try {\r\n const rules = s.rules || s.cssRules;\r\n return rules\r\n ? fixBrowserCompatibilityIssuesInCSS(Array.from(rules, stringifyRule).join(''))\r\n : null;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n}\r\nfunction stringifyRule(rule) {\r\n let importStringified;\r\n if (isCSSImportRule(rule)) {\r\n try {\r\n importStringified =\r\n stringifyStylesheet(rule.styleSheet) ||\r\n escapeImportStatement(rule);\r\n }\r\n catch (error) {\r\n }\r\n }\r\n else if (isCSSStyleRule(rule) && rule.selectorText.includes(':')) {\r\n return fixSafariColons(rule.cssText);\r\n }\r\n return importStringified || rule.cssText;\r\n}\r\nfunction fixSafariColons(cssStringified) {\r\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\r\n return cssStringified.replace(regex, '$1\\\\$2');\r\n}\r\nfunction isCSSImportRule(rule) {\r\n return 'styleSheet' in rule;\r\n}\r\nfunction isCSSStyleRule(rule) {\r\n return 'selectorText' in rule;\r\n}\r\nclass Mirror {\r\n constructor() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n getId(n) {\r\n if (!n)\r\n return -1;\r\n const id = this.getMeta(n)?.id;\r\n return id ?? -1;\r\n }\r\n getNode(id) {\r\n return this.idNodeMap.get(id) || null;\r\n }\r\n getIds() {\r\n return Array.from(this.idNodeMap.keys());\r\n }\r\n getMeta(n) {\r\n return this.nodeMetaMap.get(n) || null;\r\n }\r\n removeNodeFromMap(n) {\r\n const id = this.getId(n);\r\n this.idNodeMap.delete(id);\r\n if (n.childNodes) {\r\n n.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\r\n }\r\n }\r\n has(id) {\r\n return this.idNodeMap.has(id);\r\n }\r\n hasNode(node) {\r\n return this.nodeMetaMap.has(node);\r\n }\r\n add(n, meta) {\r\n const id = meta.id;\r\n this.idNodeMap.set(id, n);\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n replace(id, n) {\r\n const oldNode = this.getNode(id);\r\n if (oldNode) {\r\n const meta = this.nodeMetaMap.get(oldNode);\r\n if (meta)\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n this.idNodeMap.set(id, n);\r\n }\r\n reset() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n}\r\nfunction createMirror() {\r\n return new Mirror();\r\n}\r\nfunction shouldMaskInput({ maskInputOptions, tagName, type, }) {\r\n if (tagName === 'OPTION') {\r\n tagName = 'SELECT';\r\n }\r\n return Boolean(maskInputOptions[tagName.toLowerCase()] ||\r\n (type && maskInputOptions[type]) ||\r\n type === 'password' ||\r\n (tagName === 'INPUT' && !type && maskInputOptions['text']));\r\n}\r\nfunction maskInputValue({ isMasked, element, value, maskInputFn, }) {\r\n let text = value || '';\r\n if (!isMasked) {\r\n return text;\r\n }\r\n if (maskInputFn) {\r\n text = maskInputFn(text, element);\r\n }\r\n return '*'.repeat(text.length);\r\n}\r\nfunction toLowerCase(str) {\r\n return str.toLowerCase();\r\n}\r\nfunction toUpperCase(str) {\r\n return str.toUpperCase();\r\n}\r\nconst ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';\r\nfunction is2DCanvasBlank(canvas) {\r\n const ctx = canvas.getContext('2d');\r\n if (!ctx)\r\n return true;\r\n const chunkSize = 50;\r\n for (let x = 0; x < canvas.width; x += chunkSize) {\r\n for (let y = 0; y < canvas.height; y += chunkSize) {\r\n const getImageData = ctx.getImageData;\r\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData\r\n ? getImageData[ORIGINAL_ATTRIBUTE_NAME]\r\n : getImageData;\r\n const pixelBuffer = new Uint32Array(originalGetImageData.call(ctx, x, y, Math.min(chunkSize, canvas.width - x), Math.min(chunkSize, canvas.height - y)).data.buffer);\r\n if (pixelBuffer.some((pixel) => pixel !== 0))\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction isNodeMetaEqual(a, b) {\r\n if (!a || !b || a.type !== b.type)\r\n return false;\r\n if (a.type === NodeType.Document)\r\n return a.compatMode === b.compatMode;\r\n else if (a.type === NodeType.DocumentType)\r\n return (a.name === b.name &&\r\n a.publicId === b.publicId &&\r\n a.systemId === b.systemId);\r\n else if (a.type === NodeType.Comment ||\r\n a.type === NodeType.Text ||\r\n a.type === NodeType.CDATA)\r\n return a.textContent === b.textContent;\r\n else if (a.type === NodeType.Element)\r\n return (a.tagName === b.tagName &&\r\n JSON.stringify(a.attributes) ===\r\n JSON.stringify(b.attributes) &&\r\n a.isSVG === b.isSVG &&\r\n a.needBlock === b.needBlock);\r\n return false;\r\n}\r\nfunction getInputType(element) {\r\n const type = element.type;\r\n return element.hasAttribute('data-rr-is-password')\r\n ? 'password'\r\n : type\r\n ?\r\n toLowerCase(type)\r\n : null;\r\n}\r\nfunction getInputValue(el, tagName, type) {\r\n if (tagName === 'INPUT' && (type === 'radio' || type === 'checkbox')) {\r\n return el.getAttribute('value') || '';\r\n }\r\n return el.value;\r\n}\n\nlet _id = 1;\r\nconst tagNameRegex = new RegExp('[^a-z0-9-_:]');\r\nconst IGNORED_NODE = -2;\r\nfunction genId() {\r\n return _id++;\r\n}\r\nfunction getValidTagName(element) {\r\n if (element instanceof HTMLFormElement) {\r\n return 'form';\r\n }\r\n const processedTagName = toLowerCase(element.tagName);\r\n if (tagNameRegex.test(processedTagName)) {\r\n return 'div';\r\n }\r\n return processedTagName;\r\n}\r\nfunction extractOrigin(url) {\r\n let origin = '';\r\n if (url.indexOf('//') > -1) {\r\n origin = url.split('/').slice(0, 3).join('/');\r\n }\r\n else {\r\n origin = url.split('/')[0];\r\n }\r\n origin = origin.split('?')[0];\r\n return origin;\r\n}\r\nlet canvasService;\r\nlet canvasCtx;\r\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\r\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\r\nconst URL_WWW_MATCH = /^www\\..*/i;\r\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\r\nfunction absoluteToStylesheet(cssText, href) {\r\n return (cssText || '').replace(URL_IN_CSS_REF, (origin, quote1, path1, quote2, path2, path3) => {\r\n const filePath = path1 || path2 || path3;\r\n const maybeQuote = quote1 || quote2 || '';\r\n if (!filePath) {\r\n return origin;\r\n }\r\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (DATA_URI.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (filePath[0] === '/') {\r\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\r\n }\r\n const stack = href.split('/');\r\n const parts = filePath.split('/');\r\n stack.pop();\r\n for (const part of parts) {\r\n if (part === '.') {\r\n continue;\r\n }\r\n else if (part === '..') {\r\n stack.pop();\r\n }\r\n else {\r\n stack.push(part);\r\n }\r\n }\r\n return `url(${maybeQuote}${stack.join('/')}${maybeQuote})`;\r\n });\r\n}\r\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\r\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\r\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\r\n if (attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n let pos = 0;\r\n function collectCharacters(regEx) {\r\n let chars;\r\n const match = regEx.exec(attributeValue.substring(pos));\r\n if (match) {\r\n chars = match[0];\r\n pos += chars.length;\r\n return chars;\r\n }\r\n return '';\r\n }\r\n const output = [];\r\n while (true) {\r\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\r\n if (pos >= attributeValue.length) {\r\n break;\r\n }\r\n let url = collectCharacters(SRCSET_NOT_SPACES);\r\n if (url.slice(-1) === ',') {\r\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\r\n output.push(url);\r\n }\r\n else {\r\n let descriptorsStr = '';\r\n url = absoluteToDoc(doc, url);\r\n let inParens = false;\r\n while (true) {\r\n const c = attributeValue.charAt(pos);\r\n if (c === '') {\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (!inParens) {\r\n if (c === ',') {\r\n pos += 1;\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (c === '(') {\r\n inParens = true;\r\n }\r\n }\r\n else {\r\n if (c === ')') {\r\n inParens = false;\r\n }\r\n }\r\n descriptorsStr += c;\r\n pos += 1;\r\n }\r\n }\r\n }\r\n return output.join(', ');\r\n}\r\nfunction absoluteToDoc(doc, attributeValue) {\r\n if (!attributeValue || attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n const a = doc.createElement('a');\r\n a.href = attributeValue;\r\n return a.href;\r\n}\r\nfunction isSVGElement(el) {\r\n return Boolean(el.tagName === 'svg' || el.ownerSVGElement);\r\n}\r\nfunction getHref() {\r\n const a = document.createElement('a');\r\n a.href = '';\r\n return a.href;\r\n}\r\nfunction transformAttribute(doc, tagName, name, value, element, maskAttributeFn) {\r\n if (!value) {\r\n return value;\r\n }\r\n if (name === 'src' ||\r\n (name === 'href' && !(tagName === 'use' && value[0] === '#'))) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'xlink:href' && value[0] !== '#') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'background' &&\r\n (tagName === 'table' || tagName === 'td' || tagName === 'th')) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'srcset') {\r\n return getAbsoluteSrcsetString(doc, value);\r\n }\r\n else if (name === 'style') {\r\n return absoluteToStylesheet(value, getHref());\r\n }\r\n else if (tagName === 'object' && name === 'data') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n if (typeof maskAttributeFn === 'function') {\r\n return maskAttributeFn(name, value, element);\r\n }\r\n return value;\r\n}\r\nfunction ignoreAttribute(tagName, name, _value) {\r\n return (tagName === 'video' || tagName === 'audio') && name === 'autoplay';\r\n}\r\nfunction _isBlockedElement(element, blockClass, blockSelector, unblockSelector) {\r\n try {\r\n if (unblockSelector && element.matches(unblockSelector)) {\r\n return false;\r\n }\r\n if (typeof blockClass === 'string') {\r\n if (element.classList.contains(blockClass)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n for (let eIndex = element.classList.length; eIndex--;) {\r\n const className = element.classList[eIndex];\r\n if (blockClass.test(className)) {\r\n return true;\r\n }\r\n }\r\n }\r\n if (blockSelector) {\r\n return element.matches(blockSelector);\r\n }\r\n }\r\n catch (e) {\r\n }\r\n return false;\r\n}\r\nfunction elementClassMatchesRegex(el, regex) {\r\n for (let eIndex = el.classList.length; eIndex--;) {\r\n const className = el.classList[eIndex];\r\n if (regex.test(className)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction classMatchesRegex(node, regex, checkAncestors) {\r\n if (!node)\r\n return false;\r\n if (checkAncestors) {\r\n return (distanceToMatch(node, (node) => elementClassMatchesRegex(node, regex)) >= 0);\r\n }\r\n else if (node.nodeType === node.ELEMENT_NODE) {\r\n return elementClassMatchesRegex(node, regex);\r\n }\r\n return false;\r\n}\r\nfunction distanceToMatch(node, matchPredicate, limit = Infinity, distance = 0) {\r\n if (!node)\r\n return -1;\r\n if (node.nodeType !== node.ELEMENT_NODE)\r\n return -1;\r\n if (distance > limit)\r\n return -1;\r\n if (matchPredicate(node))\r\n return distance;\r\n return distanceToMatch(node.parentNode, matchPredicate, limit, distance + 1);\r\n}\r\nfunction createMatchPredicate(className, selector) {\r\n return (node) => {\r\n const el = node;\r\n if (el === null)\r\n return false;\r\n try {\r\n if (className) {\r\n if (typeof className === 'string') {\r\n if (el.matches(`.${className}`))\r\n return true;\r\n }\r\n else if (elementClassMatchesRegex(el, className)) {\r\n return true;\r\n }\r\n }\r\n if (selector && el.matches(selector))\r\n return true;\r\n return false;\r\n }\r\n catch {\r\n return false;\r\n }\r\n };\r\n}\r\nfunction needMaskingText(node, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, maskAllText) {\r\n try {\r\n const el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n if (el === null)\r\n return false;\r\n if (el.tagName === 'INPUT') {\r\n const autocomplete = el.getAttribute('autocomplete');\r\n const disallowedAutocompleteValues = [\r\n 'current-password',\r\n 'new-password',\r\n 'cc-number',\r\n 'cc-exp',\r\n 'cc-exp-month',\r\n 'cc-exp-year',\r\n 'cc-csc',\r\n ];\r\n if (disallowedAutocompleteValues.includes(autocomplete)) {\r\n return true;\r\n }\r\n }\r\n let maskDistance = -1;\r\n let unmaskDistance = -1;\r\n if (maskAllText) {\r\n unmaskDistance = distanceToMatch(el, createMatchPredicate(unmaskTextClass, unmaskTextSelector));\r\n if (unmaskDistance < 0) {\r\n return true;\r\n }\r\n maskDistance = distanceToMatch(el, createMatchPredicate(maskTextClass, maskTextSelector), unmaskDistance >= 0 ? unmaskDistance : Infinity);\r\n }\r\n else {\r\n maskDistance = distanceToMatch(el, createMatchPredicate(maskTextClass, maskTextSelector));\r\n if (maskDistance < 0) {\r\n return false;\r\n }\r\n unmaskDistance = distanceToMatch(el, createMatchPredicate(unmaskTextClass, unmaskTextSelector), maskDistance >= 0 ? maskDistance : Infinity);\r\n }\r\n return maskDistance >= 0\r\n ? unmaskDistance >= 0\r\n ? maskDistance <= unmaskDistance\r\n : true\r\n : unmaskDistance >= 0\r\n ? false\r\n : !!maskAllText;\r\n }\r\n catch (e) {\r\n }\r\n return !!maskAllText;\r\n}\r\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\r\n const win = iframeEl.contentWindow;\r\n if (!win) {\r\n return;\r\n }\r\n let fired = false;\r\n let readyState;\r\n try {\r\n readyState = win.document.readyState;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (readyState !== 'complete') {\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, iframeLoadTimeout);\r\n iframeEl.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n return;\r\n }\r\n const blankUrl = 'about:blank';\r\n if (win.location.href !== blankUrl ||\r\n iframeEl.src === blankUrl ||\r\n iframeEl.src === '') {\r\n setTimeout(listener, 0);\r\n return iframeEl.addEventListener('load', listener);\r\n }\r\n iframeEl.addEventListener('load', listener);\r\n}\r\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\r\n let fired = false;\r\n let styleSheetLoaded;\r\n try {\r\n styleSheetLoaded = link.sheet;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (styleSheetLoaded)\r\n return;\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, styleSheetLoadTimeout);\r\n link.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n}\r\nfunction serializeNode(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, unblockSelector, maskAllText, maskAttributeFn, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, inlineStylesheet, maskInputOptions = {}, maskTextFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, } = options;\r\n const rootId = getRootId(doc, mirror);\r\n switch (n.nodeType) {\r\n case n.DOCUMENT_NODE:\r\n if (n.compatMode !== 'CSS1Compat') {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: [],\r\n compatMode: n.compatMode,\r\n };\r\n }\r\n else {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: [],\r\n };\r\n }\r\n case n.DOCUMENT_TYPE_NODE:\r\n return {\r\n type: NodeType.DocumentType,\r\n name: n.name,\r\n publicId: n.publicId,\r\n systemId: n.systemId,\r\n rootId,\r\n };\r\n case n.ELEMENT_NODE:\r\n return serializeElementNode(n, {\r\n doc,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n inlineStylesheet,\r\n maskAttributeFn,\r\n maskInputOptions,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n rootId,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n });\r\n case n.TEXT_NODE:\r\n return serializeTextNode(n, {\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n maskTextFn,\r\n maskInputOptions,\r\n maskInputFn,\r\n rootId,\r\n });\r\n case n.CDATA_SECTION_NODE:\r\n return {\r\n type: NodeType.CDATA,\r\n textContent: '',\r\n rootId,\r\n };\r\n case n.COMMENT_NODE:\r\n return {\r\n type: NodeType.Comment,\r\n textContent: n.textContent || '',\r\n rootId,\r\n };\r\n default:\r\n return false;\r\n }\r\n}\r\nfunction getRootId(doc, mirror) {\r\n if (!mirror.hasNode(doc))\r\n return undefined;\r\n const docId = mirror.getId(doc);\r\n return docId === 1 ? undefined : docId;\r\n}\r\nfunction serializeTextNode(n, options) {\r\n const { maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, maskTextFn, maskInputOptions, maskInputFn, rootId, } = options;\r\n const parentTagName = n.parentNode && n.parentNode.tagName;\r\n let textContent = n.textContent;\r\n const isStyle = parentTagName === 'STYLE' ? true : undefined;\r\n const isScript = parentTagName === 'SCRIPT' ? true : undefined;\r\n const isTextarea = parentTagName === 'TEXTAREA' ? true : undefined;\r\n if (isStyle && textContent) {\r\n try {\r\n if (n.nextSibling || n.previousSibling) {\r\n }\r\n else if (n.parentNode.sheet?.cssRules) {\r\n textContent = stringifyStylesheet(n.parentNode.sheet);\r\n }\r\n }\r\n catch (err) {\r\n console.warn(`Cannot get CSS styles from text's parentNode. Error: ${err}`, n);\r\n }\r\n textContent = absoluteToStylesheet(textContent, getHref());\r\n }\r\n if (isScript) {\r\n textContent = 'SCRIPT_PLACEHOLDER';\r\n }\r\n const forceMask = needMaskingText(n, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, maskAllText);\r\n if (!isStyle && !isScript && !isTextarea && textContent && forceMask) {\r\n textContent = maskTextFn\r\n ? maskTextFn(textContent, n.parentElement)\r\n : textContent.replace(/[\\S]/g, '*');\r\n }\r\n if (isTextarea && textContent && (maskInputOptions.textarea || forceMask)) {\r\n textContent = maskInputFn\r\n ? maskInputFn(textContent, n.parentNode)\r\n : textContent.replace(/[\\S]/g, '*');\r\n }\r\n if (parentTagName === 'OPTION' && textContent) {\r\n const isInputMasked = shouldMaskInput({\r\n type: null,\r\n tagName: parentTagName,\r\n maskInputOptions,\r\n });\r\n textContent = maskInputValue({\r\n isMasked: needMaskingText(n, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, isInputMasked),\r\n element: n,\r\n value: textContent,\r\n maskInputFn,\r\n });\r\n }\r\n return {\r\n type: NodeType.Text,\r\n textContent: textContent || '',\r\n isStyle,\r\n rootId,\r\n };\r\n}\r\nfunction serializeElementNode(n, options) {\r\n const { doc, blockClass, blockSelector, unblockSelector, inlineStylesheet, maskInputOptions = {}, maskAttributeFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, rootId, maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, } = options;\r\n const needBlock = _isBlockedElement(n, blockClass, blockSelector, unblockSelector);\r\n const tagName = getValidTagName(n);\r\n let attributes = {};\r\n const len = n.attributes.length;\r\n for (let i = 0; i < len; i++) {\r\n const attr = n.attributes[i];\r\n if (attr.name && !ignoreAttribute(tagName, attr.name, attr.value)) {\r\n attributes[attr.name] = transformAttribute(doc, tagName, toLowerCase(attr.name), attr.value, n, maskAttributeFn);\r\n }\r\n }\r\n if (tagName === 'link' && inlineStylesheet) {\r\n const stylesheet = Array.from(doc.styleSheets).find((s) => {\r\n return s.href === n.href;\r\n });\r\n let cssText = null;\r\n if (stylesheet) {\r\n cssText = stringifyStylesheet(stylesheet);\r\n }\r\n if (cssText) {\r\n delete attributes.rel;\r\n delete attributes.href;\r\n attributes._cssText = absoluteToStylesheet(cssText, stylesheet.href);\r\n }\r\n }\r\n if (tagName === 'style' &&\r\n n.sheet &&\r\n !(n.innerText || n.textContent || '').trim().length) {\r\n const cssText = stringifyStylesheet(n.sheet);\r\n if (cssText) {\r\n attributes._cssText = absoluteToStylesheet(cssText, getHref());\r\n }\r\n }\r\n if (tagName === 'input' ||\r\n tagName === 'textarea' ||\r\n tagName === 'select' ||\r\n tagName === 'option') {\r\n const el = n;\r\n const type = getInputType(el);\r\n const value = getInputValue(el, toUpperCase(tagName), type);\r\n const checked = el.checked;\r\n if (type !== 'submit' && type !== 'button' && value) {\r\n const forceMask = needMaskingText(el, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, shouldMaskInput({\r\n type,\r\n tagName: toUpperCase(tagName),\r\n maskInputOptions,\r\n }));\r\n attributes.value = maskInputValue({\r\n isMasked: forceMask,\r\n element: el,\r\n value,\r\n maskInputFn,\r\n });\r\n }\r\n if (checked) {\r\n attributes.checked = checked;\r\n }\r\n }\r\n if (tagName === 'option') {\r\n if (n.selected && !maskInputOptions['select']) {\r\n attributes.selected = true;\r\n }\r\n else {\r\n delete attributes.selected;\r\n }\r\n }\r\n if (tagName === 'canvas' && recordCanvas) {\r\n if (n.__context === '2d') {\r\n if (!is2DCanvasBlank(n)) {\r\n attributes.rr_dataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n }\r\n else if (!('__context' in n)) {\r\n const canvasDataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n const blankCanvas = document.createElement('canvas');\r\n blankCanvas.width = n.width;\r\n blankCanvas.height = n.height;\r\n const blankCanvasDataURL = blankCanvas.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n if (canvasDataURL !== blankCanvasDataURL) {\r\n attributes.rr_dataURL = canvasDataURL;\r\n }\r\n }\r\n }\r\n if (tagName === 'img' && inlineImages) {\r\n if (!canvasService) {\r\n canvasService = doc.createElement('canvas');\r\n canvasCtx = canvasService.getContext('2d');\r\n }\r\n const image = n;\r\n const oldValue = image.crossOrigin;\r\n image.crossOrigin = 'anonymous';\r\n const recordInlineImage = () => {\r\n image.removeEventListener('load', recordInlineImage);\r\n try {\r\n canvasService.width = image.naturalWidth;\r\n canvasService.height = image.naturalHeight;\r\n canvasCtx.drawImage(image, 0, 0);\r\n attributes.rr_dataURL = canvasService.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n catch (err) {\r\n console.warn(`Cannot inline img src=${image.currentSrc}! Error: ${err}`);\r\n }\r\n oldValue\r\n ? (attributes.crossOrigin = oldValue)\r\n : image.removeAttribute('crossorigin');\r\n };\r\n if (image.complete && image.naturalWidth !== 0)\r\n recordInlineImage();\r\n else\r\n image.addEventListener('load', recordInlineImage);\r\n }\r\n if (tagName === 'audio' || tagName === 'video') {\r\n attributes.rr_mediaState = n.paused\r\n ? 'paused'\r\n : 'played';\r\n attributes.rr_mediaCurrentTime = n.currentTime;\r\n }\r\n if (!newlyAddedElement) {\r\n if (n.scrollLeft) {\r\n attributes.rr_scrollLeft = n.scrollLeft;\r\n }\r\n if (n.scrollTop) {\r\n attributes.rr_scrollTop = n.scrollTop;\r\n }\r\n }\r\n if (needBlock) {\r\n const { width, height } = n.getBoundingClientRect();\r\n attributes = {\r\n class: attributes.class,\r\n rr_width: `${width}px`,\r\n rr_height: `${height}px`,\r\n };\r\n }\r\n if (tagName === 'iframe' && !keepIframeSrcFn(attributes.src)) {\r\n if (!n.contentDocument) {\r\n attributes.rr_src = attributes.src;\r\n }\r\n delete attributes.src;\r\n }\r\n let isCustomElement;\r\n try {\r\n if (customElements.get(tagName))\r\n isCustomElement = true;\r\n }\r\n catch (e) {\r\n }\r\n return {\r\n type: NodeType.Element,\r\n tagName,\r\n attributes,\r\n childNodes: [],\r\n isSVG: isSVGElement(n) || undefined,\r\n needBlock,\r\n rootId,\r\n isCustom: isCustomElement,\r\n };\r\n}\r\nfunction lowerIfExists(maybeAttr) {\r\n if (maybeAttr === undefined || maybeAttr === null) {\r\n return '';\r\n }\r\n else {\r\n return maybeAttr.toLowerCase();\r\n }\r\n}\r\nfunction slimDOMExcluded(sn, slimDOMOptions) {\r\n if (slimDOMOptions.comment && sn.type === NodeType.Comment) {\r\n return true;\r\n }\r\n else if (sn.type === NodeType.Element) {\r\n if (slimDOMOptions.script &&\r\n (sn.tagName === 'script' ||\r\n (sn.tagName === 'link' &&\r\n (sn.attributes.rel === 'preload' ||\r\n sn.attributes.rel === 'modulepreload') &&\r\n sn.attributes.as === 'script') ||\r\n (sn.tagName === 'link' &&\r\n sn.attributes.rel === 'prefetch' &&\r\n typeof sn.attributes.href === 'string' &&\r\n sn.attributes.href.endsWith('.js')))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headFavicon &&\r\n ((sn.tagName === 'link' && sn.attributes.rel === 'shortcut icon') ||\r\n (sn.tagName === 'meta' &&\r\n (lowerIfExists(sn.attributes.name).match(/^msapplication-tile(image|color)$/) ||\r\n lowerIfExists(sn.attributes.name) === 'application-name' ||\r\n lowerIfExists(sn.attributes.rel) === 'icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'apple-touch-icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'shortcut icon')))) {\r\n return true;\r\n }\r\n else if (sn.tagName === 'meta') {\r\n if (slimDOMOptions.headMetaDescKeywords &&\r\n lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaSocial &&\r\n (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) ||\r\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) ||\r\n lowerIfExists(sn.attributes.name) === 'pinterest')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaRobots &&\r\n (lowerIfExists(sn.attributes.name) === 'robots' ||\r\n lowerIfExists(sn.attributes.name) === 'googlebot' ||\r\n lowerIfExists(sn.attributes.name) === 'bingbot')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaHttpEquiv &&\r\n sn.attributes['http-equiv'] !== undefined) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaAuthorship &&\r\n (lowerIfExists(sn.attributes.name) === 'author' ||\r\n lowerIfExists(sn.attributes.name) === 'generator' ||\r\n lowerIfExists(sn.attributes.name) === 'framework' ||\r\n lowerIfExists(sn.attributes.name) === 'publisher' ||\r\n lowerIfExists(sn.attributes.name) === 'progid' ||\r\n lowerIfExists(sn.attributes.property).match(/^article:/) ||\r\n lowerIfExists(sn.attributes.property).match(/^product:/))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaVerification &&\r\n (lowerIfExists(sn.attributes.name) === 'google-site-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'yandex-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'csrf-token' ||\r\n lowerIfExists(sn.attributes.name) === 'p:domain_verify' ||\r\n lowerIfExists(sn.attributes.name) === 'verify-v1' ||\r\n lowerIfExists(sn.attributes.name) === 'verification' ||\r\n lowerIfExists(sn.attributes.name) === 'shopify-checkout-api-token')) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\nfunction serializeNodeWithId(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, unblockSelector, maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, skipChild = false, inlineStylesheet = true, maskInputOptions = {}, maskAttributeFn, maskTextFn, maskInputFn, slimDOMOptions, dataURLOptions = {}, inlineImages = false, recordCanvas = false, onSerialize, onIframeLoad, iframeLoadTimeout = 5000, onStylesheetLoad, stylesheetLoadTimeout = 5000, keepIframeSrcFn = () => false, newlyAddedElement = false, } = options;\r\n let { preserveWhiteSpace = true } = options;\r\n const _serializedNode = serializeNode(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskAllText,\r\n unblockSelector,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n });\r\n if (!_serializedNode) {\r\n console.warn(n, 'not serialized');\r\n return null;\r\n }\r\n let id;\r\n if (mirror.hasNode(n)) {\r\n id = mirror.getId(n);\r\n }\r\n else if (slimDOMExcluded(_serializedNode, slimDOMOptions) ||\r\n (!preserveWhiteSpace &&\r\n _serializedNode.type === NodeType.Text &&\r\n !_serializedNode.isStyle &&\r\n !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, '').length)) {\r\n id = IGNORED_NODE;\r\n }\r\n else {\r\n id = genId();\r\n }\r\n const serializedNode = Object.assign(_serializedNode, { id });\r\n mirror.add(n, serializedNode);\r\n if (id === IGNORED_NODE) {\r\n return null;\r\n }\r\n if (onSerialize) {\r\n onSerialize(n);\r\n }\r\n let recordChild = !skipChild;\r\n if (serializedNode.type === NodeType.Element) {\r\n recordChild = recordChild && !serializedNode.needBlock;\r\n delete serializedNode.needBlock;\r\n const shadowRoot = n.shadowRoot;\r\n if (shadowRoot && isNativeShadowDom(shadowRoot))\r\n serializedNode.isShadowHost = true;\r\n }\r\n if ((serializedNode.type === NodeType.Document ||\r\n serializedNode.type === NodeType.Element) &&\r\n recordChild) {\r\n if (slimDOMOptions.headWhitespace &&\r\n serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'head') {\r\n preserveWhiteSpace = false;\r\n }\r\n const bypassOptions = {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskAllText,\r\n unblockSelector,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n };\r\n for (const childN of Array.from(n.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n if (isElement(n) && n.shadowRoot) {\r\n for (const childN of Array.from(n.shadowRoot.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n isNativeShadowDom(n.shadowRoot) &&\r\n (serializedChildNode.isShadow = true);\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n }\r\n }\r\n if (n.parentNode &&\r\n isShadowRoot(n.parentNode) &&\r\n isNativeShadowDom(n.parentNode)) {\r\n serializedNode.isShadow = true;\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'iframe') {\r\n onceIframeLoaded(n, () => {\r\n const iframeDoc = n.contentDocument;\r\n if (iframeDoc && onIframeLoad) {\r\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\r\n doc: iframeDoc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedIframeNode) {\r\n onIframeLoad(n, serializedIframeNode);\r\n }\r\n }\r\n }, iframeLoadTimeout);\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'link' &&\r\n serializedNode.attributes.rel === 'stylesheet') {\r\n onceStylesheetLoaded(n, () => {\r\n if (onStylesheetLoad) {\r\n const serializedLinkNode = serializeNodeWithId(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedLinkNode) {\r\n onStylesheetLoad(n, serializedLinkNode);\r\n }\r\n }\r\n }, stylesheetLoadTimeout);\r\n }\r\n return serializedNode;\r\n}\r\nfunction snapshot(n, options) {\r\n const { mirror = new Mirror(), blockClass = 'rr-block', blockSelector = null, unblockSelector = null, maskAllText = false, maskTextClass = 'rr-mask', unmaskTextClass = null, maskTextSelector = null, unmaskTextSelector = null, inlineStylesheet = true, inlineImages = false, recordCanvas = false, maskAllInputs = false, maskAttributeFn, maskTextFn, maskInputFn, slimDOM = false, dataURLOptions, preserveWhiteSpace, onSerialize, onIframeLoad, iframeLoadTimeout, onStylesheetLoad, stylesheetLoadTimeout, keepIframeSrcFn = () => false, } = options || {};\r\n const maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n }\r\n : maskAllInputs === false\r\n ? {}\r\n : maskAllInputs;\r\n const slimDOMOptions = slimDOM === true || slimDOM === 'all'\r\n ?\r\n {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaDescKeywords: slimDOM === 'all',\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaAuthorship: true,\r\n headMetaVerification: true,\r\n }\r\n : slimDOM === false\r\n ? {}\r\n : slimDOM;\r\n return serializeNodeWithId(n, {\r\n doc: n,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n newlyAddedElement: false,\r\n });\r\n}\r\nfunction visitSnapshot(node, onVisit) {\r\n function walk(current) {\r\n onVisit(current);\r\n if (current.type === NodeType.Document ||\r\n current.type === NodeType.Element) {\r\n current.childNodes.forEach(walk);\r\n }\r\n }\r\n walk(node);\r\n}\r\nfunction cleanupSnapshot() {\r\n _id = 1;\r\n}\n\nconst commentre = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\r\nfunction parse(css, options = {}) {\r\n let lineno = 1;\r\n let column = 1;\r\n function updatePosition(str) {\r\n const lines = str.match(/\\n/g);\r\n if (lines) {\r\n lineno += lines.length;\r\n }\r\n const i = str.lastIndexOf('\\n');\r\n column = i === -1 ? column + str.length : str.length - i;\r\n }\r\n function position() {\r\n const start = { line: lineno, column };\r\n return (node) => {\r\n node.position = new Position(start);\r\n whitespace();\r\n return node;\r\n };\r\n }\r\n class Position {\r\n constructor(start) {\r\n this.start = start;\r\n this.end = { line: lineno, column };\r\n this.source = options.source;\r\n }\r\n }\r\n Position.prototype.content = css;\r\n const errorsList = [];\r\n function error(msg) {\r\n const err = new Error(`${options.source || ''}:${lineno}:${column}: ${msg}`);\r\n err.reason = msg;\r\n err.filename = options.source;\r\n err.line = lineno;\r\n err.column = column;\r\n err.source = css;\r\n if (options.silent) {\r\n errorsList.push(err);\r\n }\r\n else {\r\n throw err;\r\n }\r\n }\r\n function stylesheet() {\r\n const rulesList = rules();\r\n return {\r\n type: 'stylesheet',\r\n stylesheet: {\r\n source: options.source,\r\n rules: rulesList,\r\n parsingErrors: errorsList,\r\n },\r\n };\r\n }\r\n function open() {\r\n return match(/^{\\s*/);\r\n }\r\n function close() {\r\n return match(/^}/);\r\n }\r\n function rules() {\r\n let node;\r\n const rules = [];\r\n whitespace();\r\n comments(rules);\r\n while (css.length && css.charAt(0) !== '}' && (node = atrule() || rule())) {\r\n if (node) {\r\n rules.push(node);\r\n comments(rules);\r\n }\r\n }\r\n return rules;\r\n }\r\n function match(re) {\r\n const m = re.exec(css);\r\n if (!m) {\r\n return;\r\n }\r\n const str = m[0];\r\n updatePosition(str);\r\n css = css.slice(str.length);\r\n return m;\r\n }\r\n function whitespace() {\r\n match(/^\\s*/);\r\n }\r\n function comments(rules = []) {\r\n let c;\r\n while ((c = comment())) {\r\n if (c) {\r\n rules.push(c);\r\n }\r\n c = comment();\r\n }\r\n return rules;\r\n }\r\n function comment() {\r\n const pos = position();\r\n if ('/' !== css.charAt(0) || '*' !== css.charAt(1)) {\r\n return;\r\n }\r\n let i = 2;\r\n while ('' !== css.charAt(i) &&\r\n ('*' !== css.charAt(i) || '/' !== css.charAt(i + 1))) {\r\n ++i;\r\n }\r\n i += 2;\r\n if ('' === css.charAt(i - 1)) {\r\n return error('End of comment missing');\r\n }\r\n const str = css.slice(2, i - 2);\r\n column += 2;\r\n updatePosition(str);\r\n css = css.slice(i);\r\n column += 2;\r\n return pos({\r\n type: 'comment',\r\n comment: str,\r\n });\r\n }\r\n function selector() {\r\n whitespace();\r\n while (css[0] == '}') {\r\n error('extra closing bracket');\r\n css = css.slice(1);\r\n whitespace();\r\n }\r\n const m = match(/^((\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'|[^{])+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const cleanedInput = m[0]\r\n .trim()\r\n .replace(/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*\\/+/g, '')\r\n .replace(/\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, (m) => {\r\n return m.replace(/,/g, '\\u200C');\r\n });\r\n return customSplit(cleanedInput).map((s) => s.replace(/\\u200C/g, ',').trim());\r\n }\r\n function customSplit(input) {\r\n const result = [];\r\n let currentSegment = '';\r\n let depthParentheses = 0;\r\n let depthBrackets = 0;\r\n let currentStringChar = null;\r\n for (const char of input) {\r\n const hasStringEscape = currentSegment.endsWith('\\\\');\r\n if (currentStringChar) {\r\n if (currentStringChar === char && !hasStringEscape) {\r\n currentStringChar = null;\r\n }\r\n }\r\n else if (char === '(') {\r\n depthParentheses++;\r\n }\r\n else if (char === ')') {\r\n depthParentheses--;\r\n }\r\n else if (char === '[') {\r\n depthBrackets++;\r\n }\r\n else if (char === ']') {\r\n depthBrackets--;\r\n }\r\n else if ('\\'\"'.includes(char)) {\r\n currentStringChar = char;\r\n }\r\n if (char === ',' && depthParentheses === 0 && depthBrackets === 0) {\r\n result.push(currentSegment);\r\n currentSegment = '';\r\n }\r\n else {\r\n currentSegment += char;\r\n }\r\n }\r\n if (currentSegment) {\r\n result.push(currentSegment);\r\n }\r\n return result;\r\n }\r\n function declaration() {\r\n const pos = position();\r\n const propMatch = match(/^(\\*?[-#\\/\\*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\r\n if (!propMatch) {\r\n return;\r\n }\r\n const prop = trim(propMatch[0]);\r\n if (!match(/^:\\s*/)) {\r\n return error(`property missing ':'`);\r\n }\r\n const val = match(/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^\\)]*?\\)|[^};])+)/);\r\n const ret = pos({\r\n type: 'declaration',\r\n property: prop.replace(commentre, ''),\r\n value: val ? trim(val[0]).replace(commentre, '') : '',\r\n });\r\n match(/^[;\\s]*/);\r\n return ret;\r\n }\r\n function declarations() {\r\n const decls = [];\r\n if (!open()) {\r\n return error(`missing '{'`);\r\n }\r\n comments(decls);\r\n let decl;\r\n while ((decl = declaration())) {\r\n if (decl !== false) {\r\n decls.push(decl);\r\n comments(decls);\r\n }\r\n decl = declaration();\r\n }\r\n if (!close()) {\r\n return error(`missing '}'`);\r\n }\r\n return decls;\r\n }\r\n function keyframe() {\r\n let m;\r\n const vals = [];\r\n const pos = position();\r\n while ((m = match(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/))) {\r\n vals.push(m[1]);\r\n match(/^,\\s*/);\r\n }\r\n if (!vals.length) {\r\n return;\r\n }\r\n return pos({\r\n type: 'keyframe',\r\n values: vals,\r\n declarations: declarations(),\r\n });\r\n }\r\n function atkeyframes() {\r\n const pos = position();\r\n let m = match(/^@([-\\w]+)?keyframes\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n const vendor = m[1];\r\n m = match(/^([-\\w]+)\\s*/);\r\n if (!m) {\r\n return error('@keyframes missing name');\r\n }\r\n const name = m[1];\r\n if (!open()) {\r\n return error(`@keyframes missing '{'`);\r\n }\r\n let frame;\r\n let frames = comments();\r\n while ((frame = keyframe())) {\r\n frames.push(frame);\r\n frames = frames.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@keyframes missing '}'`);\r\n }\r\n return pos({\r\n type: 'keyframes',\r\n name,\r\n vendor,\r\n keyframes: frames,\r\n });\r\n }\r\n function atsupports() {\r\n const pos = position();\r\n const m = match(/^@supports *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const supports = trim(m[1]);\r\n if (!open()) {\r\n return error(`@supports missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@supports missing '}'`);\r\n }\r\n return pos({\r\n type: 'supports',\r\n supports,\r\n rules: style,\r\n });\r\n }\r\n function athost() {\r\n const pos = position();\r\n const m = match(/^@host\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n if (!open()) {\r\n return error(`@host missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@host missing '}'`);\r\n }\r\n return pos({\r\n type: 'host',\r\n rules: style,\r\n });\r\n }\r\n function atmedia() {\r\n const pos = position();\r\n const m = match(/^@media *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const media = trim(m[1]);\r\n if (!open()) {\r\n return error(`@media missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@media missing '}'`);\r\n }\r\n return pos({\r\n type: 'media',\r\n media,\r\n rules: style,\r\n });\r\n }\r\n function atcustommedia() {\r\n const pos = position();\r\n const m = match(/^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/);\r\n if (!m) {\r\n return;\r\n }\r\n return pos({\r\n type: 'custom-media',\r\n name: trim(m[1]),\r\n media: trim(m[2]),\r\n });\r\n }\r\n function atpage() {\r\n const pos = position();\r\n const m = match(/^@page */);\r\n if (!m) {\r\n return;\r\n }\r\n const sel = selector() || [];\r\n if (!open()) {\r\n return error(`@page missing '{'`);\r\n }\r\n let decls = comments();\r\n let decl;\r\n while ((decl = declaration())) {\r\n decls.push(decl);\r\n decls = decls.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@page missing '}'`);\r\n }\r\n return pos({\r\n type: 'page',\r\n selectors: sel,\r\n declarations: decls,\r\n });\r\n }\r\n function atdocument() {\r\n const pos = position();\r\n const m = match(/^@([-\\w]+)?document *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const vendor = trim(m[1]);\r\n const doc = trim(m[2]);\r\n if (!open()) {\r\n return error(`@document missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@document missing '}'`);\r\n }\r\n return pos({\r\n type: 'document',\r\n document: doc,\r\n vendor,\r\n rules: style,\r\n });\r\n }\r\n function atfontface() {\r\n const pos = position();\r\n const m = match(/^@font-face\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n if (!open()) {\r\n return error(`@font-face missing '{'`);\r\n }\r\n let decls = comments();\r\n let decl;\r\n while ((decl = declaration())) {\r\n decls.push(decl);\r\n decls = decls.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@font-face missing '}'`);\r\n }\r\n return pos({\r\n type: 'font-face',\r\n declarations: decls,\r\n });\r\n }\r\n const atimport = _compileAtrule('import');\r\n const atcharset = _compileAtrule('charset');\r\n const atnamespace = _compileAtrule('namespace');\r\n function _compileAtrule(name) {\r\n const re = new RegExp('^@' + name + '\\\\s*([^;]+);');\r\n return () => {\r\n const pos = position();\r\n const m = match(re);\r\n if (!m) {\r\n return;\r\n }\r\n const ret = { type: name };\r\n ret[name] = m[1].trim();\r\n return pos(ret);\r\n };\r\n }\r\n function atrule() {\r\n if (css[0] !== '@') {\r\n return;\r\n }\r\n return (atkeyframes() ||\r\n atmedia() ||\r\n atcustommedia() ||\r\n atsupports() ||\r\n atimport() ||\r\n atcharset() ||\r\n atnamespace() ||\r\n atdocument() ||\r\n atpage() ||\r\n athost() ||\r\n atfontface());\r\n }\r\n function rule() {\r\n const pos = position();\r\n const sel = selector();\r\n if (!sel) {\r\n return error('selector missing');\r\n }\r\n comments();\r\n return pos({\r\n type: 'rule',\r\n selectors: sel,\r\n declarations: declarations(),\r\n });\r\n }\r\n return addParent(stylesheet());\r\n}\r\nfunction trim(str) {\r\n return str ? str.replace(/^\\s+|\\s+$/g, '') : '';\r\n}\r\nfunction addParent(obj, parent) {\r\n const isNode = obj && typeof obj.type === 'string';\r\n const childParent = isNode ? obj : parent;\r\n for (const k of Object.keys(obj)) {\r\n const value = obj[k];\r\n if (Array.isArray(value)) {\r\n value.forEach((v) => {\r\n addParent(v, childParent);\r\n });\r\n }\r\n else if (value && typeof value === 'object') {\r\n addParent(value, childParent);\r\n }\r\n }\r\n if (isNode) {\r\n Object.defineProperty(obj, 'parent', {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: parent || null,\r\n });\r\n }\r\n return obj;\r\n}\n\nconst tagMap = {\r\n script: 'noscript',\r\n altglyph: 'altGlyph',\r\n altglyphdef: 'altGlyphDef',\r\n altglyphitem: 'altGlyphItem',\r\n animatecolor: 'animateColor',\r\n animatemotion: 'animateMotion',\r\n animatetransform: 'animateTransform',\r\n clippath: 'clipPath',\r\n feblend: 'feBlend',\r\n fecolormatrix: 'feColorMatrix',\r\n fecomponenttransfer: 'feComponentTransfer',\r\n fecomposite: 'feComposite',\r\n feconvolvematrix: 'feConvolveMatrix',\r\n fediffuselighting: 'feDiffuseLighting',\r\n fedisplacementmap: 'feDisplacementMap',\r\n fedistantlight: 'feDistantLight',\r\n fedropshadow: 'feDropShadow',\r\n feflood: 'feFlood',\r\n fefunca: 'feFuncA',\r\n fefuncb: 'feFuncB',\r\n fefuncg: 'feFuncG',\r\n fefuncr: 'feFuncR',\r\n fegaussianblur: 'feGaussianBlur',\r\n feimage: 'feImage',\r\n femerge: 'feMerge',\r\n femergenode: 'feMergeNode',\r\n femorphology: 'feMorphology',\r\n feoffset: 'feOffset',\r\n fepointlight: 'fePointLight',\r\n fespecularlighting: 'feSpecularLighting',\r\n fespotlight: 'feSpotLight',\r\n fetile: 'feTile',\r\n feturbulence: 'feTurbulence',\r\n foreignobject: 'foreignObject',\r\n glyphref: 'glyphRef',\r\n lineargradient: 'linearGradient',\r\n radialgradient: 'radialGradient',\r\n};\r\nfunction getTagName(n) {\r\n let tagName = tagMap[n.tagName] ? tagMap[n.tagName] : n.tagName;\r\n if (tagName === 'link' && n.attributes._cssText) {\r\n tagName = 'style';\r\n }\r\n return tagName;\r\n}\r\nfunction escapeRegExp(str) {\r\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n}\r\nconst HOVER_SELECTOR = /([^\\\\]):hover/;\r\nconst HOVER_SELECTOR_GLOBAL = new RegExp(HOVER_SELECTOR.source, 'g');\r\nfunction addHoverClass(cssText, cache) {\r\n const cachedStyle = cache?.stylesWithHoverClass.get(cssText);\r\n if (cachedStyle)\r\n return cachedStyle;\r\n if (cssText.length >= 1000000) {\r\n return cssText;\r\n }\r\n const ast = parse(cssText, {\r\n silent: true,\r\n });\r\n if (!ast.stylesheet) {\r\n return cssText;\r\n }\r\n const selectors = [];\r\n ast.stylesheet.rules.forEach((rule) => {\r\n if ('selectors' in rule) {\r\n (rule.selectors || []).forEach((selector) => {\r\n if (HOVER_SELECTOR.test(selector)) {\r\n selectors.push(selector);\r\n }\r\n });\r\n }\r\n });\r\n if (selectors.length === 0) {\r\n return cssText;\r\n }\r\n const selectorMatcher = new RegExp(selectors\r\n .filter((selector, index) => selectors.indexOf(selector) === index)\r\n .sort((a, b) => b.length - a.length)\r\n .map((selector) => {\r\n return escapeRegExp(selector);\r\n })\r\n .join('|'), 'g');\r\n const result = cssText.replace(selectorMatcher, (selector) => {\r\n const newSelector = selector.replace(HOVER_SELECTOR_GLOBAL, '$1.\\\\:hover');\r\n return `${selector}, ${newSelector}`;\r\n });\r\n cache?.stylesWithHoverClass.set(cssText, result);\r\n return result;\r\n}\r\nfunction createCache() {\r\n const stylesWithHoverClass = new Map();\r\n return {\r\n stylesWithHoverClass,\r\n };\r\n}\r\nfunction buildNode(n, options) {\r\n const { doc, hackCss, cache } = options;\r\n switch (n.type) {\r\n case NodeType.Document:\r\n return doc.implementation.createDocument(null, '', null);\r\n case NodeType.DocumentType:\r\n return doc.implementation.createDocumentType(n.name || 'html', n.publicId, n.systemId);\r\n case NodeType.Element: {\r\n const tagName = getTagName(n);\r\n let node;\r\n if (n.isSVG) {\r\n node = doc.createElementNS('http://www.w3.org/2000/svg', tagName);\r\n }\r\n else {\r\n if (n.isCustom &&\r\n doc.defaultView?.customElements &&\r\n !doc.defaultView.customElements.get(n.tagName))\r\n doc.defaultView.customElements.define(n.tagName, class extends doc.defaultView.HTMLElement {\r\n });\r\n node = doc.createElement(tagName);\r\n }\r\n const specialAttributes = {};\r\n for (const name in n.attributes) {\r\n if (!Object.prototype.hasOwnProperty.call(n.attributes, name)) {\r\n continue;\r\n }\r\n let value = n.attributes[name];\r\n if (tagName === 'option' &&\r\n name === 'selected' &&\r\n value === false) {\r\n continue;\r\n }\r\n if (value === null) {\r\n continue;\r\n }\r\n if (value === true)\r\n value = '';\r\n if (name.startsWith('rr_')) {\r\n specialAttributes[name] = value;\r\n continue;\r\n }\r\n const isTextarea = tagName === 'textarea' && name === 'value';\r\n const isRemoteOrDynamicCss = tagName === 'style' && name === '_cssText';\r\n if (isRemoteOrDynamicCss && hackCss && typeof value === 'string') {\r\n value = addHoverClass(value, cache);\r\n }\r\n if ((isTextarea || isRemoteOrDynamicCss) && typeof value === 'string') {\r\n const child = doc.createTextNode(value);\r\n for (const c of Array.from(node.childNodes)) {\r\n if (c.nodeType === node.TEXT_NODE) {\r\n node.removeChild(c);\r\n }\r\n }\r\n node.appendChild(child);\r\n continue;\r\n }\r\n try {\r\n if (n.isSVG && name === 'xlink:href') {\r\n node.setAttributeNS('http://www.w3.org/1999/xlink', name, value.toString());\r\n }\r\n else if (name === 'onload' ||\r\n name === 'onclick' ||\r\n name.substring(0, 7) === 'onmouse') {\r\n node.setAttribute('_' + name, value.toString());\r\n }\r\n else if (tagName === 'meta' &&\r\n n.attributes['http-equiv'] === 'Content-Security-Policy' &&\r\n name === 'content') {\r\n node.setAttribute('csp-content', value.toString());\r\n continue;\r\n }\r\n else if (tagName === 'link' &&\r\n (n.attributes.rel === 'preload' ||\r\n n.attributes.rel === 'modulepreload') &&\r\n n.attributes.as === 'script') {\r\n }\r\n else if (tagName === 'link' &&\r\n n.attributes.rel === 'prefetch' &&\r\n typeof n.attributes.href === 'string' &&\r\n n.attributes.href.endsWith('.js')) {\r\n }\r\n else if (tagName === 'img' &&\r\n n.attributes.srcset &&\r\n n.attributes.rr_dataURL) {\r\n node.setAttribute('rrweb-original-srcset', n.attributes.srcset);\r\n }\r\n else {\r\n node.setAttribute(name, value.toString());\r\n }\r\n }\r\n catch (error) {\r\n }\r\n }\r\n for (const name in specialAttributes) {\r\n const value = specialAttributes[name];\r\n if (tagName === 'canvas' && name === 'rr_dataURL') {\r\n const image = document.createElement('img');\r\n image.onload = () => {\r\n const ctx = node.getContext('2d');\r\n if (ctx) {\r\n ctx.drawImage(image, 0, 0, image.width, image.height);\r\n }\r\n };\r\n image.src = value.toString();\r\n if (node.RRNodeType)\r\n node.rr_dataURL = value.toString();\r\n }\r\n else if (tagName === 'img' && name === 'rr_dataURL') {\r\n const image = node;\r\n if (!image.currentSrc.startsWith('data:')) {\r\n image.setAttribute('rrweb-original-src', n.attributes.src);\r\n image.src = value.toString();\r\n }\r\n }\r\n if (name === 'rr_width') {\r\n node.style.setProperty('width', value.toString());\r\n }\r\n else if (name === 'rr_height') {\r\n node.style.setProperty('height', value.toString());\r\n }\r\n else if (name === 'rr_mediaCurrentTime' &&\r\n typeof value === 'number') {\r\n node.currentTime = value;\r\n }\r\n else if (name === 'rr_mediaState') {\r\n switch (value) {\r\n case 'played':\r\n node\r\n .play()\r\n .catch((e) => console.warn('media playback error', e));\r\n break;\r\n case 'paused':\r\n node.pause();\r\n break;\r\n }\r\n }\r\n }\r\n if (n.isShadowHost) {\r\n if (!node.shadowRoot) {\r\n node.attachShadow({ mode: 'open' });\r\n }\r\n else {\r\n while (node.shadowRoot.firstChild) {\r\n node.shadowRoot.removeChild(node.shadowRoot.firstChild);\r\n }\r\n }\r\n }\r\n return node;\r\n }\r\n case NodeType.Text:\r\n return doc.createTextNode(n.isStyle && hackCss\r\n ? addHoverClass(n.textContent, cache)\r\n : n.textContent);\r\n case NodeType.CDATA:\r\n return doc.createCDATASection(n.textContent);\r\n case NodeType.Comment:\r\n return doc.createComment(n.textContent);\r\n default:\r\n return null;\r\n }\r\n}\r\nfunction buildNodeWithSN(n, options) {\r\n const { doc, mirror, skipChild = false, hackCss = true, afterAppend, cache, } = options;\r\n if (mirror.has(n.id)) {\r\n const nodeInMirror = mirror.getNode(n.id);\r\n const meta = mirror.getMeta(nodeInMirror);\r\n if (isNodeMetaEqual(meta, n))\r\n return mirror.getNode(n.id);\r\n }\r\n let node = buildNode(n, { doc, hackCss, cache });\r\n if (!node) {\r\n return null;\r\n }\r\n if (n.rootId && mirror.getNode(n.rootId) !== doc) {\r\n mirror.replace(n.rootId, doc);\r\n }\r\n if (n.type === NodeType.Document) {\r\n doc.close();\r\n doc.open();\r\n if (n.compatMode === 'BackCompat' &&\r\n n.childNodes &&\r\n n.childNodes[0].type !== NodeType.DocumentType) {\r\n if (n.childNodes[0].type === NodeType.Element &&\r\n 'xmlns' in n.childNodes[0].attributes &&\r\n n.childNodes[0].attributes.xmlns === 'http://www.w3.org/1999/xhtml') {\r\n doc.write('');\r\n }\r\n else {\r\n doc.write('');\r\n }\r\n }\r\n node = doc;\r\n }\r\n mirror.add(node, n);\r\n if ((n.type === NodeType.Document || n.type === NodeType.Element) &&\r\n !skipChild) {\r\n for (const childN of n.childNodes) {\r\n const childNode = buildNodeWithSN(childN, {\r\n doc,\r\n mirror,\r\n skipChild: false,\r\n hackCss,\r\n afterAppend,\r\n cache,\r\n });\r\n if (!childNode) {\r\n console.warn('Failed to rebuild', childN);\r\n continue;\r\n }\r\n if (childN.isShadow && isElement(node) && node.shadowRoot) {\r\n node.shadowRoot.appendChild(childNode);\r\n }\r\n else if (n.type === NodeType.Document &&\r\n childN.type == NodeType.Element) {\r\n const htmlElement = childNode;\r\n let body = null;\r\n htmlElement.childNodes.forEach((child) => {\r\n if (child.nodeName === 'BODY')\r\n body = child;\r\n });\r\n if (body) {\r\n htmlElement.removeChild(body);\r\n node.appendChild(childNode);\r\n htmlElement.appendChild(body);\r\n }\r\n else {\r\n node.appendChild(childNode);\r\n }\r\n }\r\n else {\r\n node.appendChild(childNode);\r\n }\r\n if (afterAppend) {\r\n afterAppend(childNode, childN.id);\r\n }\r\n }\r\n }\r\n return node;\r\n}\r\nfunction visit(mirror, onVisit) {\r\n function walk(node) {\r\n onVisit(node);\r\n }\r\n for (const id of mirror.getIds()) {\r\n if (mirror.has(id)) {\r\n walk(mirror.getNode(id));\r\n }\r\n }\r\n}\r\nfunction handleScroll(node, mirror) {\r\n const n = mirror.getMeta(node);\r\n if (n?.type !== NodeType.Element) {\r\n return;\r\n }\r\n const el = node;\r\n for (const name in n.attributes) {\r\n if (!(Object.prototype.hasOwnProperty.call(n.attributes, name) &&\r\n name.startsWith('rr_'))) {\r\n continue;\r\n }\r\n const value = n.attributes[name];\r\n if (name === 'rr_scrollLeft') {\r\n el.scrollLeft = value;\r\n }\r\n if (name === 'rr_scrollTop') {\r\n el.scrollTop = value;\r\n }\r\n }\r\n}\r\nfunction rebuild(n, options) {\r\n const { doc, onVisit, hackCss = true, afterAppend, cache, mirror = new Mirror(), } = options;\r\n const node = buildNodeWithSN(n, {\r\n doc,\r\n mirror,\r\n skipChild: false,\r\n hackCss,\r\n afterAppend,\r\n cache,\r\n });\r\n visit(mirror, (visitedNode) => {\r\n if (onVisit) {\r\n onVisit(visitedNode);\r\n }\r\n handleScroll(visitedNode, mirror);\r\n });\r\n return node;\r\n}\n\nexport { IGNORED_NODE, Mirror, NodeType, addHoverClass, buildNodeWithSN, classMatchesRegex, cleanupSnapshot, createCache, createMatchPredicate, createMirror, distanceToMatch, escapeImportStatement, fixSafariColons, genId, getInputType, getInputValue, ignoreAttribute, is2DCanvasBlank, isCSSImportRule, isCSSStyleRule, isElement, isNativeShadowDom, isNodeMetaEqual, isShadowRoot, maskInputValue, needMaskingText, rebuild, serializeNodeWithId, shouldMaskInput, snapshot, stringifyRule, stringifyStylesheet, toLowerCase, toUpperCase, transformAttribute, visitSnapshot };\n","// Note that these are the serialized attributes and not attributes directly on\n// the DOM Node. Attributes we are interested in:\nconst ATTRIBUTES_TO_RECORD = new Set([\n 'id',\n 'class',\n 'aria-label',\n 'role',\n 'name',\n 'alt',\n 'title',\n 'data-test-id',\n 'data-testid',\n 'disabled',\n 'aria-disabled',\n 'data-sentry-component',\n]);\n\n/**\n * Inclusion list of attributes that we want to record from the DOM element\n */\nexport function getAttributesToRecord(attributes: Record): Record {\n const obj: Record = {};\n for (const key in attributes) {\n if (ATTRIBUTES_TO_RECORD.has(key)) {\n let normalizedKey = key;\n\n if (key === 'data-testid' || key === 'data-test-id') {\n normalizedKey = 'testId';\n }\n\n obj[normalizedKey] = attributes[key];\n }\n }\n\n return obj;\n}\n","import { record } from '@sentry-internal/rrweb';\nimport type { serializedElementNodeWithId, serializedNodeWithId } from '@sentry-internal/rrweb-snapshot';\nimport { NodeType } from '@sentry-internal/rrweb-snapshot';\nimport type { Breadcrumb, HandlerDataDom } from '@sentry/types';\nimport { htmlTreeAsString } from '@sentry/utils';\n\nimport type { ReplayContainer } from '../types';\nimport { createBreadcrumb } from '../util/createBreadcrumb';\nimport { handleClick } from './handleClick';\nimport { addBreadcrumbEvent } from './util/addBreadcrumbEvent';\nimport { getClickTargetNode, getTargetNode } from './util/domUtils';\nimport { getAttributesToRecord } from './util/getAttributesToRecord';\n\nexport const handleDomListener: (replay: ReplayContainer) => (handlerData: HandlerDataDom) => void = (\n replay: ReplayContainer,\n) => {\n return (handlerData: HandlerDataDom): void => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleDom(handlerData);\n\n if (!result) {\n return;\n }\n\n const isClick = handlerData.name === 'click';\n const event = isClick ? (handlerData.event as PointerEvent) : undefined;\n // Ignore clicks if ctrl/alt/meta/shift keys are held down as they alter behavior of clicks (e.g. open in new tab)\n if (\n isClick &&\n replay.clickDetector &&\n event &&\n event.target &&\n !event.altKey &&\n !event.metaKey &&\n !event.ctrlKey &&\n !event.shiftKey\n ) {\n handleClick(\n replay.clickDetector,\n result as Breadcrumb & { timestamp: number; data: { nodeId: number } },\n getClickTargetNode(handlerData.event as Event) as HTMLElement,\n );\n }\n\n addBreadcrumbEvent(replay, result);\n };\n};\n\n/** Get the base DOM breadcrumb. */\nexport function getBaseDomBreadcrumb(target: Node | null, message: string): Breadcrumb {\n const nodeId = record.mirror.getId(target);\n const node = nodeId && record.mirror.getNode(nodeId);\n const meta = node && record.mirror.getMeta(node);\n const element = meta && isElement(meta) ? meta : null;\n\n return {\n message,\n data: element\n ? {\n nodeId,\n node: {\n id: nodeId,\n tagName: element.tagName,\n textContent: Array.from(element.childNodes)\n .map((node: serializedNodeWithId) => node.type === NodeType.Text && node.textContent)\n .filter(Boolean) // filter out empty values\n .map(text => (text as string).trim())\n .join(''),\n attributes: getAttributesToRecord(element.attributes),\n },\n }\n : {},\n };\n}\n\n/**\n * An event handler to react to DOM events.\n * Exported for tests.\n */\nexport function handleDom(handlerData: HandlerDataDom): Breadcrumb | null {\n const { target, message } = getDomTarget(handlerData);\n\n return createBreadcrumb({\n category: `ui.${handlerData.name}`,\n ...getBaseDomBreadcrumb(target, message),\n });\n}\n\nfunction getDomTarget(handlerData: HandlerDataDom): { target: Node | null; message: string } {\n const isClick = handlerData.name === 'click';\n\n let message: string | undefined;\n let target: Node | null = null;\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = isClick ? getClickTargetNode(handlerData.event as Event) : getTargetNode(handlerData.event as Event);\n message = htmlTreeAsString(target, { maxStringLength: 200 }) || '';\n } catch (e) {\n message = '';\n }\n\n return { target, message };\n}\n\nfunction isElement(node: serializedNodeWithId): node is serializedElementNodeWithId {\n return node.type === NodeType.Element;\n}\n","import type { Breadcrumb } from '@sentry/types';\nimport { htmlTreeAsString } from '@sentry/utils';\n\nimport type { ReplayContainer } from '../types';\nimport { createBreadcrumb } from '../util/createBreadcrumb';\nimport { getBaseDomBreadcrumb } from './handleDom';\nimport { addBreadcrumbEvent } from './util/addBreadcrumbEvent';\n\n/** Handle keyboard events & create breadcrumbs. */\nexport function handleKeyboardEvent(replay: ReplayContainer, event: KeyboardEvent): void {\n if (!replay.isEnabled()) {\n return;\n }\n\n // Update user activity, but do not restart recording as it can create\n // noisy/low-value replays (e.g. user comes back from idle, hits alt-tab, new\n // session with a single \"keydown\" breadcrumb is created)\n replay.updateUserActivity();\n\n const breadcrumb = getKeyboardBreadcrumb(event);\n\n if (!breadcrumb) {\n return;\n }\n\n addBreadcrumbEvent(replay, breadcrumb);\n}\n\n/** exported only for tests */\nexport function getKeyboardBreadcrumb(event: KeyboardEvent): Breadcrumb | null {\n const { metaKey, shiftKey, ctrlKey, altKey, key, target } = event;\n\n // never capture for input fields\n if (!target || isInputElement(target as HTMLElement) || !key) {\n return null;\n }\n\n // Note: We do not consider shift here, as that means \"uppercase\"\n const hasModifierKey = metaKey || ctrlKey || altKey;\n const isCharacterKey = key.length === 1; // other keys like Escape, Tab, etc have a longer length\n\n // Do not capture breadcrumb if only a word key is pressed\n // This could leak e.g. user input\n if (!hasModifierKey && isCharacterKey) {\n return null;\n }\n\n const message = htmlTreeAsString(target, { maxStringLength: 200 }) || '';\n const baseBreadcrumb = getBaseDomBreadcrumb(target as Node, message);\n\n return createBreadcrumb({\n category: 'ui.keyDown',\n message,\n data: {\n ...baseBreadcrumb.data,\n metaKey,\n shiftKey,\n ctrlKey,\n altKey,\n key,\n },\n });\n}\n\nfunction isInputElement(target: HTMLElement): boolean {\n return target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable;\n}\n","import { record } from '@sentry-internal/rrweb';\nimport { browserPerformanceTimeOrigin } from '@sentry/utils';\n\nimport { WINDOW } from '../constants';\nimport type {\n AllPerformanceEntry,\n AllPerformanceEntryData,\n ExperimentalPerformanceResourceTiming,\n LargestContentfulPaintData,\n NavigationData,\n PaintData,\n ReplayPerformanceEntry,\n ResourceData,\n} from '../types';\n\n// Map entryType -> function to normalize data for event\nconst ENTRY_TYPES: Record<\n string,\n (entry: AllPerformanceEntry) => null | ReplayPerformanceEntry\n> = {\n // @ts-expect-error TODO: entry type does not fit the create* functions entry type\n resource: createResourceEntry,\n paint: createPaintEntry,\n // @ts-expect-error TODO: entry type does not fit the create* functions entry type\n navigation: createNavigationEntry,\n};\n\n/**\n * Create replay performance entries from the browser performance entries.\n */\nexport function createPerformanceEntries(\n entries: AllPerformanceEntry[],\n): ReplayPerformanceEntry[] {\n return entries.map(createPerformanceEntry).filter(Boolean) as ReplayPerformanceEntry[];\n}\n\nfunction createPerformanceEntry(entry: AllPerformanceEntry): ReplayPerformanceEntry | null {\n if (!ENTRY_TYPES[entry.entryType]) {\n return null;\n }\n\n return ENTRY_TYPES[entry.entryType](entry);\n}\n\nfunction getAbsoluteTime(time: number): number {\n // browserPerformanceTimeOrigin can be undefined if `performance` or\n // `performance.now` doesn't exist, but this is already checked by this integration\n return ((browserPerformanceTimeOrigin || WINDOW.performance.timeOrigin) + time) / 1000;\n}\n\nfunction createPaintEntry(entry: PerformancePaintTiming): ReplayPerformanceEntry {\n const { duration, entryType, name, startTime } = entry;\n\n const start = getAbsoluteTime(startTime);\n return {\n type: entryType,\n name,\n start,\n end: start + duration,\n data: undefined,\n };\n}\n\nfunction createNavigationEntry(entry: PerformanceNavigationTiming): ReplayPerformanceEntry | null {\n const {\n entryType,\n name,\n decodedBodySize,\n duration,\n domComplete,\n encodedBodySize,\n domContentLoadedEventStart,\n domContentLoadedEventEnd,\n domInteractive,\n loadEventStart,\n loadEventEnd,\n redirectCount,\n startTime,\n transferSize,\n type,\n } = entry;\n\n // Ignore entries with no duration, they do not seem to be useful and cause dupes\n if (duration === 0) {\n return null;\n }\n\n return {\n type: `${entryType}.${type}`,\n start: getAbsoluteTime(startTime),\n end: getAbsoluteTime(domComplete),\n name,\n data: {\n size: transferSize,\n decodedBodySize,\n encodedBodySize,\n duration,\n domInteractive,\n domContentLoadedEventStart,\n domContentLoadedEventEnd,\n loadEventStart,\n loadEventEnd,\n domComplete,\n redirectCount,\n },\n };\n}\n\nfunction createResourceEntry(\n entry: ExperimentalPerformanceResourceTiming,\n): ReplayPerformanceEntry | null {\n const {\n entryType,\n initiatorType,\n name,\n responseEnd,\n startTime,\n decodedBodySize,\n encodedBodySize,\n responseStatus,\n transferSize,\n } = entry;\n\n // Core SDK handles these\n if (['fetch', 'xmlhttprequest'].includes(initiatorType)) {\n return null;\n }\n\n return {\n type: `${entryType}.${initiatorType}`,\n start: getAbsoluteTime(startTime),\n end: getAbsoluteTime(responseEnd),\n name,\n data: {\n size: transferSize,\n statusCode: responseStatus,\n decodedBodySize,\n encodedBodySize,\n },\n };\n}\n\n/**\n * Add a LCP event to the replay based on an LCP metric.\n */\nexport function getLargestContentfulPaint(metric: {\n value: number;\n entries: PerformanceEntry[];\n}): ReplayPerformanceEntry {\n const entries = metric.entries;\n const lastEntry = entries[entries.length - 1] as (PerformanceEntry & { element?: Element }) | undefined;\n const element = lastEntry ? lastEntry.element : undefined;\n\n const value = metric.value;\n\n const end = getAbsoluteTime(value);\n\n const data: ReplayPerformanceEntry = {\n type: 'largest-contentful-paint',\n name: 'largest-contentful-paint',\n start: end,\n end,\n data: {\n value,\n size: value,\n nodeId: element ? record.mirror.getId(element) : undefined,\n },\n };\n\n return data;\n}\n","import { addLcpInstrumentationHandler, addPerformanceInstrumentationHandler } from '@sentry-internal/tracing';\n\nimport type { ReplayContainer } from '../types';\nimport { getLargestContentfulPaint } from '../util/createPerformanceEntries';\n\n/**\n * Sets up a PerformanceObserver to listen to all performance entry types.\n * Returns a callback to stop observing.\n */\nexport function setupPerformanceObserver(replay: ReplayContainer): () => void {\n function addPerformanceEntry(entry: PerformanceEntry): void {\n // It is possible for entries to come up multiple times\n if (!replay.performanceEntries.includes(entry)) {\n replay.performanceEntries.push(entry);\n }\n }\n\n function onEntries({ entries }: { entries: PerformanceEntry[] }): void {\n entries.forEach(addPerformanceEntry);\n }\n\n const clearCallbacks: (() => void)[] = [];\n\n (['navigation', 'paint', 'resource'] as const).forEach(type => {\n clearCallbacks.push(addPerformanceInstrumentationHandler(type, onEntries));\n });\n\n clearCallbacks.push(\n addLcpInstrumentationHandler(({ metric }) => {\n replay.replayPerformanceEntries.push(getLargestContentfulPaint(metric));\n }),\n );\n\n // A callback to cleanup all handlers\n return () => {\n clearCallbacks.forEach(clearCallback => clearCallback());\n };\n}\n","import { addBreadcrumb } from '@sentry/core';\nimport { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\n\n/**\n * Log a message in debug mode, and add a breadcrumb when _experiment.traceInternals is enabled.\n */\nexport function logInfo(message: string, shouldAddBreadcrumb?: boolean): void {\n if (!DEBUG_BUILD) {\n return;\n }\n\n logger.info(message);\n\n if (shouldAddBreadcrumb) {\n addLogBreadcrumb(message);\n }\n}\n\n/**\n * Log a message, and add a breadcrumb in the next tick.\n * This is necessary when the breadcrumb may be added before the replay is initialized.\n */\nexport function logInfoNextTick(message: string, shouldAddBreadcrumb?: boolean): void {\n if (!DEBUG_BUILD) {\n return;\n }\n\n logger.info(message);\n\n if (shouldAddBreadcrumb) {\n // Wait a tick here to avoid race conditions for some initial logs\n // which may be added before replay is initialized\n setTimeout(() => {\n addLogBreadcrumb(message);\n }, 0);\n }\n}\n\nfunction addLogBreadcrumb(message: string): void {\n addBreadcrumb(\n {\n category: 'console',\n data: {\n logger: 'replay',\n },\n level: 'info',\n message,\n },\n { level: 'info' },\n );\n}\n","import { REPLAY_MAX_EVENT_BUFFER_SIZE } from '../constants';\n\n/** This error indicates that the event buffer size exceeded the limit.. */\nexport class EventBufferSizeExceededError extends Error {\n public constructor() {\n super(`Event buffer exceeded maximum size of ${REPLAY_MAX_EVENT_BUFFER_SIZE}.`);\n }\n}\n","import { REPLAY_MAX_EVENT_BUFFER_SIZE } from '../constants';\nimport type { AddEventResult, EventBuffer, EventBufferType, RecordingEvent } from '../types';\nimport { timestampToMs } from '../util/timestamp';\nimport { EventBufferSizeExceededError } from './error';\n\n/**\n * A basic event buffer that does not do any compression.\n * Used as fallback if the compression worker cannot be loaded or is disabled.\n */\nexport class EventBufferArray implements EventBuffer {\n /** All the events that are buffered to be sent. */\n public events: RecordingEvent[];\n\n /** @inheritdoc */\n public hasCheckout: boolean;\n\n private _totalSize: number;\n\n public constructor() {\n this.events = [];\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n\n /** @inheritdoc */\n public get hasEvents(): boolean {\n return this.events.length > 0;\n }\n\n /** @inheritdoc */\n public get type(): EventBufferType {\n return 'sync';\n }\n\n /** @inheritdoc */\n public destroy(): void {\n this.events = [];\n }\n\n /** @inheritdoc */\n public async addEvent(event: RecordingEvent): Promise {\n const eventSize = JSON.stringify(event).length;\n this._totalSize += eventSize;\n if (this._totalSize > REPLAY_MAX_EVENT_BUFFER_SIZE) {\n throw new EventBufferSizeExceededError();\n }\n\n this.events.push(event);\n }\n\n /** @inheritdoc */\n public finish(): Promise {\n return new Promise(resolve => {\n // Make a copy of the events array reference and immediately clear the\n // events member so that we do not lose new events while uploading\n // attachment.\n const eventsRet = this.events;\n this.clear();\n resolve(JSON.stringify(eventsRet));\n });\n }\n\n /** @inheritdoc */\n public clear(): void {\n this.events = [];\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n\n /** @inheritdoc */\n public getEarliestTimestamp(): number | null {\n const timestamp = this.events.map(event => event.timestamp).sort()[0];\n\n if (!timestamp) {\n return null;\n }\n\n return timestampToMs(timestamp);\n }\n}\n","import { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { WorkerRequest, WorkerResponse } from '../types';\nimport { logInfo } from '../util/log';\n\n/**\n * Event buffer that uses a web worker to compress events.\n * Exported only for testing.\n */\nexport class WorkerHandler {\n private _worker: Worker;\n private _id: number;\n private _ensureReadyPromise?: Promise;\n\n public constructor(worker: Worker) {\n this._worker = worker;\n this._id = 0;\n }\n\n /**\n * Ensure the worker is ready (or not).\n * This will either resolve when the worker is ready, or reject if an error occured.\n */\n public ensureReady(): Promise {\n // Ensure we only check once\n if (this._ensureReadyPromise) {\n return this._ensureReadyPromise;\n }\n\n this._ensureReadyPromise = new Promise((resolve, reject) => {\n this._worker.addEventListener(\n 'message',\n ({ data }: MessageEvent) => {\n if ((data as WorkerResponse).success) {\n resolve();\n } else {\n reject();\n }\n },\n { once: true },\n );\n\n this._worker.addEventListener(\n 'error',\n error => {\n reject(error);\n },\n { once: true },\n );\n });\n\n return this._ensureReadyPromise;\n }\n\n /**\n * Destroy the worker.\n */\n public destroy(): void {\n logInfo('[Replay] Destroying compression worker');\n this._worker.terminate();\n }\n\n /**\n * Post message to worker and wait for response before resolving promise.\n */\n public postMessage(method: WorkerRequest['method'], arg?: WorkerRequest['arg']): Promise {\n const id = this._getAndIncrementId();\n\n return new Promise((resolve, reject) => {\n const listener = ({ data }: MessageEvent): void => {\n const response = data as WorkerResponse;\n if (response.method !== method) {\n return;\n }\n\n // There can be multiple listeners for a single method, the id ensures\n // that the response matches the caller.\n if (response.id !== id) {\n return;\n }\n\n // At this point, we'll always want to remove listener regardless of result status\n this._worker.removeEventListener('message', listener);\n\n if (!response.success) {\n // TODO: Do some error handling, not sure what\n DEBUG_BUILD && logger.error('[Replay]', response.response);\n\n reject(new Error('Error in compression worker'));\n return;\n }\n\n resolve(response.response as T);\n };\n\n // Note: we can't use `once` option because it's possible it needs to\n // listen to multiple messages\n this._worker.addEventListener('message', listener);\n this._worker.postMessage({ id, method, arg });\n });\n }\n\n /** Get the current ID and increment it for the next call. */\n private _getAndIncrementId(): number {\n return this._id++;\n }\n}\n","import type { ReplayRecordingData } from '@sentry/types';\n\nimport { logger } from '@sentry/utils';\nimport { REPLAY_MAX_EVENT_BUFFER_SIZE } from '../constants';\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { AddEventResult, EventBuffer, EventBufferType, RecordingEvent } from '../types';\nimport { timestampToMs } from '../util/timestamp';\nimport { WorkerHandler } from './WorkerHandler';\nimport { EventBufferSizeExceededError } from './error';\n\n/**\n * Event buffer that uses a web worker to compress events.\n * Exported only for testing.\n */\nexport class EventBufferCompressionWorker implements EventBuffer {\n /** @inheritdoc */\n public hasCheckout: boolean;\n\n private _worker: WorkerHandler;\n private _earliestTimestamp: number | null;\n private _totalSize;\n\n public constructor(worker: Worker) {\n this._worker = new WorkerHandler(worker);\n this._earliestTimestamp = null;\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n\n /** @inheritdoc */\n public get hasEvents(): boolean {\n return !!this._earliestTimestamp;\n }\n\n /** @inheritdoc */\n public get type(): EventBufferType {\n return 'worker';\n }\n\n /**\n * Ensure the worker is ready (or not).\n * This will either resolve when the worker is ready, or reject if an error occured.\n */\n public ensureReady(): Promise {\n return this._worker.ensureReady();\n }\n\n /**\n * Destroy the event buffer.\n */\n public destroy(): void {\n this._worker.destroy();\n }\n\n /**\n * Add an event to the event buffer.\n *\n * Returns true if event was successfuly received and processed by worker.\n */\n public addEvent(event: RecordingEvent): Promise {\n const timestamp = timestampToMs(event.timestamp);\n if (!this._earliestTimestamp || timestamp < this._earliestTimestamp) {\n this._earliestTimestamp = timestamp;\n }\n\n const data = JSON.stringify(event);\n this._totalSize += data.length;\n\n if (this._totalSize > REPLAY_MAX_EVENT_BUFFER_SIZE) {\n return Promise.reject(new EventBufferSizeExceededError());\n }\n\n return this._sendEventToWorker(data);\n }\n\n /**\n * Finish the event buffer and return the compressed data.\n */\n public finish(): Promise {\n return this._finishRequest();\n }\n\n /** @inheritdoc */\n public clear(): void {\n this._earliestTimestamp = null;\n this._totalSize = 0;\n this.hasCheckout = false;\n\n // We do not wait on this, as we assume the order of messages is consistent for the worker\n this._worker.postMessage('clear').then(null, e => {\n DEBUG_BUILD && logger.warn('[Replay] Sending \"clear\" message to worker failed', e);\n });\n }\n\n /** @inheritdoc */\n public getEarliestTimestamp(): number | null {\n return this._earliestTimestamp;\n }\n\n /**\n * Send the event to the worker.\n */\n private _sendEventToWorker(data: string): Promise {\n return this._worker.postMessage('addEvent', data);\n }\n\n /**\n * Finish the request and return the compressed data from the worker.\n */\n private async _finishRequest(): Promise {\n const response = await this._worker.postMessage('finish');\n\n this._earliestTimestamp = null;\n this._totalSize = 0;\n\n return response;\n }\n}\n","import type { ReplayRecordingData } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { AddEventResult, EventBuffer, EventBufferType, RecordingEvent } from '../types';\nimport { logInfo } from '../util/log';\nimport { EventBufferArray } from './EventBufferArray';\nimport { EventBufferCompressionWorker } from './EventBufferCompressionWorker';\n\n/**\n * This proxy will try to use the compression worker, and fall back to use the simple buffer if an error occurs there.\n * This can happen e.g. if the worker cannot be loaded.\n * Exported only for testing.\n */\nexport class EventBufferProxy implements EventBuffer {\n private _fallback: EventBufferArray;\n private _compression: EventBufferCompressionWorker;\n private _used: EventBuffer;\n private _ensureWorkerIsLoadedPromise: Promise;\n\n public constructor(worker: Worker) {\n this._fallback = new EventBufferArray();\n this._compression = new EventBufferCompressionWorker(worker);\n this._used = this._fallback;\n\n this._ensureWorkerIsLoadedPromise = this._ensureWorkerIsLoaded();\n }\n\n /** @inheritdoc */\n public get type(): EventBufferType {\n return this._used.type;\n }\n\n /** @inheritDoc */\n public get hasEvents(): boolean {\n return this._used.hasEvents;\n }\n\n /** @inheritdoc */\n public get hasCheckout(): boolean {\n return this._used.hasCheckout;\n }\n /** @inheritdoc */\n public set hasCheckout(value: boolean) {\n this._used.hasCheckout = value;\n }\n\n /** @inheritDoc */\n public destroy(): void {\n this._fallback.destroy();\n this._compression.destroy();\n }\n\n /** @inheritdoc */\n public clear(): void {\n return this._used.clear();\n }\n\n /** @inheritdoc */\n public getEarliestTimestamp(): number | null {\n return this._used.getEarliestTimestamp();\n }\n\n /**\n * Add an event to the event buffer.\n *\n * Returns true if event was successfully added.\n */\n public addEvent(event: RecordingEvent): Promise {\n return this._used.addEvent(event);\n }\n\n /** @inheritDoc */\n public async finish(): Promise {\n // Ensure the worker is loaded, so the sent event is compressed\n await this.ensureWorkerIsLoaded();\n\n return this._used.finish();\n }\n\n /** Ensure the worker has loaded. */\n public ensureWorkerIsLoaded(): Promise {\n return this._ensureWorkerIsLoadedPromise;\n }\n\n /** Actually check if the worker has been loaded. */\n private async _ensureWorkerIsLoaded(): Promise {\n try {\n await this._compression.ensureReady();\n } catch (error) {\n // If the worker fails to load, we fall back to the simple buffer.\n // Nothing more to do from our side here\n logInfo('[Replay] Failed to load the compression worker, falling back to simple buffer');\n return;\n }\n\n // Now we need to switch over the array buffer to the compression worker\n await this._switchToCompressionWorker();\n }\n\n /** Switch the used buffer to the compression worker. */\n private async _switchToCompressionWorker(): Promise {\n const { events, hasCheckout } = this._fallback;\n\n const addEventPromises: Promise[] = [];\n for (const event of events) {\n addEventPromises.push(this._compression.addEvent(event));\n }\n\n this._compression.hasCheckout = hasCheckout;\n\n // We switch over to the new buffer immediately - any further events will be added\n // after the previously buffered ones\n this._used = this._compression;\n\n // Wait for original events to be re-added before resolving\n try {\n await Promise.all(addEventPromises);\n } catch (error) {\n DEBUG_BUILD && logger.warn('[Replay] Failed to add events when switching buffers.', error);\n }\n }\n}\n","import { getWorkerURL } from '@sentry-internal/replay-worker';\n\nimport type { EventBuffer } from '../types';\nimport { logInfo } from '../util/log';\nimport { EventBufferArray } from './EventBufferArray';\nimport { EventBufferProxy } from './EventBufferProxy';\n\ninterface CreateEventBufferParams {\n useCompression: boolean;\n workerUrl?: string;\n}\n\n// Treeshakable guard to remove the code of the included compression worker\ndeclare const __SENTRY_EXCLUDE_REPLAY_WORKER__: boolean;\n\n/**\n * Create an event buffer for replays.\n */\nexport function createEventBuffer({\n useCompression,\n workerUrl: customWorkerUrl,\n}: CreateEventBufferParams): EventBuffer {\n if (\n useCompression &&\n // eslint-disable-next-line no-restricted-globals\n window.Worker\n ) {\n const worker = _loadWorker(customWorkerUrl);\n\n if (worker) {\n return worker;\n }\n }\n\n logInfo('[Replay] Using simple buffer');\n return new EventBufferArray();\n}\n\nfunction _loadWorker(customWorkerUrl?: string): EventBufferProxy | void {\n try {\n const workerUrl = customWorkerUrl || _getWorkerUrl();\n\n if (!workerUrl) {\n return;\n }\n\n logInfo(`[Replay] Using compression worker${customWorkerUrl ? ` from ${customWorkerUrl}` : ''}`);\n const worker = new Worker(workerUrl);\n return new EventBufferProxy(worker);\n } catch (error) {\n logInfo('[Replay] Failed to create compression worker');\n // Fall back to use simple event buffer array\n }\n}\n\nfunction _getWorkerUrl(): string {\n if (typeof __SENTRY_EXCLUDE_REPLAY_WORKER__ === 'undefined' || !__SENTRY_EXCLUDE_REPLAY_WORKER__) {\n return getWorkerURL();\n }\n\n return '';\n}\n","import r from\"./worker\";function e(){const e=new Blob([r]);return URL.createObjectURL(e)}export{e as getWorkerURL};\n","export default `var t=Uint8Array,n=Uint16Array,r=Int32Array,e=new t([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),i=new t([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),a=new t([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),s=function(t,e){for(var i=new n(31),a=0;a<31;++a)i[a]=e+=1<>1|(21845&c)<<1;v=(61680&(v=(52428&v)>>2|(13107&v)<<2))>>4|(3855&v)<<4,u[c]=((65280&v)>>8|(255&v)<<8)>>1}var d=function(t,r,e){for(var i=t.length,a=0,s=new n(r);a>h]=l}else for(o=new n(i),a=0;a>15-t[a]);return o},g=new t(288);for(c=0;c<144;++c)g[c]=8;for(c=144;c<256;++c)g[c]=9;for(c=256;c<280;++c)g[c]=7;for(c=280;c<288;++c)g[c]=8;var w=new t(32);for(c=0;c<32;++c)w[c]=5;var p=d(g,9,0),y=d(w,5,0),m=function(t){return(t+7)/8|0},b=function(n,r,e){return(null==r||r<0)&&(r=0),(null==e||e>n.length)&&(e=n.length),new t(n.subarray(r,e))},M=[\"unexpected EOF\",\"invalid block type\",\"invalid length/literal\",\"invalid distance\",\"stream finished\",\"no stream handler\",,\"no callback\",\"invalid UTF-8 data\",\"extra field too long\",\"date not in range 1980-2099\",\"filename too long\",\"stream finishing\",\"invalid zip data\"],E=function(t,n,r){var e=new Error(n||M[t]);if(e.code=t,Error.captureStackTrace&&Error.captureStackTrace(e,E),!r)throw e;return e},z=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8},A=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8,t[e+2]|=r>>16},_=function(r,e){for(var i=[],a=0;ad&&(d=o[a].s);var g=new n(d+1),w=x(i[c-1],g,0);if(w>e){a=0;var p=0,y=w-e,m=1<e))break;p+=m-(1<>=y;p>0;){var M=o[a].s;g[M]=0&&p;--a){var E=o[a].s;g[E]==e&&(--g[E],++p)}w=e}return{t:new t(g),l:w}},x=function(t,n,r){return-1==t.s?Math.max(x(t.l,n,r+1),x(t.r,n,r+1)):n[t.s]=r},D=function(t){for(var r=t.length;r&&!t[--r];);for(var e=new n(++r),i=0,a=t[0],s=1,o=function(t){e[i++]=t},f=1;f<=r;++f)if(t[f]==a&&f!=r)++s;else{if(!a&&s>2){for(;s>138;s-=138)o(32754);s>2&&(o(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(o(a),--s;s>6;s-=6)o(8304);s>2&&(o(s-3<<5|8208),s=0)}for(;s--;)o(a);s=1,a=t[f]}return{c:e.subarray(0,i),n:r}},T=function(t,n){for(var r=0,e=0;e>8,t[i+2]=255^t[i],t[i+3]=255^t[i+1];for(var a=0;a4&&!H[a[K-1]];--K);var N,P,Q,R,V=v+5<<3,W=T(f,g)+T(h,w)+l,X=T(f,M)+T(h,C)+l+14+3*K+T(q,H)+2*q[16]+3*q[17]+7*q[18];if(c>=0&&V<=W&&V<=X)return k(r,m,t.subarray(c,c+v));if(z(r,m,1+(X15&&(z(r,m,tt[B]>>5&127),m+=tt[B]>>12)}}}else N=p,P=g,Q=y,R=w;for(B=0;B255){A(r,m,N[(nt=rt>>18&31)+257]),m+=P[nt+257],nt>7&&(z(r,m,rt>>23&31),m+=e[nt]);var et=31&rt;A(r,m,Q[et]),m+=R[et],et>3&&(A(r,m,rt>>5&8191),m+=i[et])}else A(r,m,N[rt]),m+=P[rt]}return A(r,m,N[256]),m+P[256]},U=new r([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),F=new t(0),I=function(){for(var t=new Int32Array(256),n=0;n<256;++n){for(var r=n,e=9;--e;)r=(1&r&&-306674912)^r>>>1;t[n]=r}return t}(),S=function(){var t=1,n=0;return{p:function(r){for(var e=t,i=n,a=0|r.length,s=0;s!=a;){for(var o=Math.min(s+2655,a);s>16),i=(65535&i)+15*(i>>16)}t=e,n=i},d:function(){return(255&(t%=65521))<<24|(65280&t)<<8|(255&(n%=65521))<<8|n>>8}}},L=function(a,s,o,f,u){if(!u&&(u={l:1},s.dictionary)){var c=s.dictionary.subarray(-32768),v=new t(c.length+a.length);v.set(c),v.set(a,c.length),a=v,u.w=c.length}return function(a,s,o,f,u,c){var v=c.z||a.length,d=new t(f+v+5*(1+Math.ceil(v/7e3))+u),g=d.subarray(f,d.length-u),w=c.l,p=7&(c.r||0);if(s){p&&(g[0]=c.r>>3);for(var y=U[s-1],M=y>>13,E=8191&y,z=(1<7e3||q>24576)&&(N>423||!w)){p=C(a,g,0,F,I,S,O,q,G,j-G,p),q=L=O=0,G=j;for(var P=0;P<286;++P)I[P]=0;for(P=0;P<30;++P)S[P]=0}var Q=2,R=0,V=E,W=J-K&32767;if(N>2&&H==T(j-W))for(var X=Math.min(M,N)-1,Y=Math.min(32767,j),Z=Math.min(258,N);W<=Y&&--V&&J!=K;){if(a[j+Q]==a[j+Q-W]){for(var $=0;$Q){if(Q=$,R=W,$>X)break;var tt=Math.min(W,$-2),nt=0;for(P=0;Pnt&&(nt=et,K=rt)}}}W+=(J=K)-(K=A[J])&32767}if(R){F[q++]=268435456|h[Q]<<18|l[R];var it=31&h[Q],at=31&l[R];O+=e[it]+i[at],++I[257+it],++S[at],B=j+Q,++L}else F[q++]=a[j],++I[a[j]]}}for(j=Math.max(j,B);j=v&&(g[p/8|0]=w,st=v),p=k(g,p+1,a.subarray(j,st))}c.i=v}return b(d,0,f+m(p)+u)}(a,null==s.level?6:s.level,null==s.mem?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(a.length)))):12+s.mem,o,f,u)},O=function(t,n,r){for(;r;++n)t[n]=r,r>>>=8},j=function(){function n(n,r){if(\"function\"==typeof n&&(r=n,n={}),this.ondata=r,this.o=n||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new t(98304),this.o.dictionary){var e=this.o.dictionary.subarray(-32768);this.b.set(e,32768-e.length),this.s.i=32768-e.length}}return n.prototype.p=function(t,n){this.ondata(L(t,this.o,0,0,this.s),n)},n.prototype.push=function(n,r){this.ondata||E(5),this.s.l&&E(4);var e=n.length+this.s.z;if(e>this.b.length){if(e>2*this.b.length-32768){var i=new t(-32768&e);i.set(this.b.subarray(0,this.s.z)),this.b=i}var a=this.b.length-this.s.z;a&&(this.b.set(n.subarray(0,a),this.s.z),this.s.z=this.b.length,this.p(this.b,!1)),this.b.set(this.b.subarray(-32768)),this.b.set(n.subarray(a),32768),this.s.z=n.length-a+32768,this.s.i=32766,this.s.w=32768}else this.b.set(n,this.s.z),this.s.z+=n.length;this.s.l=1&r,(this.s.z>this.s.w+8191||r)&&(this.p(this.b,r||!1),this.s.w=this.s.i,this.s.i-=2)},n}();function q(t,n){n||(n={});var r=function(){var t=-1;return{p:function(n){for(var r=t,e=0;e>>8;t=r},d:function(){return~t}}}(),e=t.length;r.p(t);var i,a=L(t,n,10+((i=n).filename?i.filename.length+1:0),8),s=a.length;return function(t,n){var r=n.filename;if(t[0]=31,t[1]=139,t[2]=8,t[8]=n.level<2?4:9==n.level?2:0,t[9]=3,0!=n.mtime&&O(t,4,Math.floor(new Date(n.mtime||Date.now())/1e3)),r){t[3]=8;for(var e=0;e<=r.length;++e)t[e+10]=r.charCodeAt(e)}}(a,n),O(a,s-8,r.d()),O(a,s-4,e),a}var B=function(){function t(t,n){this.c=S(),this.v=1,j.call(this,t,n)}return t.prototype.push=function(t,n){this.c.p(t),j.prototype.push.call(this,t,n)},t.prototype.p=function(t,n){var r=L(t,this.o,this.v&&(this.o.dictionary?6:2),n&&4,this.s);this.v&&(function(t,n){var r=n.level,e=0==r?0:r<6?1:9==r?3:2;if(t[0]=120,t[1]=e<<6|(n.dictionary&&32),t[1]|=31-(t[0]<<8|t[1])%31,n.dictionary){var i=S();i.p(n.dictionary),O(t,2,i.d())}}(r,this.o),this.v=0),n&&O(r,r.length-4,this.c.d()),this.ondata(r,n)},t}(),G=\"undefined\"!=typeof TextEncoder&&new TextEncoder,H=\"undefined\"!=typeof TextDecoder&&new TextDecoder;try{H.decode(F,{stream:!0})}catch(t){}var J=function(){function t(t){this.ondata=t}return t.prototype.push=function(t,n){this.ondata||E(5),this.d&&E(4),this.ondata(K(t),this.d=n||!1)},t}();function K(n,r){if(r){for(var e=new t(n.length),i=0;i>1)),o=0,f=function(t){s[o++]=t};for(i=0;is.length){var h=new t(o+8+(a-i<<1));h.set(s),s=h}var l=n.charCodeAt(i);l<128||r?f(l):l<2048?(f(192|l>>6),f(128|63&l)):l>55295&&l<57344?(f(240|(l=65536+(1047552&l)|1023&n.charCodeAt(++i))>>18),f(128|l>>12&63),f(128|l>>6&63),f(128|63&l)):(f(224|l>>12),f(128|l>>6&63),f(128|63&l))}return b(s,0,o)}const N=new class{constructor(){this._init()}clear(){this._init()}addEvent(t){if(!t)throw new Error(\"Adding invalid event\");const n=this._hasEvents?\",\":\"\";this.stream.push(n+t),this._hasEvents=!0}finish(){this.stream.push(\"]\",!0);const t=function(t){let n=0;for(let r=0,e=t.length;r{this._deflatedData.push(t)},this.stream=new J(((t,n)=>{this.deflate.push(t,n)})),this.stream.push(\"[\")}},P={clear:()=>{N.clear()},addEvent:t=>N.addEvent(t),finish:()=>N.finish(),compress:t=>function(t){return q(K(t))}(t)};addEventListener(\"message\",(function(t){const n=t.data.method,r=t.data.id,e=t.data.arg;if(n in P&&\"function\"==typeof P[n])try{const t=P[n](e);postMessage({id:r,method:n,success:!0,response:t})}catch(t){postMessage({id:r,method:n,success:!1,response:t.message}),console.error(t)}})),postMessage({id:void 0,method:\"init\",success:!0,response:void 0});`;\n","import { WINDOW } from '../constants';\n\n/** If sessionStorage is available. */\nexport function hasSessionStorage(): boolean {\n try {\n // This can throw, e.g. when being accessed in a sandboxed iframe\n return 'sessionStorage' in WINDOW && !!WINDOW.sessionStorage;\n } catch {\n return false;\n }\n}\n","import { REPLAY_SESSION_KEY, WINDOW } from '../../src/constants';\nimport type { ReplayContainer } from '../../src/types';\nimport { hasSessionStorage } from '../util/hasSessionStorage';\n\n/**\n * Removes the session from Session Storage and unsets session in replay instance\n */\nexport function clearSession(replay: ReplayContainer): void {\n deleteSession();\n replay.session = undefined;\n}\n\n/**\n * Deletes a session from storage\n */\nfunction deleteSession(): void {\n if (!hasSessionStorage()) {\n return;\n }\n\n try {\n WINDOW.sessionStorage.removeItem(REPLAY_SESSION_KEY);\n } catch {\n // Ignore potential SecurityError exceptions\n }\n}\n","/**\n * Given a sample rate, returns true if replay should be sampled.\n *\n * 1.0 = 100% sampling\n * 0.0 = 0% sampling\n */\nexport function isSampled(sampleRate?: number): boolean {\n if (sampleRate === undefined) {\n return false;\n }\n\n // Math.random() returns a number in range of 0 to 1 (inclusive of 0, but not 1)\n return Math.random() < sampleRate;\n}\n","import { uuid4 } from '@sentry/utils';\n\nimport type { Sampled, Session } from '../types';\n\n/**\n * Get a session with defaults & applied sampling.\n */\nexport function makeSession(session: Partial & { sampled: Sampled }): Session {\n const now = Date.now();\n const id = session.id || uuid4();\n // Note that this means we cannot set a started/lastActivity of `0`, but this should not be relevant outside of tests.\n const started = session.started || now;\n const lastActivity = session.lastActivity || now;\n const segmentId = session.segmentId || 0;\n const sampled = session.sampled;\n const previousSessionId = session.previousSessionId;\n\n return {\n id,\n started,\n lastActivity,\n segmentId,\n sampled,\n previousSessionId,\n };\n}\n","import { REPLAY_SESSION_KEY, WINDOW } from '../constants';\nimport type { Session } from '../types';\nimport { hasSessionStorage } from '../util/hasSessionStorage';\n\n/**\n * Save a session to session storage.\n */\nexport function saveSession(session: Session): void {\n if (!hasSessionStorage()) {\n return;\n }\n\n try {\n WINDOW.sessionStorage.setItem(REPLAY_SESSION_KEY, JSON.stringify(session));\n } catch {\n // Ignore potential SecurityError exceptions\n }\n}\n","import type { Sampled, Session, SessionOptions } from '../types';\nimport { isSampled } from '../util/isSampled';\nimport { makeSession } from './Session';\nimport { saveSession } from './saveSession';\n\n/**\n * Get the sampled status for a session based on sample rates & current sampled status.\n */\nexport function getSessionSampleType(sessionSampleRate: number, allowBuffering: boolean): Sampled {\n return isSampled(sessionSampleRate) ? 'session' : allowBuffering ? 'buffer' : false;\n}\n\n/**\n * Create a new session, which in its current implementation is a Sentry event\n * that all replays will be saved to as attachments. Currently, we only expect\n * one of these Sentry events per \"replay session\".\n */\nexport function createSession(\n { sessionSampleRate, allowBuffering, stickySession = false }: SessionOptions,\n { previousSessionId }: { previousSessionId?: string } = {},\n): Session {\n const sampled = getSessionSampleType(sessionSampleRate, allowBuffering);\n const session = makeSession({\n sampled,\n previousSessionId,\n });\n\n if (stickySession) {\n saveSession(session);\n }\n\n return session;\n}\n","/**\n * Given an initial timestamp and an expiry duration, checks to see if current\n * time should be considered as expired.\n */\nexport function isExpired(\n initialTime: null | number,\n expiry: undefined | number,\n targetTime: number = +new Date(),\n): boolean {\n // Always expired if < 0\n if (initialTime === null || expiry === undefined || expiry < 0) {\n return true;\n }\n\n // Never expires if == 0\n if (expiry === 0) {\n return false;\n }\n\n return initialTime + expiry <= targetTime;\n}\n","import type { Session } from '../types';\nimport { isExpired } from './isExpired';\n\n/**\n * Checks to see if session is expired\n */\nexport function isSessionExpired(\n session: Session,\n {\n maxReplayDuration,\n sessionIdleExpire,\n targetTime = Date.now(),\n }: { maxReplayDuration: number; sessionIdleExpire: number; targetTime?: number },\n): boolean {\n return (\n // First, check that maximum session length has not been exceeded\n isExpired(session.started, maxReplayDuration, targetTime) ||\n // check that the idle timeout has not been exceeded (i.e. user has\n // performed an action within the last `sessionIdleExpire` ms)\n isExpired(session.lastActivity, sessionIdleExpire, targetTime)\n );\n}\n","import type { Session } from '../types';\nimport { isSessionExpired } from '../util/isSessionExpired';\n\n/** If the session should be refreshed or not. */\nexport function shouldRefreshSession(\n session: Session,\n { sessionIdleExpire, maxReplayDuration }: { sessionIdleExpire: number; maxReplayDuration: number },\n): boolean {\n // If not expired, all good, just keep the session\n if (!isSessionExpired(session, { sessionIdleExpire, maxReplayDuration })) {\n return false;\n }\n\n // If we are buffering & haven't ever flushed yet, always continue\n if (session.sampled === 'buffer' && session.segmentId === 0) {\n return false;\n }\n\n return true;\n}\n","import type { Session, SessionOptions } from '../types';\nimport { logInfoNextTick } from '../util/log';\nimport { createSession } from './createSession';\nimport { fetchSession } from './fetchSession';\nimport { shouldRefreshSession } from './shouldRefreshSession';\n\n/**\n * Get or create a session, when initializing the replay.\n * Returns a session that may be unsampled.\n */\nexport function loadOrCreateSession(\n {\n traceInternals,\n sessionIdleExpire,\n maxReplayDuration,\n previousSessionId,\n }: {\n sessionIdleExpire: number;\n maxReplayDuration: number;\n traceInternals?: boolean;\n previousSessionId?: string;\n },\n sessionOptions: SessionOptions,\n): Session {\n const existingSession = sessionOptions.stickySession && fetchSession(traceInternals);\n\n // No session exists yet, just create a new one\n if (!existingSession) {\n logInfoNextTick('[Replay] Creating new session', traceInternals);\n return createSession(sessionOptions, { previousSessionId });\n }\n\n if (!shouldRefreshSession(existingSession, { sessionIdleExpire, maxReplayDuration })) {\n return existingSession;\n }\n\n logInfoNextTick('[Replay] Session in sessionStorage is expired, creating new one...');\n return createSession(sessionOptions, { previousSessionId: existingSession.id });\n}\n","import { REPLAY_SESSION_KEY, WINDOW } from '../constants';\nimport type { Session } from '../types';\nimport { hasSessionStorage } from '../util/hasSessionStorage';\nimport { logInfoNextTick } from '../util/log';\nimport { makeSession } from './Session';\n\n/**\n * Fetches a session from storage\n */\nexport function fetchSession(traceInternals?: boolean): Session | null {\n if (!hasSessionStorage()) {\n return null;\n }\n\n try {\n // This can throw if cookies are disabled\n const sessionStringFromStorage = WINDOW.sessionStorage.getItem(REPLAY_SESSION_KEY);\n\n if (!sessionStringFromStorage) {\n return null;\n }\n\n const sessionObj = JSON.parse(sessionStringFromStorage) as Session;\n\n logInfoNextTick('[Replay] Loading existing session', traceInternals);\n\n return makeSession(sessionObj);\n } catch {\n return null;\n }\n}\n","import { EventType } from '@sentry-internal/rrweb';\nimport { getClient } from '@sentry/core';\nimport { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport { EventBufferSizeExceededError } from '../eventBuffer/error';\nimport type { AddEventResult, RecordingEvent, ReplayContainer, ReplayFrameEvent, ReplayPluginOptions } from '../types';\nimport { logInfo } from './log';\nimport { timestampToMs } from './timestamp';\n\nfunction isCustomEvent(event: RecordingEvent): event is ReplayFrameEvent {\n return event.type === EventType.Custom;\n}\n\n/**\n * Add an event to the event buffer.\n * In contrast to `addEvent`, this does not return a promise & does not wait for the adding of the event to succeed/fail.\n * Instead this returns `true` if we tried to add the event, else false.\n * It returns `false` e.g. if we are paused, disabled, or out of the max replay duration.\n *\n * `isCheckout` is true if this is either the very first event, or an event triggered by `checkoutEveryNms`.\n */\nexport function addEventSync(replay: ReplayContainer, event: RecordingEvent, isCheckout?: boolean): boolean {\n if (!shouldAddEvent(replay, event)) {\n return false;\n }\n\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n _addEvent(replay, event, isCheckout);\n\n return true;\n}\n\n/**\n * Add an event to the event buffer.\n * Resolves to `null` if no event was added, else to `void`.\n *\n * `isCheckout` is true if this is either the very first event, or an event triggered by `checkoutEveryNms`.\n */\nexport function addEvent(\n replay: ReplayContainer,\n event: RecordingEvent,\n isCheckout?: boolean,\n): Promise {\n if (!shouldAddEvent(replay, event)) {\n return Promise.resolve(null);\n }\n\n return _addEvent(replay, event, isCheckout);\n}\n\nasync function _addEvent(\n replay: ReplayContainer,\n event: RecordingEvent,\n isCheckout?: boolean,\n): Promise {\n if (!replay.eventBuffer) {\n return null;\n }\n\n try {\n if (isCheckout && replay.recordingMode === 'buffer') {\n replay.eventBuffer.clear();\n }\n\n if (isCheckout) {\n replay.eventBuffer.hasCheckout = true;\n }\n\n const replayOptions = replay.getOptions();\n\n const eventAfterPossibleCallback = maybeApplyCallback(event, replayOptions.beforeAddRecordingEvent);\n\n if (!eventAfterPossibleCallback) {\n return;\n }\n\n return await replay.eventBuffer.addEvent(eventAfterPossibleCallback);\n } catch (error) {\n const reason = error && error instanceof EventBufferSizeExceededError ? 'addEventSizeExceeded' : 'addEvent';\n\n DEBUG_BUILD && logger.error(error);\n await replay.stop({ reason });\n\n const client = getClient();\n\n if (client) {\n client.recordDroppedEvent('internal_sdk_error', 'replay');\n }\n }\n}\n\n/** Exported only for tests. */\nexport function shouldAddEvent(replay: ReplayContainer, event: RecordingEvent): boolean {\n if (!replay.eventBuffer || replay.isPaused() || !replay.isEnabled()) {\n return false;\n }\n\n const timestampInMs = timestampToMs(event.timestamp);\n\n // Throw out events that happen more than 5 minutes ago. This can happen if\n // page has been left open and idle for a long period of time and user\n // comes back to trigger a new session. The performance entries rely on\n // `performance.timeOrigin`, which is when the page first opened.\n if (timestampInMs + replay.timeouts.sessionIdlePause < Date.now()) {\n return false;\n }\n\n // Throw out events that are +60min from the initial timestamp\n if (timestampInMs > replay.getContext().initialTimestamp + replay.getOptions().maxReplayDuration) {\n logInfo(\n `[Replay] Skipping event with timestamp ${timestampInMs} because it is after maxReplayDuration`,\n replay.getOptions()._experiments.traceInternals,\n );\n return false;\n }\n\n return true;\n}\n\nfunction maybeApplyCallback(\n event: RecordingEvent,\n callback: ReplayPluginOptions['beforeAddRecordingEvent'],\n): RecordingEvent | null | undefined {\n try {\n if (typeof callback === 'function' && isCustomEvent(event)) {\n return callback(event);\n }\n } catch (error) {\n DEBUG_BUILD &&\n logger.error('[Replay] An error occured in the `beforeAddRecordingEvent` callback, skipping the event...', error);\n return null;\n }\n\n return event;\n}\n","import type { ErrorEvent, Event, FeedbackEvent, ReplayEvent, TransactionEvent } from '@sentry/types';\n\n/** If the event is an error event */\nexport function isErrorEvent(event: Event): event is ErrorEvent {\n return !event.type;\n}\n\n/** If the event is a transaction event */\nexport function isTransactionEvent(event: Event): event is TransactionEvent {\n return event.type === 'transaction';\n}\n\n/** If the event is an replay event */\nexport function isReplayEvent(event: Event): event is ReplayEvent {\n return event.type === 'replay_event';\n}\n\n/** If the event is a feedback event */\nexport function isFeedbackEvent(event: Event): event is FeedbackEvent {\n return event.type === 'feedback';\n}\n","import { getClient } from '@sentry/core';\nimport type { ErrorEvent, Event, TransactionEvent, Transport, TransportMakeRequestResponse } from '@sentry/types';\n\nimport type { ReplayContainer } from '../types';\nimport { isErrorEvent, isTransactionEvent } from '../util/eventUtils';\n\ntype AfterSendEventCallback = (event: Event, sendResponse: TransportMakeRequestResponse | void) => void;\n\n/**\n * Returns a listener to be added to `client.on('afterSendErrorEvent, listener)`.\n */\nexport function handleAfterSendEvent(replay: ReplayContainer): AfterSendEventCallback {\n // Custom transports may still be returning `Promise`, which means we cannot expect the status code to be available there\n // TODO (v8): remove this check as it will no longer be necessary\n const enforceStatusCode = isBaseTransportSend();\n\n return (event: Event, sendResponse: TransportMakeRequestResponse | void) => {\n if (!replay.isEnabled() || (!isErrorEvent(event) && !isTransactionEvent(event))) {\n return;\n }\n\n const statusCode = sendResponse && sendResponse.statusCode;\n\n // We only want to do stuff on successful error sending, otherwise you get error replays without errors attached\n // If not using the base transport, we allow `undefined` response (as a custom transport may not implement this correctly yet)\n // If we do use the base transport, we skip if we encountered an non-OK status code\n if (enforceStatusCode && (!statusCode || statusCode < 200 || statusCode >= 300)) {\n return;\n }\n\n if (isTransactionEvent(event)) {\n handleTransactionEvent(replay, event);\n return;\n }\n\n handleErrorEvent(replay, event);\n };\n}\n\nfunction handleTransactionEvent(replay: ReplayContainer, event: TransactionEvent): void {\n const replayContext = replay.getContext();\n\n // Collect traceIds in _context regardless of `recordingMode`\n // In error mode, _context gets cleared on every checkout\n // We limit to max. 100 transactions linked\n if (event.contexts && event.contexts.trace && event.contexts.trace.trace_id && replayContext.traceIds.size < 100) {\n replayContext.traceIds.add(event.contexts.trace.trace_id as string);\n }\n}\n\nfunction handleErrorEvent(replay: ReplayContainer, event: ErrorEvent): void {\n const replayContext = replay.getContext();\n\n // Add error to list of errorIds of replay. This is ok to do even if not\n // sampled because context will get reset at next checkout.\n // XXX: There is also a race condition where it's possible to capture an\n // error to Sentry before Replay SDK has loaded, but response returns after\n // it was loaded, and this gets called.\n // We limit to max. 100 errors linked\n if (event.event_id && replayContext.errorIds.size < 100) {\n replayContext.errorIds.add(event.event_id);\n }\n\n // If error event is tagged with replay id it means it was sampled (when in buffer mode)\n // Need to be very careful that this does not cause an infinite loop\n if (replay.recordingMode !== 'buffer' || !event.tags || !event.tags.replayId) {\n return;\n }\n\n const { beforeErrorSampling } = replay.getOptions();\n if (typeof beforeErrorSampling === 'function' && !beforeErrorSampling(event)) {\n return;\n }\n\n setTimeout(() => {\n // Capture current event buffer as new replay\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.sendBufferedReplayOrFlush();\n });\n}\n\nfunction isBaseTransportSend(): boolean {\n const client = getClient();\n if (!client) {\n return false;\n }\n\n const transport = client.getTransport();\n if (!transport) {\n return false;\n }\n\n return (\n (transport.send as Transport['send'] & { __sentry__baseTransport__?: true }).__sentry__baseTransport__ || false\n );\n}\n","import type { ErrorEvent, Event } from '@sentry/types';\n\nimport type { ReplayContainer } from '../types';\nimport { createBreadcrumb } from '../util/createBreadcrumb';\nimport { isErrorEvent } from '../util/eventUtils';\nimport { addBreadcrumbEvent } from './util/addBreadcrumbEvent';\n\ntype BeforeSendEventCallback = (event: Event) => void;\n\n/**\n * Returns a listener to be added to `client.on('afterSendErrorEvent, listener)`.\n */\nexport function handleBeforeSendEvent(replay: ReplayContainer): BeforeSendEventCallback {\n return (event: Event) => {\n if (!replay.isEnabled() || !isErrorEvent(event)) {\n return;\n }\n\n handleHydrationError(replay, event);\n };\n}\n\nfunction handleHydrationError(replay: ReplayContainer, event: ErrorEvent): void {\n const exceptionValue = event.exception && event.exception.values && event.exception.values[0].value;\n if (typeof exceptionValue !== 'string') {\n return;\n }\n\n if (\n // Only matches errors in production builds of react-dom\n // Example https://reactjs.org/docs/error-decoder.html?invariant=423\n exceptionValue.match(/reactjs\\.org\\/docs\\/error-decoder\\.html\\?invariant=(418|419|422|423|425)/) ||\n // Development builds of react-dom\n // Error 1: Hydration failed because the initial UI does not match what was rendered on the server.\n // Error 2: Text content does not match server-rendered HTML. Warning: Text content did not match.\n exceptionValue.match(/(does not match server-rendered HTML|Hydration failed because)/i)\n ) {\n const breadcrumb = createBreadcrumb({\n category: 'replay.hydrate-error',\n });\n addBreadcrumbEvent(replay, breadcrumb);\n }\n}\n","import type { Event, EventHint } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { ReplayContainer } from '../types';\nimport { isErrorEvent, isFeedbackEvent, isReplayEvent, isTransactionEvent } from '../util/eventUtils';\nimport { isRrwebError } from '../util/isRrwebError';\nimport { handleAfterSendEvent } from './handleAfterSendEvent';\nimport { addFeedbackBreadcrumb } from './util/addFeedbackBreadcrumb';\nimport { shouldSampleForBufferEvent } from './util/shouldSampleForBufferEvent';\n\n/**\n * Returns a listener to be added to `addEventProcessor(listener)`.\n */\nexport function handleGlobalEventListener(\n replay: ReplayContainer,\n includeAfterSendEventHandling = false,\n): (event: Event, hint: EventHint) => Event | null {\n const afterSendHandler = includeAfterSendEventHandling ? handleAfterSendEvent(replay) : undefined;\n\n return Object.assign(\n (event: Event, hint: EventHint) => {\n // Do nothing if replay has been disabled\n if (!replay.isEnabled()) {\n return event;\n }\n\n if (isReplayEvent(event)) {\n // Replays have separate set of breadcrumbs, do not include breadcrumbs\n // from core SDK\n delete event.breadcrumbs;\n return event;\n }\n\n // We only want to handle errors, transactions, and feedbacks, nothing else\n if (!isErrorEvent(event) && !isTransactionEvent(event) && !isFeedbackEvent(event)) {\n return event;\n }\n\n // Ensure we do not add replay_id if the session is expired\n const isSessionActive = replay.checkAndHandleExpiredSession();\n if (!isSessionActive) {\n return event;\n }\n\n if (isFeedbackEvent(event)) {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.flush();\n event.contexts.feedback.replay_id = replay.getSessionId();\n // Add a replay breadcrumb for this piece of feedback\n addFeedbackBreadcrumb(replay, event);\n return event;\n }\n\n // Unless `captureExceptions` is enabled, we want to ignore errors coming from rrweb\n // As there can be a bunch of stuff going wrong in internals there, that we don't want to bubble up to users\n if (isRrwebError(event, hint) && !replay.getOptions()._experiments.captureExceptions) {\n DEBUG_BUILD && logger.log('[Replay] Ignoring error from rrweb internals', event);\n return null;\n }\n\n // When in buffer mode, we decide to sample here.\n // Later, in `handleAfterSendEvent`, if the replayId is set, we know that we sampled\n // And convert the buffer session to a full session\n const isErrorEventSampled = shouldSampleForBufferEvent(replay, event);\n\n // Tag errors if it has been sampled in buffer mode, or if it is session mode\n // Only tag transactions if in session mode\n const shouldTagReplayId = isErrorEventSampled || replay.recordingMode === 'session';\n\n if (shouldTagReplayId) {\n event.tags = { ...event.tags, replayId: replay.getSessionId() };\n }\n\n // In cases where a custom client is used that does not support the new hooks (yet),\n // we manually call this hook method here\n if (afterSendHandler) {\n // Pretend the error had a 200 response so we always capture it\n afterSendHandler(event, { statusCode: 200 });\n }\n\n return event;\n },\n { id: 'Replay' },\n );\n}\n","import { EventType } from '@sentry-internal/rrweb';\nimport type { FeedbackEvent } from '@sentry/types';\n\nimport type { ReplayBreadcrumbFrameEvent, ReplayContainer } from '../../types';\n\n/**\n * Add a feedback breadcrumb event to replay.\n */\nexport function addFeedbackBreadcrumb(replay: ReplayContainer, event: FeedbackEvent): void {\n replay.triggerUserActivity();\n replay.addUpdate(() => {\n if (!event.timestamp) {\n // Ignore events that don't have timestamps (this shouldn't happen, more of a typing issue)\n // Return true here so that we don't flush\n return true;\n }\n\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.throttledAddEvent({\n type: EventType.Custom,\n timestamp: event.timestamp * 1000,\n data: {\n tag: 'breadcrumb',\n payload: {\n timestamp: event.timestamp,\n type: 'default',\n category: 'sentry.feedback',\n data: {\n feedbackId: event.event_id,\n },\n },\n },\n } as ReplayBreadcrumbFrameEvent);\n\n return false;\n });\n}\n","import type { Event, EventHint } from '@sentry/types';\n\n/**\n * Returns true if we think the given event is an error originating inside of rrweb.\n */\nexport function isRrwebError(event: Event, hint: EventHint): boolean {\n if (event.type || !event.exception || !event.exception.values || !event.exception.values.length) {\n return false;\n }\n\n // @ts-expect-error this may be set by rrweb when it finds errors\n if (hint.originalException && hint.originalException.__rrweb__) {\n return true;\n }\n\n return false;\n}\n","import type { Event } from '@sentry/types';\n\nimport { UNABLE_TO_SEND_REPLAY } from '../../constants';\nimport type { ReplayContainer } from '../../types';\nimport { isSampled } from '../../util/isSampled';\n\n/**\n * Determine if event should be sampled (only applies in buffer mode).\n * When an event is captured by `hanldleGlobalEvent`, when in buffer mode\n * we determine if we want to sample the error or not.\n */\nexport function shouldSampleForBufferEvent(replay: ReplayContainer, event: Event): boolean {\n if (replay.recordingMode !== 'buffer') {\n return false;\n }\n\n // ignore this error because otherwise we could loop indefinitely with\n // trying to capture replay and failing\n if (event.message === UNABLE_TO_SEND_REPLAY) {\n return false;\n }\n\n // Require the event to be an error event & to have an exception\n if (!event.exception || event.type) {\n return false;\n }\n\n return isSampled(replay.getOptions().errorSampleRate);\n}\n","import { EventType } from '@sentry-internal/rrweb';\n\nimport type { AddEventResult, AllEntryData, ReplayContainer, ReplayPerformanceEntry } from '../types';\n\n/**\n * Create a \"span\" for each performance entry.\n */\nexport function createPerformanceSpans(\n replay: ReplayContainer,\n entries: ReplayPerformanceEntry[],\n): Promise[] {\n return entries.map(({ type, start, end, name, data }) => {\n const response = replay.throttledAddEvent({\n type: EventType.Custom,\n timestamp: start,\n data: {\n tag: 'performanceSpan',\n payload: {\n op: type,\n description: name,\n startTimestamp: start,\n endTimestamp: end,\n data,\n },\n },\n });\n\n // If response is a string, it means its either THROTTLED or SKIPPED\n return typeof response === 'string' ? Promise.resolve(null) : response;\n });\n}\n","import type { HandlerDataHistory } from '@sentry/types';\n\nimport type { HistoryData, ReplayContainer, ReplayPerformanceEntry } from '../types';\nimport { createPerformanceSpans } from '../util/createPerformanceSpans';\n\nfunction handleHistory(handlerData: HandlerDataHistory): ReplayPerformanceEntry {\n const { from, to } = handlerData;\n\n const now = Date.now() / 1000;\n\n return {\n type: 'navigation.push',\n start: now,\n end: now,\n name: to,\n data: {\n previous: from,\n },\n };\n}\n\n/**\n * Returns a listener to be added to `addHistoryInstrumentationHandler(listener)`.\n */\nexport function handleHistorySpanListener(replay: ReplayContainer): (handlerData: HandlerDataHistory) => void {\n return (handlerData: HandlerDataHistory) => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleHistory(handlerData);\n\n if (result === null) {\n return;\n }\n\n // Need to collect visited URLs\n replay.getContext().urls.push(result.name);\n replay.triggerUserActivity();\n\n replay.addUpdate(() => {\n createPerformanceSpans(replay, [result]);\n // Returning false to flush\n return false;\n });\n };\n}\n","import type { NetworkRequestData, ReplayContainer, ReplayPerformanceEntry } from '../../types';\nimport { createPerformanceSpans } from '../../util/createPerformanceSpans';\nimport { shouldFilterRequest } from '../../util/shouldFilterRequest';\n\n/** Add a performance entry breadcrumb */\nexport function addNetworkBreadcrumb(\n replay: ReplayContainer,\n result: ReplayPerformanceEntry | null,\n): void {\n if (!replay.isEnabled()) {\n return;\n }\n\n if (result === null) {\n return;\n }\n\n if (shouldFilterRequest(replay, result.name)) {\n return;\n }\n\n replay.addUpdate(() => {\n createPerformanceSpans(replay, [result]);\n // Returning true will cause `addUpdate` to not flush\n // We do not want network requests to cause a flush. This will prevent\n // recurring/polling requests from keeping the replay session alive.\n return true;\n });\n}\n","import { getClient, isSentryRequestUrl } from '@sentry/core';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { ReplayContainer } from '../types';\n\n/**\n * Check whether a given request URL should be filtered out. This is so we\n * don't log Sentry ingest requests.\n */\nexport function shouldFilterRequest(replay: ReplayContainer, url: string): boolean {\n // If we enabled the `traceInternals` experiment, we want to trace everything\n if (DEBUG_BUILD && replay.getOptions()._experiments.traceInternals) {\n return false;\n }\n\n return isSentryRequestUrl(url, getClient());\n}\n","import type { HandlerDataXhr } from '@sentry/types';\nimport { SENTRY_XHR_DATA_KEY } from '@sentry/utils';\n\nimport type { NetworkRequestData, ReplayContainer, ReplayPerformanceEntry } from '../types';\nimport { addNetworkBreadcrumb } from './util/addNetworkBreadcrumb';\n\n/** only exported for tests */\nexport function handleXhr(handlerData: HandlerDataXhr): ReplayPerformanceEntry | null {\n const { startTimestamp, endTimestamp, xhr } = handlerData;\n\n const sentryXhrData = xhr[SENTRY_XHR_DATA_KEY];\n\n if (!startTimestamp || !endTimestamp || !sentryXhrData) {\n return null;\n }\n\n // This is only used as a fallback, so we know the body sizes are never set here\n const { method, url, status_code: statusCode } = sentryXhrData;\n\n if (url === undefined) {\n return null;\n }\n\n return {\n type: 'resource.xhr',\n name: url,\n start: startTimestamp / 1000,\n end: endTimestamp / 1000,\n data: {\n method,\n statusCode,\n },\n };\n}\n\n/**\n * Returns a listener to be added to `addXhrInstrumentationHandler(listener)`.\n */\nexport function handleXhrSpanListener(replay: ReplayContainer): (handlerData: HandlerDataXhr) => void {\n return (handlerData: HandlerDataXhr) => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleXhr(handlerData);\n\n addNetworkBreadcrumb(replay, result);\n };\n}\n","import type { TextEncoderInternal } from '@sentry/types';\nimport { dropUndefinedKeys, logger, stringMatchesSomePattern } from '@sentry/utils';\n\nimport { NETWORK_BODY_MAX_SIZE, WINDOW } from '../../constants';\nimport { DEBUG_BUILD } from '../../debug-build';\nimport type {\n NetworkBody,\n NetworkMetaWarning,\n NetworkRequestData,\n ReplayNetworkRequestData,\n ReplayNetworkRequestOrResponse,\n ReplayPerformanceEntry,\n} from '../../types';\n\n/** Get the size of a body. */\nexport function getBodySize(\n body: RequestInit['body'],\n textEncoder: TextEncoder | TextEncoderInternal,\n): number | undefined {\n if (!body) {\n return undefined;\n }\n\n try {\n if (typeof body === 'string') {\n return textEncoder.encode(body).length;\n }\n\n if (body instanceof URLSearchParams) {\n return textEncoder.encode(body.toString()).length;\n }\n\n if (body instanceof FormData) {\n const formDataStr = _serializeFormData(body);\n return textEncoder.encode(formDataStr).length;\n }\n\n if (body instanceof Blob) {\n return body.size;\n }\n\n if (body instanceof ArrayBuffer) {\n return body.byteLength;\n }\n\n // Currently unhandled types: ArrayBufferView, ReadableStream\n } catch {\n // just return undefined\n }\n\n return undefined;\n}\n\n/** Convert a Content-Length header to number/undefined. */\nexport function parseContentLengthHeader(header: string | null | undefined): number | undefined {\n if (!header) {\n return undefined;\n }\n\n const size = parseInt(header, 10);\n return isNaN(size) ? undefined : size;\n}\n\n/** Get the string representation of a body. */\nexport function getBodyString(body: unknown): [string | undefined, NetworkMetaWarning?] {\n try {\n if (typeof body === 'string') {\n return [body];\n }\n\n if (body instanceof URLSearchParams) {\n return [body.toString()];\n }\n\n if (body instanceof FormData) {\n return [_serializeFormData(body)];\n }\n\n if (!body) {\n return [undefined];\n }\n } catch {\n DEBUG_BUILD && logger.warn('[Replay] Failed to serialize body', body);\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n\n DEBUG_BUILD && logger.info('[Replay] Skipping network body because of body type', body);\n\n return [undefined, 'UNPARSEABLE_BODY_TYPE'];\n}\n\n/** Merge a warning into an existing network request/response. */\nexport function mergeWarning(\n info: ReplayNetworkRequestOrResponse | undefined,\n warning: NetworkMetaWarning,\n): ReplayNetworkRequestOrResponse {\n if (!info) {\n return {\n headers: {},\n size: undefined,\n _meta: {\n warnings: [warning],\n },\n };\n }\n\n const newMeta = { ...info._meta };\n const existingWarnings = newMeta.warnings || [];\n newMeta.warnings = [...existingWarnings, warning];\n\n info._meta = newMeta;\n return info;\n}\n\n/** Convert ReplayNetworkRequestData to a PerformanceEntry. */\nexport function makeNetworkReplayBreadcrumb(\n type: string,\n data: ReplayNetworkRequestData | null,\n): ReplayPerformanceEntry | null {\n if (!data) {\n return null;\n }\n\n const { startTimestamp, endTimestamp, url, method, statusCode, request, response } = data;\n\n const result: ReplayPerformanceEntry = {\n type,\n start: startTimestamp / 1000,\n end: endTimestamp / 1000,\n name: url,\n data: dropUndefinedKeys({\n method,\n statusCode,\n request,\n response,\n }),\n };\n\n return result;\n}\n\n/** Build the request or response part of a replay network breadcrumb that was skipped. */\nexport function buildSkippedNetworkRequestOrResponse(bodySize: number | undefined): ReplayNetworkRequestOrResponse {\n return {\n headers: {},\n size: bodySize,\n _meta: {\n warnings: ['URL_SKIPPED'],\n },\n };\n}\n\n/** Build the request or response part of a replay network breadcrumb. */\nexport function buildNetworkRequestOrResponse(\n headers: Record,\n bodySize: number | undefined,\n body: string | undefined,\n): ReplayNetworkRequestOrResponse | undefined {\n if (!bodySize && Object.keys(headers).length === 0) {\n return undefined;\n }\n\n if (!bodySize) {\n return {\n headers,\n };\n }\n\n if (!body) {\n return {\n headers,\n size: bodySize,\n };\n }\n\n const info: ReplayNetworkRequestOrResponse = {\n headers,\n size: bodySize,\n };\n\n const { body: normalizedBody, warnings } = normalizeNetworkBody(body);\n info.body = normalizedBody;\n if (warnings && warnings.length > 0) {\n info._meta = {\n warnings,\n };\n }\n\n return info;\n}\n\n/** Filter a set of headers */\nexport function getAllowedHeaders(headers: Record, allowedHeaders: string[]): Record {\n return Object.keys(headers).reduce((filteredHeaders: Record, key: string) => {\n const normalizedKey = key.toLowerCase();\n // Avoid putting empty strings into the headers\n if (allowedHeaders.includes(normalizedKey) && headers[key]) {\n filteredHeaders[normalizedKey] = headers[key];\n }\n return filteredHeaders;\n }, {});\n}\n\nfunction _serializeFormData(formData: FormData): string {\n // This is a bit simplified, but gives us a decent estimate\n // This converts e.g. { name: 'Anne Smith', age: 13 } to 'name=Anne+Smith&age=13'\n // @ts-expect-error passing FormData to URLSearchParams actually works\n return new URLSearchParams(formData).toString();\n}\n\nfunction normalizeNetworkBody(body: string | undefined): {\n body: NetworkBody | undefined;\n warnings?: NetworkMetaWarning[];\n} {\n if (!body || typeof body !== 'string') {\n return {\n body,\n };\n }\n\n const exceedsSizeLimit = body.length > NETWORK_BODY_MAX_SIZE;\n const isProbablyJson = _strIsProbablyJson(body);\n\n if (exceedsSizeLimit) {\n const truncatedBody = body.slice(0, NETWORK_BODY_MAX_SIZE);\n\n if (isProbablyJson) {\n return {\n body: truncatedBody,\n warnings: ['MAYBE_JSON_TRUNCATED'],\n };\n }\n\n return {\n body: `${truncatedBody}…`,\n warnings: ['TEXT_TRUNCATED'],\n };\n }\n\n if (isProbablyJson) {\n try {\n const jsonBody = JSON.parse(body);\n return {\n body: jsonBody,\n };\n } catch {\n // fall back to just send the body as string\n }\n }\n\n return {\n body,\n };\n}\n\nfunction _strIsProbablyJson(str: string): boolean {\n const first = str[0];\n const last = str[str.length - 1];\n\n // Simple check: If this does not start & end with {} or [], it's not JSON\n return (first === '[' && last === ']') || (first === '{' && last === '}');\n}\n\n/** Match an URL against a list of strings/Regex. */\nexport function urlMatches(url: string, urls: (string | RegExp)[]): boolean {\n const fullUrl = getFullUrl(url);\n\n return stringMatchesSomePattern(fullUrl, urls);\n}\n\n/** exported for tests */\nexport function getFullUrl(url: string, baseURI = WINDOW.document.baseURI): string {\n // Short circuit for common cases:\n if (url.startsWith('http://') || url.startsWith('https://') || url.startsWith(WINDOW.location.origin)) {\n return url;\n }\n const fixedUrl = new URL(url, baseURI);\n\n // If these do not match, we are not dealing with a relative URL, so just return it\n if (fixedUrl.origin !== new URL(baseURI).origin) {\n return url;\n }\n\n const fullUrl = fixedUrl.href;\n\n // Remove trailing slashes, if they don't match the original URL\n if (!url.endsWith('/') && fullUrl.endsWith('/')) {\n return fullUrl.slice(0, -1);\n }\n\n return fullUrl;\n}\n","import type { Breadcrumb, FetchBreadcrumbData, TextEncoderInternal } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../../debug-build';\nimport type {\n FetchHint,\n NetworkMetaWarning,\n ReplayContainer,\n ReplayNetworkOptions,\n ReplayNetworkRequestData,\n ReplayNetworkRequestOrResponse,\n} from '../../types';\nimport { addNetworkBreadcrumb } from './addNetworkBreadcrumb';\nimport {\n buildNetworkRequestOrResponse,\n buildSkippedNetworkRequestOrResponse,\n getAllowedHeaders,\n getBodySize,\n getBodyString,\n makeNetworkReplayBreadcrumb,\n mergeWarning,\n parseContentLengthHeader,\n urlMatches,\n} from './networkUtils';\n\n/**\n * Capture a fetch breadcrumb to a replay.\n * This adds additional data (where approriate).\n */\nexport async function captureFetchBreadcrumbToReplay(\n breadcrumb: Breadcrumb & { data: FetchBreadcrumbData },\n hint: Partial,\n options: ReplayNetworkOptions & {\n textEncoder: TextEncoderInternal;\n replay: ReplayContainer;\n },\n): Promise {\n try {\n const data = await _prepareFetchData(breadcrumb, hint, options);\n\n // Create a replay performance entry from this breadcrumb\n const result = makeNetworkReplayBreadcrumb('resource.fetch', data);\n addNetworkBreadcrumb(options.replay, result);\n } catch (error) {\n DEBUG_BUILD && logger.error('[Replay] Failed to capture fetch breadcrumb', error);\n }\n}\n\n/**\n * Enrich a breadcrumb with additional data.\n * This has to be sync & mutate the given breadcrumb,\n * as the breadcrumb is afterwards consumed by other handlers.\n */\nexport function enrichFetchBreadcrumb(\n breadcrumb: Breadcrumb & { data: FetchBreadcrumbData },\n hint: Partial,\n options: { textEncoder: TextEncoderInternal },\n): void {\n const { input, response } = hint;\n\n const body = input ? _getFetchRequestArgBody(input) : undefined;\n const reqSize = getBodySize(body, options.textEncoder);\n\n const resSize = response ? parseContentLengthHeader(response.headers.get('content-length')) : undefined;\n\n if (reqSize !== undefined) {\n breadcrumb.data.request_body_size = reqSize;\n }\n if (resSize !== undefined) {\n breadcrumb.data.response_body_size = resSize;\n }\n}\n\nasync function _prepareFetchData(\n breadcrumb: Breadcrumb & { data: FetchBreadcrumbData },\n hint: Partial,\n options: ReplayNetworkOptions & {\n textEncoder: TextEncoderInternal;\n },\n): Promise {\n const now = Date.now();\n const { startTimestamp = now, endTimestamp = now } = hint;\n\n const {\n url,\n method,\n status_code: statusCode = 0,\n request_body_size: requestBodySize,\n response_body_size: responseBodySize,\n } = breadcrumb.data;\n\n const captureDetails =\n urlMatches(url, options.networkDetailAllowUrls) && !urlMatches(url, options.networkDetailDenyUrls);\n\n const request = captureDetails\n ? _getRequestInfo(options, hint.input, requestBodySize)\n : buildSkippedNetworkRequestOrResponse(requestBodySize);\n const response = await _getResponseInfo(captureDetails, options, hint.response, responseBodySize);\n\n return {\n startTimestamp,\n endTimestamp,\n url,\n method,\n statusCode,\n request,\n response,\n };\n}\n\nfunction _getRequestInfo(\n { networkCaptureBodies, networkRequestHeaders }: ReplayNetworkOptions,\n input: FetchHint['input'] | undefined,\n requestBodySize?: number,\n): ReplayNetworkRequestOrResponse | undefined {\n const headers = input ? getRequestHeaders(input, networkRequestHeaders) : {};\n\n if (!networkCaptureBodies) {\n return buildNetworkRequestOrResponse(headers, requestBodySize, undefined);\n }\n\n // We only want to transmit string or string-like bodies\n const requestBody = _getFetchRequestArgBody(input);\n const [bodyStr, warning] = getBodyString(requestBody);\n const data = buildNetworkRequestOrResponse(headers, requestBodySize, bodyStr);\n\n if (warning) {\n return mergeWarning(data, warning);\n }\n\n return data;\n}\n\n/** Exported only for tests. */\nexport async function _getResponseInfo(\n captureDetails: boolean,\n {\n networkCaptureBodies,\n textEncoder,\n networkResponseHeaders,\n }: Pick & {\n textEncoder: TextEncoderInternal;\n },\n response: Response | undefined,\n responseBodySize?: number,\n): Promise {\n if (!captureDetails && responseBodySize !== undefined) {\n return buildSkippedNetworkRequestOrResponse(responseBodySize);\n }\n\n const headers = response ? getAllHeaders(response.headers, networkResponseHeaders) : {};\n\n if (!response || (!networkCaptureBodies && responseBodySize !== undefined)) {\n return buildNetworkRequestOrResponse(headers, responseBodySize, undefined);\n }\n\n const [bodyText, warning] = await _parseFetchResponseBody(response);\n const result = getResponseData(bodyText, {\n networkCaptureBodies,\n textEncoder,\n responseBodySize,\n captureDetails,\n headers,\n });\n\n if (warning) {\n return mergeWarning(result, warning);\n }\n\n return result;\n}\n\nfunction getResponseData(\n bodyText: string | undefined,\n {\n networkCaptureBodies,\n textEncoder,\n responseBodySize,\n captureDetails,\n headers,\n }: {\n captureDetails: boolean;\n networkCaptureBodies: boolean;\n responseBodySize: number | undefined;\n headers: Record;\n textEncoder: TextEncoderInternal;\n },\n): ReplayNetworkRequestOrResponse | undefined {\n try {\n const size =\n bodyText && bodyText.length && responseBodySize === undefined\n ? getBodySize(bodyText, textEncoder)\n : responseBodySize;\n\n if (!captureDetails) {\n return buildSkippedNetworkRequestOrResponse(size);\n }\n\n if (networkCaptureBodies) {\n return buildNetworkRequestOrResponse(headers, size, bodyText);\n }\n\n return buildNetworkRequestOrResponse(headers, size, undefined);\n } catch (error) {\n DEBUG_BUILD && logger.warn('[Replay] Failed to serialize response body', error);\n // fallback\n return buildNetworkRequestOrResponse(headers, responseBodySize, undefined);\n }\n}\n\nasync function _parseFetchResponseBody(response: Response): Promise<[string | undefined, NetworkMetaWarning?]> {\n const res = _tryCloneResponse(response);\n\n if (!res) {\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n\n try {\n const text = await _tryGetResponseText(res);\n return [text];\n } catch (error) {\n DEBUG_BUILD && logger.warn('[Replay] Failed to get text body from response', error);\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n}\n\nfunction _getFetchRequestArgBody(fetchArgs: unknown[] = []): RequestInit['body'] | undefined {\n // We only support getting the body from the fetch options\n if (fetchArgs.length !== 2 || typeof fetchArgs[1] !== 'object') {\n return undefined;\n }\n\n return (fetchArgs[1] as RequestInit).body;\n}\n\nfunction getAllHeaders(headers: Headers, allowedHeaders: string[]): Record {\n const allHeaders: Record = {};\n\n allowedHeaders.forEach(header => {\n if (headers.get(header)) {\n allHeaders[header] = headers.get(header) as string;\n }\n });\n\n return allHeaders;\n}\n\nfunction getRequestHeaders(fetchArgs: unknown[], allowedHeaders: string[]): Record {\n if (fetchArgs.length === 1 && typeof fetchArgs[0] !== 'string') {\n return getHeadersFromOptions(fetchArgs[0] as Request | RequestInit, allowedHeaders);\n }\n\n if (fetchArgs.length === 2) {\n return getHeadersFromOptions(fetchArgs[1] as Request | RequestInit, allowedHeaders);\n }\n\n return {};\n}\n\nfunction getHeadersFromOptions(\n input: Request | RequestInit | undefined,\n allowedHeaders: string[],\n): Record {\n if (!input) {\n return {};\n }\n\n const headers = input.headers;\n\n if (!headers) {\n return {};\n }\n\n if (headers instanceof Headers) {\n return getAllHeaders(headers, allowedHeaders);\n }\n\n // We do not support this, as it is not really documented (anymore?)\n if (Array.isArray(headers)) {\n return {};\n }\n\n return getAllowedHeaders(headers, allowedHeaders);\n}\n\nfunction _tryCloneResponse(response: Response): Response | void {\n try {\n // We have to clone this, as the body can only be read once\n return response.clone();\n } catch (error) {\n // this can throw if the response was already consumed before\n DEBUG_BUILD && logger.warn('[Replay] Failed to clone response body', error);\n }\n}\n\n/**\n * Get the response body of a fetch request, or timeout after 500ms.\n * Fetch can return a streaming body, that may not resolve (or not for a long time).\n * If that happens, we rather abort after a short time than keep waiting for this.\n */\nfunction _tryGetResponseText(response: Response): Promise {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => reject(new Error('Timeout while trying to read response body')), 500);\n\n _getResponseText(response)\n .then(\n txt => resolve(txt),\n reason => reject(reason),\n )\n .finally(() => clearTimeout(timeout));\n });\n\n return _getResponseText(response);\n}\n\nasync function _getResponseText(response: Response): Promise {\n // Force this to be a promise, just to be safe\n // eslint-disable-next-line no-return-await\n return await response.text();\n}\n","import type { Breadcrumb, TextEncoderInternal, XhrBreadcrumbData } from '@sentry/types';\nimport { SENTRY_XHR_DATA_KEY, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../../debug-build';\nimport type {\n NetworkMetaWarning,\n ReplayContainer,\n ReplayNetworkOptions,\n ReplayNetworkRequestData,\n XhrHint,\n} from '../../types';\nimport { addNetworkBreadcrumb } from './addNetworkBreadcrumb';\nimport {\n buildNetworkRequestOrResponse,\n buildSkippedNetworkRequestOrResponse,\n getAllowedHeaders,\n getBodySize,\n getBodyString,\n makeNetworkReplayBreadcrumb,\n mergeWarning,\n parseContentLengthHeader,\n urlMatches,\n} from './networkUtils';\n\n/**\n * Capture an XHR breadcrumb to a replay.\n * This adds additional data (where approriate).\n */\nexport async function captureXhrBreadcrumbToReplay(\n breadcrumb: Breadcrumb & { data: XhrBreadcrumbData },\n hint: Partial,\n options: ReplayNetworkOptions & { replay: ReplayContainer },\n): Promise {\n try {\n const data = _prepareXhrData(breadcrumb, hint, options);\n\n // Create a replay performance entry from this breadcrumb\n const result = makeNetworkReplayBreadcrumb('resource.xhr', data);\n addNetworkBreadcrumb(options.replay, result);\n } catch (error) {\n DEBUG_BUILD && logger.error('[Replay] Failed to capture xhr breadcrumb', error);\n }\n}\n\n/**\n * Enrich a breadcrumb with additional data.\n * This has to be sync & mutate the given breadcrumb,\n * as the breadcrumb is afterwards consumed by other handlers.\n */\nexport function enrichXhrBreadcrumb(\n breadcrumb: Breadcrumb & { data: XhrBreadcrumbData },\n hint: Partial,\n options: { textEncoder: TextEncoderInternal },\n): void {\n const { xhr, input } = hint;\n\n if (!xhr) {\n return;\n }\n\n const reqSize = getBodySize(input, options.textEncoder);\n const resSize = xhr.getResponseHeader('content-length')\n ? parseContentLengthHeader(xhr.getResponseHeader('content-length'))\n : _getBodySize(xhr.response, xhr.responseType, options.textEncoder);\n\n if (reqSize !== undefined) {\n breadcrumb.data.request_body_size = reqSize;\n }\n if (resSize !== undefined) {\n breadcrumb.data.response_body_size = resSize;\n }\n}\n\nfunction _prepareXhrData(\n breadcrumb: Breadcrumb & { data: XhrBreadcrumbData },\n hint: Partial,\n options: ReplayNetworkOptions,\n): ReplayNetworkRequestData | null {\n const now = Date.now();\n const { startTimestamp = now, endTimestamp = now, input, xhr } = hint;\n\n const {\n url,\n method,\n status_code: statusCode = 0,\n request_body_size: requestBodySize,\n response_body_size: responseBodySize,\n } = breadcrumb.data;\n\n if (!url) {\n return null;\n }\n\n if (!xhr || !urlMatches(url, options.networkDetailAllowUrls) || urlMatches(url, options.networkDetailDenyUrls)) {\n const request = buildSkippedNetworkRequestOrResponse(requestBodySize);\n const response = buildSkippedNetworkRequestOrResponse(responseBodySize);\n return {\n startTimestamp,\n endTimestamp,\n url,\n method,\n statusCode,\n request,\n response,\n };\n }\n\n const xhrInfo = xhr[SENTRY_XHR_DATA_KEY];\n const networkRequestHeaders = xhrInfo\n ? getAllowedHeaders(xhrInfo.request_headers, options.networkRequestHeaders)\n : {};\n const networkResponseHeaders = getAllowedHeaders(getResponseHeaders(xhr), options.networkResponseHeaders);\n\n const [requestBody, requestWarning] = options.networkCaptureBodies ? getBodyString(input) : [undefined];\n const [responseBody, responseWarning] = options.networkCaptureBodies ? _getXhrResponseBody(xhr) : [undefined];\n\n const request = buildNetworkRequestOrResponse(networkRequestHeaders, requestBodySize, requestBody);\n const response = buildNetworkRequestOrResponse(networkResponseHeaders, responseBodySize, responseBody);\n\n return {\n startTimestamp,\n endTimestamp,\n url,\n method,\n statusCode,\n request: requestWarning ? mergeWarning(request, requestWarning) : request,\n response: responseWarning ? mergeWarning(response, responseWarning) : response,\n };\n}\n\nfunction getResponseHeaders(xhr: XMLHttpRequest): Record {\n const headers = xhr.getAllResponseHeaders();\n\n if (!headers) {\n return {};\n }\n\n return headers.split('\\r\\n').reduce((acc: Record, line: string) => {\n const [key, value] = line.split(': ');\n acc[key.toLowerCase()] = value;\n return acc;\n }, {});\n}\n\nfunction _getXhrResponseBody(xhr: XMLHttpRequest): [string | undefined, NetworkMetaWarning?] {\n // We collect errors that happen, but only log them if we can't get any response body\n const errors: unknown[] = [];\n\n try {\n return [xhr.responseText];\n } catch (e) {\n errors.push(e);\n }\n\n // Try to manually parse the response body, if responseText fails\n try {\n return _parseXhrResponse(xhr.response, xhr.responseType);\n } catch (e) {\n errors.push(e);\n }\n\n DEBUG_BUILD && logger.warn('[Replay] Failed to get xhr response body', ...errors);\n\n return [undefined];\n}\n\n/**\n * Get the string representation of the XHR response.\n * Based on MDN, these are the possible types of the response:\n * string\n * ArrayBuffer\n * Blob\n * Document\n * POJO\n *\n * Exported only for tests.\n */\nexport function _parseXhrResponse(\n body: XMLHttpRequest['response'],\n responseType: XMLHttpRequest['responseType'],\n): [string | undefined, NetworkMetaWarning?] {\n try {\n if (typeof body === 'string') {\n return [body];\n }\n\n if (body instanceof Document) {\n return [body.body.outerHTML];\n }\n\n if (responseType === 'json' && body && typeof body === 'object') {\n return [JSON.stringify(body)];\n }\n\n if (!body) {\n return [undefined];\n }\n } catch {\n DEBUG_BUILD && logger.warn('[Replay] Failed to serialize body', body);\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n\n DEBUG_BUILD && logger.info('[Replay] Skipping network body because of body type', body);\n\n return [undefined, 'UNPARSEABLE_BODY_TYPE'];\n}\n\nfunction _getBodySize(\n body: XMLHttpRequest['response'],\n responseType: XMLHttpRequest['responseType'],\n textEncoder: TextEncoder | TextEncoderInternal,\n): number | undefined {\n try {\n const bodyStr = responseType === 'json' && body && typeof body === 'object' ? JSON.stringify(body) : body;\n return getBodySize(bodyStr, textEncoder);\n } catch {\n return undefined;\n }\n}\n","import { getClient } from '@sentry/core';\nimport type {\n Breadcrumb,\n BreadcrumbHint,\n FetchBreadcrumbData,\n TextEncoderInternal,\n XhrBreadcrumbData,\n} from '@sentry/types';\nimport { addFetchInstrumentationHandler, addXhrInstrumentationHandler, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { FetchHint, ReplayContainer, ReplayNetworkOptions, XhrHint } from '../types';\nimport { handleFetchSpanListener } from './handleFetch';\nimport { handleXhrSpanListener } from './handleXhr';\nimport { captureFetchBreadcrumbToReplay, enrichFetchBreadcrumb } from './util/fetchUtils';\nimport { captureXhrBreadcrumbToReplay, enrichXhrBreadcrumb } from './util/xhrUtils';\n\ninterface ExtendedNetworkBreadcrumbsOptions extends ReplayNetworkOptions {\n replay: ReplayContainer;\n textEncoder: TextEncoderInternal;\n}\n\n/**\n * This method does two things:\n * - It enriches the regular XHR/fetch breadcrumbs with request/response size data\n * - It captures the XHR/fetch breadcrumbs to the replay\n * (enriching it with further data that is _not_ added to the regular breadcrumbs)\n */\nexport function handleNetworkBreadcrumbs(replay: ReplayContainer): void {\n const client = getClient();\n\n try {\n const textEncoder = new TextEncoder();\n\n const {\n networkDetailAllowUrls,\n networkDetailDenyUrls,\n networkCaptureBodies,\n networkRequestHeaders,\n networkResponseHeaders,\n } = replay.getOptions();\n\n const options: ExtendedNetworkBreadcrumbsOptions = {\n replay,\n textEncoder,\n networkDetailAllowUrls,\n networkDetailDenyUrls,\n networkCaptureBodies,\n networkRequestHeaders,\n networkResponseHeaders,\n };\n\n if (client && client.on) {\n client.on('beforeAddBreadcrumb', (breadcrumb, hint) => beforeAddNetworkBreadcrumb(options, breadcrumb, hint));\n } else {\n // Fallback behavior\n addFetchInstrumentationHandler(handleFetchSpanListener(replay));\n addXhrInstrumentationHandler(handleXhrSpanListener(replay));\n }\n } catch {\n // Do nothing\n }\n}\n\n/** just exported for tests */\nexport function beforeAddNetworkBreadcrumb(\n options: ExtendedNetworkBreadcrumbsOptions,\n breadcrumb: Breadcrumb,\n hint?: BreadcrumbHint,\n): void {\n if (!breadcrumb.data) {\n return;\n }\n\n try {\n if (_isXhrBreadcrumb(breadcrumb) && _isXhrHint(hint)) {\n // This has to be sync, as we need to ensure the breadcrumb is enriched in the same tick\n // Because the hook runs synchronously, and the breadcrumb is afterwards passed on\n // So any async mutations to it will not be reflected in the final breadcrumb\n enrichXhrBreadcrumb(breadcrumb, hint, options);\n\n // This call should not reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n captureXhrBreadcrumbToReplay(breadcrumb, hint, options);\n }\n\n if (_isFetchBreadcrumb(breadcrumb) && _isFetchHint(hint)) {\n // This has to be sync, as we need to ensure the breadcrumb is enriched in the same tick\n // Because the hook runs synchronously, and the breadcrumb is afterwards passed on\n // So any async mutations to it will not be reflected in the final breadcrumb\n enrichFetchBreadcrumb(breadcrumb, hint, options);\n\n // This call should not reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n captureFetchBreadcrumbToReplay(breadcrumb, hint, options);\n }\n } catch (e) {\n DEBUG_BUILD && logger.warn('Error when enriching network breadcrumb');\n }\n}\n\nfunction _isXhrBreadcrumb(breadcrumb: Breadcrumb): breadcrumb is Breadcrumb & { data: XhrBreadcrumbData } {\n return breadcrumb.category === 'xhr';\n}\n\nfunction _isFetchBreadcrumb(breadcrumb: Breadcrumb): breadcrumb is Breadcrumb & { data: FetchBreadcrumbData } {\n return breadcrumb.category === 'fetch';\n}\n\nfunction _isXhrHint(hint?: BreadcrumbHint): hint is XhrHint {\n return hint && hint.xhr;\n}\n\nfunction _isFetchHint(hint?: BreadcrumbHint): hint is FetchHint {\n return hint && hint.response;\n}\n","import type { HandlerDataFetch } from '@sentry/types';\n\nimport type { NetworkRequestData, ReplayContainer, ReplayPerformanceEntry } from '../types';\nimport { addNetworkBreadcrumb } from './util/addNetworkBreadcrumb';\n\n/** only exported for tests */\nexport function handleFetch(handlerData: HandlerDataFetch): null | ReplayPerformanceEntry {\n const { startTimestamp, endTimestamp, fetchData, response } = handlerData;\n\n if (!endTimestamp) {\n return null;\n }\n\n // This is only used as a fallback, so we know the body sizes are never set here\n const { method, url } = fetchData;\n\n return {\n type: 'resource.fetch',\n start: startTimestamp / 1000,\n end: endTimestamp / 1000,\n name: url,\n data: {\n method,\n statusCode: response ? (response as Response).status : undefined,\n },\n };\n}\n\n/**\n * Returns a listener to be added to `addFetchInstrumentationHandler(listener)`.\n */\nexport function handleFetchSpanListener(replay: ReplayContainer): (handlerData: HandlerDataFetch) => void {\n return (handlerData: HandlerDataFetch) => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleFetch(handlerData);\n\n addNetworkBreadcrumb(replay, result);\n };\n}\n","import type { Breadcrumb, Scope } from '@sentry/types';\nimport { normalize } from '@sentry/utils';\n\nimport { CONSOLE_ARG_MAX_SIZE } from '../constants';\nimport type { ReplayContainer } from '../types';\nimport type { ReplayFrame } from '../types/replayFrame';\nimport { createBreadcrumb } from '../util/createBreadcrumb';\nimport { addBreadcrumbEvent } from './util/addBreadcrumbEvent';\n\nlet _LAST_BREADCRUMB: null | Breadcrumb = null;\n\ntype BreadcrumbWithCategory = Required>;\n\nfunction isBreadcrumbWithCategory(breadcrumb: Breadcrumb): breadcrumb is BreadcrumbWithCategory {\n return !!breadcrumb.category;\n}\n\nexport const handleScopeListener: (replay: ReplayContainer) => (scope: Scope) => void =\n (replay: ReplayContainer) =>\n (scope: Scope): void => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleScope(scope);\n\n if (!result) {\n return;\n }\n\n addBreadcrumbEvent(replay, result);\n };\n\n/**\n * An event handler to handle scope changes.\n */\nexport function handleScope(scope: Scope): Breadcrumb | null {\n // TODO (v8): Remove this guard. This was put in place because we introduced\n // Scope.getLastBreadcrumb mid-v7 which caused incompatibilities with older SDKs.\n // For now, we'll just return null if the method doesn't exist but we should eventually\n // get rid of this guard.\n const newBreadcrumb = scope.getLastBreadcrumb && scope.getLastBreadcrumb();\n\n // Listener can be called when breadcrumbs have not changed, so we store the\n // reference to the last crumb and only return a crumb if it has changed\n if (_LAST_BREADCRUMB === newBreadcrumb || !newBreadcrumb) {\n return null;\n }\n\n _LAST_BREADCRUMB = newBreadcrumb;\n\n if (\n !isBreadcrumbWithCategory(newBreadcrumb) ||\n ['fetch', 'xhr', 'sentry.event', 'sentry.transaction'].includes(newBreadcrumb.category) ||\n newBreadcrumb.category.startsWith('ui.')\n ) {\n return null;\n }\n\n if (newBreadcrumb.category === 'console') {\n return normalizeConsoleBreadcrumb(newBreadcrumb);\n }\n\n return createBreadcrumb(newBreadcrumb);\n}\n\n/** exported for tests only */\nexport function normalizeConsoleBreadcrumb(\n breadcrumb: Omit & BreadcrumbWithCategory,\n): ReplayFrame {\n const args = breadcrumb.data && breadcrumb.data.arguments;\n\n if (!Array.isArray(args) || args.length === 0) {\n return createBreadcrumb(breadcrumb);\n }\n\n let isTruncated = false;\n\n // Avoid giant args captures\n const normalizedArgs = args.map(arg => {\n if (!arg) {\n return arg;\n }\n if (typeof arg === 'string') {\n if (arg.length > CONSOLE_ARG_MAX_SIZE) {\n isTruncated = true;\n return `${arg.slice(0, CONSOLE_ARG_MAX_SIZE)}…`;\n }\n\n return arg;\n }\n if (typeof arg === 'object') {\n try {\n const normalizedArg = normalize(arg, 7);\n const stringified = JSON.stringify(normalizedArg);\n if (stringified.length > CONSOLE_ARG_MAX_SIZE) {\n isTruncated = true;\n // We use the pretty printed JSON string here as a base\n return `${JSON.stringify(normalizedArg, null, 2).slice(0, CONSOLE_ARG_MAX_SIZE)}…`;\n }\n return normalizedArg;\n } catch {\n // fall back to default\n }\n }\n\n return arg;\n });\n\n return createBreadcrumb({\n ...breadcrumb,\n data: {\n ...breadcrumb.data,\n arguments: normalizedArgs,\n ...(isTruncated ? { _meta: { warnings: ['CONSOLE_ARG_TRUNCATED'] } } : {}),\n },\n });\n}\n","import type { BaseClient } from '@sentry/core';\nimport { getCurrentScope } from '@sentry/core';\nimport { addEventProcessor, getClient } from '@sentry/core';\nimport type { Client, DynamicSamplingContext } from '@sentry/types';\nimport { addClickKeypressInstrumentationHandler, addHistoryInstrumentationHandler } from '@sentry/utils';\n\nimport { handleAfterSendEvent } from '../coreHandlers/handleAfterSendEvent';\nimport { handleBeforeSendEvent } from '../coreHandlers/handleBeforeSendEvent';\nimport { handleDomListener } from '../coreHandlers/handleDom';\nimport { handleGlobalEventListener } from '../coreHandlers/handleGlobalEvent';\nimport { handleHistorySpanListener } from '../coreHandlers/handleHistory';\nimport { handleNetworkBreadcrumbs } from '../coreHandlers/handleNetworkBreadcrumbs';\nimport { handleScopeListener } from '../coreHandlers/handleScope';\nimport type { ReplayContainer } from '../types';\n\n/**\n * Add global listeners that cannot be removed.\n */\nexport function addGlobalListeners(replay: ReplayContainer): void {\n // Listeners from core SDK //\n const scope = getCurrentScope();\n const client = getClient();\n\n scope.addScopeListener(handleScopeListener(replay));\n addClickKeypressInstrumentationHandler(handleDomListener(replay));\n addHistoryInstrumentationHandler(handleHistorySpanListener(replay));\n handleNetworkBreadcrumbs(replay);\n\n // Tag all (non replay) events that get sent to Sentry with the current\n // replay ID so that we can reference them later in the UI\n const eventProcessor = handleGlobalEventListener(replay, !hasHooks(client));\n if (client && client.addEventProcessor) {\n client.addEventProcessor(eventProcessor);\n } else {\n addEventProcessor(eventProcessor);\n }\n\n // If a custom client has no hooks yet, we continue to use the \"old\" implementation\n if (hasHooks(client)) {\n client.on('beforeSendEvent', handleBeforeSendEvent(replay));\n client.on('afterSendEvent', handleAfterSendEvent(replay));\n client.on('createDsc', (dsc: DynamicSamplingContext) => {\n const replayId = replay.getSessionId();\n // We do not want to set the DSC when in buffer mode, as that means the replay has not been sent (yet)\n if (replayId && replay.isEnabled() && replay.recordingMode === 'session') {\n // Ensure to check that the session is still active - it could have expired in the meanwhile\n const isSessionActive = replay.checkAndHandleExpiredSession();\n if (isSessionActive) {\n dsc.replay_id = replayId;\n }\n }\n });\n\n client.on('startTransaction', transaction => {\n replay.lastTransaction = transaction;\n });\n\n // We may be missing the initial startTransaction due to timing issues,\n // so we capture it on finish again.\n client.on('finishTransaction', transaction => {\n replay.lastTransaction = transaction;\n });\n\n // We want to flush replay\n client.on('beforeSendFeedback', (feedbackEvent, options) => {\n const replayId = replay.getSessionId();\n if (options && options.includeReplay && replay.isEnabled() && replayId) {\n // This should never reject\n if (feedbackEvent.contexts && feedbackEvent.contexts.feedback) {\n feedbackEvent.contexts.feedback.replay_id = replayId;\n }\n }\n });\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction hasHooks(client: Client | undefined): client is BaseClient {\n return !!(client && client.on);\n}\n","import { WINDOW } from '../constants';\nimport type { AddEventResult, MemoryData, ReplayContainer, ReplayPerformanceEntry } from '../types';\nimport { createPerformanceSpans } from './createPerformanceSpans';\n\ntype ReplayMemoryEntry = ReplayPerformanceEntry & { data: { memory: MemoryInfo } };\n\ninterface MemoryInfo {\n jsHeapSizeLimit: number;\n totalJSHeapSize: number;\n usedJSHeapSize: number;\n}\n\n/**\n * Create a \"span\" for the total amount of memory being used by JS objects\n * (including v8 internal objects).\n */\nexport async function addMemoryEntry(replay: ReplayContainer): Promise> {\n // window.performance.memory is a non-standard API and doesn't work on all browsers, so we try-catch this\n try {\n return Promise.all(\n createPerformanceSpans(replay, [\n // @ts-expect-error memory doesn't exist on type Performance as the API is non-standard (we check that it exists above)\n createMemoryEntry(WINDOW.performance.memory),\n ]),\n );\n } catch (error) {\n // Do nothing\n return [];\n }\n}\n\nfunction createMemoryEntry(memoryEntry: MemoryInfo): ReplayMemoryEntry {\n const { jsHeapSizeLimit, totalJSHeapSize, usedJSHeapSize } = memoryEntry;\n // we don't want to use `getAbsoluteTime` because it adds the event time to the\n // time origin, so we get the current timestamp instead\n const time = Date.now() / 1000;\n return {\n type: 'memory',\n name: 'memory',\n start: time,\n end: time,\n data: {\n memory: {\n jsHeapSizeLimit,\n totalJSHeapSize,\n usedJSHeapSize,\n },\n },\n };\n}\n","import { EventType } from '@sentry-internal/rrweb';\nimport { logger } from '@sentry/utils';\n\nimport { updateClickDetectorForRecordingEvent } from '../coreHandlers/handleClick';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { saveSession } from '../session/saveSession';\nimport type { RecordingEvent, ReplayContainer, ReplayOptionFrameEvent } from '../types';\nimport { addEventSync } from './addEvent';\nimport { logInfo } from './log';\n\ntype RecordingEmitCallback = (event: RecordingEvent, isCheckout?: boolean) => void;\n\n/**\n * Handler for recording events.\n *\n * Adds to event buffer, and has varying flushing behaviors if the event was a checkout.\n */\nexport function getHandleRecordingEmit(replay: ReplayContainer): RecordingEmitCallback {\n let hadFirstEvent = false;\n\n return (event: RecordingEvent, _isCheckout?: boolean) => {\n // If this is false, it means session is expired, create and a new session and wait for checkout\n if (!replay.checkAndHandleExpiredSession()) {\n DEBUG_BUILD && logger.warn('[Replay] Received replay event after session expired.');\n\n return;\n }\n\n // `_isCheckout` is only set when the checkout is due to `checkoutEveryNms`\n // We also want to treat the first event as a checkout, so we handle this specifically here\n const isCheckout = _isCheckout || !hadFirstEvent;\n hadFirstEvent = true;\n\n if (replay.clickDetector) {\n updateClickDetectorForRecordingEvent(replay.clickDetector, event);\n }\n\n // The handler returns `true` if we do not want to trigger debounced flush, `false` if we want to debounce flush.\n replay.addUpdate(() => {\n // The session is always started immediately on pageload/init, but for\n // error-only replays, it should reflect the most recent checkout\n // when an error occurs. Clear any state that happens before this current\n // checkout. This needs to happen before `addEvent()` which updates state\n // dependent on this reset.\n if (replay.recordingMode === 'buffer' && isCheckout) {\n replay.setInitialState();\n }\n\n // If the event is not added (e.g. due to being paused, disabled, or out of the max replay duration),\n // Skip all further steps\n if (!addEventSync(replay, event, isCheckout)) {\n // Return true to skip scheduling a debounced flush\n return true;\n }\n\n // Different behavior for full snapshots (type=2), ignore other event types\n // See https://github.com/rrweb-io/rrweb/blob/d8f9290ca496712aa1e7d472549480c4e7876594/packages/rrweb/src/types.ts#L16\n if (!isCheckout) {\n return false;\n }\n\n // Additionally, create a meta event that will capture certain SDK settings.\n // In order to handle buffer mode, this needs to either be done when we\n // receive checkout events or at flush time.\n //\n // `isCheckout` is always true, but want to be explicit that it should\n // only be added for checkouts\n addSettingsEvent(replay, isCheckout);\n\n // If there is a previousSessionId after a full snapshot occurs, then\n // the replay session was started due to session expiration. The new session\n // is started before triggering a new checkout and contains the id\n // of the previous session. Do not immediately flush in this case\n // to avoid capturing only the checkout and instead the replay will\n // be captured if they perform any follow-up actions.\n if (replay.session && replay.session.previousSessionId) {\n return true;\n }\n\n // When in buffer mode, make sure we adjust the session started date to the current earliest event of the buffer\n // this should usually be the timestamp of the checkout event, but to be safe...\n if (replay.recordingMode === 'buffer' && replay.session && replay.eventBuffer) {\n const earliestEvent = replay.eventBuffer.getEarliestTimestamp();\n if (earliestEvent) {\n logInfo(\n `[Replay] Updating session start time to earliest event in buffer to ${new Date(earliestEvent)}`,\n replay.getOptions()._experiments.traceInternals,\n );\n\n replay.session.started = earliestEvent;\n\n if (replay.getOptions().stickySession) {\n saveSession(replay.session);\n }\n }\n }\n\n if (replay.recordingMode === 'session') {\n // If the full snapshot is due to an initial load, we will not have\n // a previous session ID. In this case, we want to buffer events\n // for a set amount of time before flushing. This can help avoid\n // capturing replays of users that immediately close the window.\n\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n void replay.flush();\n }\n\n return true;\n });\n };\n}\n\n/**\n * Exported for tests\n */\nexport function createOptionsEvent(replay: ReplayContainer): ReplayOptionFrameEvent {\n const options = replay.getOptions();\n return {\n type: EventType.Custom,\n timestamp: Date.now(),\n data: {\n tag: 'options',\n payload: {\n shouldRecordCanvas: replay.isRecordingCanvas(),\n sessionSampleRate: options.sessionSampleRate,\n errorSampleRate: options.errorSampleRate,\n useCompressionOption: options.useCompression,\n blockAllMedia: options.blockAllMedia,\n maskAllText: options.maskAllText,\n maskAllInputs: options.maskAllInputs,\n useCompression: replay.eventBuffer ? replay.eventBuffer.type === 'worker' : false,\n networkDetailHasUrls: options.networkDetailAllowUrls.length > 0,\n networkCaptureBodies: options.networkCaptureBodies,\n networkRequestHasHeaders: options.networkRequestHeaders.length > 0,\n networkResponseHasHeaders: options.networkResponseHeaders.length > 0,\n },\n },\n };\n}\n\n/**\n * Add a \"meta\" event that contains a simplified view on current configuration\n * options. This should only be included on the first segment of a recording.\n */\nfunction addSettingsEvent(replay: ReplayContainer, isCheckout?: boolean): void {\n // Only need to add this event when sending the first segment\n if (!isCheckout || !replay.session || replay.session.segmentId !== 0) {\n return;\n }\n\n addEventSync(replay, createOptionsEvent(replay), false);\n}\n","import { getClient, getCurrentScope } from '@sentry/core';\nimport type { ReplayEvent, TransportMakeRequestResponse } from '@sentry/types';\nimport type { RateLimits } from '@sentry/utils';\nimport { isRateLimited, updateRateLimits } from '@sentry/utils';\n\nimport { REPLAY_EVENT_NAME, UNABLE_TO_SEND_REPLAY } from '../constants';\nimport type { SendReplayData } from '../types';\nimport { createReplayEnvelope } from './createReplayEnvelope';\nimport { logInfo } from './log';\nimport { prepareRecordingData } from './prepareRecordingData';\nimport { prepareReplayEvent } from './prepareReplayEvent';\n\n/**\n * Send replay attachment using `fetch()`\n */\nexport async function sendReplayRequest({\n recordingData,\n replayId,\n segmentId: segment_id,\n eventContext,\n timestamp,\n session,\n}: SendReplayData): Promise {\n const preparedRecordingData = prepareRecordingData({\n recordingData,\n headers: {\n segment_id,\n },\n });\n\n const { urls, errorIds, traceIds, initialTimestamp } = eventContext;\n\n const client = getClient();\n const scope = getCurrentScope();\n const transport = client && client.getTransport();\n const dsn = client && client.getDsn();\n\n if (!client || !transport || !dsn || !session.sampled) {\n return;\n }\n\n const baseEvent: ReplayEvent = {\n type: REPLAY_EVENT_NAME,\n replay_start_timestamp: initialTimestamp / 1000,\n timestamp: timestamp / 1000,\n error_ids: errorIds,\n trace_ids: traceIds,\n urls,\n replay_id: replayId,\n segment_id,\n replay_type: session.sampled,\n };\n\n const replayEvent = await prepareReplayEvent({ scope, client, replayId, event: baseEvent });\n\n if (!replayEvent) {\n // Taken from baseclient's `_processEvent` method, where this is handled for errors/transactions\n client.recordDroppedEvent('event_processor', 'replay', baseEvent);\n logInfo('An event processor returned `null`, will not send event.');\n return;\n }\n\n /*\n For reference, the fully built event looks something like this:\n {\n \"type\": \"replay_event\",\n \"timestamp\": 1670837008.634,\n \"error_ids\": [\n \"errorId\"\n ],\n \"trace_ids\": [\n \"traceId\"\n ],\n \"urls\": [\n \"https://example.com\"\n ],\n \"replay_id\": \"eventId\",\n \"segment_id\": 3,\n \"replay_type\": \"error\",\n \"platform\": \"javascript\",\n \"event_id\": \"eventId\",\n \"environment\": \"production\",\n \"sdk\": {\n \"integrations\": [\n \"BrowserTracing\",\n \"Replay\"\n ],\n \"name\": \"sentry.javascript.browser\",\n \"version\": \"7.25.0\"\n },\n \"sdkProcessingMetadata\": {},\n \"contexts\": {\n },\n }\n */\n\n // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n delete replayEvent.sdkProcessingMetadata;\n\n const envelope = createReplayEnvelope(replayEvent, preparedRecordingData, dsn, client.getOptions().tunnel);\n\n let response: void | TransportMakeRequestResponse;\n\n try {\n response = await transport.send(envelope);\n } catch (err) {\n const error = new Error(UNABLE_TO_SEND_REPLAY);\n\n try {\n // In case browsers don't allow this property to be writable\n // @ts-expect-error This needs lib es2022 and newer\n error.cause = err;\n } catch {\n // nothing to do\n }\n throw error;\n }\n\n // TODO (v8): we can remove this guard once transport.send's type signature doesn't include void anymore\n if (!response) {\n return response;\n }\n\n // If the status code is invalid, we want to immediately stop & not retry\n if (typeof response.statusCode === 'number' && (response.statusCode < 200 || response.statusCode >= 300)) {\n throw new TransportStatusCodeError(response.statusCode);\n }\n\n const rateLimits = updateRateLimits({}, response);\n if (isRateLimited(rateLimits, 'replay')) {\n throw new RateLimitError(rateLimits);\n }\n\n return response;\n}\n\n/**\n * This error indicates that the transport returned an invalid status code.\n */\nexport class TransportStatusCodeError extends Error {\n public constructor(statusCode: number) {\n super(`Transport returned status code ${statusCode}`);\n }\n}\n\n/**\n * This error indicates that we hit a rate limit API error.\n */\nexport class RateLimitError extends Error {\n public rateLimits: RateLimits;\n\n public constructor(rateLimits: RateLimits) {\n super('Rate limit hit');\n this.rateLimits = rateLimits;\n }\n}\n","import type { ReplayRecordingData } from '@sentry/types';\n\n/**\n * Prepare the recording data ready to be sent.\n */\nexport function prepareRecordingData({\n recordingData,\n headers,\n}: {\n recordingData: ReplayRecordingData;\n headers: Record;\n}): ReplayRecordingData {\n let payloadWithSequence;\n\n // XXX: newline is needed to separate sequence id from events\n const replayHeaders = `${JSON.stringify(headers)}\n`;\n\n if (typeof recordingData === 'string') {\n payloadWithSequence = `${replayHeaders}${recordingData}`;\n } else {\n const enc = new TextEncoder();\n // XXX: newline is needed to separate sequence id from events\n const sequence = enc.encode(replayHeaders);\n // Merge the two Uint8Arrays\n payloadWithSequence = new Uint8Array(sequence.length + recordingData.length);\n payloadWithSequence.set(sequence);\n payloadWithSequence.set(recordingData, sequence.length);\n }\n\n return payloadWithSequence;\n}\n","import type { IntegrationIndex, Scope } from '@sentry/core';\nimport { getIsolationScope } from '@sentry/core';\nimport { prepareEvent } from '@sentry/core';\nimport type { Client, EventHint, ReplayEvent } from '@sentry/types';\n\n/**\n * Prepare a replay event & enrich it with the SDK metadata.\n */\nexport async function prepareReplayEvent({\n client,\n scope,\n replayId: event_id,\n event,\n}: {\n client: Client & { _integrations?: IntegrationIndex };\n scope: Scope;\n replayId: string;\n event: ReplayEvent;\n}): Promise {\n const integrations =\n typeof client._integrations === 'object' && client._integrations !== null && !Array.isArray(client._integrations)\n ? Object.keys(client._integrations)\n : undefined;\n\n const eventHint: EventHint = { event_id, integrations };\n\n if (client.emit) {\n client.emit('preprocessEvent', event, eventHint);\n }\n\n const preparedEvent = (await prepareEvent(\n client.getOptions(),\n event,\n eventHint,\n scope,\n client,\n getIsolationScope(),\n )) as ReplayEvent | null;\n\n // If e.g. a global event processor returned null\n if (!preparedEvent) {\n return null;\n }\n\n // This normally happens in browser client \"_prepareEvent\"\n // but since we do not use this private method from the client, but rather the plain import\n // we need to do this manually.\n preparedEvent.platform = preparedEvent.platform || 'javascript';\n\n // extract the SDK name because `client._prepareEvent` doesn't add it to the event\n const metadata = client.getSdkMetadata && client.getSdkMetadata();\n const { name, version } = (metadata && metadata.sdk) || {};\n\n preparedEvent.sdk = {\n ...preparedEvent.sdk,\n name: name || 'sentry.javascript.unknown',\n version: version || '0.0.0',\n };\n\n return preparedEvent;\n}\n","import type { DsnComponents, ReplayEnvelope, ReplayEvent, ReplayRecordingData } from '@sentry/types';\nimport { createEnvelope, createEventEnvelopeHeaders, getSdkMetadataForEnvelopeHeader } from '@sentry/utils';\n\n/**\n * Create a replay envelope ready to be sent.\n * This includes both the replay event, as well as the recording data.\n */\nexport function createReplayEnvelope(\n replayEvent: ReplayEvent,\n recordingData: ReplayRecordingData,\n dsn: DsnComponents,\n tunnel?: string,\n): ReplayEnvelope {\n return createEnvelope(\n createEventEnvelopeHeaders(replayEvent, getSdkMetadataForEnvelopeHeader(replayEvent), tunnel, dsn),\n [\n [{ type: 'replay_event' }, replayEvent],\n [\n {\n type: 'replay_recording',\n // If string then we need to encode to UTF8, otherwise will have\n // wrong size. TextEncoder has similar browser support to\n // MutationObserver, although it does not accept IE11.\n length:\n typeof recordingData === 'string' ? new TextEncoder().encode(recordingData).length : recordingData.length,\n },\n recordingData,\n ],\n ],\n );\n}\n","import { captureException, setContext } from '@sentry/core';\n\nimport { RETRY_BASE_INTERVAL, RETRY_MAX_COUNT, UNABLE_TO_SEND_REPLAY } from '../constants';\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { SendReplayData } from '../types';\nimport { RateLimitError, TransportStatusCodeError, sendReplayRequest } from './sendReplayRequest';\n\n/**\n * Finalize and send the current replay event to Sentry\n */\nexport async function sendReplay(\n replayData: SendReplayData,\n retryConfig = {\n count: 0,\n interval: RETRY_BASE_INTERVAL,\n },\n): Promise {\n const { recordingData, options } = replayData;\n\n // short circuit if there's no events to upload (this shouldn't happen as _runFlush makes this check)\n if (!recordingData.length) {\n return;\n }\n\n try {\n await sendReplayRequest(replayData);\n return true;\n } catch (err) {\n if (err instanceof TransportStatusCodeError || err instanceof RateLimitError) {\n throw err;\n }\n\n // Capture error for every failed replay\n setContext('Replays', {\n _retryCount: retryConfig.count,\n });\n\n if (DEBUG_BUILD && options._experiments && options._experiments.captureExceptions) {\n captureException(err);\n }\n\n // If an error happened here, it's likely that uploading the attachment\n // failed, we'll can retry with the same events payload\n if (retryConfig.count >= RETRY_MAX_COUNT) {\n const error = new Error(`${UNABLE_TO_SEND_REPLAY} - max retries exceeded`);\n\n try {\n // In case browsers don't allow this property to be writable\n // @ts-expect-error This needs lib es2022 and newer\n error.cause = err;\n } catch {\n // nothing to do\n }\n\n throw error;\n }\n\n // will retry in intervals of 5, 10, 30\n retryConfig.interval *= ++retryConfig.count;\n\n return new Promise((resolve, reject) => {\n setTimeout(async () => {\n try {\n await sendReplay(replayData, retryConfig);\n resolve(true);\n } catch (err) {\n reject(err);\n }\n }, retryConfig.interval);\n });\n }\n}\n","export const THROTTLED = '__THROTTLED';\nexport const SKIPPED = '__SKIPPED';\n\n/**\n * Create a throttled function off a given function.\n * When calling the throttled function, it will call the original function only\n * if it hasn't been called more than `maxCount` times in the last `durationSeconds`.\n *\n * Returns `THROTTLED` if throttled for the first time, after that `SKIPPED`,\n * or else the return value of the original function.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function throttle any>(\n fn: T,\n maxCount: number,\n durationSeconds: number,\n): (...rest: Parameters) => ReturnType | typeof THROTTLED | typeof SKIPPED {\n const counter = new Map();\n\n const _cleanup = (now: number): void => {\n const threshold = now - durationSeconds;\n counter.forEach((_value, key) => {\n if (key < threshold) {\n counter.delete(key);\n }\n });\n };\n\n const _getTotalCount = (): number => {\n return [...counter.values()].reduce((a, b) => a + b, 0);\n };\n\n let isThrottled = false;\n\n return (...rest: Parameters): ReturnType | typeof THROTTLED | typeof SKIPPED => {\n // Date in second-precision, which we use as basis for the throttling\n const now = Math.floor(Date.now() / 1000);\n\n // First, make sure to delete any old entries\n _cleanup(now);\n\n // If already over limit, do nothing\n if (_getTotalCount() >= maxCount) {\n const wasThrottled = isThrottled;\n isThrottled = true;\n return wasThrottled ? SKIPPED : THROTTLED;\n }\n\n isThrottled = false;\n const count = counter.get(now) || 0;\n counter.set(now, count + 1);\n\n return fn(...rest);\n };\n}\n","/* eslint-disable max-lines */ // TODO: We might want to split this file up\nimport { EventType, record } from '@sentry-internal/rrweb';\nimport {\n SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n captureException,\n getClient,\n getCurrentScope,\n spanToJSON,\n} from '@sentry/core';\nimport type { ReplayRecordingMode, Transaction } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport {\n BUFFER_CHECKOUT_TIME,\n SESSION_IDLE_EXPIRE_DURATION,\n SESSION_IDLE_PAUSE_DURATION,\n SLOW_CLICK_SCROLL_TIMEOUT,\n SLOW_CLICK_THRESHOLD,\n WINDOW,\n} from './constants';\nimport { ClickDetector } from './coreHandlers/handleClick';\nimport { handleKeyboardEvent } from './coreHandlers/handleKeyboardEvent';\nimport { setupPerformanceObserver } from './coreHandlers/performanceObserver';\nimport { DEBUG_BUILD } from './debug-build';\nimport { createEventBuffer } from './eventBuffer';\nimport { clearSession } from './session/clearSession';\nimport { loadOrCreateSession } from './session/loadOrCreateSession';\nimport { saveSession } from './session/saveSession';\nimport { shouldRefreshSession } from './session/shouldRefreshSession';\n\nimport type {\n AddEventResult,\n AddUpdateCallback,\n AllPerformanceEntry,\n AllPerformanceEntryData,\n EventBuffer,\n InternalEventContext,\n PopEventContext,\n RecordingEvent,\n RecordingOptions,\n ReplayBreadcrumbFrame,\n ReplayCanvasIntegrationOptions,\n ReplayContainer as ReplayContainerInterface,\n ReplayPerformanceEntry,\n ReplayPluginOptions,\n SendBufferedReplayOptions,\n Session,\n SlowClickConfig,\n Timeouts,\n} from './types';\nimport { ReplayEventTypeCustom } from './types';\nimport { addEvent, addEventSync } from './util/addEvent';\nimport { addGlobalListeners } from './util/addGlobalListeners';\nimport { addMemoryEntry } from './util/addMemoryEntry';\nimport { createBreadcrumb } from './util/createBreadcrumb';\nimport { createPerformanceEntries } from './util/createPerformanceEntries';\nimport { createPerformanceSpans } from './util/createPerformanceSpans';\nimport { debounce } from './util/debounce';\nimport { getHandleRecordingEmit } from './util/handleRecordingEmit';\nimport { isExpired } from './util/isExpired';\nimport { isSessionExpired } from './util/isSessionExpired';\nimport { logInfo, logInfoNextTick } from './util/log';\nimport { sendReplay } from './util/sendReplay';\nimport type { SKIPPED } from './util/throttle';\nimport { THROTTLED, throttle } from './util/throttle';\n\n/**\n * The main replay container class, which holds all the state and methods for recording and sending replays.\n */\nexport class ReplayContainer implements ReplayContainerInterface {\n public eventBuffer: EventBuffer | null;\n\n public performanceEntries: AllPerformanceEntry[];\n\n public replayPerformanceEntries: ReplayPerformanceEntry[];\n\n public session: Session | undefined;\n\n public clickDetector: ClickDetector | undefined;\n\n /**\n * Recording can happen in one of three modes:\n * - session: Record the whole session, sending it continuously\n * - buffer: Always keep the last 60s of recording, requires:\n * - having replaysOnErrorSampleRate > 0 to capture replay when an error occurs\n * - or calling `flush()` to send the replay\n */\n public recordingMode: ReplayRecordingMode;\n\n /**\n * The current or last active transcation.\n * This is only available when performance is enabled.\n */\n public lastTransaction?: Transaction;\n\n /**\n * These are here so we can overwrite them in tests etc.\n * @hidden\n */\n public readonly timeouts: Timeouts;\n\n private _throttledAddEvent: (\n event: RecordingEvent,\n isCheckout?: boolean,\n ) => typeof THROTTLED | typeof SKIPPED | Promise;\n\n /**\n * Options to pass to `rrweb.record()`\n */\n private readonly _recordingOptions: RecordingOptions;\n\n private readonly _options: ReplayPluginOptions;\n\n private _performanceCleanupCallback?: () => void;\n\n private _debouncedFlush: ReturnType;\n private _flushLock: Promise | undefined;\n\n /**\n * Timestamp of the last user activity. This lives across sessions.\n */\n private _lastActivity: number;\n\n /**\n * Is the integration currently active?\n */\n private _isEnabled: boolean;\n\n /**\n * Paused is a state where:\n * - DOM Recording is not listening at all\n * - Nothing will be added to event buffer (e.g. core SDK events)\n */\n private _isPaused: boolean;\n\n /**\n * Have we attached listeners to the core SDK?\n * Note we have to track this as there is no way to remove instrumentation handlers.\n */\n private _hasInitializedCoreListeners: boolean;\n\n /**\n * Function to stop recording\n */\n private _stopRecording: ReturnType | undefined;\n\n private _context: InternalEventContext;\n\n /**\n * Internal use for canvas recording options\n */\n private _canvas: ReplayCanvasIntegrationOptions | undefined;\n\n public constructor({\n options,\n recordingOptions,\n }: {\n options: ReplayPluginOptions;\n recordingOptions: RecordingOptions;\n }) {\n this.eventBuffer = null;\n this.performanceEntries = [];\n this.replayPerformanceEntries = [];\n this.recordingMode = 'session';\n this.timeouts = {\n sessionIdlePause: SESSION_IDLE_PAUSE_DURATION,\n sessionIdleExpire: SESSION_IDLE_EXPIRE_DURATION,\n } as const;\n this._lastActivity = Date.now();\n this._isEnabled = false;\n this._isPaused = false;\n this._hasInitializedCoreListeners = false;\n this._context = {\n errorIds: new Set(),\n traceIds: new Set(),\n urls: [],\n initialTimestamp: Date.now(),\n initialUrl: '',\n };\n\n this._recordingOptions = recordingOptions;\n this._options = options;\n\n this._debouncedFlush = debounce(() => this._flush(), this._options.flushMinDelay, {\n maxWait: this._options.flushMaxDelay,\n });\n\n this._throttledAddEvent = throttle(\n (event: RecordingEvent, isCheckout?: boolean) => addEvent(this, event, isCheckout),\n // Max 300 events...\n 300,\n // ... per 5s\n 5,\n );\n\n const { slowClickTimeout, slowClickIgnoreSelectors } = this.getOptions();\n\n const slowClickConfig: SlowClickConfig | undefined = slowClickTimeout\n ? {\n threshold: Math.min(SLOW_CLICK_THRESHOLD, slowClickTimeout),\n timeout: slowClickTimeout,\n scrollTimeout: SLOW_CLICK_SCROLL_TIMEOUT,\n ignoreSelector: slowClickIgnoreSelectors ? slowClickIgnoreSelectors.join(',') : '',\n }\n : undefined;\n\n if (slowClickConfig) {\n this.clickDetector = new ClickDetector(this, slowClickConfig);\n }\n }\n\n /** Get the event context. */\n public getContext(): InternalEventContext {\n return this._context;\n }\n\n /** If recording is currently enabled. */\n public isEnabled(): boolean {\n return this._isEnabled;\n }\n\n /** If recording is currently paused. */\n public isPaused(): boolean {\n return this._isPaused;\n }\n\n /**\n * Determine if canvas recording is enabled\n */\n public isRecordingCanvas(): boolean {\n return Boolean(this._canvas);\n }\n\n /** Get the replay integration options. */\n public getOptions(): ReplayPluginOptions {\n return this._options;\n }\n\n /**\n * Initializes the plugin based on sampling configuration. Should not be\n * called outside of constructor.\n */\n public initializeSampling(previousSessionId?: string): void {\n const { errorSampleRate, sessionSampleRate } = this._options;\n\n // If neither sample rate is > 0, then do nothing - user will need to call one of\n // `start()` or `startBuffering` themselves.\n if (errorSampleRate <= 0 && sessionSampleRate <= 0) {\n return;\n }\n\n // Otherwise if there is _any_ sample rate set, try to load an existing\n // session, or create a new one.\n this._initializeSessionForSampling(previousSessionId);\n\n if (!this.session) {\n // This should not happen, something wrong has occurred\n this._handleException(new Error('Unable to initialize and create session'));\n return;\n }\n\n if (this.session.sampled === false) {\n // This should only occur if `errorSampleRate` is 0 and was unsampled for\n // session-based replay. In this case there is nothing to do.\n return;\n }\n\n // If segmentId > 0, it means we've previously already captured this session\n // In this case, we still want to continue in `session` recording mode\n this.recordingMode = this.session.sampled === 'buffer' && this.session.segmentId === 0 ? 'buffer' : 'session';\n\n logInfoNextTick(\n `[Replay] Starting replay in ${this.recordingMode} mode`,\n this._options._experiments.traceInternals,\n );\n\n this._initializeRecording();\n }\n\n /**\n * Start a replay regardless of sampling rate. Calling this will always\n * create a new session. Will throw an error if replay is already in progress.\n *\n * Creates or loads a session, attaches listeners to varying events (DOM,\n * _performanceObserver, Recording, Sentry SDK, etc)\n */\n public start(): void {\n if (this._isEnabled && this.recordingMode === 'session') {\n throw new Error('Replay recording is already in progress');\n }\n\n if (this._isEnabled && this.recordingMode === 'buffer') {\n throw new Error('Replay buffering is in progress, call `flush()` to save the replay');\n }\n\n logInfoNextTick('[Replay] Starting replay in session mode', this._options._experiments.traceInternals);\n\n // Required as user activity is initially set in\n // constructor, so if `start()` is called after\n // session idle expiration, a replay will not be\n // created due to an idle timeout.\n this._updateUserActivity();\n\n const session = loadOrCreateSession(\n {\n maxReplayDuration: this._options.maxReplayDuration,\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n traceInternals: this._options._experiments.traceInternals,\n },\n {\n stickySession: this._options.stickySession,\n // This is intentional: create a new session-based replay when calling `start()`\n sessionSampleRate: 1,\n allowBuffering: false,\n },\n );\n\n this.session = session;\n\n this._initializeRecording();\n }\n\n /**\n * Start replay buffering. Buffers until `flush()` is called or, if\n * `replaysOnErrorSampleRate` > 0, an error occurs.\n */\n public startBuffering(): void {\n if (this._isEnabled) {\n throw new Error('Replay recording is already in progress');\n }\n\n logInfoNextTick('[Replay] Starting replay in buffer mode', this._options._experiments.traceInternals);\n\n const session = loadOrCreateSession(\n {\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration,\n traceInternals: this._options._experiments.traceInternals,\n },\n {\n stickySession: this._options.stickySession,\n sessionSampleRate: 0,\n allowBuffering: true,\n },\n );\n\n this.session = session;\n\n this.recordingMode = 'buffer';\n this._initializeRecording();\n }\n\n /**\n * Start recording.\n *\n * Note that this will cause a new DOM checkout\n */\n public startRecording(): void {\n try {\n const canvasOptions = this._canvas;\n\n this._stopRecording = record({\n ...this._recordingOptions,\n // When running in error sampling mode, we need to overwrite `checkoutEveryNms`\n // Without this, it would record forever, until an error happens, which we don't want\n // instead, we'll always keep the last 60 seconds of replay before an error happened\n ...(this.recordingMode === 'buffer' && { checkoutEveryNms: BUFFER_CHECKOUT_TIME }),\n emit: getHandleRecordingEmit(this),\n onMutation: this._onMutationHandler,\n ...(canvasOptions\n ? {\n recordCanvas: canvasOptions.recordCanvas,\n getCanvasManager: canvasOptions.getCanvasManager,\n sampling: canvasOptions.sampling,\n dataURLOptions: canvasOptions.dataURLOptions,\n }\n : {}),\n });\n } catch (err) {\n this._handleException(err);\n }\n }\n\n /**\n * Stops the recording, if it was running.\n *\n * Returns true if it was previously stopped, or is now stopped,\n * otherwise false.\n */\n public stopRecording(): boolean {\n try {\n if (this._stopRecording) {\n this._stopRecording();\n this._stopRecording = undefined;\n }\n\n return true;\n } catch (err) {\n this._handleException(err);\n return false;\n }\n }\n\n /**\n * Currently, this needs to be manually called (e.g. for tests). Sentry SDK\n * does not support a teardown\n */\n public async stop({ forceFlush = false, reason }: { forceFlush?: boolean; reason?: string } = {}): Promise {\n if (!this._isEnabled) {\n return;\n }\n\n // We can't move `_isEnabled` after awaiting a flush, otherwise we can\n // enter into an infinite loop when `stop()` is called while flushing.\n this._isEnabled = false;\n\n try {\n logInfo(\n `[Replay] Stopping Replay${reason ? ` triggered by ${reason}` : ''}`,\n this._options._experiments.traceInternals,\n );\n\n this._removeListeners();\n this.stopRecording();\n\n this._debouncedFlush.cancel();\n // See comment above re: `_isEnabled`, we \"force\" a flush, ignoring the\n // `_isEnabled` state of the plugin since it was disabled above.\n if (forceFlush) {\n await this._flush({ force: true });\n }\n\n // After flush, destroy event buffer\n this.eventBuffer && this.eventBuffer.destroy();\n this.eventBuffer = null;\n\n // Clear session from session storage, note this means if a new session\n // is started after, it will not have `previousSessionId`\n clearSession(this);\n } catch (err) {\n this._handleException(err);\n }\n }\n\n /**\n * Pause some replay functionality. See comments for `_isPaused`.\n * This differs from stop as this only stops DOM recording, it is\n * not as thorough of a shutdown as `stop()`.\n */\n public pause(): void {\n if (this._isPaused) {\n return;\n }\n\n this._isPaused = true;\n this.stopRecording();\n\n logInfo('[Replay] Pausing replay', this._options._experiments.traceInternals);\n }\n\n /**\n * Resumes recording, see notes for `pause().\n *\n * Note that calling `startRecording()` here will cause a\n * new DOM checkout.`\n */\n public resume(): void {\n if (!this._isPaused || !this._checkSession()) {\n return;\n }\n\n this._isPaused = false;\n this.startRecording();\n\n logInfo('[Replay] Resuming replay', this._options._experiments.traceInternals);\n }\n\n /**\n * If not in \"session\" recording mode, flush event buffer which will create a new replay.\n * Unless `continueRecording` is false, the replay will continue to record and\n * behave as a \"session\"-based replay.\n *\n * Otherwise, queue up a flush.\n */\n public async sendBufferedReplayOrFlush({ continueRecording = true }: SendBufferedReplayOptions = {}): Promise {\n if (this.recordingMode === 'session') {\n return this.flushImmediate();\n }\n\n const activityTime = Date.now();\n\n logInfo('[Replay] Converting buffer to session', this._options._experiments.traceInternals);\n\n // Allow flush to complete before resuming as a session recording, otherwise\n // the checkout from `startRecording` may be included in the payload.\n // Prefer to keep the error replay as a separate (and smaller) segment\n // than the session replay.\n await this.flushImmediate();\n\n const hasStoppedRecording = this.stopRecording();\n\n if (!continueRecording || !hasStoppedRecording) {\n return;\n }\n\n // To avoid race conditions where this is called multiple times, we check here again that we are still buffering\n if ((this.recordingMode as ReplayRecordingMode) === 'session') {\n return;\n }\n\n // Re-start recording in session-mode\n this.recordingMode = 'session';\n\n // Once this session ends, we do not want to refresh it\n if (this.session) {\n this._updateUserActivity(activityTime);\n this._updateSessionActivity(activityTime);\n this._maybeSaveSession();\n }\n\n this.startRecording();\n }\n\n /**\n * We want to batch uploads of replay events. Save events only if\n * `` milliseconds have elapsed since the last event\n * *OR* if `` milliseconds have elapsed.\n *\n * Accepts a callback to perform side-effects and returns true to stop batch\n * processing and hand back control to caller.\n */\n public addUpdate(cb: AddUpdateCallback): void {\n // We need to always run `cb` (e.g. in the case of `this.recordingMode == 'buffer'`)\n const cbResult = cb();\n\n // If this option is turned on then we will only want to call `flush`\n // explicitly\n if (this.recordingMode === 'buffer') {\n return;\n }\n\n // If callback is true, we do not want to continue with flushing -- the\n // caller will need to handle it.\n if (cbResult === true) {\n return;\n }\n\n // addUpdate is called quite frequently - use _debouncedFlush so that it\n // respects the flush delays and does not flush immediately\n this._debouncedFlush();\n }\n\n /**\n * Updates the user activity timestamp and resumes recording. This should be\n * called in an event handler for a user action that we consider as the user\n * being \"active\" (e.g. a mouse click).\n */\n public triggerUserActivity(): void {\n this._updateUserActivity();\n\n // This case means that recording was once stopped due to inactivity.\n // Ensure that recording is resumed.\n if (!this._stopRecording) {\n // Create a new session, otherwise when the user action is flushed, it\n // will get rejected due to an expired session.\n if (!this._checkSession()) {\n return;\n }\n\n // Note: This will cause a new DOM checkout\n this.resume();\n return;\n }\n\n // Otherwise... recording was never suspended, continue as normalish\n this.checkAndHandleExpiredSession();\n\n this._updateSessionActivity();\n }\n\n /**\n * Updates the user activity timestamp *without* resuming\n * recording. Some user events (e.g. keydown) can be create\n * low-value replays that only contain the keypress as a\n * breadcrumb. Instead this would require other events to\n * create a new replay after a session has expired.\n */\n public updateUserActivity(): void {\n this._updateUserActivity();\n this._updateSessionActivity();\n }\n\n /**\n * Only flush if `this.recordingMode === 'session'`\n */\n public conditionalFlush(): Promise {\n if (this.recordingMode === 'buffer') {\n return Promise.resolve();\n }\n\n return this.flushImmediate();\n }\n\n /**\n * Flush using debounce flush\n */\n public flush(): Promise {\n return this._debouncedFlush() as Promise;\n }\n\n /**\n * Always flush via `_debouncedFlush` so that we do not have flushes triggered\n * from calling both `flush` and `_debouncedFlush`. Otherwise, there could be\n * cases of mulitple flushes happening closely together.\n */\n public flushImmediate(): Promise {\n this._debouncedFlush();\n // `.flush` is provided by the debounced function, analogously to lodash.debounce\n return this._debouncedFlush.flush() as Promise;\n }\n\n /**\n * Cancels queued up flushes.\n */\n public cancelFlush(): void {\n this._debouncedFlush.cancel();\n }\n\n /** Get the current sesion (=replay) ID */\n public getSessionId(): string | undefined {\n return this.session && this.session.id;\n }\n\n /**\n * Checks if recording should be stopped due to user inactivity. Otherwise\n * check if session is expired and create a new session if so. Triggers a new\n * full snapshot on new session.\n *\n * Returns true if session is not expired, false otherwise.\n * @hidden\n */\n public checkAndHandleExpiredSession(): boolean | void {\n // Prevent starting a new session if the last user activity is older than\n // SESSION_IDLE_PAUSE_DURATION. Otherwise non-user activity can trigger a new\n // session+recording. This creates noisy replays that do not have much\n // content in them.\n if (\n this._lastActivity &&\n isExpired(this._lastActivity, this.timeouts.sessionIdlePause) &&\n this.session &&\n this.session.sampled === 'session'\n ) {\n // Pause recording only for session-based replays. Otherwise, resuming\n // will create a new replay and will conflict with users who only choose\n // to record error-based replays only. (e.g. the resumed replay will not\n // contain a reference to an error)\n this.pause();\n return;\n }\n\n // --- There is recent user activity --- //\n // This will create a new session if expired, based on expiry length\n if (!this._checkSession()) {\n // Check session handles the refreshing itself\n return false;\n }\n\n return true;\n }\n\n /**\n * Capture some initial state that can change throughout the lifespan of the\n * replay. This is required because otherwise they would be captured at the\n * first flush.\n */\n public setInitialState(): void {\n const urlPath = `${WINDOW.location.pathname}${WINDOW.location.hash}${WINDOW.location.search}`;\n const url = `${WINDOW.location.origin}${urlPath}`;\n\n this.performanceEntries = [];\n this.replayPerformanceEntries = [];\n\n // Reset _context as well\n this._clearContext();\n\n this._context.initialUrl = url;\n this._context.initialTimestamp = Date.now();\n this._context.urls.push(url);\n }\n\n /**\n * Add a breadcrumb event, that may be throttled.\n * If it was throttled, we add a custom breadcrumb to indicate that.\n */\n public throttledAddEvent(\n event: RecordingEvent,\n isCheckout?: boolean,\n ): typeof THROTTLED | typeof SKIPPED | Promise {\n const res = this._throttledAddEvent(event, isCheckout);\n\n // If this is THROTTLED, it means we have throttled the event for the first time\n // In this case, we want to add a breadcrumb indicating that something was skipped\n if (res === THROTTLED) {\n const breadcrumb = createBreadcrumb({\n category: 'replay.throttled',\n });\n\n this.addUpdate(() => {\n // Return `false` if the event _was_ added, as that means we schedule a flush\n return !addEventSync(this, {\n type: ReplayEventTypeCustom,\n timestamp: breadcrumb.timestamp || 0,\n data: {\n tag: 'breadcrumb',\n payload: breadcrumb,\n metric: true,\n },\n });\n });\n }\n\n return res;\n }\n\n /**\n * This will get the parametrized route name of the current page.\n * This is only available if performance is enabled, and if an instrumented router is used.\n */\n public getCurrentRoute(): string | undefined {\n // eslint-disable-next-line deprecation/deprecation\n const lastTransaction = this.lastTransaction || getCurrentScope().getTransaction();\n\n const attributes = (lastTransaction && spanToJSON(lastTransaction).data) || {};\n const source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n if (!lastTransaction || !source || !['route', 'custom'].includes(source)) {\n return undefined;\n }\n\n return spanToJSON(lastTransaction).description;\n }\n\n /**\n * Initialize and start all listeners to varying events (DOM,\n * Performance Observer, Recording, Sentry SDK, etc)\n */\n private _initializeRecording(): void {\n this.setInitialState();\n\n // this method is generally called on page load or manually - in both cases\n // we should treat it as an activity\n this._updateSessionActivity();\n\n this.eventBuffer = createEventBuffer({\n useCompression: this._options.useCompression,\n workerUrl: this._options.workerUrl,\n });\n\n this._removeListeners();\n this._addListeners();\n\n // Need to set as enabled before we start recording, as `record()` can trigger a flush with a new checkout\n this._isEnabled = true;\n this._isPaused = false;\n\n this.startRecording();\n }\n\n /** A wrapper to conditionally capture exceptions. */\n private _handleException(error: unknown): void {\n DEBUG_BUILD && logger.error('[Replay]', error);\n\n if (DEBUG_BUILD && this._options._experiments && this._options._experiments.captureExceptions) {\n captureException(error);\n }\n }\n\n /**\n * Loads (or refreshes) the current session.\n */\n private _initializeSessionForSampling(previousSessionId?: string): void {\n // Whenever there is _any_ error sample rate, we always allow buffering\n // Because we decide on sampling when an error occurs, we need to buffer at all times if sampling for errors\n const allowBuffering = this._options.errorSampleRate > 0;\n\n const session = loadOrCreateSession(\n {\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration,\n traceInternals: this._options._experiments.traceInternals,\n previousSessionId,\n },\n {\n stickySession: this._options.stickySession,\n sessionSampleRate: this._options.sessionSampleRate,\n allowBuffering,\n },\n );\n\n this.session = session;\n }\n\n /**\n * Checks and potentially refreshes the current session.\n * Returns false if session is not recorded.\n */\n private _checkSession(): boolean {\n // If there is no session yet, we do not want to refresh anything\n // This should generally not happen, but to be safe....\n if (!this.session) {\n return false;\n }\n\n const currentSession = this.session;\n\n if (\n shouldRefreshSession(currentSession, {\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration,\n })\n ) {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._refreshSession(currentSession);\n return false;\n }\n\n return true;\n }\n\n /**\n * Refresh a session with a new one.\n * This stops the current session (without forcing a flush, as that would never work since we are expired),\n * and then does a new sampling based on the refreshed session.\n */\n private async _refreshSession(session: Session): Promise {\n if (!this._isEnabled) {\n return;\n }\n await this.stop({ reason: 'refresh session' });\n this.initializeSampling(session.id);\n }\n\n /**\n * Adds listeners to record events for the replay\n */\n private _addListeners(): void {\n try {\n WINDOW.document.addEventListener('visibilitychange', this._handleVisibilityChange);\n WINDOW.addEventListener('blur', this._handleWindowBlur);\n WINDOW.addEventListener('focus', this._handleWindowFocus);\n WINDOW.addEventListener('keydown', this._handleKeyboardEvent);\n\n if (this.clickDetector) {\n this.clickDetector.addListeners();\n }\n\n // There is no way to remove these listeners, so ensure they are only added once\n if (!this._hasInitializedCoreListeners) {\n addGlobalListeners(this);\n\n this._hasInitializedCoreListeners = true;\n }\n } catch (err) {\n this._handleException(err);\n }\n\n this._performanceCleanupCallback = setupPerformanceObserver(this);\n }\n\n /**\n * Cleans up listeners that were created in `_addListeners`\n */\n private _removeListeners(): void {\n try {\n WINDOW.document.removeEventListener('visibilitychange', this._handleVisibilityChange);\n\n WINDOW.removeEventListener('blur', this._handleWindowBlur);\n WINDOW.removeEventListener('focus', this._handleWindowFocus);\n WINDOW.removeEventListener('keydown', this._handleKeyboardEvent);\n\n if (this.clickDetector) {\n this.clickDetector.removeListeners();\n }\n\n if (this._performanceCleanupCallback) {\n this._performanceCleanupCallback();\n }\n } catch (err) {\n this._handleException(err);\n }\n }\n\n /**\n * Handle when visibility of the page content changes. Opening a new tab will\n * cause the state to change to hidden because of content of current page will\n * be hidden. Likewise, moving a different window to cover the contents of the\n * page will also trigger a change to a hidden state.\n */\n private _handleVisibilityChange: () => void = () => {\n if (WINDOW.document.visibilityState === 'visible') {\n this._doChangeToForegroundTasks();\n } else {\n this._doChangeToBackgroundTasks();\n }\n };\n\n /**\n * Handle when page is blurred\n */\n private _handleWindowBlur: () => void = () => {\n const breadcrumb = createBreadcrumb({\n category: 'ui.blur',\n });\n\n // Do not count blur as a user action -- it's part of the process of them\n // leaving the page\n this._doChangeToBackgroundTasks(breadcrumb);\n };\n\n /**\n * Handle when page is focused\n */\n private _handleWindowFocus: () => void = () => {\n const breadcrumb = createBreadcrumb({\n category: 'ui.focus',\n });\n\n // Do not count focus as a user action -- instead wait until they focus and\n // interactive with page\n this._doChangeToForegroundTasks(breadcrumb);\n };\n\n /** Ensure page remains active when a key is pressed. */\n private _handleKeyboardEvent: (event: KeyboardEvent) => void = (event: KeyboardEvent) => {\n handleKeyboardEvent(this, event);\n };\n\n /**\n * Tasks to run when we consider a page to be hidden (via blurring and/or visibility)\n */\n private _doChangeToBackgroundTasks(breadcrumb?: ReplayBreadcrumbFrame): void {\n if (!this.session) {\n return;\n }\n\n const expired = isSessionExpired(this.session, {\n maxReplayDuration: this._options.maxReplayDuration,\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n });\n\n if (expired) {\n return;\n }\n\n if (breadcrumb) {\n this._createCustomBreadcrumb(breadcrumb);\n }\n\n // Send replay when the page/tab becomes hidden. There is no reason to send\n // replay if it becomes visible, since no actions we care about were done\n // while it was hidden\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n void this.conditionalFlush();\n }\n\n /**\n * Tasks to run when we consider a page to be visible (via focus and/or visibility)\n */\n private _doChangeToForegroundTasks(breadcrumb?: ReplayBreadcrumbFrame): void {\n if (!this.session) {\n return;\n }\n\n const isSessionActive = this.checkAndHandleExpiredSession();\n\n if (!isSessionActive) {\n // If the user has come back to the page within SESSION_IDLE_PAUSE_DURATION\n // ms, we will re-use the existing session, otherwise create a new\n // session\n logInfo('[Replay] Document has become active, but session has expired');\n return;\n }\n\n if (breadcrumb) {\n this._createCustomBreadcrumb(breadcrumb);\n }\n }\n\n /**\n * Update user activity (across session lifespans)\n */\n private _updateUserActivity(_lastActivity: number = Date.now()): void {\n this._lastActivity = _lastActivity;\n }\n\n /**\n * Updates the session's last activity timestamp\n */\n private _updateSessionActivity(_lastActivity: number = Date.now()): void {\n if (this.session) {\n this.session.lastActivity = _lastActivity;\n this._maybeSaveSession();\n }\n }\n\n /**\n * Helper to create (and buffer) a replay breadcrumb from a core SDK breadcrumb\n */\n private _createCustomBreadcrumb(breadcrumb: ReplayBreadcrumbFrame): void {\n this.addUpdate(() => {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.throttledAddEvent({\n type: EventType.Custom,\n timestamp: breadcrumb.timestamp || 0,\n data: {\n tag: 'breadcrumb',\n payload: breadcrumb,\n },\n });\n });\n }\n\n /**\n * Observed performance events are added to `this.performanceEntries`. These\n * are included in the replay event before it is finished and sent to Sentry.\n */\n private _addPerformanceEntries(): Promise> {\n const performanceEntries = createPerformanceEntries(this.performanceEntries).concat(this.replayPerformanceEntries);\n\n this.performanceEntries = [];\n this.replayPerformanceEntries = [];\n\n return Promise.all(createPerformanceSpans(this, performanceEntries));\n }\n\n /**\n * Clear _context\n */\n private _clearContext(): void {\n // XXX: `initialTimestamp` and `initialUrl` do not get cleared\n this._context.errorIds.clear();\n this._context.traceIds.clear();\n this._context.urls = [];\n }\n\n /** Update the initial timestamp based on the buffer content. */\n private _updateInitialTimestampFromEventBuffer(): void {\n const { session, eventBuffer } = this;\n if (!session || !eventBuffer) {\n return;\n }\n\n // we only ever update this on the initial segment\n if (session.segmentId) {\n return;\n }\n\n const earliestEvent = eventBuffer.getEarliestTimestamp();\n if (earliestEvent && earliestEvent < this._context.initialTimestamp) {\n this._context.initialTimestamp = earliestEvent;\n }\n }\n\n /**\n * Return and clear _context\n */\n private _popEventContext(): PopEventContext {\n const _context = {\n initialTimestamp: this._context.initialTimestamp,\n initialUrl: this._context.initialUrl,\n errorIds: Array.from(this._context.errorIds),\n traceIds: Array.from(this._context.traceIds),\n urls: this._context.urls,\n };\n\n this._clearContext();\n\n return _context;\n }\n\n /**\n * Flushes replay event buffer to Sentry.\n *\n * Performance events are only added right before flushing - this is\n * due to the buffered performance observer events.\n *\n * Should never be called directly, only by `flush`\n */\n private async _runFlush(): Promise {\n const replayId = this.getSessionId();\n\n if (!this.session || !this.eventBuffer || !replayId) {\n DEBUG_BUILD && logger.error('[Replay] No session or eventBuffer found to flush.');\n return;\n }\n\n await this._addPerformanceEntries();\n\n // Check eventBuffer again, as it could have been stopped in the meanwhile\n if (!this.eventBuffer || !this.eventBuffer.hasEvents) {\n return;\n }\n\n // Only attach memory event if eventBuffer is not empty\n await addMemoryEntry(this);\n\n // Check eventBuffer again, as it could have been stopped in the meanwhile\n if (!this.eventBuffer) {\n return;\n }\n\n // if this changed in the meanwhile, e.g. because the session was refreshed or similar, we abort here\n if (replayId !== this.getSessionId()) {\n return;\n }\n\n try {\n // This uses the data from the eventBuffer, so we need to call this before `finish()\n this._updateInitialTimestampFromEventBuffer();\n\n const timestamp = Date.now();\n\n // Check total duration again, to avoid sending outdated stuff\n // We leave 30s wiggle room to accomodate late flushing etc.\n // This _could_ happen when the browser is suspended during flushing, in which case we just want to stop\n if (timestamp - this._context.initialTimestamp > this._options.maxReplayDuration + 30_000) {\n throw new Error('Session is too long, not sending replay');\n }\n\n const eventContext = this._popEventContext();\n // Always increment segmentId regardless of outcome of sending replay\n const segmentId = this.session.segmentId++;\n this._maybeSaveSession();\n\n // Note this empties the event buffer regardless of outcome of sending replay\n const recordingData = await this.eventBuffer.finish();\n\n await sendReplay({\n replayId,\n recordingData,\n segmentId,\n eventContext,\n session: this.session,\n options: this.getOptions(),\n timestamp,\n });\n } catch (err) {\n this._handleException(err);\n\n // This means we retried 3 times and all of them failed,\n // or we ran into a problem we don't want to retry, like rate limiting.\n // In this case, we want to completely stop the replay - otherwise, we may get inconsistent segments\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.stop({ reason: 'sendReplay' });\n\n const client = getClient();\n\n if (client) {\n client.recordDroppedEvent('send_error', 'replay');\n }\n }\n }\n\n /**\n * Flush recording data to Sentry. Creates a lock so that only a single flush\n * can be active at a time. Do not call this directly.\n */\n private _flush = async ({\n force = false,\n }: {\n /**\n * If true, flush while ignoring the `_isEnabled` state of\n * Replay integration. (By default, flush is noop if integration\n * is stopped).\n */\n force?: boolean;\n } = {}): Promise => {\n if (!this._isEnabled && !force) {\n // This can happen if e.g. the replay was stopped because of exceeding the retry limit\n return;\n }\n\n if (!this.checkAndHandleExpiredSession()) {\n DEBUG_BUILD && logger.error('[Replay] Attempting to finish replay event after session expired.');\n return;\n }\n\n if (!this.session) {\n // should never happen, as we would have bailed out before\n return;\n }\n\n const start = this.session.started;\n const now = Date.now();\n const duration = now - start;\n\n // A flush is about to happen, cancel any queued flushes\n this._debouncedFlush.cancel();\n\n // If session is too short, or too long (allow some wiggle room over maxReplayDuration), do not send it\n // This _should_ not happen, but it may happen if flush is triggered due to a page activity change or similar\n const tooShort = duration < this._options.minReplayDuration;\n const tooLong = duration > this._options.maxReplayDuration + 5_000;\n if (tooShort || tooLong) {\n logInfo(\n `[Replay] Session duration (${Math.floor(duration / 1000)}s) is too ${\n tooShort ? 'short' : 'long'\n }, not sending replay.`,\n this._options._experiments.traceInternals,\n );\n\n if (tooShort) {\n this._debouncedFlush();\n }\n return;\n }\n\n const eventBuffer = this.eventBuffer;\n if (eventBuffer && this.session.segmentId === 0 && !eventBuffer.hasCheckout) {\n logInfo('[Replay] Flushing initial segment without checkout.', this._options._experiments.traceInternals);\n // TODO FN: Evaluate if we want to stop here, or remove this again?\n }\n\n // this._flushLock acts as a lock so that future calls to `_flush()`\n // will be blocked until this promise resolves\n if (!this._flushLock) {\n this._flushLock = this._runFlush();\n await this._flushLock;\n this._flushLock = undefined;\n return;\n }\n\n // Wait for previous flush to finish, then call the debounced `_flush()`.\n // It's possible there are other flush requests queued and waiting for it\n // to resolve. We want to reduce all outstanding requests (as well as any\n // new flush requests that occur within a second of the locked flush\n // completing) into a single flush.\n\n try {\n await this._flushLock;\n } catch (err) {\n DEBUG_BUILD && logger.error(err);\n } finally {\n this._debouncedFlush();\n }\n };\n\n /** Save the session, if it is sticky */\n private _maybeSaveSession(): void {\n if (this.session && this._options.stickySession) {\n saveSession(this.session);\n }\n }\n\n /** Handler for rrweb.record.onMutation */\n private _onMutationHandler = (mutations: unknown[]): boolean => {\n const count = mutations.length;\n\n const mutationLimit = this._options.mutationLimit;\n const mutationBreadcrumbLimit = this._options.mutationBreadcrumbLimit;\n const overMutationLimit = mutationLimit && count > mutationLimit;\n\n // Create a breadcrumb if a lot of mutations happen at the same time\n // We can show this in the UI as an information with potential performance improvements\n if (count > mutationBreadcrumbLimit || overMutationLimit) {\n const breadcrumb = createBreadcrumb({\n category: 'replay.mutations',\n data: {\n count,\n limit: overMutationLimit,\n },\n });\n this._createCustomBreadcrumb(breadcrumb);\n }\n\n // Stop replay if over the mutation limit\n if (overMutationLimit) {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.stop({ reason: 'mutationLimit', forceFlush: this.recordingMode === 'session' });\n return false;\n }\n\n // `true` means we use the regular mutation handling by rrweb\n return true;\n };\n}\n","type DebouncedCallback = {\n (): void | unknown;\n flush: () => void | unknown;\n cancel: () => void;\n};\ntype CallbackFunction = () => unknown;\ntype DebounceOptions = { maxWait?: number };\n\n/**\n * Heavily simplified debounce function based on lodash.debounce.\n *\n * This function takes a callback function (@param fun) and delays its invocation\n * by @param wait milliseconds. Optionally, a maxWait can be specified in @param options,\n * which ensures that the callback is invoked at least once after the specified max. wait time.\n *\n * @param func the function whose invocation is to be debounced\n * @param wait the minimum time until the function is invoked after it was called once\n * @param options the options object, which can contain the `maxWait` property\n *\n * @returns the debounced version of the function, which needs to be called at least once to start the\n * debouncing process. Subsequent calls will reset the debouncing timer and, in case @paramfunc\n * was already invoked in the meantime, return @param func's return value.\n * The debounced function has two additional properties:\n * - `flush`: Invokes the debounced function immediately and returns its return value\n * - `cancel`: Cancels the debouncing process and resets the debouncing timer\n */\nexport function debounce(func: CallbackFunction, wait: number, options?: DebounceOptions): DebouncedCallback {\n let callbackReturnValue: unknown;\n\n let timerId: ReturnType | undefined;\n let maxTimerId: ReturnType | undefined;\n\n const maxWait = options && options.maxWait ? Math.max(options.maxWait, wait) : 0;\n\n function invokeFunc(): unknown {\n cancelTimers();\n callbackReturnValue = func();\n return callbackReturnValue;\n }\n\n function cancelTimers(): void {\n timerId !== undefined && clearTimeout(timerId);\n maxTimerId !== undefined && clearTimeout(maxTimerId);\n timerId = maxTimerId = undefined;\n }\n\n function flush(): unknown {\n if (timerId !== undefined || maxTimerId !== undefined) {\n return invokeFunc();\n }\n return callbackReturnValue;\n }\n\n function debounced(): unknown {\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(invokeFunc, wait);\n\n if (maxWait && maxTimerId === undefined) {\n maxTimerId = setTimeout(invokeFunc, maxWait);\n }\n\n return callbackReturnValue;\n }\n\n debounced.cancel = cancelTimers;\n debounced.flush = flush;\n return debounced;\n}\n","import { consoleSandbox } from '@sentry/utils';\n\nimport type { DeprecatedPrivacyOptions, ReplayIntegrationPrivacyOptions } from '../types';\n\ntype GetPrivacyOptions = Required> &\n Omit;\ninterface GetPrivacyReturn {\n maskTextSelector: string;\n unmaskTextSelector: string;\n blockSelector: string;\n unblockSelector: string;\n ignoreSelector: string;\n\n blockClass?: RegExp;\n maskTextClass?: RegExp;\n}\n\nfunction getOption(\n selectors: string[],\n defaultSelectors: string[],\n deprecatedClassOption?: string | RegExp,\n deprecatedSelectorOption?: string,\n): string {\n const deprecatedSelectors = typeof deprecatedSelectorOption === 'string' ? deprecatedSelectorOption.split(',') : [];\n\n const allSelectors = [\n ...selectors,\n // @deprecated\n ...deprecatedSelectors,\n\n // sentry defaults\n ...defaultSelectors,\n ];\n\n // @deprecated\n if (typeof deprecatedClassOption !== 'undefined') {\n // NOTE: No support for RegExp\n if (typeof deprecatedClassOption === 'string') {\n allSelectors.push(`.${deprecatedClassOption}`);\n }\n\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n '[Replay] You are using a deprecated configuration item for privacy. Read the documentation on how to use the new privacy configuration.',\n );\n });\n }\n\n return allSelectors.join(',');\n}\n\n/**\n * Returns privacy related configuration for use in rrweb\n */\nexport function getPrivacyOptions({\n mask,\n unmask,\n block,\n unblock,\n ignore,\n\n // eslint-disable-next-line deprecation/deprecation\n blockClass,\n // eslint-disable-next-line deprecation/deprecation\n blockSelector,\n // eslint-disable-next-line deprecation/deprecation\n maskTextClass,\n // eslint-disable-next-line deprecation/deprecation\n maskTextSelector,\n // eslint-disable-next-line deprecation/deprecation\n ignoreClass,\n}: GetPrivacyOptions): GetPrivacyReturn {\n const defaultBlockedElements = ['base[href=\"/\"]'];\n\n const maskSelector = getOption(mask, ['.sentry-mask', '[data-sentry-mask]'], maskTextClass, maskTextSelector);\n const unmaskSelector = getOption(unmask, ['.sentry-unmask', '[data-sentry-unmask]']);\n\n const options: GetPrivacyReturn = {\n // We are making the decision to make text and input selectors the same\n maskTextSelector: maskSelector,\n unmaskTextSelector: unmaskSelector,\n\n blockSelector: getOption(\n block,\n ['.sentry-block', '[data-sentry-block]', ...defaultBlockedElements],\n blockClass,\n blockSelector,\n ),\n unblockSelector: getOption(unblock, ['.sentry-unblock', '[data-sentry-unblock]']),\n ignoreSelector: getOption(ignore, ['.sentry-ignore', '[data-sentry-ignore]', 'input[type=\"file\"]'], ignoreClass),\n };\n\n if (blockClass instanceof RegExp) {\n options.blockClass = blockClass;\n }\n\n if (maskTextClass instanceof RegExp) {\n options.maskTextClass = maskTextClass;\n }\n\n return options;\n}\n","import { getClient } from '@sentry/core';\nimport type { BrowserClientReplayOptions, Integration, IntegrationFn } from '@sentry/types';\nimport { consoleSandbox, dropUndefinedKeys, isBrowser } from '@sentry/utils';\n\nimport {\n DEFAULT_FLUSH_MAX_DELAY,\n DEFAULT_FLUSH_MIN_DELAY,\n MAX_REPLAY_DURATION,\n MIN_REPLAY_DURATION,\n MIN_REPLAY_DURATION_LIMIT,\n} from './constants';\nimport { ReplayContainer } from './replay';\nimport type {\n RecordingOptions,\n ReplayCanvasIntegrationOptions,\n ReplayConfiguration,\n ReplayPluginOptions,\n SendBufferedReplayOptions,\n} from './types';\nimport { getPrivacyOptions } from './util/getPrivacyOptions';\nimport { maskAttribute } from './util/maskAttribute';\n\nconst MEDIA_SELECTORS =\n 'img,image,svg,video,object,picture,embed,map,audio,link[rel=\"icon\"],link[rel=\"apple-touch-icon\"]';\n\nconst DEFAULT_NETWORK_HEADERS = ['content-length', 'content-type', 'accept'];\n\nlet _initialized = false;\n\ntype InitialReplayPluginOptions = Omit &\n Partial>;\n\nexport const replayIntegration = ((options?: ReplayConfiguration) => {\n // eslint-disable-next-line deprecation/deprecation\n return new Replay(options);\n}) satisfies IntegrationFn;\n\n/**\n * The main replay integration class, to be passed to `init({ integrations: [] })`.\n * @deprecated Use `replayIntegration()` instead.\n */\nexport class Replay implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Replay';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n /**\n * Options to pass to `rrweb.record()`\n */\n private readonly _recordingOptions: RecordingOptions;\n\n /**\n * Initial options passed to the replay integration, merged with default values.\n * Note: `sessionSampleRate` and `errorSampleRate` are not required here, as they\n * can only be finally set when setupOnce() is called.\n *\n * @private\n */\n private readonly _initialOptions: InitialReplayPluginOptions;\n\n private _replay?: ReplayContainer;\n\n public constructor({\n flushMinDelay = DEFAULT_FLUSH_MIN_DELAY,\n flushMaxDelay = DEFAULT_FLUSH_MAX_DELAY,\n minReplayDuration = MIN_REPLAY_DURATION,\n maxReplayDuration = MAX_REPLAY_DURATION,\n stickySession = true,\n useCompression = true,\n workerUrl,\n _experiments = {},\n sessionSampleRate,\n errorSampleRate,\n maskAllText = true,\n maskAllInputs = true,\n blockAllMedia = true,\n\n mutationBreadcrumbLimit = 750,\n mutationLimit = 10_000,\n\n slowClickTimeout = 7_000,\n slowClickIgnoreSelectors = [],\n\n networkDetailAllowUrls = [],\n networkDetailDenyUrls = [],\n networkCaptureBodies = true,\n networkRequestHeaders = [],\n networkResponseHeaders = [],\n\n mask = [],\n maskAttributes = ['title', 'placeholder'],\n unmask = [],\n block = [],\n unblock = [],\n ignore = [],\n maskFn,\n\n beforeAddRecordingEvent,\n beforeErrorSampling,\n\n // eslint-disable-next-line deprecation/deprecation\n blockClass,\n // eslint-disable-next-line deprecation/deprecation\n blockSelector,\n // eslint-disable-next-line deprecation/deprecation\n maskInputOptions,\n // eslint-disable-next-line deprecation/deprecation\n maskTextClass,\n // eslint-disable-next-line deprecation/deprecation\n maskTextSelector,\n // eslint-disable-next-line deprecation/deprecation\n ignoreClass,\n }: ReplayConfiguration = {}) {\n // eslint-disable-next-line deprecation/deprecation\n this.name = Replay.id;\n\n const privacyOptions = getPrivacyOptions({\n mask,\n unmask,\n block,\n unblock,\n ignore,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n ignoreClass,\n });\n\n this._recordingOptions = {\n maskAllInputs,\n maskAllText,\n maskInputOptions: { ...(maskInputOptions || {}), password: true },\n maskTextFn: maskFn,\n maskInputFn: maskFn,\n maskAttributeFn: (key: string, value: string, el: HTMLElement): string =>\n maskAttribute({\n maskAttributes,\n maskAllText,\n privacyOptions,\n key,\n value,\n el,\n }),\n\n ...privacyOptions,\n\n // Our defaults\n slimDOMOptions: 'all',\n inlineStylesheet: true,\n // Disable inline images as it will increase segment/replay size\n inlineImages: false,\n // collect fonts, but be aware that `sentry.io` needs to be an allowed\n // origin for playback\n collectFonts: true,\n errorHandler: (err: Error & { __rrweb__?: boolean }) => {\n try {\n err.__rrweb__ = true;\n } catch (error) {\n // ignore errors here\n // this can happen if the error is frozen or does not allow mutation for other reasons\n }\n },\n };\n\n this._initialOptions = {\n flushMinDelay,\n flushMaxDelay,\n minReplayDuration: Math.min(minReplayDuration, MIN_REPLAY_DURATION_LIMIT),\n maxReplayDuration: Math.min(maxReplayDuration, MAX_REPLAY_DURATION),\n stickySession,\n sessionSampleRate,\n errorSampleRate,\n useCompression,\n workerUrl,\n blockAllMedia,\n maskAllInputs,\n maskAllText,\n mutationBreadcrumbLimit,\n mutationLimit,\n slowClickTimeout,\n slowClickIgnoreSelectors,\n networkDetailAllowUrls,\n networkDetailDenyUrls,\n networkCaptureBodies,\n networkRequestHeaders: _getMergedNetworkHeaders(networkRequestHeaders),\n networkResponseHeaders: _getMergedNetworkHeaders(networkResponseHeaders),\n beforeAddRecordingEvent,\n beforeErrorSampling,\n\n _experiments,\n };\n\n if (typeof sessionSampleRate === 'number') {\n // eslint-disable-next-line\n console.warn(\n `[Replay] You are passing \\`sessionSampleRate\\` to the Replay integration.\nThis option is deprecated and will be removed soon.\nInstead, configure \\`replaysSessionSampleRate\\` directly in the SDK init options, e.g.:\nSentry.init({ replaysSessionSampleRate: ${sessionSampleRate} })`,\n );\n\n this._initialOptions.sessionSampleRate = sessionSampleRate;\n }\n\n if (typeof errorSampleRate === 'number') {\n // eslint-disable-next-line\n console.warn(\n `[Replay] You are passing \\`errorSampleRate\\` to the Replay integration.\nThis option is deprecated and will be removed soon.\nInstead, configure \\`replaysOnErrorSampleRate\\` directly in the SDK init options, e.g.:\nSentry.init({ replaysOnErrorSampleRate: ${errorSampleRate} })`,\n );\n\n this._initialOptions.errorSampleRate = errorSampleRate;\n }\n\n if (this._initialOptions.blockAllMedia) {\n // `blockAllMedia` is a more user friendly option to configure blocking\n // embedded media elements\n this._recordingOptions.blockSelector = !this._recordingOptions.blockSelector\n ? MEDIA_SELECTORS\n : `${this._recordingOptions.blockSelector},${MEDIA_SELECTORS}`;\n }\n\n if (this._isInitialized && isBrowser()) {\n throw new Error('Multiple Sentry Session Replay instances are not supported');\n }\n\n this._isInitialized = true;\n }\n\n /** If replay has already been initialized */\n protected get _isInitialized(): boolean {\n return _initialized;\n }\n\n /** Update _isInitialized */\n protected set _isInitialized(value: boolean) {\n _initialized = value;\n }\n\n /**\n * Setup and initialize replay container\n */\n public setupOnce(): void {\n if (!isBrowser()) {\n return;\n }\n\n this._setup();\n\n // Once upon a time, we tried to create a transaction in `setupOnce` and it would\n // potentially create a transaction before some native SDK integrations have run\n // and applied their own global event processor. An example is:\n // https://github.com/getsentry/sentry-javascript/blob/b47ceafbdac7f8b99093ce6023726ad4687edc48/packages/browser/src/integrations/useragent.ts\n //\n // So we call `this._initialize()` in next event loop as a workaround to wait for other\n // global event processors to finish. This is no longer needed, but keeping it\n // here to avoid any future issues.\n setTimeout(() => this._initialize());\n }\n\n /**\n * Start a replay regardless of sampling rate. Calling this will always\n * create a new session. Will throw an error if replay is already in progress.\n *\n * Creates or loads a session, attaches listeners to varying events (DOM,\n * PerformanceObserver, Recording, Sentry SDK, etc)\n */\n public start(): void {\n if (!this._replay) {\n return;\n }\n\n this._replay.start();\n }\n\n /**\n * Start replay buffering. Buffers until `flush()` is called or, if\n * `replaysOnErrorSampleRate` > 0, until an error occurs.\n */\n public startBuffering(): void {\n if (!this._replay) {\n return;\n }\n\n this._replay.startBuffering();\n }\n\n /**\n * Currently, this needs to be manually called (e.g. for tests). Sentry SDK\n * does not support a teardown\n */\n public stop(): Promise {\n if (!this._replay) {\n return Promise.resolve();\n }\n\n return this._replay.stop({ forceFlush: this._replay.recordingMode === 'session' });\n }\n\n /**\n * If not in \"session\" recording mode, flush event buffer which will create a new replay.\n * Unless `continueRecording` is false, the replay will continue to record and\n * behave as a \"session\"-based replay.\n *\n * Otherwise, queue up a flush.\n */\n public flush(options?: SendBufferedReplayOptions): Promise {\n if (!this._replay || !this._replay.isEnabled()) {\n return Promise.resolve();\n }\n\n return this._replay.sendBufferedReplayOrFlush(options);\n }\n\n /**\n * Get the current session ID.\n */\n public getReplayId(): string | undefined {\n if (!this._replay || !this._replay.isEnabled()) {\n return;\n }\n\n return this._replay.getSessionId();\n }\n\n /**\n * Initializes replay.\n */\n protected _initialize(): void {\n if (!this._replay) {\n return;\n }\n\n // We have to run this in _initialize, because this runs in setTimeout\n // So when this runs all integrations have been added\n // Before this, we cannot access integrations on the client,\n // so we need to mutate the options here\n this._maybeLoadFromReplayCanvasIntegration();\n\n this._replay.initializeSampling();\n }\n\n /** Setup the integration. */\n private _setup(): void {\n // Client is not available in constructor, so we need to wait until setupOnce\n const finalOptions = loadReplayOptionsFromClient(this._initialOptions);\n\n this._replay = new ReplayContainer({\n options: finalOptions,\n recordingOptions: this._recordingOptions,\n });\n }\n\n /** Get canvas options from ReplayCanvas integration, if it is also added. */\n private _maybeLoadFromReplayCanvasIntegration(): void {\n // To save bundle size, we skip checking for stuff here\n // and instead just try-catch everything - as generally this should all be defined\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\n try {\n const client = getClient()!;\n const canvasIntegration = client.getIntegrationByName!('ReplayCanvas') as Integration & {\n getOptions(): ReplayCanvasIntegrationOptions;\n };\n if (!canvasIntegration) {\n return;\n }\n\n this._replay!['_canvas'] = canvasIntegration.getOptions();\n } catch {\n // ignore errors here\n }\n /* eslint-enable @typescript-eslint/no-non-null-assertion */\n }\n}\n\n/** Parse Replay-related options from SDK options */\nfunction loadReplayOptionsFromClient(initialOptions: InitialReplayPluginOptions): ReplayPluginOptions {\n const client = getClient();\n const opt = client && (client.getOptions() as BrowserClientReplayOptions);\n\n const finalOptions = { sessionSampleRate: 0, errorSampleRate: 0, ...dropUndefinedKeys(initialOptions) };\n\n if (!opt) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn('SDK client is not available.');\n });\n return finalOptions;\n }\n\n if (\n initialOptions.sessionSampleRate == null && // TODO remove once deprecated rates are removed\n initialOptions.errorSampleRate == null && // TODO remove once deprecated rates are removed\n opt.replaysSessionSampleRate == null &&\n opt.replaysOnErrorSampleRate == null\n ) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n 'Replay is disabled because neither `replaysSessionSampleRate` nor `replaysOnErrorSampleRate` are set.',\n );\n });\n }\n\n if (typeof opt.replaysSessionSampleRate === 'number') {\n finalOptions.sessionSampleRate = opt.replaysSessionSampleRate;\n }\n\n if (typeof opt.replaysOnErrorSampleRate === 'number') {\n finalOptions.errorSampleRate = opt.replaysOnErrorSampleRate;\n }\n\n return finalOptions;\n}\n\nfunction _getMergedNetworkHeaders(headers: string[]): string[] {\n return [...DEFAULT_NETWORK_HEADERS, ...headers.map(header => header.toLowerCase())];\n}\n","import type { getPrivacyOptions } from './getPrivacyOptions';\n\ninterface MaskAttributeParams {\n maskAttributes: string[];\n maskAllText: boolean;\n privacyOptions: ReturnType;\n key: string;\n value: string;\n el: HTMLElement;\n}\n\n/**\n * Masks an attribute if necessary, otherwise return attribute value as-is.\n */\nexport function maskAttribute({\n el,\n key,\n maskAttributes,\n maskAllText,\n privacyOptions,\n value,\n}: MaskAttributeParams): string {\n // We only mask attributes if `maskAllText` is true\n if (!maskAllText) {\n return value;\n }\n\n // unmaskTextSelector takes precendence\n if (privacyOptions.unmaskTextSelector && el.matches(privacyOptions.unmaskTextSelector)) {\n return value;\n }\n\n if (\n maskAttributes.includes(key) ||\n // Need to mask `value` attribute for `` if it's a button-like\n // type\n (key === 'value' && el.tagName === 'INPUT' && ['submit', 'button'].includes(el.getAttribute('type') || ''))\n ) {\n return value.replace(/[\\S]/g, '*');\n }\n\n return value;\n}\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// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\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: State;\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 * The delta between this location and the former location in the history stack\n */\n delta: number | null;\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`. This may be either a URL or the pieces\n * of a 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 * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\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 idx: number;\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 function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\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,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\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, delta: 1 });\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, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\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\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\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\nexport function 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, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\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 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 let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\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 index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\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 // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\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, delta: 1 });\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 index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): 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 window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\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\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 createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\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, warning } 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: unknown;\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 statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\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\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\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?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\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 text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\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: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => DataFunctionReturnValue\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n fetcherKey: string | null;\n}\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface DataStrategyResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData, DataWithResponseInit\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise>;\n}\n\nexport interface AgnosticPatchRoutesOnNavigationFunction<\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> {\n (opts: {\n path: string;\n matches: M[];\n patch: (routeId: string | null, children: AgnosticRouteObject[]) => void;\n }): void | Promise;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\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 | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\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\nexport type RouteManifest = Record;\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 extends `${infer Optional}?`\n ? Optional\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 */\nexport type 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 you 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 mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(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 !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\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 return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\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 // 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 let decoded = decodePath(pathname);\n matches = matchRouteBranch(\n branches[i],\n decoded,\n allowPartial\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\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 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 explode _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 allowPartial = false\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 let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\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 | null;\n } = {} as any\n): string {\n let path: string = 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 // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\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, compiledParams] = 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 = compiledParams.reduce>(\n (memo, { paramName, isOptional }, 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 const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\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 params: CompiledPathParam[] = [];\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(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\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, params];\n}\n\nexport function decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\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\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 * 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// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\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 (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\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 class DataWithResponseInit {\n type: string = \"DataWithResponseInit\";\n data: D;\n init: ResponseInit | null;\n\n constructor(data: D, init?: ResponseInit) {\n this.data = data;\n this.init = init || null;\n }\n}\n\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nexport function data(data: D, init?: number | ResponseInit) {\n return new DataWithResponseInit(\n data,\n typeof init === \"number\" ? { status: init } : init\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 pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\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 if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.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, undefined, 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,\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.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(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.pendingKeysSet.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 get pendingKeys() {\n return Array.from(this.pendingKeysSet);\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 type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\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 * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const replace: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private 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 thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n DataStrategyResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n AgnosticPatchRoutesOnNavigationFunction,\n DataWithResponseInit,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n matchRoutesImpl,\n resolveTo,\n stripBasename,\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 future config for the router\n */\n get future(): FutureConfig;\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 * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\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): Promise;\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 | null, opts?: RouterNavigateOptions): Promise;\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 | null,\n opts?: RouterFetchOptions\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 * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE DO NOT USE\n *\n * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): 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 * Map of current blockers\n */\n blockers: 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 * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n v7_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n unstable_patchRoutesOnNavigation?: AgnosticPatchRoutesOnNavigationFunction;\n unstable_dataStrategy?: DataStrategyFunction;\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 activeDeferreds: Record | null;\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?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\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: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\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 json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\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 text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\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\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\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 * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\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 json: undefined,\n text: 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 json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\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 const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.unstable_patchRoutesOnNavigation;\n\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false,\n ...init.future,\n };\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 // FIFO queue of previously discovered routes to prevent re-calling on\n // subsequent navigations to the same path\n let discoveredRoutesMaxSize = 1000;\n let discoveredRoutes = 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 // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null && !patchRoutesOnNavigationImpl) {\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 // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some((m) => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\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 // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : 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 blockers: 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\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\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\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: Set = new Set();\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\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\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\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 // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Map of pending patchRoutesOnNavigation() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType\n >();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let unblockBlockerHistoryUpdate: (() => void) | undefined = undefined;\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, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (unblockBlockerHistoryUpdate) {\n unblockBlockerHistoryUpdate();\n unblockBlockerHistoryUpdate = undefined;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n let nextHistoryUpdatePromise = new Promise((resolve) => {\n unblockBlockerHistoryUpdate = resolve;\n });\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked, after the url\n // restoration is also complete. See:\n // https://github.com/remix-run/react-router/issues/11613\n nextHistoryUpdatePromise.then(() => init.history.go(delta));\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\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 if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(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(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\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 { flushSync }: { flushSync?: boolean } = {}\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 mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\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 let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\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 | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = 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 nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\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 enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\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 {\n overrideNavigation: state.navigation,\n // Proxy through any rending view transition\n enableViewTransition: pendingViewTransitionEnabled === true,\n }\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 initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: 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 pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | 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 pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: 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 actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\n }\n\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\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: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\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 isFogOfWar: boolean,\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else {\n matches = discoverResult.matches;\n }\n }\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 && !actionMatch.route.lazy) {\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 let results = await callDataStrategy(\n \"action\",\n state,\n request,\n [actionMatch],\n matches,\n null\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, true, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\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 to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\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 isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\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 we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: error,\n },\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\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 pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n if (shouldUpdateNavigationState) {\n let updates: Partial = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\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 if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\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 pendingActionResult,\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 // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n matches,\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getUpdatedActionData(\n pendingActionResult: PendingActionResult | undefined\n ): Record | null | undefined {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n\n function getUpdatedRevalidatingFetchers(\n revalidatingFetchers: RevalidatingFetcher[]\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\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 | null,\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 let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\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 isFogOfWar: boolean,\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n function detectAndHandle405Error(m: AgnosticDataRouteMatch) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return true;\n }\n return false;\n }\n\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n state,\n fetchRequest,\n [match],\n requestMatches,\n key\n );\n let actionResult = actionResults[match.route.id];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by 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 // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, false, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\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 init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, 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 = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\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((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false\n );\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false\n );\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n 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(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n 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 isFogOfWar: boolean,\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n state,\n fetchRequest,\n [match],\n matches,\n key\n );\n let result = results[match.route.id];\n\n // Deferred isn't supported for 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 our 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 // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result, false);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\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 request: Request,\n redirect: RedirectResult,\n isNavigation: boolean,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(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 || redirect.response.headers.has(\"X-Remix-Replace\")\n ? HistoryAction.Replace\n : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\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 let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve these flags across redirects\n preventScrollReset: pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve these flags across redirects\n preventScrollReset: pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n state: RouterState,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null\n ): Promise> {\n let results: Record;\n let dataResults: Record = {};\n try {\n results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n state,\n request,\n matchesToLoad,\n matches,\n fetcherKey,\n manifest,\n mapRouteProperties\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n matchesToLoad.forEach((m) => {\n dataResults[m.route.id] = {\n type: ResultType.error,\n error: e,\n };\n });\n return dataResults;\n }\n\n for (let [routeId, result] of Object.entries(results)) {\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n dataResults[routeId] = {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n routeId,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n } else {\n dataResults[routeId] = await convertDataStrategyResultToDataResult(\n result\n );\n }\n }\n\n return dataResults;\n }\n\n async function callLoadersAndMaybeResolveData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let currentMatches = state.matches;\n\n // Kick off loaders and fetchers in parallel\n let loaderResultsPromise = callDataStrategy(\n \"loader\",\n state,\n request,\n matchesToLoad,\n matches,\n null\n );\n\n let fetcherResultsPromise = Promise.all(\n fetchersToLoad.map(async (f) => {\n if (f.matches && f.match && f.controller) {\n let results = await callDataStrategy(\n \"loader\",\n state,\n createClientSideRequest(init.history, f.path, f.controller.signal),\n [f.match],\n f.matches,\n f.key\n );\n let result = results[f.match.route.id];\n // Fetcher results are keyed by fetcher key from here on out, not routeId\n return { [f.key]: result };\n } else {\n return Promise.resolve({\n [f.key]: {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n } as ErrorResult,\n });\n }\n })\n );\n\n let loaderResults = await loaderResultsPromise;\n let fetcherResults = (await fetcherResultsPromise).reduce(\n (acc, r) => Object.assign(acc, r),\n {}\n );\n\n await Promise.all([\n resolveNavigationDeferredResults(\n matches,\n loaderResults,\n request.signal,\n currentMatches,\n state.loaderData\n ),\n resolveFetcherDeferredResults(matches, fetcherResults, fetchersToLoad),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\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.add(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\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 = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\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 updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\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 getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function handleNavigational404(pathname: string) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n\n return { notFoundMatches: matches, route, error };\n }\n\n function handleDiscoverRouteError(\n pathname: string,\n discoverResult: DiscoverRoutesErrorResult\n ) {\n return {\n boundaryId: findNearestBoundary(discoverResult.partialMatches).route.id,\n error: getInternalRouterError(400, {\n type: \"route-discovery\",\n pathname,\n message:\n discoverResult.error != null && \"message\" in discoverResult.error\n ? discoverResult.error\n : String(discoverResult.error),\n }),\n };\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 || null;\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 getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function checkFogOfWar(\n matches: AgnosticDataRouteMatch[] | null,\n routesToUse: AgnosticDataRouteObject[],\n pathname: string\n ): { active: boolean; matches: AgnosticDataRouteMatch[] | null } {\n if (patchRoutesOnNavigationImpl) {\n // Don't bother re-calling patchRouteOnMiss for a path we've already\n // processed. the last execution would have patched the route tree\n // accordingly so `matches` here are already accurate.\n if (discoveredRoutes.has(pathname)) {\n return { active: false, matches };\n }\n\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal\n ): Promise {\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n try {\n await loadLazyRouteChildren(\n patchRoutesOnNavigationImpl!,\n pathname,\n partialMatches,\n routesToUse,\n manifest,\n mapRouteProperties,\n pendingPatchRoutes,\n signal\n );\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n }\n }\n\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: newMatches };\n }\n\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // Avoid loops if the second pass results in the same partial matches\n if (\n !newPartialMatches ||\n (partialMatches.length === newPartialMatches.length &&\n partialMatches.every(\n (m, i) => m.route.id === newPartialMatches![i].route.id\n ))\n ) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: null };\n }\n\n partialMatches = newPartialMatches;\n }\n }\n\n function addToFifoQueue(path: string, queue: Set) {\n if (queue.size >= discoveredRoutesMaxSize) {\n let first = queue.values().next().value;\n queue.delete(first);\n }\n queue.add(path);\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n function patchRoutes(\n routeId: string | null,\n children: AgnosticRouteObject[]\n ): void {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties\n );\n\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\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: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\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 * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\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 activeDeferreds: null,\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 activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\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 * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\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\" && method !== \"OPTIONS\") {\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 unstable_dataStrategy || null,\n false,\n match\n );\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 if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\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 unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\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 for a\n // `queryRoute` call, we throw the `DataStrategyResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isDataStrategyResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\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 unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\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 let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\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.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\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 activeDeferreds: null,\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\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 = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\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 : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\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 (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\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 : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise> {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n null,\n request,\n matchesToLoad,\n matches,\n null,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n let dataResults: Record = {};\n await Promise.all(\n matches.map(async (match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let result = results[match.route.id];\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n match.route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n dataResults[match.route.id] =\n await convertDataStrategyResultToDataResult(result);\n })\n );\n return dataResults;\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: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\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 normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\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 let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\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 history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: Set,\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for 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 let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\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 != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Idempotent utility to execute patchRoutesOnNavigation() to lazily load route\n * definitions and update the routes/routeManifest\n */\nasync function loadLazyRouteChildren(\n patchRoutesOnNavigationImpl: AgnosticPatchRoutesOnNavigationFunction,\n path: string,\n matches: AgnosticDataRouteMatch[],\n routes: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n pendingRouteChildren: Map<\n string,\n ReturnType\n >,\n signal: AbortSignal\n) {\n let key = [path, ...matches.map((m) => m.route.id)].join(\"-\");\n try {\n let pending = pendingRouteChildren.get(key);\n if (!pending) {\n pending = patchRoutesOnNavigationImpl({\n path,\n matches,\n patch: (routeId, children) => {\n if (!signal.aborted) {\n patchRoutesImpl(\n routeId,\n children,\n routes,\n manifest,\n mapRouteProperties\n );\n }\n },\n });\n pendingRouteChildren.set(key, pending);\n }\n\n if (pending && isPromise(pending)) {\n await pending;\n }\n } finally {\n pendingRouteChildren.delete(key);\n }\n}\n\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [routeId, \"patch\", String(route.children?.length || \"0\")],\n manifest\n );\n if (route.children) {\n route.children.push(...dataChildren);\n } else {\n route.children = dataChildren;\n }\n } else {\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [\"patch\", String(routesToUse.length || \"0\")],\n manifest\n );\n routesToUse.push(...dataChildren);\n }\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nasync function defaultDataStrategy({\n matches,\n}: DataStrategyFunctionArgs): ReturnType {\n let matchesToLoad = matches.filter((m) => m.shouldLoad);\n let results = await Promise.all(matchesToLoad.map((m) => m.resolve()));\n return results.reduce(\n (acc, result, i) =>\n Object.assign(acc, { [matchesToLoad[i].route.id]: result }),\n {}\n );\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n state: RouterState | null,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise> {\n let loadRouteDefinitionsPromises = matches.map((m) =>\n m.route.lazy\n ? loadLazyRouteModule(m.route, mapRouteProperties, manifest)\n : undefined\n );\n\n let dsMatches = matches.map((match, i) => {\n let loadRoutePromise = loadRouteDefinitionsPromises[i];\n let shouldLoad = matchesToLoad.some((m) => m.route.id === match.route.id);\n // `resolve` encapsulates route.lazy(), executing the loader/action,\n // and mapping return values/thrown errors to a `DataStrategyResult`. Users\n // can pass a callback to take fine-grained control over the execution\n // of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = async (handlerOverride) => {\n if (\n handlerOverride &&\n request.method === \"GET\" &&\n (match.route.lazy || match.route.loader)\n ) {\n shouldLoad = true;\n }\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n loadRoutePromise,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n });\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: dsMatches,\n request,\n params: matches[0].params,\n fetcherKey,\n context: requestContext,\n });\n\n // Wait for all routes to load here but 'swallow the error since we want\n // it to bubble up from the `await loadRoutePromise` in `callLoaderOrAction` -\n // called from `match.resolve()`\n try {\n await Promise.all(loadRouteDefinitionsPromises);\n } catch (e) {\n // No-op\n }\n\n return results;\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n loadRoutePromise: Promise | undefined,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: DataStrategyResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise = (async () => {\n try {\n let val = await (handlerOverride\n ? handlerOverride((ctx: unknown) => actualHandler(ctx))\n : actualHandler());\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n // If we have a route.lazy promise, await that first\n if (loadRoutePromise) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadRoutePromise,\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadRoutePromise;\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.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 // We should already be catching and converting normal handler executions to\n // DataStrategyResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertDataStrategyResultToDataResult(\n dataStrategyResult: DataStrategyResult\n): Promise {\n let { result, type } = dataStrategyResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\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 (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n if (result.data instanceof Error) {\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: result.init?.status,\n };\n }\n\n // Convert thrown unstable_data() to ErrorResponse instances\n result = new ErrorResponseImpl(\n result.init?.status || 500,\n undefined,\n result.data\n );\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n if (isDataWithResponseInit(result)) {\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\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 history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\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 // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\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 let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n matches.forEach((match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let id = match.route.id;\n let result = results[id];\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\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 !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\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 {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.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 } 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 (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\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: Record,\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: Record,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n revalidatingFetchers.forEach((rf) => {\n let { key, match, controller } = rf;\n let result = fetcherResults[key];\n invariant(result, \"Did not find corresponding fetcher result\");\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n return;\n } else 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 invariant(false, \"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 invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\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 errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\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 =\n routes.length === 1\n ? routes[0]\n : 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 type,\n message,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\" | \"route-discovery\";\n message?: 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 (type === \"route-discovery\") {\n errorMessage =\n `Unable to match URL \"${pathname}\" - the \\`unstable_patchRoutesOnNavigation()\\` ` +\n `function threw the following error:\\n${message}`;\n } else 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 if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\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 ErrorResponseImpl(\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(\n results: Record\n): { key: string; result: RedirectResult } | undefined {\n let entries = Object.entries(results);\n for (let i = entries.length - 1; i >= 0; i--) {\n let [key, result] = entries[i];\n if (isRedirectResult(result)) {\n return { key, 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 if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isPromise(val: unknown): val is Promise {\n return typeof val === \"object\" && val != null && \"then\" in val;\n}\n\nfunction isDataStrategyResult(result: unknown): result is DataStrategyResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectDataStrategyResultResult(result: DataStrategyResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\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\nexport function isDataWithResponseInit(\n value: any\n): value is DataWithResponseInit {\n return (\n typeof value === \"object\" &&\n value != null &&\n \"type\" in value &&\n \"data\" in value &&\n \"init\" in value &&\n value.type === \"DataWithResponseInit\"\n );\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\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 isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveNavigationDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n signal: AbortSignal,\n currentMatches: AgnosticDataRouteMatch[],\n currentLoaderData: RouteData\n) {\n let entries = Object.entries(results);\n for (let index = 0; index < entries.length; index++) {\n let [routeId, result] = entries[index];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\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) && 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, false).then((result) => {\n if (result) {\n results[routeId] = result;\n }\n });\n }\n }\n}\n\nasync function resolveFetcherDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n revalidatingFetchers: RevalidatingFetcher[]\n) {\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, routeId, controller } = revalidatingFetchers[index];\n let result = results[key];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n if (isDeferredResult(result)) {\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 invariant(\n controller,\n \"Expected an AbortController for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, controller.signal, true).then(\n (result) => {\n if (result) {\n results[key] = result;\n }\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\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\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} 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 hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\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 hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\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\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\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 interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\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 future: {\n v7_relativeSplatPath: boolean;\n };\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 isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\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 Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_decodePath as decodePath,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\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, decodePath(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\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\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 let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): 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 dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\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 (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && 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 [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\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 { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\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 return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\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 { 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\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\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 matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `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 dataRouterState,\n future\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 DefaultErrorComponent() {\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\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\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 revalidation: props.revalidation,\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 (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\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 !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\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 !== undefined ? (\n \n \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 dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._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\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (!dataRouterState) {\n return null;\n }\n\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 if (\n future?.v7_partialHydration &&\n parentMatches.length === 0 &&\n !dataRouterState.initialized &&\n dataRouterState.matches.length > 0\n ) {\n // Don't bail if we're initializing with partial hydration and we have\n // router matches. That means we're actively running `patchRoutesOnNavigation`\n // so we should render down the partial matches to the appropriate\n // `HydrateFallback`. We only do this if `parentMatches` is empty so it\n // only impacts the root matches for `RouterProvider` and no descendant\n // ``\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] !== undefined\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\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\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\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 React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, 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(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\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 let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\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 let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\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 * ErrorBoundary/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 routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\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\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\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 type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\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 let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a