{"version":3,"sources":["../node_modules/react/index.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/prop-types/index.js","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/date-arithmetic/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/moment/moment.js","../node_modules/tslib/tslib.es6.js","../node_modules/@emotion/utils/dist/utils.browser.esm.js","../node_modules/@emotion/core/dist/core.browser.esm.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../../../src/JavaScriptSDK/CoreUtils.ts","../node_modules/react-dom/index.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-select/dist/chunk-80640036.browser.esm.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/inheritsLoose.js","../node_modules/lodash-es/_root.js","../node_modules/react-select/dist/chunk-39d3fda8.browser.esm.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/react-select/node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/react-select/dist/base/dist/react-select-cac0a5ae.browser.esm.js","../node_modules/react-select/dist/chunk-b36baf1a.browser.esm.js","../node_modules/react-select/dist/react-select.browser.esm.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/@babel/runtime/helpers/esm/objectSpread.js","../node_modules/axios/lib/utils.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/@babel/runtime/helpers/interopRequireWildcard.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../../../src/JavaScriptSDK.Enums/LoggingEnums.ts","../node_modules/dom-helpers/esm/ownerDocument.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../node_modules/react-big-calendar/lib/utils/dates.js","../node_modules/lodash/_root.js","../node_modules/lodash/isArray.js","../node_modules/@emotion/css/dist/css.browser.esm.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/dom-helpers/esm/offset.js","../node_modules/dom-helpers/esm/contains.js","../node_modules/lodash-es/isBuffer.js","../node_modules/lodash-es/_nodeUtil.js","../../../src/JavaScriptSDK/TelemetryPluginChain.ts","../../../src/JavaScriptSDK/ProcessTelemetryContext.ts","../node_modules/webpack/buildin/global.js","../node_modules/react-calendar-timeline/lib/lib/utility/calendar.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/invariant/browser.js","../node_modules/dom-helpers/esm/addEventListener.js","../node_modules/dom-helpers/esm/removeEventListener.js","../node_modules/dom-helpers/esm/listen.js","../node_modules/mini-create-react-context/dist/esm/index.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/generatePath.js","../../modules/Redirect.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/withRouter.js","../../modules/hooks.js","../node_modules/lodash/_getNative.js","../node_modules/react-calendar-timeline/lib/lib/utility/generic.js","../../../src/utils/isBrowser.js","../../../src/utils/debounce.js","../../../src/utils/isFunction.js","../../../src/utils/getStyleComputedProperty.js","../../../src/utils/getParentNode.js","../../../src/utils/getScrollParent.js","../../../src/utils/getReferenceNode.js","../../../src/utils/isIE.js","../../../src/utils/getOffsetParent.js","../../../src/utils/getRoot.js","../../../src/utils/findCommonOffsetParent.js","../../../src/utils/isOffsetContainer.js","../../../src/utils/getScroll.js","../../../src/utils/includeScroll.js","../../../src/utils/getBordersSize.js","../../../src/utils/getWindowSizes.js","../../../src/utils/getClientRect.js","../../../src/utils/getBoundingClientRect.js","../../../src/utils/getOffsetRectRelativeToArbitraryNode.js","../../../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../../../src/utils/isFixed.js","../../../src/utils/getFixedPositionOffsetParent.js","../../../src/utils/getBoundaries.js","../../../src/utils/computeAutoPlacement.js","../../../src/utils/getReferenceOffsets.js","../../../src/utils/getOuterSizes.js","../../../src/utils/getOppositePlacement.js","../../../src/utils/getPopperOffsets.js","../../../src/utils/find.js","../../../src/utils/runModifiers.js","../../../src/utils/findIndex.js","../../../src/methods/update.js","../../../src/utils/isModifierEnabled.js","../../../src/utils/getSupportedPropertyName.js","../../../src/methods/destroy.js","../../../src/utils/getWindow.js","../../../src/utils/setupEventListeners.js","../../../src/methods/enableEventListeners.js","../../../src/methods/disableEventListeners.js","../../../src/utils/removeEventListeners.js","../../../src/utils/isNumeric.js","../../../src/utils/setStyles.js","../../../src/modifiers/computeStyle.js","../../../src/utils/isModifierRequired.js","../../../src/methods/placements.js","../../../src/utils/clockwise.js","../../../src/modifiers/flip.js","../../../src/modifiers/offset.js","../../../src/modifiers/index.js","../../../src/methods/defaults.js","../../../src/modifiers/shift.js","../../../src/modifiers/preventOverflow.js","../../../src/modifiers/keepTogether.js","../../../src/modifiers/arrow.js","../../../src/utils/getOppositeVariation.js","../../../src/modifiers/inner.js","../../../src/modifiers/hide.js","../../../src/utils/getRoundedOffsets.js","../../../src/modifiers/applyStyle.js","../../../src/utils/setAttributes.js","../../../src/index.js","../node_modules/classnames/index.js","../node_modules/date-fns/esm/startOfDay/index.js","../../../src/JavaScriptSDK/EnvUtils.ts","../node_modules/@emotion/hash/dist/hash.browser.esm.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/@emotion/memoize/dist/memoize.browser.esm.js","../node_modules/@emotion/serialize/dist/serialize.browser.esm.js","../node_modules/react-calendar-timeline/lib/lib/timeline/TimelineStateContext.js","../node_modules/warning/warning.js","../node_modules/dom-helpers/esm/scrollLeft.js","../node_modules/dom-helpers/esm/scrollTop.js","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","../node_modules/date-fns/esm/addMilliseconds/index.js","../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../node_modules/dom-helpers/esm/isWindow.js","../node_modules/dom-helpers/esm/isDocument.js","../node_modules/dom-helpers/esm/animationFrame.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isSymbol.js","../node_modules/react-calendar-timeline/lib/lib/markers/TimelineMarkersContext.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/date-fns/esm/addDays/index.js","../node_modules/date-fns/esm/addMonths/index.js","../node_modules/dom-helpers/esm/height.js","../node_modules/dom-helpers/esm/width.js","../../../src/JavaScriptSDK/DiagnosticLogger.ts","../node_modules/react-calendar-timeline/lib/index.js","../node_modules/webpack/buildin/module.js","../node_modules/react-big-calendar/lib/utils/helpers.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/identity.js","../node_modules/react-calendar-timeline/node_modules/create-react-context/lib/index.js","../node_modules/react-calendar-timeline/lib/lib/markers/markerType.js","../node_modules/react-calendar-timeline/lib/lib/headers/HeadersContext.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/gud/index.js","../node_modules/dom-helpers/esm/getScrollAccessor.js","../node_modules/dom-helpers/esm/scrollbarSize.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/date-fns/esm/subMilliseconds/index.js","../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../node_modules/date-fns/esm/getDaysInMonth/index.js","../node_modules/date-fns/esm/startOfWeek/index.js","../node_modules/date-fns/esm/startOfQuarter/index.js","../node_modules/@emotion/sheet/dist/sheet.browser.esm.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/@emotion/stylis/dist/stylis.browser.esm.js","../node_modules/@emotion/cache/dist/cache.browser.esm.js","../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../node_modules/webpack/buildin/harmony-module.js","../node_modules/react-big-calendar/lib/utils/selection.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/eq.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/keys.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/isLength.js","../node_modules/lodash/_isKey.js","../node_modules/react-big-calendar/lib/utils/eventLevels.js","../node_modules/function-bind/index.js","../node_modules/define-properties/index.js","../node_modules/react-calendar-timeline/lib/lib/markers/implementations/shared.js","../node_modules/react-calendar-timeline/lib/lib/headers/SidebarHeader.js","../node_modules/dom-helpers/esm/querySelectorAll.js","../node_modules/date-fns/esm/isValid/index.js","../node_modules/date-fns/esm/addMinutes/index.js","../node_modules/date-fns/esm/addHours/index.js","../node_modules/date-fns/esm/addWeeks/index.js","../node_modules/date-fns/esm/addYears/index.js","../node_modules/date-fns/esm/setMonth/index.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/react-input-autosize/lib/AutosizeInput.js","../node_modules/dom-helpers/esm/matches.js","../node_modules/dom-helpers/esm/closest.js","../node_modules/react-datepicker/dist/react-datepicker.min.js","../node_modules/create-react-context/lib/index.js","../node_modules/path-to-regexp/index.js","../../../src/JavaScriptSDK/BaseTelemetryPlugin.ts","../node_modules/uncontrollable/esm/utils.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/lodash-es/_baseSlice.js","../node_modules/lodash-es/eq.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/isObject.js","../node_modules/lodash-es/isFunction.js","../node_modules/lodash-es/isLength.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/lodash-es/_isIndex.js","../node_modules/lodash-es/_isIterateeCall.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/toNumber.js","../node_modules/lodash-es/toFinite.js","../node_modules/lodash-es/toInteger.js","../node_modules/lodash-es/chunk.js","../node_modules/dom-helpers/esm/getComputedStyle.js","../node_modules/dom-helpers/esm/ownerWindow.js","../node_modules/dom-helpers/esm/hyphenate.js","../node_modules/dom-helpers/esm/hyphenateStyle.js","../node_modules/dom-helpers/esm/isTransform.js","../node_modules/dom-helpers/esm/css.js","../node_modules/dom-helpers/esm/position.js","../node_modules/dom-helpers/esm/offsetParent.js","../node_modules/@restart/hooks/esm/useCallbackRef.js","../node_modules/@restart/hooks/esm/useMergedRefs.js","../node_modules/react-overlays/esm/usePopper.js","../node_modules/@restart/hooks/esm/useCommittedRef.js","../node_modules/@restart/hooks/esm/useEventCallback.js","../node_modules/react-overlays/esm/utils/ownerDocument.js","../node_modules/react-overlays/esm/useRootClose.js","../node_modules/react-overlays/esm/utils/useWaitForDOMRef.js","../node_modules/react-overlays/esm/Overlay.js","../node_modules/lodash-es/_baseFindIndex.js","../node_modules/lodash-es/_listCacheClear.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/_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/_setCacheAdd.js","../node_modules/lodash-es/_setCacheHas.js","../node_modules/lodash-es/_SetCache.js","../node_modules/lodash-es/_arraySome.js","../node_modules/lodash-es/_cacheHas.js","../node_modules/lodash-es/_equalArrays.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/lodash-es/_mapToArray.js","../node_modules/lodash-es/_setToArray.js","../node_modules/lodash-es/_equalByTag.js","../node_modules/lodash-es/_arrayPush.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/lodash-es/_arrayFilter.js","../node_modules/lodash-es/stubArray.js","../node_modules/lodash-es/_getSymbols.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/lodash-es/keys.js","../node_modules/lodash-es/_getAllKeys.js","../node_modules/lodash-es/_equalObjects.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/_baseIsEqualDeep.js","../node_modules/lodash-es/_baseIsEqual.js","../node_modules/lodash-es/_baseIsMatch.js","../node_modules/lodash-es/_isStrictComparable.js","../node_modules/lodash-es/_getMatchData.js","../node_modules/lodash-es/_matchesStrictComparable.js","../node_modules/lodash-es/_baseMatches.js","../node_modules/lodash-es/_isKey.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/lodash-es/_castPath.js","../node_modules/lodash-es/_toKey.js","../node_modules/lodash-es/_baseGet.js","../node_modules/lodash-es/get.js","../node_modules/lodash-es/_baseHasIn.js","../node_modules/lodash-es/_hasPath.js","../node_modules/lodash-es/hasIn.js","../node_modules/lodash-es/_baseMatchesProperty.js","../node_modules/lodash-es/identity.js","../node_modules/lodash-es/_baseProperty.js","../node_modules/lodash-es/_basePropertyDeep.js","../node_modules/lodash-es/property.js","../node_modules/lodash-es/_baseIteratee.js","../node_modules/lodash-es/findIndex.js","../node_modules/lodash-es/_baseRange.js","../node_modules/lodash-es/_createRange.js","../node_modules/lodash-es/range.js","../node_modules/lodash-es/_isFlattenable.js","../node_modules/lodash-es/_baseFlatten.js","../node_modules/lodash-es/_createBaseFor.js","../node_modules/lodash-es/_baseFor.js","../node_modules/lodash-es/_baseForOwn.js","../node_modules/lodash-es/_createBaseEach.js","../node_modules/lodash-es/_baseEach.js","../node_modules/lodash-es/_baseMap.js","../node_modules/lodash-es/_baseSortBy.js","../node_modules/lodash-es/_compareAscending.js","../node_modules/lodash-es/_compareMultiple.js","../node_modules/lodash-es/_baseOrderBy.js","../node_modules/lodash-es/_apply.js","../node_modules/lodash-es/_overRest.js","../node_modules/lodash-es/constant.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/lodash-es/_baseSetToString.js","../node_modules/lodash-es/_shortOut.js","../node_modules/lodash-es/_setToString.js","../node_modules/lodash-es/_baseRest.js","../node_modules/lodash-es/sortBy.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/lodash-es/_arrayEach.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/_copyObject.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/_copyArray.js","../node_modules/lodash-es/_copySymbols.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/_getSymbolsIn.js","../node_modules/lodash-es/_copySymbolsIn.js","../node_modules/lodash-es/_getAllKeysIn.js","../node_modules/lodash-es/_initCloneArray.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/last.js","../node_modules/lodash-es/_parent.js","../node_modules/lodash-es/_baseUnset.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/lodash-es/_customOmitClone.js","../node_modules/lodash-es/flatten.js","../node_modules/lodash-es/_flatRest.js","../node_modules/lodash-es/omit.js","../node_modules/lodash-es/defaults.js","../node_modules/lodash-es/transform.js","../node_modules/lodash-es/mapValues.js","../node_modules/react-big-calendar/dist/react-big-calendar.esm.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/uncontrollable/esm/uncontrollable.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/react-toastify/esm/react-toastify.js","../node_modules/object-assign/index.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/react-big-calendar/lib/Selection.js","../node_modules/react-big-calendar/lib/utils/TimeSlots.js","../node_modules/react-big-calendar/lib/utils/layout-algorithms/overlap.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_isIterateeCall.js","../node_modules/react-big-calendar/lib/TimeSlotGroup.js","../node_modules/react-big-calendar/lib/utils/propTypes.js","../node_modules/react-big-calendar/lib/EventRowMixin.js","../node_modules/lodash/toFinite.js","../node_modules/object-keys/index.js","../node_modules/object-keys/isArguments.js","../node_modules/regexp.prototype.flags/implementation.js","../node_modules/regexp.prototype.flags/polyfill.js","../node_modules/react-calendar-timeline/lib/lib/utility/events.js","../node_modules/react-calendar-timeline/lib/lib/utility/dom-helpers.js","../node_modules/react-calendar-timeline/lib/lib/markers/MarkerCanvasContext.js","../node_modules/react-calendar-timeline/lib/lib/default-config.js","../node_modules/react-calendar-timeline/lib/lib/headers/TimelineHeaders.js","../node_modules/react-calendar-timeline/lib/lib/headers/constants.js","../node_modules/react-calendar-timeline/lib/lib/headers/DateHeader.js","../node_modules/react-calendar-timeline/lib/lib/headers/CustomHeader.js","../node_modules/react-is/index.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/axios/index.js","../node_modules/react-big-calendar/lib/TimeGrid.js","../node_modules/deep-equal/index.js","../node_modules/react-async-hook/dist/index.js","../../index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../src/index.ts","../../node_modules/tslib/tslib.es6.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/transformData.js","../node_modules/process/browser.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/enhanceError.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/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/react-big-calendar/lib/DayColumn.js","../node_modules/react-big-calendar/lib/utils/DayEventLayout.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/lodash/sortBy.js","../node_modules/lodash/_baseFlatten.js","../node_modules/lodash/_isFlattenable.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_baseOrderBy.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/get.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/memoize.js","../node_modules/lodash/toString.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/property.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_baseMap.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_createBaseEach.js","../node_modules/lodash/_baseSortBy.js","../node_modules/lodash/_compareMultiple.js","../node_modules/lodash/_compareAscending.js","../node_modules/lodash/_baseRest.js","../node_modules/lodash/_overRest.js","../node_modules/lodash/_apply.js","../node_modules/lodash/_setToString.js","../node_modules/lodash/_baseSetToString.js","../node_modules/lodash/constant.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_shortOut.js","../node_modules/react-big-calendar/lib/utils/layout-algorithms/no-overlap.js","../node_modules/react-big-calendar/lib/BackgroundWrapper.js","../node_modules/react-big-calendar/lib/NoopWrapper.js","../node_modules/react-big-calendar/lib/TimeGridEvent.js","../node_modules/react-big-calendar/lib/utils/constants.js","../node_modules/react-big-calendar/lib/TimeGutter.js","../node_modules/react-big-calendar/lib/TimeGridHeader.js","../node_modules/react-big-calendar/lib/DateContentRow.js","../node_modules/react-big-calendar/lib/BackgroundCells.js","../node_modules/react-big-calendar/lib/EventRow.js","../node_modules/react-big-calendar/lib/EventCell.js","../node_modules/react-big-calendar/lib/EventEndingRow.js","../node_modules/lodash/findIndex.js","../node_modules/lodash/_baseFindIndex.js","../node_modules/lodash/toInteger.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/range.js","../node_modules/lodash/_createRange.js","../node_modules/lodash/_baseRange.js","../node_modules/react-big-calendar/lib/utils/DateSlotMetrics.js","../node_modules/react-big-calendar/lib/Header.js","../node_modules/react-big-calendar/lib/ResourceHeader.js","../node_modules/react-big-calendar/lib/utils/Resources.js","../node_modules/date-fns/esm/isDate/index.js","../node_modules/date-fns/esm/subMinutes/index.js","../node_modules/date-fns/esm/subHours/index.js","../node_modules/date-fns/esm/subDays/index.js","../node_modules/date-fns/esm/subWeeks/index.js","../node_modules/date-fns/esm/subMonths/index.js","../node_modules/date-fns/esm/subYears/index.js","../node_modules/date-fns/esm/getSeconds/index.js","../node_modules/date-fns/esm/getMinutes/index.js","../node_modules/date-fns/esm/getHours/index.js","../node_modules/date-fns/esm/getDay/index.js","../node_modules/date-fns/esm/getDate/index.js","../node_modules/date-fns/esm/getMonth/index.js","../node_modules/date-fns/esm/getQuarter/index.js","../node_modules/date-fns/esm/getYear/index.js","../node_modules/date-fns/esm/getTime/index.js","../node_modules/date-fns/esm/setSeconds/index.js","../node_modules/date-fns/esm/setMinutes/index.js","../node_modules/date-fns/esm/setHours/index.js","../node_modules/date-fns/esm/setQuarter/index.js","../node_modules/date-fns/esm/setYear/index.js","../node_modules/date-fns/esm/min/index.js","../node_modules/date-fns/esm/max/index.js","../node_modules/date-fns/esm/differenceInCalendarDays/index.js","../node_modules/date-fns/esm/differenceInCalendarMonths/index.js","../node_modules/date-fns/esm/differenceInCalendarWeeks/index.js","../node_modules/date-fns/esm/differenceInCalendarYears/index.js","../node_modules/date-fns/esm/startOfMonth/index.js","../node_modules/date-fns/esm/startOfYear/index.js","../node_modules/date-fns/esm/endOfDay/index.js","../node_modules/date-fns/esm/endOfWeek/index.js","../node_modules/date-fns/esm/endOfMonth/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/isSameYear/index.js","../node_modules/date-fns/esm/isSameQuarter/index.js","../node_modules/date-fns/esm/isAfter/index.js","../node_modules/date-fns/esm/isBefore/index.js","../node_modules/date-fns/esm/isWithinInterval/index.js","../node_modules/date-fns/esm/parseISO/index.js","../node_modules/react-onclickoutside/dist/react-onclickoutside.es.js","../node_modules/object-keys/implementation.js","../node_modules/is-arguments/index.js","../node_modules/object-is/index.js","../node_modules/is-regex/index.js","../node_modules/has/src/index.js","../node_modules/function-bind/implementation.js","../node_modules/regexp.prototype.flags/index.js","../node_modules/es-abstract/helpers/callBind.js","../node_modules/es-abstract/GetIntrinsic.js","../node_modules/has-symbols/index.js","../node_modules/has-symbols/shams.js","../node_modules/regexp.prototype.flags/shim.js","../node_modules/is-date-object/index.js","../node_modules/create-react-context/lib/implementation.js","../node_modules/react-calendar-timeline/lib/lib/Timeline.js","../node_modules/react-calendar-timeline/lib/lib/items/Items.js","../node_modules/react-calendar-timeline/lib/lib/items/Item.js","../../scripts/header.js","../../node_modules/browser-pack-flat/_prelude","../../@interactjs/core/scope.ts","../../@interactjs/core/interactions.ts","../../@interactjs/core/Interaction.ts","../../@interactjs/utils/domObjects.ts","../../@interactjs/utils/arr.ts","../../@interactjs/utils/isWindow.ts","../../@interactjs/utils/window.ts","../../@interactjs/utils/is.ts","../../@interactjs/utils/browser.ts","../../@interactjs/utils/domUtils.ts","../../@interactjs/utils/hypot.ts","../../@interactjs/utils/pointerExtend.ts","../../@interactjs/utils/pointerUtils.ts","../../@interactjs/utils/extend.ts","../../@interactjs/utils/rect.ts","../../@interactjs/utils/clone.ts","../../@interactjs/utils/events.ts","../../@interactjs/utils/getOriginXY.ts","../../@interactjs/utils/normalizeListeners.ts","../../@interactjs/utils/raf.ts","../../@interactjs/utils/index.ts","../../@interactjs/core/defaultOptions.ts","../../@interactjs/core/Eventable.ts","../../@interactjs/core/Interactable.ts","../../@interactjs/core/InteractableSet.ts","../../@interactjs/core/BaseEvent.ts","../../@interactjs/core/InteractEvent.ts","../../@interactjs/core/PointerInfo.ts","../../@interactjs/core/interactionFinder.ts","../../@interactjs/actions/drag.ts","../../@interactjs/actions/drop/DropEvent.ts","../../@interactjs/actions/drop/index.ts","../../@interactjs/actions/gesture.ts","../../@interactjs/actions/resize.ts","../../@interactjs/actions/index.ts","../../@interactjs/auto-scroll/index.ts","../../@interactjs/auto-start/InteractableMethods.ts","../../@interactjs/auto-start/base.ts","../../@interactjs/auto-start/dragAxis.ts","../../@interactjs/auto-start/hold.ts","../../@interactjs/auto-start/index.ts","../../@interactjs/core/interactablePreventDefault.ts","../../@interactjs/dev-tools/index.ts","../../@interactjs/modifiers/base.ts","../../@interactjs/inertia/index.ts","../../@interactjs/modifiers/aspectRatio.ts","../../@interactjs/modifiers/restrict/pointer.ts","../../@interactjs/modifiers/restrict/edges.ts","../../@interactjs/modifiers/restrict/rect.ts","../../@interactjs/modifiers/restrict/size.ts","../../@interactjs/modifiers/snap/pointer.ts","../../@interactjs/modifiers/snap/size.ts","../../@interactjs/modifiers/snap/edges.ts","../../@interactjs/modifiers/index.ts","../../@interactjs/pointer-events/PointerEvent.ts","../../@interactjs/pointer-events/base.ts","../../@interactjs/pointer-events/holdRepeat.ts","../../@interactjs/pointer-events/interactableTargets.ts","../../@interactjs/pointer-events/index.ts","../../@interactjs/reflow/index.ts","../../@interactjs/interact/interact.ts","../../@interactjs/interact/index.ts","../../@interactjs/utils/snappers/grid.ts","../../@interactjs/utils/snappers/index.ts","../../@interactjs/interactjs/index.ts","../index.ts","../../node_modules/browser-pack-flat/_postlude","../node_modules/lodash.isequal/index.js","../node_modules/react-calendar-timeline/lib/lib/items/defaultItemRenderer.js","../node_modules/react-calendar-timeline/lib/lib/items/styles.js","../node_modules/react-calendar-timeline/lib/lib/layout/Sidebar.js","../node_modules/react-calendar-timeline/lib/lib/columns/Columns.js","../node_modules/react-calendar-timeline/node_modules/create-react-context/lib/implementation.js","../node_modules/fbjs/lib/warning.js","../node_modules/fbjs/lib/emptyFunction.js","../node_modules/react-calendar-timeline/lib/lib/row/GroupRows.js","../node_modules/react-calendar-timeline/lib/lib/row/GroupRow.js","../node_modules/react-calendar-timeline/lib/lib/interaction/PreventClickOnDrag.js","../node_modules/react-calendar-timeline/lib/lib/scroll/ScrollElement.js","../node_modules/react-calendar-timeline/lib/lib/markers/MarkerCanvas.js","../node_modules/react-calendar-timeline/lib/lib/markers/TimelineMarkersRenderer.js","../node_modules/react-calendar-timeline/lib/lib/markers/implementations/TodayMarker.js","../node_modules/react-calendar-timeline/lib/lib/markers/implementations/CustomMarker.js","../node_modules/react-calendar-timeline/lib/lib/markers/implementations/CursorMarker.js","../node_modules/react-calendar-timeline/lib/resize-detector/window.js","../node_modules/react-calendar-timeline/node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/react-calendar-timeline/lib/lib/headers/CustomDateHeader.js","../node_modules/react-calendar-timeline/lib/lib/headers/Interval.js","../node_modules/react-calendar-timeline/lib/lib/markers/public/TimelineMarkers.js","../node_modules/react-calendar-timeline/lib/lib/markers/public/TodayMarker.js","../node_modules/react-calendar-timeline/lib/lib/markers/public/CustomMarker.js","../node_modules/react-calendar-timeline/lib/lib/markers/public/CursorMarker.js","../../node_modules/babel-plugin-transform-async-to-promises/helpers.js","../node_modules/path-to-regexp/node_modules/isarray/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/date-fns/esm/_lib/setUTCDay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/index.js","../node_modules/date-fns/esm/_lib/setUTCWeek/index.js","../node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/setUTCISODay/index.js","../node_modules/date-fns/esm/parse/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/react-datepicker/node_modules/react-popper/lib/esm/Manager.js","../node_modules/react-datepicker/node_modules/react-popper/lib/esm/utils.js","../node_modules/react-datepicker/node_modules/react-popper/lib/esm/Popper.js","../node_modules/react-datepicker/node_modules/react-popper/lib/esm/Reference.js","../node_modules/react-datepicker/node_modules/react-popper/lib/esm/index.js","../../src/ReactPlugin.ts","../../src/withAITracking.tsx","../../../src/JavaScriptSDK/TelemetryHelpers.ts","../../../src/JavaScriptSDK/ChannelController.ts","../../src/Enums.ts","../../../src/JavaScriptSDK/BaseCore.ts","../../../src/JavaScriptSDK.Enums/EventsDiscardedReason.ts","../../../src/JavaScriptSDK/NotificationManager.ts","../../../src/JavaScriptSDK/AppInsightsCore.ts","../../src/RequestResponseHeaders.ts","../../../Telemetry/Common/DataSanitizer.ts","../../src/Util.ts","../../../Interfaces/Contracts/Generated/DataPointType.ts","../../src/TelemetryItemCreator.ts","../../../Interfaces/Contracts/Generated/Domain.ts","../../../Interfaces/Contracts/Generated/EventData.ts","../../../src/Telemetry/Event.ts","../../../src/Telemetry/Trace.ts","../../../Interfaces/Contracts/Generated/MessageData.ts","../../../Interfaces/Contracts/Generated/MetricData.ts","../../../Interfaces/Contracts/Generated/DataPoint.ts","../../../Interfaces/Contracts/Generated/SeverityLevel.ts","../../../Telemetry/Common/DataPoint.ts","../../../src/Telemetry/Metric.ts","../../../Interfaces/Contracts/Generated/PageViewData.ts","../../../src/Telemetry/PageView.ts","../../../src/Telemetry/PageViewPerformance.ts","../../../Interfaces/Contracts/Generated/PageViewPerfData.ts","../../../Interfaces/Contracts/Generated/StackFrame.ts","../../../Interfaces/Contracts/Generated/ExceptionDetails.ts","../../../src/Telemetry/Exception.ts","../../../Interfaces/Contracts/Generated/ExceptionData.ts","../../src/Constants.ts","../../src/ConnectionStringParser.ts","../../../Interfaces/Contracts/Generated/Base.ts","../../../Interfaces/Contracts/Generated/Data.ts","../../../Telemetry/Common/Envelope.ts","../../../Interfaces/Contracts/Generated/Envelope.ts","../../../src/Telemetry/RemoteDependencyData.ts","../../../Interfaces/Contracts/Generated/RemoteDependencyData.ts","../../../Telemetry/Common/Data.ts","../../../src/Interfaces/IConfig.ts","../../../Interfaces/Contracts/Generated/ContextTagKeys.ts","../../../src/Interfaces/PartAExtensions.ts","../../src/applicationinsights-common.ts","../../../JavaScriptSDK/Telemetry/PageViewManager.ts","../../../JavaScriptSDK/Telemetry/PageVisitTimeManager.ts","../../../JavaScriptSDK/Telemetry/PageViewPerformanceManager.ts","../../../src/JavaScriptSDK/ApplicationInsights.ts","../../src/SendBuffer.ts","../../src/EnvelopeCreator.ts","../../src/Serializer.ts","../../src/Offline.ts","../../../TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.ts","../../../TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.ts","../../../src/TelemetryProcessors/Sample.ts","../../src/Sender.ts","../../../src/Context/Session.ts","../../../src/Context/Application.ts","../../../src/Context/Device.ts","../../../src/Context/Internal.ts","../../../src/Context/User.ts","../../../src/Context/Location.ts","../../../src/Context/TelemetryTrace.ts","../../src/TelemetryContext.ts","../../src/PropertiesPlugin.ts","../../src/ajaxRecord.ts","../../src/TraceParent.ts","../../src/ajax.ts","../../src/Initialization.ts"],"names":["module","exports","require","_assertThisInitialized","self","ReferenceError","requiredArgs","required","args","length","TypeError","_extends","Object","assign","target","i","arguments","source","key","prototype","hasOwnProperty","call","apply","this","MILI","DAY","YEAR","multiplierMilli","multiplierMonth","daysInFeb","year","add","d","num","unit","Date","nextDate","currentDate","currentOffset","getTimezoneOffset","nextOffset","solveDST","addMillis","getFullYear","month","getMonth","day","getDate","totalMonths","nextYear","Math","trunc","nextMonth","nextDay","min","daysOf","setFullYear","setDate","setMonth","addMonths","subtract","startOf","firstOfWeek","date","hours","minutes","seconds","milliseconds","weekday","endOf","setHours","eq","createComparer","a","b","neq","gt","gte","lt","lte","max","inRange","createAccessor","decade","val","undefined","century","firstDay","w","diff","date1","date2","asFloat","dividend","divisor","result","getTime","round","method","hourLength","dateOut","getHours","floor","operator","toDate","argument","argStr","toString","console","warn","Error","stack","NaN","_defineProperty","obj","value","defineProperty","enumerable","configurable","writable","_slicedToArray","arr","Array","isArray","Symbol","iterator","_arr","_n","_d","_e","_s","_i","next","done","push","err","toInteger","dirtyNumber","number","Number","isNaN","ceil","hookCallback","some","hooks","input","isObject","isUndefined","isNumber","isDate","map","fn","res","hasOwnProp","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","getParsingFlags","m","_pf","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","meridiem","rfc2822","weekdayMismatch","isValid","_isValid","flags","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","fun","t","len","momentProperties","copyConfig","to","from","prop","_isAMomentObject","_f","_l","_tzm","_isUTC","_offset","_locale","updateInProgress","Moment","config","updateOffset","isMoment","absFloor","toInt","argumentForCoercion","coercedNumber","isFinite","compareArrays","array1","array2","dontConvert","lengthDiff","abs","diffs","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","arg","slice","join","keys","deprecations","deprecateSimple","name","isFunction","Function","mergeConfigs","parentConfig","childConfig","Locale","set","aliases","addUnitAlias","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","zeroFill","targetLength","forceSign","absNumber","zerosToFill","pow","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","callback","func","localeData","formatMoment","expandFormat","array","match","replace","mom","output","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","RegExp","regexEscape","matched","p1","p2","p3","p4","s","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","daysInYear","isLeapYear","y","parseTwoDigitYear","parseInt","indexOf","getSetYear","makeGetSet","keepTime","set$1","get","daysInMonth","x","modMonth","o","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","MONTHS_IN_FORMAT","defaultLocaleMonths","split","defaultLocaleMonthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","dayOfMonth","getSetMonth","defaultMonthsShortRegex","defaultMonthsRegex","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","sort","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","createDate","h","M","ms","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","n","concat","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","lowercase","matchMeridiem","_meridiemParse","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","globalLocale","getSetHour","baseConfig","calendar","sameDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","L","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","hh","dd","MM","yy","meridiemParse","locales","localeFamilies","normalizeLocale","loadLocale","oldLocale","_abbr","aliasedRequire","getSetGlobalLocale","e","values","data","getLocale","defineLocale","abbr","_config","parentLocale","forEach","names","j","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","defaults","c","configFromArray","expectedWeekday","yearToUse","nowValue","now","_useUTC","getUTCMonth","getUTCDate","currentDateArray","weekYear","temp","weekdayOverflow","GG","W","E","createLocal","_week","curWeek","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","getDay","setUTCMinutes","getUTCMinutes","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","configFromISO","l","allowTime","dateFormat","timeFormat","tzFormat","string","exec","configFromStringAndFormat","untruncateYear","yearStr","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromRFC2822","parsedArray","monthStr","dayStr","hourStr","minuteStr","secondStr","extractFromRFC2822Strings","weekdayStr","parsedInput","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","hour","isPm","meridiemHour","meridiemFixWrap","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromStringAndArray","createFromInputFallback","configFromString","minute","second","millisecond","configFromObject","configFromInput","isUTC","getOwnPropertyNames","k","isObjectEmpty","createFromConfig","prototypeMin","other","prototypeMax","pickBy","moments","ordering","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","unitHasDecimal","parseFloat","isDurationValid","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","offset","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","matches","parts","cloneWithOffset","model","clone","setTime","local","getDateOffset","isUtc","aspNetRegex","isoRegex","createDuration","ret","diffRes","parseIso","base","isBefore","positiveMomentsDifference","momentsDifference","inp","isAfter","createAdder","direction","period","tmp","addSubtract","isAdding","invalid","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","lang","mod$1","localStartOfDate","utcStartOfDate","addWeekYearFormatToken","getter","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetSecond","parseMs","getSetMillisecond","proto","preParsePostFormat","time","formats","sod","calendarFormat","that","zoneDelta","startOfDate","isoWeekday","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","u","getPrioritizedUnits","toArray","toObject","toISOString","keepOffset","inspect","zone","isLocal","prefix","suffix","toJSON","unix","creationData","isoWeeks","weekInfo","isoWeeksInYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","proto$1","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","_calendar","_longDateFormat","formatUpper","toUpperCase","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","charAt","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","Y","D","toFixed","total","totalSign","ymSign","daysSign","hmsSign","proto$2","monthsFromDays","withSuffix","posNegDuration","relativeTime$1","toIsoString","version","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","DATE","TIME","TIME_SECONDS","TIME_MS","WEEK","MONTH","factory","extendStatics","setPrototypeOf","__proto__","p","__extends","__","constructor","create","__assign","getRegisteredStyles","registered","registeredStyles","classNames","rawClassName","className","insertStyles","cache","serialized","isStringTag","styles","inserted","current","insert","sheet","EmotionCacheContext","createContext","HTMLElement","createCache","ThemeContext","CacheProvider","Provider","withEmotionCache","forwardRef","props","ref","createElement","Consumer","typePropName","render","theme","cssProp","css","type","serializeStyles","newProps","Emotion","jsx","argsLength","createElementArgArray","keyframes","Component","insertable","anim","classnames","cls","toAdd","merge","ClassNames","context","_len","_key","content","cx","_len2","_key2","ele","children","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","_objectSpread2","getOwnPropertyDescriptors","defineProperties","Undefined","_isTypeof","theType","_isUndefined","_isNullOrUndefined","_hasOwnProperty","_isObject","_isFunction","_attachEvent","eventNameWithoutOn","handlerRef","useCapture","_detachEvent","isString","isBoolean","disableCookies","CoreUtils","_canUseCookies","newGuid","GuidRegex","r","random","pad","String","getUTCHours","getUTCSeconds","getUTCMilliseconds","arrForEach","callbackfn","thisArg","idx","arrIndexOf","searchElement","fromIndex","lp","arrMap","_this","results","arrReduce","initialValue","objCreate","tmpFunc","objKeys","hasDontEnumBug","propertyIsEnumerable","dontEnums","dontEnumsLength","objDefineAccessors","getProp","setProp","defineProp","descriptor","addEventHandler","eventName","doc","EventHelper","Attach","isTypeof","isNullOrUndefined","AttachEvent","Detach","DetachEvent","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","process","error","_classCallCheck","instance","Constructor","_inheritsLoose","subClass","superClass","_possibleConstructorReturn","_getPrototypeOf","getPrototypeOf","_setPrototypeOf","_inherits","_toConsumableArray","arr2","iter","_objectWithoutPropertiesLoose","excluded","sourceKeys","getMenuPlacement","_ref","maxHeight","menuEl","minHeight","placement","shouldScroll","isFixedPosition","spacing","scrollParent","getScrollParent","defaultState","offsetParent","scrollHeight","getBoundingClientRect","height","_menuEl$getBoundingCl","menuBottom","bottom","menuHeight","menuTop","top","containerTop","viewHeight","window","innerHeight","scrollTop","getScrollTop","marginBottom","getComputedStyle","marginTop","viewSpaceAbove","viewSpaceBelow","scrollSpaceAbove","scrollSpaceBelow","scrollDown","scrollUp","animatedScrollTo","_constrainedHeight","spaceAbove","controlHeight","scrollTo","_constrainedHeight2","coercePlacement","menuCSS","_ref2","_ref3","_ref2$theme","borderRadius","colors","label","alignToControl","neutral0","menuGutter","MenuPlacer","_Component","_getPrototypeOf2","maxMenuHeight","_this$props","minMenuHeight","menuPlacement","menuPosition","menuShouldScrollIntoView","getPortalPlacement","state","setState","_objectSpread","_createClass","getPlacement","placerProps","getUpdatedProps","PropTypes","menuListCSS","_ref4","baseUnit","overflowY","paddingBottom","paddingTop","position","WebkitOverflowScrolling","noticeCSS","_ref5","_ref5$theme","color","neutral40","padding","textAlign","noOptionsMessageCSS","loadingMessageCSS","NoOptionsMessage","getStyles","innerProps","defaultProps","LoadingMessage","menuPortalCSS","_ref6","rect","left","width","zIndex","MenuPortal","_Component2","_getPrototypeOf3","_this2","_ref7","_this$props2","appendTo","controlElement","isFixed","getBoundingClientObj","scrollDistance","pageYOffset","menuWrapper","createPortal","keyList","hasProp","exportedEqual","equal","_typeof","arrA","arrB","dateA","dateB","regexpA","regexpB","$$typeof","message","containerCSS","isDisabled","isRtl","pointerEvents","valueContainerCSS","alignItems","display","flex","flexWrap","ValueContainer","isMulti","hasValue","indicatorsContainerCSS","alignSelf","flexShrink","_templateObject","_taggedTemplateLiteral","Svg","size","_objectWithoutProperties","viewBox","focusable","CrossIcon","DownChevron","baseCSS","isFocused","_ref3$theme","neutral60","neutral20","transition","neutral80","dropdownIndicatorCSS","clearIndicatorCSS","indicatorSeparatorCSS","_ref4$theme","backgroundColor","neutral10","loadingDotAnimations","loadingIndicatorCSS","fontSize","lineHeight","marginRight","verticalAlign","LoadingDot","delay","_css","animation","marginLeft","LoadingIndicator","indicator","_ref$theme","neutral5","borderColor","primary","borderStyle","borderWidth","boxShadow","cursor","justifyContent","outline","neutral30","groupCSS","groupHeadingCSS","fontWeight","paddingLeft","paddingRight","textTransform","inputCSS","margin","visibility","inputStyle","isHidden","background","border","opacity","multiValueCSS","minWidth","multiValueLabelCSS","cropWithEllipsis","textOverflow","whiteSpace","multiValueRemoveCSS","dangerLight","danger","MultiValueGeneric","MultiValueContainer","MultiValueLabel","MultiValueRemove","MultiValue","components","removeProps","selectProps","Container","Label","Remove","emotionCx","optionCSS","isSelected","primary25","userSelect","WebkitTapHighlightColor","primary50","placeholderCSS","neutral50","transform","css$1","maxWidth","ClearIndicator","Control","innerRef","menuIsOpen","control","DropdownIndicator","Group","Heading","headingProps","group","GroupHeading","cleanProps","IndicatorsContainer","indicators","IndicatorSeparator","Input","AutosizeInput","inputRef","disabled","Menu","menu","MenuList","Option","option","Placeholder","placeholder","SelectContainer","SingleValue","defaultComponents","toVal","mix","str","_defineProperties","protoProps","staticProps","__esModule","freeSelf","root","freeGlobal","noop","applyPrefixToName","trim","cleanValue","Boolean","isDocumentElement","el","document","documentElement","body","element","style","excludeStaticParent","overflowRx","docEl","parent","parentElement","overflowX","easeOutCubic","start","change","increment","currentTime","animateScroll","requestAnimationFrame","scrollIntoView","focusedEl","menuRect","focusedRect","overScroll","offsetHeight","offsetTop","clientHeight","right","isTouchCapable","createEvent","isMobileDevice","navigator","userAgent","sourceSymbolKeys","areInputsEqual","newInputs","lastInputs","memoizeOne","resultFn","isEqual","lastThis","lastResult","lastArgs","calledOnce","newArgs","diacritics","letters","stripDiacritics","trimString","defaultStringify","A11yText","DummyInput","in","onExited","appear","enter","exit","emotion","NodeResolver","findDOMNode","STYLE_KEYS","LOCK_STYLES","boxSizing","preventTouchMove","preventDefault","allowTouchMove","stopPropagation","preventInertiaScroll","totalScroll","currentScroll","isTouchDevice","maxTouchPoints","canUseDOM","activeScrollLocks","ScrollLock","capture","passive","accountForScrollbars","touchScrollTarget","targetStyle","originalStyles","currentPadding","clientWidth","adjustedPadding","innerWidth","addEventListener","listenerOptions","_this3","removeEventListener","_ref$1","ScrollBlock","_PureComponent","activeElement","blur","isEnabled","onClick","blurSelectInput","getScrollTarget","PureComponent","ScrollCaptor","event","delta","onBottomArrive","onBottomLeave","onTopArrive","onTopLeave","_this$scrollTarget","scrollTarget","isDeltaPositive","availableScroll","shouldCancelScroll","isBottom","isTop","cancelScroll","handleEventDelta","deltaY","touchStart","changedTouches","clientY","startListening","stopListening","onWheel","onTouchStart","onTouchMove","React","ScrollCaptorSwitch","instructionsAriaMessage","isSearchable","valueEventAriaMessage","isOptionDisabled","defaultStyles","clearIndicator","container","dropdownIndicator","groupHeading","indicatorsContainer","indicatorSeparator","loadingIndicator","loadingMessage","menuList","menuPortal","multiValue","multiValueLabel","multiValueRemove","noOptionsMessage","singleValue","valueContainer","defaultTheme","primary75","neutral70","neutral90","backspaceRemovesValue","blurInputOnSelect","captureMenuScroll","closeMenuOnSelect","closeMenuOnScroll","controlShouldRenderValue","escapeClearsValue","filterOption","rawInput","_ignoreCase$ignoreAcc","ignoreCase","ignoreAccents","stringify","matchFrom","candidate","formatGroupLabel","getOptionLabel","getOptionValue","isLoading","menuShouldBlockScroll","openMenuOnFocus","openMenuOnClick","options","pageSize","screenReaderStatus","count","tabIndex","tabSelectsValue","instanceId","Select","_props","ariaLiveSelection","ariaLiveContext","focusedOption","focusedValue","inputIsHidden","menuOptions","selectValue","controlRef","focusedOptionRef","menuListRef","focusInput","blurInput","newValue","actionMeta","onChange","action","onInputChange","inputIsHiddenAfterUpdate","onMenuClose","clearFocusValueOnUpdate","_this$props3","isOptionSelected","setValue","announceAriaLiveSelection","removedValue","lastSelectedValue","custom","instancePrefix","_this$state","button","blockOptionHover","tagName","openMenu","openAfterFocus","_this$props4","clearValue","setTimeout","isComposing","touch","touches","item","initialTouchX","clientX","initialTouchY","userIsDragging","deltaX","contains","onControlMouseDown","onClearIndicatorMouseDown","onDropdownIndicatorMouseDown","inputValue","currentTarget","onMenuOpen","_this$props5","onFocus","announceAriaLiveContext","focus","onBlur","_this$props6","hideSelectedOptions","_this$props7","isClearable","onKeyDown","_this$state2","defaultPrevented","focusValue","removeValue","popValue","shiftKey","selectOption","keyCode","focusOption","cacheComponents","bind","_selectValue","_menuOptions","buildMenuOptions","startListeningComposition","startListeningToTouch","onScroll","autoFocus","nextProps","_this$props8","getNextFocusedValue","getNextFocusedOption","prevProps","_this$props9","scrollToFocusedOptionOnUpdate","stopListeningComposition","stopListeningToTouch","_this$props10","_this$state3","openAtIndex","selectedIndex","_this$props11","_this$state4","focusedIndex","nextFocus","_this$state5","classNamePrefix","getValue","getTheme","nextSelectValue","_this$state6","lastFocusedIndex","lastFocusedOption","_this$props12","formatOptionLabel","onCompositionStart","onCompositionEnd","onTouchEnd","_props$inputValue","toOption","id","shouldHideSelectedOptions","onHover","onOptionHover","onSelect","optionId","getElementId","onMouseMove","onMouseOver","reduce","acc","itemIndex","hasGroups","child","groupId","_this$state7","_this$props13","focusedValueMsg","valueFocusAriaMessage","focusedOptionMsg","optionFocusAriaMessage","resultsMsg","screenReaderMessage","resultsAriaMessage","countOptions","_this$props14","inputId","getInputRef","onInputBlur","onInputFocus","readOnly","ariaAttributes","_this$commonProps","commonProps","autoCapitalize","autoComplete","autoCorrect","handleInputChange","spellCheck","_this4","_this$components","_this$props15","_this$state8","opt","isOptionFocused","onMouseDown","_this$props16","onClearIndicatorTouchEnd","_this$props17","_this$components2","onDropdownIndicatorTouchEnd","_this5","_this$components3","_this$state9","_this$props18","menuPortalTarget","onMenuScrollToTop","onMenuScrollToBottom","menuUI","getFocusedOptionRef","hasOptions","headingId","_message","menuPlacementProps","menuElement","_ref6$placerProps","onMenuMouseDown","onMenuMouseMove","getMenuListRef","_this6","_this$props19","delimiter","_value","constructAriaLiveMessage","_this$components4","_this$props20","getCommonProps","renderLiveRegion","getControlRef","onControlTouchEnd","renderPlaceholderOrValue","renderInput","renderClearIndicator","renderLoadingIndicator","renderIndicatorSeparator","renderDropdownIndicator","renderMenu","renderFormField","defaultInputValue","defaultMenuIsOpen","defaultValue","SelectComponent","_class","_temp","StateManager","callProp","select","manageState","isArrayBuffer","isBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","product","assignValue","deepMerge","getTimezoneOffsetInMilliseconds","dirtyDate","baseTimezoneOffset","setSeconds","invariant","condition","_getRequireWildcardCache","WeakMap","has","newObj","hasPropertyDescriptor","desc","isAbsolute","pathname","spliceOne","list","pop","resolvePathname","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","last","up","part","unshift","valueEqual","every","aValue","bValue","addLeadingSlash","path","stripLeadingSlash","stripBasename","hasBasename","stripTrailingSlash","createPath","location","search","hash","createLocation","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","locationsAreEqual","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","isActive","listener","notifyListeners","getConfirmation","confirm","getHistoryState","history","createBrowserHistory","globalHistory","canUseHistory","ua","supportsHistory","needsHashChangeListener","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_window$location","createKey","transitionManager","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toLocation","toIndex","allKeys","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","href","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","unlisten","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","url","getHashPath","substring","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","baseTag","querySelector","getAttribute","pushHashPath","nextPaths","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","entry","nextIndex","nextEntries","splice","canGo","startOfUTCWeek","dirtyOptions","localeWeekStartsOn","weekStartsOn","defaultWeekStartsOn","RangeError","setUTCDate","setUTCHours","LoggingSeverity","_InternalMessageId","BrowserDoesNotSupportLocalStorage","BrowserCannotReadLocalStorage","BrowserCannotReadSessionStorage","BrowserCannotWriteLocalStorage","BrowserCannotWriteSessionStorage","BrowserFailedRemovalFromLocalStorage","BrowserFailedRemovalFromSessionStorage","CannotSendEmptyTelemetry","ClientPerformanceMathError","ErrorParsingAISessionCookie","ErrorPVCalc","ExceptionWhileLoggingError","FailedAddingTelemetryToBuffer","FailedMonitorAjaxAbort","FailedMonitorAjaxDur","FailedMonitorAjaxOpen","FailedMonitorAjaxRSC","FailedMonitorAjaxSend","FailedMonitorAjaxGetCorrelationHeader","FailedToAddHandlerForOnBeforeUnload","FailedToSendQueuedTelemetry","FailedToReportDataLoss","FlushFailed","MessageLimitPerPVExceeded","MissingRequiredFieldSpecification","NavigationTimingNotSupported","OnError","SessionRenewalDateIsZero","SenderNotInitialized","StartTrackEventFailed","StopTrackEventFailed","StartTrackFailed","StopTrackFailed","TelemetrySampledAndNotSent","TrackEventFailed","TrackExceptionFailed","TrackMetricFailed","TrackPVFailed","TrackPVFailedCalc","TrackTraceFailed","TransmissionFailed","FailedToSetStorageBuffer","FailedToRestoreStorageBuffer","InvalidBackendResponse","FailedToFixDepricatedValues","InvalidDurationValue","TelemetryEnvelopeInvalid","CreateEnvelopeError","CannotSerializeObject","CannotSerializeObjectNonSerializable","CircularReferenceDetected","ClearAuthContextFailed","ExceptionTruncated","IllegalCharsInName","ItemNotInArray","MaxAjaxPerPVExceeded","MessageTruncated","NameTooLong","SampleRateOutOfRange","SetAuthContextFailed","SetAuthContextFailedAccountName","StringValueTooLong","StartCalledMoreThanOnce","StopCalledWithoutStart","TelemetryInitializerFailed","TrackArgumentsNotSpecified","UrlTooLong","SessionStorageBufferFull","CannotAccessCookie","IdTooLong","InvalidEvent","FailedMonitorAjaxSetRequestHeader","SendBrowserInfoOnUserInit","PluginException","ownerDocument","node","startOfUTCISOWeek","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","_interopRequireWildcard","monthsInYear","MONTHS","firstVisibleDay","lastVisibleDay","visibleDays","localizer","range","end","eqTime","isJustDate","MILLI","div","today","yesterday","tomorrow","firstOfMonth","startOfWeek","endOfMonth","BrowserRouter","createHistory","resolveToLocation","normalizeToLocation","forwardRefShim","C","LinkAnchor","navigate","rest","ex","isModifiedEvent","forwardedRef","Link","component","RouterContext","ariaCurrent","activeClassName","activeStyle","classNameProp","exact","isActiveProp","locationProp","styleProp","escapedPath","matchPath","joinClassnames","asyncGeneratorStep","gen","resolve","reject","_next","_throw","info","Promise","then","_asyncToGenerator","box","docElem","clientTop","scrollLeft","clientLeft","compareDocumentPosition","freeExports","nodeType","freeModule","Buffer","stubFalse","freeProcess","nodeUtil","types","binding","plugin","defItemCtx","_self","_nextProxy","_hasProcessTelemetry","processTelemetry","_hasSetNext","setNextPlugin","_hasRun","getPlugin","getNext","setNext","nextPlugin","env","itemCtx","hasRun","diagLog","throwInternal","CRITICAL","identifier","_createProxyChain","plugins","proxies","lastProxy","thePlugin","newProxy","core","startAt","proxy","_copyProxyChain","srcPlugins","_copyPluginChain","logger","DiagnosticLogger","getCfg","getExtCfg","theConfig","extConfig","extensionConfig","getConfig","theValue","hasNext","processNext","createNew","ProcessTelemetryContext","g","coordinateToTimeRatio","canvasTimeStart","canvasTimeEnd","canvasWidth","calculateXPositionForTime","calculateTimeForXPosition","leftOffset","iterateTimes","timeSteps","_moment","nextTime","getMinUnit","zoom","timeDividers","minUnit","nextTimeSpanInUnitContext","cellsToBeRenderedForCurrentUnit","cellWidthToUse","getNextUnit","nextUnits","calculateInteractionNewTimes","calculateDimensions","getGroupOrders","getGroupedItems","getVisibleItems","collision","groupStack","groupNoStack","stackAll","stackGroup","stackTimelineItems","getCanvasWidth","getItemDimensions","getItemWithInteractions","getCanvasBoundariesFromVisibleTime","calculateScrollCanvas","visibleTimeStart","visibleTimeEnd","forceUpdateDimensions","items","groups","oldCanvasTimeStart","oldZoom","newState","_getCanvasBoundariesF2","mergedState","itemHeightRatio","stackItems","draggingItem","resizingItem","dragTime","resizingEdge","resizeTime","newGroupOrder","minCellWidth","_generic","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","itemTimeStart","itemTimeEnd","isDragging","isResizing","itemTimeRange","effectiveStartTime","effectiveEndTime","itemWidth","collisionLeft","collisionWidth","groupIdKey","groupOrders","_get","groupedItems","groupOrder","dimensions","order","groupItem","itemTimeStartKey","itemTimeEndKey","collisionPadding","verticalMargin","groupHeight","groupTop","curHeight","collidingItem","itemTop","sum","itemsDimensions","groupHeights","groupTops","groupItems","_itemsDimensions","_stackGroup","isGroupStacked","visibleItemsWithInteraction","dimensionItems","_stackAll","itemId","itemIdKey","dimension","itemGroupKey","isOverlay","_calculateInteraction2","f","argIndex","framesToPop","optionsSupported","onceSupported","handler","once","wrappedHandler","__once","onceHandler","createEventEmitter","handlers","on","off","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","gud","emitter","_proto","getChildContext","componentWillReceiveProps","oldValue","childContextTypes","isRequired","onUpdate","observedBits","_proto2","componentDidMount","componentWillUnmount","contextTypes","createNamedContext","Router","computeRootMatch","params","isExact","_pendingLocation","staticContext","Lifecycle","onMount","componentDidUpdate","onUnmount","cacheCount","generatePath","generator","pathToRegexp","compilePath","pretty","Redirect","computedMatch","sensitive","cacheKey","pathCache","regexp","memo","Route","createURL","staticHandler","methodName","Switch","withRouter","displayName","wrappedComponentRef","remainingProps","hoistStatics","useContext","useLocation","useRouteMatch","baseIsNative","_length","arraysEqual","deepObjectCompare","obj1","obj2","_lodash","keyBy","timeoutDuration","longerTimeoutBrowsers","isBrowser","called","scheduled","functionToCheck","getType","getStyleComputedProperty","property","getParentNode","getReferenceNode","reference","isIE11","isIE10","isIE","getOffsetParent","noOffsetParent","nodeName","getRoot","findCommonOffsetParent","element1","element2","Node","commonAncestorContainer","isOffsetContainer","element1root","getScroll","side","upperSide","html","scrollingElement","includeScroll","modifier","getBordersSize","axis","sideA","sideB","getSize","computedStyle","getWindowSizes","getClientRect","offsets","sizes","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","runIsIE","isHTML","childrenRect","parentRect","borderTopWidth","borderLeftWidth","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","parentNode","getFixedPositionOffsetParent","getBoundaries","boundaries","boundariesElement","boundariesNode","popper","isPaddingNumber","getArea","computeAutoPlacement","rects","refRect","sortedAreas","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","getOppositePlacement","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","check","runModifiers","modifiers","ends","findIndex","cur","update","flip","positionFixed","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","toCheck","destroy","getWindow","setupEventListeners","scrollElement","attachToScrollParents","scrollParents","isBody","enableEventListeners","disableEventListeners","removeEventListeners","isNumeric","setStyles","isFirefox","isModifierRequired","requesting","requested","validPlacements","placements","clockwise","counter","BEHAVIORS","parseOffset","useHeight","basePlacement","fragments","frag","divider","splitRegex","ops","mergeWithPrevious","op","toValue","index2","shiftvariation","isVertical","shiftOffsets","transformProp","popperStyles","opSide","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","placementOpposite","flipOrder","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flippedVariationByContent","flippedVariation","getOppositeVariation","subtractLength","bound","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","bothOddWidth","getRoundedOffsets","prefixedProperty","invertTop","invertLeft","attributes","Popper","debounce","modifierOptions","eventsEnabled","Utils","PopperUtils","Defaults","hasOwn","classes","argType","inner","default","startOfDay","strUndefined","globalThis","global","gbl","getGlobal","hasWindow","getGlobalInst","hasDocument","JSON","hasJSON","murmurhash2_32_gc","charCodeAt","unitlessKeys","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexGrow","flexPositive","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","orphans","tabSize","widows","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","memoize","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","processStyleValue","unitless","handleInterpolation","mergedProps","interpolation","couldBeSelectorInterpolation","__emotion_styles","interpolated","createStringFromObject","previousCursor","cached","labelPattern","stringMode","strings","raw","identifierName","hashString","TimelineStateConsumer","TimelineStateProvider","_react","_interopRequireDefault","_propTypes","_createReactContext2","defaultContextState","getTimelineState","getLeftOffsetFromDate","getDateFromLeftOffsetPosition","showPeriod","_createReactContext","_React$Component","timelineUnit","timelineWidth","timelineContext","warning","getScrollAccessor","_objectDestructuringEmpty","addMilliseconds","dirtyAmount","timestamp","amount","getUTCWeekYear","localeFirstWeekContainsDate","firstWeekContainsDate","defaultFirstWeekContainsDate","firstWeekOfNextYear","startOfNextYear","firstWeekOfThisYear","startOfThisYear","isWindow","DOCUMENT_NODE","defaultView","prev","cancelMethod","rafImpl","curr","handle","getKey","vendor","rafMethod","cb","cancel","request","getRawTag","objectToString","symToStringTag","toStringTag","baseGetTag","isObjectLike","TimelineMarkersConsumer","TimelineMarkersProvider","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","markers","subscribeMarker","_id","createId","newMarker","unsubscribe","marker","getMarker","updateMarker","markerIndex","handleSubscribeToMarker","handleUpdateMarker","simpleIsEqual","isNewArgEqualToLast","newArg","addDays","desiredMonth","dateWithDesiredMonth","getDaysInMonth","client","win","getWidth","msgId","isUserAct","properties","messageId","_InternalLogMessage","AiUserActionablePrefix","AiNonUserActionablePrefix","strProps","diagnosticText","sanitizeDiagnosticText","text","dataType","queue","AIInternalMessagePrefix","_messageCount","_messageLogged","enableDebugExceptions","consoleLoggingLevel","telemetryLoggingLevel","maxInternalMessageLimit","loggingLevelConsole","loggingLevelTelemetry","maxMessageLimit","severity","messageKey","WARNING","warnToConsole","logInternalMessage","log","resetInternalMessageCount","_areInternalMessagesThrottled","logMessage","throttleLimitMessage","throttleMessage","_TimelineMarkers","_TodayMarker","_CustomMarker","_CursorMarker","_TimelineHeaders","_SidebarHeader","_CustomHeader","_DateHeader","_Timeline","_default","webpackPolyfill","paths","notify","__id","idCount","uniqueId","isFirstFocusedRender","_firstFocus","focused","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","clear","nativeCreate","getNative","isKeyable","__data__","isLength","isSymbol","_react2","_implementation2","TimelineMarkerType","Today","Custom","Cursor","TimelineHeadersConsumer","TimelineHeadersProvider","registerScroll","rightSidebarWidth","leftSidebarWidth","contextValue","getscrollAccessor","scrollbarSize","recalc","scrollDiv","appendChild","offsetWidth","removeChild","subMilliseconds","dateLongFormatter","pattern","formatLong","timeLongFormatter","longFormatters","P","dateTimeFormat","matchResult","datePattern","timePattern","dateTime","getUTCISOWeekYear","fourthOfJanuaryOfNextYear","fourthOfJanuaryOfThisYear","monthIndex","lastDayOfMonth","startOfQuarter","currentMonth","StyleSheet","isSpeedy","speedy","tags","ctr","nonce","before","rule","_tag","tag","setAttribute","createTextNode","createStyleElement","nextSibling","insertBefore","styleSheets","ownerNode","sheetForTag","isImportRule","insertRule","cssRules","flush","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","defaultWidth","full","long","medium","short","formatRelativeLocale","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","buildMatchFn","dirtyString","matchPattern","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","predicate","findKey","valueCallback","code","formatDistance","addSuffix","comparison","formatRelative","_date","_baseDate","_options","localize","ordinalNumber","_dirtyOptions","rem100","era","narrow","abbreviated","wide","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseResult","any","stylis_min","X","ia","Z","F","ja","ka","aa","G","ba","la","ma","R","na","ea","oa","H","q","A","S","B","U","z","K","I","J","N","ca","O","da","fa","ha","Q","use","T","toSheet","Sheet","ruleSheet","selectors","parents","line","column","ns","depth","at","stylisOptions","stylis","Stylis","head","_insert","nodes","querySelectorAll","stylisPlugins","selector","shouldCache","startOfUTCWeekYear","firstWeek","getUTCWeek","startOfUTCISOWeekYear","fourthOfJanuary","getUTCISOWeek","originalModule","slotWidth","rowBox","slots","getSlotAtX","rtl","cellWidth","selected","pointInBox","dateCellSelection","startIdx","endIdx","lastSlotIdx","currentSlot","isCurrentRow","isStartRow","isAboveStart","isBelowStart","baseIsArguments","objectProto","isArguments","Map","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","arrayLikeKeys","baseKeys","isArrayLike","reIsUint","reIsDeepProp","reIsPlainProp","endOfRange","eventSegments","accessors","_endOfRange","first","_findIndex","span","eventLevels","rowSegments","Infinity","seg","levels","extra","segsOverlap","eStart","eEnd","startsBeforeEnd","endsAfterStart","sortEvents","evtA","evtB","startSort","durA","durB","allDay","dateRange","otherSegs","otherSeg","implementation","hasSymbols","toStr","origDefineProperty","supportsDescriptors","_","arePropertyDescriptorsSupported","predicates","createDefaultRenderer","createMarkerStylesWithLeftOffset","criticalStyles","dataTestidValue","_HeadersContext","_constants","SidebarHeader","_React$PureComponent","variant","RIGHT_VARIANT","getRootProps","headerData","getStateAndHelpers","Renderer","SidebarWrapper","propTypes","LEFT_VARIANT","secretKey","qsa","addMinutes","addHours","addWeeks","addYears","dirtyMonth","freeze","_propTypes2","sizerStyle","INPUT_PROPS_BLACKLIST","copyStyles","fontFamily","fontStyle","letterSpacing","generateId","placeHolderSizerRef","placeHolderSizer","sizerRef","sizer","inputWidth","mounted","copyInputStyles","updateInputWidth","prevState","onAutosize","inputStyles","scrollWidth","newInputWidth","placeholderIsMinWidth","extraWidth","injectStyles","dangerouslySetInnerHTML","__html","sizerValue","previousValue","currentValue","wrapperStyle","inputProps","cleanInputProps","inputClassName","renderStyles","oneOfType","bool","matchesImpl","nativeMatch","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","closest","stopAt","nextNode","ELEMENT_NODE","V","$","ee","te","re","ne","ae","oe","se","pe","ie","ce","de","le","ue","he","fe","ye","me","De","ve","we","ge","ke","Ce","Se","be","Fe","qe","awareOfUnicodeTokens","Me","Oe","Pe","Ee","Ne","Te","Ye","xe","Ie","Le","__localeId__","__localeData__","We","Be","minDate","maxDate","excludeDates","includeDates","filterDate","Ae","Re","je","He","Ke","Qe","Ve","minTime","maxTime","Ue","$e","ze","Ge","Je","Xe","Ze","includes","et","tt","rt","nt","yearsList","incrementYears","decrementYears","onCancel","shiftYears","yearDropdownItemNumber","scrollableYearDropdown","renderOptions","dropdownVisible","onSelectChange","renderSelectOptions","toggleDropdown","renderReadView","renderDropdown","adjustDateOnChange","handleYearChange","setOpen","dropdownMode","renderScrollMode","renderSelectMode","ot","monthNames","st","useShortMonthInDropdown","pt","it","monthYearsList","scrollableMonthYearDropdown","ct","dt","createRef","onMouseEnter","handleOnKeyDown","disabledKeyboardNavigation","inline","isSameDay","preSelection","highlightDates","startDate","endDate","selectsStart","selectsEnd","selectingDate","isInSelectingRange","dayClassName","isExcluded","isKeyboardSelected","isRangeStart","isRangeEnd","isInRange","isSelectingRangeStart","isSelectingRangeEnd","isWeekend","isOutsideMonth","getHighLightedClass","dayEl","getClassNames","handleClick","handleMouseEnter","getTabIndex","getAriaLabel","role","renderDayContents","isInputFocused","weekNumber","ut","onDayClick","onDayMouseEnter","onWeekSelect","shouldCloseOnSelect","formatWeekNumber","showWeekNumber","handleWeekClick","handleDayClick","handleDayMouseEnter","renderDays","ft","orderInDisplay","onMouseLeave","fixedHeight","showWeekNumbers","isWeekInMonth","peekNextMonth","isRangeStartMonth","isRangeEndMonth","isRangeStartQuarter","isRangeEndQuarter","onMonthClick","getMonthClassNames","onQuarterClick","getQuarterClassNames","showMonthYearPicker","showQuarterYearPicker","handleMouseLeave","renderMonths","renderQuarters","renderWeeks","mt","excludeTimes","includeTimes","timeClassName","injectTimes","intervals","openToDate","liClasses","centerLi","calcCenterPosition","monthRef","header","todayButton","timeCaption","renderTimes","onTimeChange","yt","setMinutes","timeString","customTimeInput","cloneElement","timeInputLabel","renderTimeInput","Dt","showPopperArrow","arrowProps","vt","onClickOutside","containerRef","wt","onDropdownFocus","handleMonthChange","onMonthMouseLeave","onYearChange","onMonthChange","handleMonthYearChange","weekLabel","formatWeekday","formatWeekDay","useWeekdaysShort","renderCustomHeader","forceShowMonthNavigation","showDisabledMonthNavigation","showTimeSelectOnly","decreaseMonth","decreaseYear","previousYearButtonLabel","previousMonthButtonLabel","showTimeSelect","increaseMonth","increaseYear","nextYearButtonLabel","nextMonthButtonLabel","showYearDropdown","showMonthDropdown","showMonthYearDropdown","changeYear","changeMonth","changeMonthYear","monthDate","renderCurrentMonth","handleDropdownFocus","renderMonthDropdown","renderMonthYearDropdown","renderYearDropdown","prevMonthButtonDisabled","nextMonthButtonDisabled","prevYearButtonDisabled","nextYearButtonDisabled","renderYearHeader","renderDefaultHeader","showPreviousMonths","monthsShown","monthSelectedIn","monthContainer","renderHeader","monthClassName","handleMonthMouseLeave","timeIntervals","withPortal","getMinutes","showTimeInput","getDateInView","assignMonthContainer","renderPreviousButton","renderNextButton","renderTodayButton","renderTimeSection","renderInputTimeSection","Ct","_t","tabLoopRef","getTabChildren","enableTabLoop","handleFocusStart","handleFocusEnd","bt","wrapperClassName","hidePopper","popperComponent","popperModifiers","popperPlacement","popperProps","targetComponent","popperOnKeyDown","popperContainer","Manager","Reference","preventOverflow","enabled","escapeWithReference","St","Mt","Ot","Pt","getPreSelection","open","startOpen","preventFocus","preventFocusTimeout","clearTimeout","cancelFocusInput","calcInitialState","lastPreSelectChange","Nt","setBlur","preventOpenOnFocus","inputFocusTimeout","setFocus","onChangeRaw","isDefaultPrevented","Et","strictParsing","setSelected","setPreSelection","allowSameDay","inlineFocusSelectedMonth","onInputClick","componentNode","inputOk","handleSelect","onInputError","onClearClick","isCalendarOpen","dateFormatCalendar","handleCalendarClickOutside","outsideClickIgnoreClass","handleTimeChange","calendarClassName","calendarContainer","excludeScrollbar","onDayKeyDown","customInput","customInputRef","handleBlur","handleChange","handleFocus","onInputKeyDown","placeholderText","title","ariaLabelledBy","clearButtonTitle","onCalendarOpen","onCalendarClose","clearPreventFocusTimeout","renderCalendar","renderDateInput","renderClearButton","popperClassName","onPopperKeyDown","CalendarContainer","getDefaultLocale","registerLocale","setDefaultLocale","isarray","parse","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","defaultDelimiter","escaped","asterisk","partial","repeat","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","opts","encode","encodeURIComponent","segment","attachKeys","route","endsWithDelimiter","regexpToRegexp","arrayToRegexp","stringToRegexp","_isinitialized","_rootCtx","_nextPlugin","_getTelCtx","isInitialized","setInitialized","currentCtx","rootCtx","_baseTelInit","extensions","pluginChain","getProcessTelContext","initialize","isProp","defaultKey","componentWillMount","getDerivedStateFromProps","componentWillUpdate","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","__suppressDeprecationWarning","baseSlice","nativeObjectToString","isOwn","unmasked","isIndex","isIterateeCall","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","isBinary","toFinite","remainder","nativeCeil","nativeMax","chunk","guard","resIndex","psuedoElement","ownerWindow","rUpper","msPattern","hyphenateStyleName","hyphenate","supportedTransforms","transforms","getPropertyValue","isTransform","removeProperty","cssText","parentOffset","getOffset","borderTop","borderLeft","useCallbackRef","useState","toFnRef","useMergedRefs","refA","refB","useMemo","mergeRefs","initialPopperStyles","initialArrowStyles","useCommittedRef","useRef","useEffect","useEventCallback","useCallback","useRootClose","onRootClose","_ref$clickTrigger","clickTrigger","preventMouseRootCloseRef","onClose","handleMouseCapture","metaKey","altKey","ctrlKey","isLeftClickEvent","handleMouse","handleKeyUp","componentOrElement","ReactDOM","removeMouseCaptureListener","removeMouseListener","removeKeyupListener","mobileSafariHackListeners","remove","resolveRef","useWaitForDOMRef","onResolved","_useState","resolvedRef","setRef","earlyRef","nextRef","Overlay","outerRef","containerPadding","_props$popperConfig","popperConfig","Transition","_useCallbackRef","rootElement","attachRef","_useCallbackRef2","attachArrowRef","mergedRef","show","exited","setExited","_popperConfig$modifie","_usePopper","referenceElement","popperElement","_ref$enabled","_ref$placement","_ref$positionFixed","_ref$eventsEnabled","_ref$modifiers","popperInstanceRef","hasArrow","arrow","scheduleUpdate","outOfBoundaries","arrowStyles","PopperJS","applyStyle","updateStateModifier","hide","usePopper","enableEvents","mountOverlay","onHide","rootClose","rootCloseDisabled","rootCloseEvent","onExit","onExiting","onEnter","onEntering","onEntered","oneOf","propType","elementType","baseFindIndex","fromRight","assocIndexOf","stackClear","stackDelete","stackGet","stackHas","coreJsData","maskSrcKey","uid","IE_PROTO","isMasked","funcToString","toSource","reIsHostCtor","funcProto","reIsNative","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","getMapData","stackSet","pairs","LARGE_ARRAY_SIZE","Stack","setCacheAdd","setCacheHas","SetCache","arraySome","cacheHas","equalArrays","bitmask","customizer","equalFunc","isPartial","arrLength","othLength","stacked","seen","arrValue","othValue","compared","othIndex","Uint8Array","mapToArray","setToArray","symbolProto","symbolValueOf","equalByTag","byteLength","byteOffset","convert","arrayPush","baseGetAllKeys","keysFunc","symbolsFunc","arrayFilter","stubArray","nativeGetSymbols","getSymbols","symbol","baseTimes","iteratee","typedArrayTags","baseIsTypedArray","baseUnary","nodeIsTypedArray","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","isPrototype","Ctor","overArg","nativeKeys","getAllKeys","equalObjects","objProps","objLength","skipCtor","objValue","objCtor","othCtor","DataView","Set","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","baseIsEqual","baseIsMatch","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","isStrictComparable","getMatchData","matchesStrictComparable","baseMatches","isKey","resolver","memoized","Cache","memoizeCapped","rePropName","reEscapeChar","stringToPath","quote","subString","arrayMap","symbolToString","baseToString","castPath","toKey","baseGet","baseHasIn","hasPath","hasFunc","hasIn","baseMatchesProperty","identity","baseProperty","basePropertyDeep","baseIteratee","baseRange","step","createRange","spreadableSymbol","isConcatSpreadable","isFlattenable","baseFlatten","createBaseFor","baseFor","iterable","baseForOwn","createBaseEach","baseEach","eachFunc","collection","baseMap","baseSortBy","comparer","compareAscending","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","compareMultiple","orders","objCriteria","criteria","othCriteria","ordersLength","baseOrderBy","iteratees","overRest","otherArgs","constant","baseSetToString","nativeNow","shortOut","setToString","lastCalled","stamp","remaining","baseRest","sortBy","replaceClassName","origClass","classToRemove","arrayEach","baseAssignValue","copyObject","isNew","baseAssign","nativeKeysIn","baseKeysIn","isProto","keysIn","baseAssignIn","copyArray","copySymbols","getPrototype","getSymbolsIn","copySymbolsIn","getAllKeysIn","initCloneArray","cloneArrayBuffer","arrayBuffer","cloneDataView","dataView","isDeep","reFlags","cloneRegExp","cloneSymbol","cloneTypedArray","typedArray","initCloneByTag","objectCreate","baseCreate","initCloneObject","baseIsMap","nodeIsMap","isMap","baseIsSet","nodeIsSet","isSet","cloneableTags","baseClone","isFlat","isFull","isFunc","cloneBuffer","subValue","baseUnset","objectCtorString","isPlainObject","customOmitClone","flatten","flatRest","omit","CLONE_DEEP_FLAG","sources","propsIndex","propsLength","accumulator","isArrLike","mapValues","NoopWrapper","views","WORK_WEEK","AGENDA","viewNames","arrayOf","objectOf","isBuiltinView","localePropType","_format","formatter","culture","DateLocalizer","spec","mergeWithDefaults","formatOverrides","messages","_format2","defaultMessages","work_week","previous","agenda","noEventsInRange","showMore","EventCell","isAllDay","_onDoubleClick","onDoubleClick","continuesPrior","continuesAfter","getters","_this$props$component","Event","EventWrapper","eventWrapper","slotStart","slotEnd","tooltip","showAsAllDay","userProps","eventProp","clsx","Popup","topOffset","_this$props$popupOffs","popupOffset","popperRef","_getOffset","viewBottom","viewRight","getScrollLeft","events","Popup$1","isEvent","bounds","elementFromPoint","getEventNodeFromPoint","getEventCoordinates","pageX","pageY","Selection","_ref2$global","_ref2$longPressThresh","longPressThreshold","isDetached","globalMouse","_listeners","_handleInitialEvent","_handleMoveEvent","_handleTerminatingEvent","_keyListener","_dropFromOutsideListener","_dragOverFromOutsideListener","_removeTouchMoveWindowListener","_removeKeyDownListener","_removeKeyUpListener","_removeDropFromOutsideListener","_onDragOverfromOutisde","_addInitialEventListener","emit","teardown","_removeInitialEventListener","_removeEndListener","_onEscListener","_removeMoveListener","_selectRect","selecting","objectsCollide","getBoundsForNode","_addLongPressListener","initialEvent","timer","removeTouchMoveListener","removeTouchEndListener","handleTouchStart","cleanup","removeTouchStartListener","removeMouseDownListener","_getEventCoordinates","_getEventCoordinates2","offsetData","_getEventCoordinates3","which","_normalizeDistance","distance","normalizeDistance","_initialEventData","isTouch","_getEventCoordinates4","inRoot","click","isClick","_handleClickEvent","_getEventCoordinates5","_lastClickData","_this$_initialEventDa","_getEventCoordinates6","old","ctrl","_this$_initialEventDa2","nodeA","nodeB","tolerance","_getBoundsForNode","aTop","aLeft","_getBoundsForNode$rig","aRight","_getBoundsForNode$bot","aBottom","_getBoundsForNode2","bTop","bLeft","_getBoundsForNode2$ri","bRight","_getBoundsForNode2$bo","pageOffset","dir","pageXOffset","BackgroundCells","selectable","_selectable","_teardownSelectable","getNow","Wrapper","dateCellWrapper","_getters$dayProp","dayProp","_selector","selectorClicksHandler","point","actionType","_this2$props","currentCell","_selectSlot","_initial","_this2$props2","onSelectStart","nodeBox","_dateCellSelection","onSelectEnd","onSelectSlot","EventRowMixin","segments","slotMetrics","per","WebkitFlexBasis","flexBasis","EventRow","lastEnd","row","li","gap","isSegmentInSlot","slot","eventsInSlot","EventEndingRow","canRenderSlotEvent","renderShowMore","range$1","onShowMore","getSlotMetrics","maxRows","minRows","evt","_eventLevels","metrics","getDateForSlot","slotNumber","getSlotForDate","getEventsForSlot","isSegmentInSlot$1","eventEnd","DateContentRow","handleSelectSlot","handleShowMore","cell","createHeadingRef","headingRow","createEventRef","eventRow","getContainer","renderHeadingCell","renderDummy","getRowLimit","eventHeight","getHeight","headingHeight","eventSpace","renderForMeasure","resourceId","WeekWrapper","weekWrapper","eventRowProps","segs","Header","DateHeader","drilldownView","onDrillDown","eventsForWeek","evts","MonthView","_args","renderWeek","weekIdx","needLimitMeasure","rowLimit","slotRowRef","readerDateHeading","handleSelectEvent","handleDoubleClickEvent","getDrilldownView","isOffRange","isCurrent","DateHeaderComponent","dateHeader","handleHeadingClick","slotInfo","_pendingSelection","_selectTimer","selectDates","view","clearSelection","onSelectEvent","_len3","_key3","onDoubleClickEvent","popup","getPosition","overlay","_bgRows","running","measureRowLimit","_resizeListener","_weekCount","renderHeaders","renderOverlay","HeaderComponent","getDstOffset","getSlotMetrics$1","timeslots","daystart","daystartdstoffset","totalMin","minutesFromMidnight","numGroups","numSlots","grp","slotIdx","minFromStart","lastSlotMinFromStart","positionFromDate","diff$1","dateIsInGroup","groupIndex","nextGroup","inRange$1","nextSlot","closestSlotToPosition","percent","closestSlotFromPoint","boundaryRect","closestSlotFromDate","diffMins","startsBeforeDay","startsAfterDay","startsBefore","startsAfter","getRange","rangeStart","rangeEnd","ignoreMin","ignoreMax","rangeStartMin","rangeEndMin","getCurrentTimePosition","_slotMetrics$getRange","startMs","endMs","rows","leaves","availableWidth","noOverlap","overlap","_this$row","xOffset","onSameRow","minimumStartDifference","getStyledEvents","eventsInRenderOrder","sortedByTime","sorted","_event","sortByRender","containerEvents","_loop","getMaxIdxDFS","maxIdx","visited","friends","newIdx","DefaultAlgorithms","styledEvents","se1","y1","y2","se2","y3","y4","_i2","bitmap","_j","_j2","_i3","allFriends","_j3","_i4","_maxIdx","_j4","getStyledEvents$1","dayLayoutAlgorithm","algorithm","TimeSlotGroup","renderSlot","resource","_this$props$component2","timeSlotWrapper","slotProps","slotProp","stringifyPercent","TimeGridEvent","_extends2","continuesEarlier","continuesLater","_props$components","DayColumn","timeIndicatorPosition","intervalTriggered","renderEvents","_select","_doubleClick","maybeSelect","onSelecting","selectionState","_initialSlot","initialSlot","selectRange","_selectionState","isNow","setTimeIndicatorPositionUpdateInterval","clearTimeIndicatorInterval","getNowChanged","tail","positionTimeIndicator","_timeIndicatorTimeout","_this$props3$getters","_this$props3$componen","EventContainer","eventContainerWrapper","_dayProp","dragThroughEvents","TimeGutter","ResourceHeader","Fragment","TimeGridHeader","handleHeaderClick","renderRow","eventsToDisplay","renderHeaderCells","_this$props2$componen","resources","scrollRef","isOverflowing","TimeGutterHeader","timeGutterHeader","_this$props3$componen2","resourceHeader","ResourceHeaderComponent","groupedEvents","groupEvents","resourceTitle","NONE","TimeGrid","handleScroll","handleResize","rafHandle","gutterRef","gutter","handleSelectAlldayEvent","handleSelectAllDaySlot","_updatingOverflow","contentRef","memoizedResources","eventsByResource","resourceEvents","Resources","gutterWidth","_scrollRatio","calculateScroll","measureGutter","applyScroll","measureGutterAnimationFrameRequest","cancelAnimationFrame","scrollToTime","jj","daysEvents","showMultiDayTimes","allDayEvents","rangeEvents","diffMillis","totalMillis","Day","eventOffset","Week","workWeekRange","_Week$range","WorkWeek","_workWeekRange","_VIEWS","Agenda","renderDay","dayKey","AgendaDate","dateLabel","rowSpan","timeRangeLabel","labelClass","TimeComponent","_adjustHeader","tbodyRef","headerRef","firstRow","firstChild","widths","_widths","dateColRef","timeColRef","classList","baseVal","hasClass","removeClass","_ref$length","_ref2$length","_ref3$length","VIEWS","moveDate","View","Toolbar","onNavigate","onView","viewNamesGroup","wrapAccessor","accessor$1","viewNames$1","_views","isValidView","Calendar","getViews","getView","handleRangeChange","viewComponent","onRangeChange","handleNavigate","newDate","ViewComponent","handleViewChange","handleDrillDown","getContext","startAccessor","endAccessor","allDayAccessor","tooltipAccessor","titleAccessor","resourceAccessor","resourceIdAccessor","resourceTitleAccessor","eventPropGetter","slotPropGetter","dayPropGetter","_ref2$messages","messages$1","_ref2$components","_ref2$formats","msgs","toolbar","elementProps","_this$state$context","CalToolbar","Calendar$1","uncontrollable","controlledValues","methods","canAcceptRef","isReactComponent","controlledProps","PROPS_TO_OMIT","UncontrolledComponent","propName","handlerName","_notifying","unmounted","shouldComponentUpdate","propValue","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","newApiName","maybeSnapshot","snapshot","polyfill","_this$inner","WrappedComponent","ControlledComponent","deferControlTo","newComponent","additions","nextMethods","timeRangeFormat","dayFormat","weekdayFormat","selectRangeFormat","eventTimeRangeFormat","eventTimeRangeStartFormat","eventTimeRangeEndFormat","timeGutterFormat","monthHeaderFormat","dayHeaderFormat","dayRangeHeaderFormat","agendaHeaderFormat","agendaDateFormat","agendaTimeFormat","agendaTimeRangeFormat","moment","initialStatus","isMounting","appearStatus","unmountOnExit","mountOnEnter","status","nextCallback","updateStatus","nextStatus","cancelNextCallback","getTimeouts","timeout","mounting","performEnter","performExit","appearing","timeouts","enterTimeout","safeSetState","onTransitionEnd","setNextCallback","active","doesNotHaveTimeoutOrListener","addEndListener","childProps","TransitionGroupContext","Children","only","contextType","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","getChildMapping","mapFn","isValidElement","mapper","getNextChildMapping","prevChildMapping","nextChildMapping","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","mergeChildMappings","hasPrev","prevChild","isLeaving","TransitionGroup","handleExited","firstRender","currentChildMapping","childFactory","POSITION","TOP_LEFT","TOP_RIGHT","TOP_CENTER","BOTTOM_LEFT","BOTTOM_RIGHT","BOTTOM_CENTER","TYPE","INFO","SUCCESS","ERROR","DEFAULT","ACTION","NOOP","isValidDelay","objectValues","canUseDom","falseOrDelay","eventManager","emitQueue","delete","cancelEmit","timers","cssTransition","_ref$duration","_ref$appendPosition","appendPosition","enterDuration","exitDuration","preventExitTransition","enterClassName","exitClassName","animationFillMode","animationDuration","ProgressBar","_cx","_animationEvent","isRunning","closeToast","userStyle","controlledProgress","progress","animationPlayState","RT_NAMESPACE","animationEvent","getX","targetTouches","getY","iLoveInternetExplorer","Toast","flag","canCloseOnClick","canDrag","drag","removalDistance","boundingRect","pauseToast","autoClose","playToast","onDragStart","nativeEvent","draggablePercent","onDragMove","onDragEnd","onDragTransitionEnd","_this$boundingRect","pauseOnHover","onExitTransitionEnd","onOpen","draggable","bindDragEvents","pauseOnFocusLoss","bindFocusEvents","unbindDragEvents","unbindFocusEvents","closeButton","closeOnClick","hideProgressBar","bodyClassName","progressClassName","progressStyle","updateId","toastProps","onMouseUp","CloseButton","ariaLabel","containerId","arialLabel","Bounce","ToastContainer","toast","toastKey","isToastActive","buildToast","removeToast","dispatchChange","makeCloseButton","toastClose","toastId","getAutoCloseDelay","toastAutoClose","canBeRendered","parseClassName","belongToContainer","enableMultiContainer","toastOptions","toastClassName","appendToast","staleToastId","renderToast","toastToRender","newestOnTop","reverse","_this5$collection$toa","isDocumentHidden","disablePointer","containers","latestInstance","containerDomNode","containerConfig","lazy","isAnyContainerMounted","getToast","mergeOptions","getToastId","generateToastId","dispatchToast","dismiss","oldOptions","oldContent","nextOptions","configure","containerInstance","propIsEnumerable","test1","test2","fromCharCode","test3","letter","shouldUseNative","utils","paramsSerializer","serializedParams","hashmarkIndex","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","adapter","XMLHttpRequest","getDefaultAdapter","transformRequest","transformResponse","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","common","settle","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","auth","username","password","Authorization","btoa","fullPath","baseURL","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","response","responseType","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","cookies","xsrfValue","withCredentials","read","setRequestHeader","onDownloadProgress","onUploadProgress","upload","cancelToken","promise","abort","send","enhanceError","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","axiosKeys","otherKeys","Cancel","_contains","_closest","_listen","_sortBy","_createClass2","_inheritsLoose2","_clsx","_BackgroundWrapper","DayLayoutAlgorithmPropType","dateRangeFormat","accessor","_EventCell","_selection","renderEvent","renderSpan","isArgs","origKeys","keysShim","originalKeys","shim","callee","$Object","$TypeError","multiline","dotAll","unicode","sticky","$gOPD","composeEvents","fns","getParentPosition","xPosition","yPosition","offsetLeft","getSumScroll","getSumOffset","MarkerCanvasConsumer","MarkerCanvasProvider","subscribeToMouseOver","defaultSubHeaderLabelFormats","defaultHeaderLabelFormats","defaultHeaderFormats","defaultTimeSteps","defaultKeys","groupTitleKey","groupRightTitleKey","groupLabelKey","itemTitleKey","itemDivTitleKey","mediumLong","yearShort","yearLong","monthShort","monthMedium","monthMediumLong","monthLong","dayShort","dayLong","hourShort","hourMedium","hourMediumLong","hourLong","dayMedium","dayMediumLong","minuteShort","minuteLong","_classnames","TimelineHeaders","calendarHeaderStyle","rightSidebarHeader","leftSidebarHeader","calendarHeaders","isSidebarHeader","handleRootRef","getRootStyle","getCalendarHeaderStyle","calendarHeaderClassName","TimelineHeadersWrapper","_TimelineStateContext","_defaultConfig","_memoizeOne","_CustomDateHeader","interval","labelWidth","labelFormat","intervalRenderer","getLabelFormat","unitProp","getHeaderUnit","getHeaderData","CustomDateHeader","DateHeaderWrapper","timelineState","timeStart","formatOptions","CustomHeader","startTime","endTime","getIntervalStyle","headerContext","getIntervalProps","_canvasTimeStart","_canvasTimeEnd","_unit","_timeSteps","_showPeriod","_getLeftOffsetFromDate","_intervals","getHeaderIntervals","CustomHeaderWrapper","allocUnsafe","copy","animationFrame","_reactDom","_DayColumn","_TimeGutter","_TimeGridHeader","_helpers","_Resources","objectKeys","is","isRegex","deepEqual","actual","expected","isUndefinedOrNull","aIsRegex","bIsRegex","aIsBuffer","bIsBuffer","kb","objEquiv","getWait","wait","defer","deferred","lastCallAt","pendingArgs","currentWait","isCold","accumulate","argsIndex","thisDeferred","reactIs","REACT_STATICS","getDefaultProps","getDerivedStateFromError","mixins","KNOWN_STATICS","caller","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","for","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","refs","updater","forceUpdate","isPureReactComponent","__self","__source","_owner","keyPrefix","escape","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","_context","_ctor","_status","_result","useImperativeHandle","useDebugValue","useLayoutEffect","useReducer","Profiler","StrictMode","Suspense","createFactory","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","extractEvents","eventTypes","phasedRegistrationNames","registrationName","dependencies","onError","pa","qa","sa","va","wa","ra","xa","ya","za","Aa","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","Ba","Ca","injectEventPluginOrder","injectEventPluginsByName","Da","stateNode","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Wa","Xa","_debugOwner","_debugSource","fileName","lineNumber","return","Ya","Za","$a","ab","bb","db","eb","fb","gb","hb","ib","jb","lb","mb","nb","ob","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","sb","tb","ub","vb","qb","rb","pb","removeAttribute","setAttributeNS","wb","yb","_valueTracker","stopTracking","xb","zb","checked","Ab","defaultChecked","_wrapperState","initialChecked","Bb","controlled","Cb","Eb","Fb","Gb","Ib","Hb","Jb","defaultSelected","Kb","Lb","Mb","Nb","textContent","xlinkHref","Ob","Pb","Qb","Rb","Sb","MSApp","execUnsafeLocalFunction","namespaceURI","innerHTML","Tb","lastChild","nodeValue","Ub","Vb","animationend","animationiteration","animationstart","transitionend","Wb","Xb","Yb","Zb","$b","ac","bc","cc","ec","alternate","effectTag","fc","memoizedState","dehydrated","gc","ic","sibling","hc","jc","kc","lc","mc","nc","oc","pc","qc","rc","sc","tc","uc","vc","zc","blockedOn","topLevelType","eventSystemFlags","Ac","pointerId","Bc","Cc","Ec","Fc","unstable_runWithPriority","hydrate","containerInfo","Gc","Hc","Ic","Jc","Kc","unstable_scheduleCallback","unstable_NormalPriority","Lc","Mc","srcElement","correspondingUseElement","Nc","Oc","dispatchConfig","Pc","_targetInst","Qc","Rc","Sc","Tc","Uc","Interface","returnValue","Wc","eventPool","Xc","destructor","Vc","getPooled","cancelBubble","persist","eventPhase","bubbles","cancelable","timeStamp","isTrusted","Yc","animationName","elapsedTime","pseudoElement","Zc","clipboardData","$c","detail","ad","relatedTarget","bd","charCode","cd","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Apps","Scroll","MozPrintableKey","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","ed","Alt","Meta","Shift","gd","getModifierState","hd","jd","kd","ld","md","nd","screenX","screenY","buttons","fromElement","toElement","movementX","movementY","od","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","pd","dataTransfer","qd","rd","sd","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","td","ud","vd","wd","yd","zd","Ad","Bd","Cd","Dd","bubbled","captured","eventPriority","Ed","getEventPriority","Fd","unstable_UserBlockingPriority","Gd","Hd","Jd","Kd","targetInst","ancestors","Ld","Md","Nd","Od","Pd","Qd","Dc","Rd","Sd","xc","yc","Td","gridArea","lineClamp","Ud","Vd","Wd","setProperty","Xd","menuitem","area","br","col","embed","hr","img","keygen","link","meta","param","track","wbr","Yd","Zd","$d","HTMLIFrameElement","contentWindow","contentEditable","previousSibling","documentMode","beforeInput","compositionEnd","compositionStart","compositionUpdate","char","datetime","email","tel","af","bf","cf","detachEvent","df","ef","attachEvent","ff","gf","hf","lf","jf","_isInputEventSupported","kf","mouseEnter","mouseLeave","pointerEnter","pointerLeave","mf","parentWindow","of","pf","qf","rf","sf","tf","uf","vf","wf","xf","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","yf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","Af","Bf","Cf","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","unstable_cancelCallback","Of","unstable_shouldYield","Pf","unstable_requestPaint","Qf","unstable_now","Rf","unstable_getCurrentPriorityLevel","Sf","unstable_ImmediatePriority","Tf","Uf","Vf","unstable_LowPriority","Wf","unstable_IdlePriority","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","childExpirationTime","vg","firstContext","expirationTime","wg","xg","responders","yg","zg","baseState","firstUpdate","lastUpdate","firstCapturedUpdate","lastCapturedUpdate","firstEffect","lastEffect","firstCapturedEffect","lastCapturedEffect","Ag","Bg","suspenseConfig","payload","nextEffect","Cg","Dg","updateQueue","Eg","Fg","Gg","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Sg","_reactInternalFiber","Pg","Qg","Rg","Tg","Ug","Vg","Wg","Xg","Yg","_stringRef","Zg","$g","ah","bh","mode","ch","dh","eh","ta","fh","gh","ih","jh","kh","lh","mh","nh","oh","ph","qh","memoizedProps","revealOrder","rh","responder","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","baseUpdate","Oh","Ph","Qh","lastRenderedReducer","dispatch","lastRenderedState","eagerReducer","eagerState","Rh","Sh","Th","Uh","deps","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","readContext","useResponder","useDeferredValue","useTransition","unstable_next","ci","di","ei","fi","gi","hi","pendingProps","ji","ki","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","pendingContext","Hi","Ji","Ki","xi","retryTime","yi","fallback","unstable_avoidThisFallback","zi","Ai","isBackwards","rendering","tailExpiration","tailMode","Bi","Ci","Li","Mi","Ni","onclick","Oi","WeakSet","Pi","Si","Ri","Ti","Ui","__reactInternalSnapshotBeforeUpdate","Vi","Wi","Qi","Xi","Yi","Zi","$i","_reactRootContainer","aj","wasMultiple","multiple","bj","cj","dj","ej","fj","gj","hj","ij","componentDidCatch","componentStack","gk","kj","lj","mj","wj","xj","yj","zj","Aj","Bj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","timeoutMs","Kj","Lj","Mj","Nj","Oj","lastExpiredTime","Pj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Qj","Rj","Sj","Tj","Uj","Vj","Wj","finishedWork","finishedExpirationTime","lastSuspendedTime","Xj","timeoutHandle","Yj","busyMinDurationMs","busyDelayMs","Zj","bk","ck","pingCache","dk","ek","fk","createElementNS","ik","firstSuspendedTime","rangeCount","Db","focusedElem","selectionRange","jk","setStart","removeAllRanges","addRange","setEnd","Dh","dc","fd","hk","Eh","Fh","xk","Di","Ei","Fi","xd","Gi","kk","lk","mk","hidden","Va","nk","unstable_observedBits","pk","pendingChildren","qk","rk","sk","tk","uk","vk","wc","_internalRoot","wk","zk","hasAttribute","yk","Ak","Bk","unmount","form","ak","Ck","unstable_renderSubtreeIntoContainer","unmountComponentAtNode","unstable_createPortal","unstable_batchedUpdates","flushSync","Events","findFiberByHostInstance","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","overrideHookState","overrideProps","setSuspenseHandler","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","Dk","Ek","MessageChannel","unstable_forceFrameRate","performance","port2","port1","onmessage","postMessage","sortIndex","priorityLevel","unstable_wrapCallback","unstable_continueExecution","unstable_pauseExecution","unstable_getFirstCallbackNode","unstable_Profiling","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","async","skipTempReset","stop","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","propFullName","secret","getShim","ReactPropTypes","instanceOf","shape","checkPropTypes","Axios","mergeConfig","createInstance","defaultConfig","axios","instanceConfig","CancelToken","isCancel","all","promises","spread","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","fulfilled","rejected","getUri","eject","transformData","throwIfCancellationRequested","throwIfRequested","reason","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","run","runClearTimeout","Item","nextTick","browser","argv","versions","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","cwd","chdir","umask","normalizedName","isAxiosError","description","columnNumber","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","parsed","originURL","msie","urlParsingNode","resolveURL","protocol","host","hostname","port","requestURL","write","expires","domain","secure","cookie","toGMTString","decodeURIComponent","executor","resolvePromise","_objectWithoutPropertiesLoose2","_assertThisInitialized2","_Selection","TimeSlotUtils","DayEventLayout","_TimeSlotGroup","_TimeGridEvent","_overlap","_noOverlap","objectTag","_extends3","PREVIOUS","NEXT","TODAY","_scrollbarSize","_DateContentRow","_Header","_ResourceHeader","_height","_querySelectorAll","_BackgroundCells","_EventRow","_EventEndingRow","DateSlotMetrics","_EventRowMixin","_range","_eventLevels2","subMinutes","subHours","subDays","subWeeks","subMonths","subYears","getSeconds","getQuarter","getYear","dirtySeconds","dirtyMinutes","dirtyHours","setQuarter","dirtyQuarter","oldQuarter","setYear","dirtyYear","dirtyDatesArray","datesArray","differenceInCalendarDays","dirtyDateLeft","dirtyDateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","differenceInCalendarMonths","dateLeft","dateRight","yearDiff","differenceInCalendarWeeks","startOfWeekLeft","startOfWeekRight","differenceInCalendarYears","startOfMonth","startOfYear","cleanDate","endOfDay","endOfWeek","dirtyLeftDate","dirtyRightDate","dateLeftStartOfDay","dateRightStartOfDay","isSameMonth","isSameYear","isSameQuarter","dateLeftStartOfQuarter","dateRightStartOfQuarter","dirtyDateToCompare","dateToCompare","isWithinInterval","dirtyInterval","patterns","dateTimeDelimiter","timeZoneDelimiter","timezone","dateRegex","timeRegex","timezoneRegex","parseISO","additionalDigits","dateStrings","splitDateString","parseYearResult","parseYear","parseDate","restDateString","parseTime","parseTimezone","fullTime","fullTimeDate","fullTimeDateDiffDay","offsetDiff","dateString","captures","isWeekDate","parseDateUnit","dayOfWeek","_year","validateWeekDate","fourthOfJanuaryDay","dayOfISOWeekYear","daysInMonths","isLeapYearIndex","validateDate","validateDayOfYearDate","parseTimeUnit","validateTime","timezoneString","_hours","validateTimezone","isNodeFound","ignoreClass","correspondingElement","seed","passiveEventSupport","handlersMap","enabledInstances","touchEvents","IGNORE_CLASS_NAME","getEventHandlerOptions","handlerOptions","onClickOutsideHOC","__outsideClickHandler","__clickOutsideHandlerProp","getInstance","handleClickOutside","__getComponentNode","setClickOutsideRef","enableOnClickOutside","_uid","testPassiveEventSupport","findHighest","disableOnClickOutside","getRef","instanceRef","wrappedRef","getClass","isEnumerable","hasProtoEnumBug","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","hasToStringTag","isStandardArguments","isLegacyArguments","supportsStandardArguments","numberIsNaN","regexExec","gOPD","tryRegexExecCall","ERROR_MESSAGE","binder","boundLength","boundArgs","Empty","define","callBind","getPolyfill","flagsBound","$Function","GetIntrinsic","$apply","$call","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","asyncGenIterator","TypedArray","INTRINSICS","Atomics","eval","EvalError","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Proxy","Reflect","SharedArrayBuffer","SyntaxError","Uint8ClampedArray","Uint16Array","Uint32Array","$replace","getBaseIntrinsic","allowMissing","origSymbol","hasSymbolSham","symObj","syms","TypeErr","tryDateObject","_gud2","_temp2","_Items","_Sidebar","_Columns","_GroupRows","_ScrollElement","_MarkerCanvas","_window","_TimelineMarkersContext","ReactCalendarTimeline","_this$container$getBo","containerWidth","sidebarWidth","_stackTimelineItems","scrollComponent","scrollHeaderRef","scrollX","updateScrollCanvas","speed","changeZoom","scale","minZoom","maxZoom","newZoom","newVisibleTimeStart","clickType","isItemSelected","itemTouchSendsClick","onItemClick","timeFromItemEvent","selectedItem","onItemSelect","_time","onItemDeselect","onItemDoubleClick","onItemContextMenu","dragSnap","offsetX","timeOffset","newGroup","dragGroupTitle","updatingItem","eventType","onItemMove","edge","timeDelta","onItemResize","onItemDrag","rowIndex","hasSelectedItem","selectItem","onCanvasClick","getTimeFromRowClickEvent","onCanvasDoubleClick","onCanvasContextMenu","timePosition","headerRenderer","isTimelineHeader","getSelected","_visibleTimeStart","_visibleTimeEnd","defaultTimeStart","defaultTimeEnd","_canvasWidth","_stackTimelineItems2","_dimensionItems","_groupHeights","_groupTops","getTimelineContext","resize","resizeDetector","lastTouchDistance","onZoom","onBoundsChange","lineCount","verticalLineClassNamesForTime","clickTolerance","onRowClick","handleRowClick","onRowDoubleClick","handleRowDoubleClick","horizontalLineClassNamesForGroup","onRowContextClick","handleScrollContextMenu","minResizeWidth","canChangeGroup","canMove","canResize","useResizeHandle","canSelect","moveResizeValidator","itemSelect","itemDrag","dragItem","itemDrop","dropItem","doubleClickItem","contextMenuClickItem","itemResizing","itemResized","resizedItem","itemRenderer","groupRenderer","isRightSidebar","childArray","traditionalZoom","isInteractingWithItem","stackResults","outerComponentStyle","handleHeaderRef","sidebar","getScrollElementRef","onWheelZoom","handleWheelZoom","childrenWithProps","rightSidebar","derivedState","stickyHeader","headerLabelFormats","subHeaderLabelFormats","dayBackground","_Item","canResizeLeft","canResizeRight","Items","visibleItems","sortedDimensionItems","onResizing","onResized","onDrag","onDrop","onContextMenu","_interactjs","_events","_defaultItemRenderer","_domHelpers","_styles","interactMounted","startedClicking","actualClick","startedTouching","dragLeft","dragRight","getItemRef","itemDivTitle","handleDoubleClick","handleContextMenu","getItemStyle","leftName","leftClassName","rightName","rightClassName","getDragLeftRef","leftResizeStyle","leftStyle","getDragRightRef","rightResizeStyle","rightStyle","cacheDataFromProps","dragging","dragStart","preDragPosition","dragGroupDelta","resizing","resizeEdge","resizeStart","itemProps","itemTitle","considerOffset","dragTimeSnap","timeFor","ratio","scrolls","groupDelta","_Object$keys","getTimeRatio","leftResize","rightResize","resizable","edges","styleCursor","clickTime","deltaRect","resizeTimeSnap","resizeTimeDelta","couldDrag","couldResizeLeft","couldResizeRight","willBeAbleToDrag","willBeAbleToResizeLeft","willBeAbleToResizeRight","mountInteract","baseStyles","overridableStyles","selectedStyle","selectedAndCanMove","selectedAndCanResizeLeft","selectedAndCanResizeLeftAndDragLeft","selectedAndCanResizeRight","selectedAndCanResizeRightAndDragRight","itemContext","getItemProps","getResizeProps","defaultItemRenderer","raf","ActionName","methodDict","removeDocument","Interactable","fire","interactable","interactions","interaction","listenerMaps","init","usePlugin","_plugins","pluginIsInstalled","install","getDocIndex","documents","onWindowUnload","scope","getPointerType","getEventTargets","prevTouchTime","pointer","getPointerId","eventTarget","curEventTarget","supportsPointerEvent","pointerIsDown","searchDetails","docEvents","isIOS","delegatedEvents","delegateListener","delegateUseCapture","pEventTypes","_interacting","pointers","nodeContains","downTarget","removePointer","PointerEvent","down","pointerDown","move","pointerMove","pointerUp","documentBlur","Interaction","pointerMoveTolerance","scopeFire","onDocSignal","doOnInteractions","methodNames","_ProxyValues","_ProxyMethods","warnOnce","newCoords","velocity","_scopeFire","_proxy","updatePointer","pointerIndex","interacting","Gesture","copyAction","prepared","getRect","_stopped","_doPhase","downEvent","phase","EventPhase","Start","simulation","endResult","setCoords","coords","_now","page","pointerWasMoved","hypot","getPointerIndex","dx","dy","duplicate","setCoordDeltas","setCoordVelocity","copyCoords","setZeroCoords","_latestPointer","Move","_ending","End","prevEvent","pointerExtend","downPointer","downTime","_updateLatestPointer","pointerInfo","preEnd","addEdges","deltaSource","iEvent","_createPreparedEvent","_fireEvent","DocumentFragment","SVGElement","SVGSVGElement","SVGElementInstance","Element","Touch","MSPointerEvent","Window","realWindow","supportsTouch","DocumentTouch","pointerEnabled","platform","isIOS7","appVersion","isIe9","isOperaMobile","appName","prefixedMatchesSelector","over","wheelEvent","ownerSVGElement","docFrag","scrollY","getClientRects","sqrt","prefixedPropREs","webkit","moz","atan2","PI","composedPath","getActualElement","getElementRect","plainObject","typeCount","supportsOptions","contexts","originalEvent","stopImmediatePropagation","addDelegate","removeDelegate","supportsPassive","_elements","_targets","origin","resolveRectLike","rectToXY","perAction","actions","immediatePropagationStopped","propagationStopped","_actions","_win","trySelector","_doc","onstart","onmove","onend","oninertiastart","_defaults","updatePerActionListeners","_backCompatOption","testIgnore","ignoreFrom","testAllow","allowFrom","matchesUpTo","_onOff","setPerAction","addListeners","selectorMap","addDocument","inContext","_interaction","t0","x0","y0","clientX0","clientY0","swipe","getSwipe","velocityY","velocityX","angle","methodOrder","simulationResume","allowResume","mouseOrPen","hasPointer","idle","gesture","Drag","dr","mouseButtons","lockAxis","startAxis","setOnEvents","beforeMove","getCursor","dropzone","dragEvent","dropState","activeDrops","interactables","drop","accept","dom","draggableElement","dropCheck","indexOfDeepestElement","leave","activate","deactivate","dragLeave","prevDropzone","dragEnter","dragmove","dynamicDrop","interact","normalizeListeners","ondrop","ondropactivate","ondropdeactivate","ondragenter","ondragleave","ondropmove","checker","getOriginXY","getPageXY","getActiveDrops","getDrop","getDropEvents","fireDropEvents","touchDistance","touchBBox","ds","touchAngle","startDistance","startAngle","gesturable","Resize","resizeAxes","square","axes","cursors","xy","topleft","bottomright","topright","bottomleft","defaultMargin","preserveAspectRatio","_rects","corrected","invert","autoScroll","isScrolling","prevTime","scroll","scrollBy","onInteractionMove","getElementClientRect","getStringOptionResult","actionChecker","getAction","0","1","3","4","testIgnoreAllow","forEachMatch","manualStart","maxPerElement","autoStart","maxInteractions","cursorElement","cursorChecker","withinInteractionLimit","validateAction","hold","autoStartHoldTimer","getHoldDuration","checkAndPreventDefault","getDocOptions","touchAction","noListeners","beforeEnd","_methods","startOffset","startDelta","pageCoords","states","requireEndOnly","prevCoords","prevRect","rectDelta","eventProps","changed","skipModifiers","modifiedCoords","endOnly","alwaysOnEnd","noPreEnd","resistance","endSpeed","v0","startEvent","sx","sy","modifiedXe","vx0","modifiedYe","vy0","lambda_v0","one_ve_v0","inertia","exp","getQuadraticCurvePoint","smoothEndDuration","easeOutQuad","smoothEnd","upCoords","Resume","InertiaStart","minSpeed","setAll","InteractEvent","restoreCoords","calcInertia","inertiaTick","smothEndTick","updateInertiaCoords","startCoords","edgeSign","startRect","equalDelta","linkedEdges","xIsPrimaryAxis","subStates","prepareStates","startAll","elementRect","restriction","xywhToTlbr","noInner","noOuter","getRestrictionRect","outer","tlbrToXywh","offsetWithOrigin","relativePoints","relativePoint","targets","targetFields","makeModifier","tapTime","prevTap","getPath","eventable","holdDuration","collectEventTargets","pointerEvent","_subtractOrigin","_addOrigin","holdIntervalHandle","clearInterval","holdRepeatInterval","reflow","_reflowPromise","_reflowResolve","coordsToEvent","Reflow","Scope","debug","getPointerAverage","pointerAverage","getTouchBBox","getTouchDistance","getTouchAngle","limits","grid","coordFields","snappers","createSnapGrid","argsTag","mapTag","setTag","moduleExports","arrayProto","nativeIsBuffer","_getResizeProps","leftResizeProps","rightResizeProps","borderRightWidth","Sidebar","_this$props$keys","sidebarStyle","groupsStyle","groupLines","elementStyle","renderGroupContent","passThroughPropTypes","Columns","lines","firstOfType","classNamesForTime","ColumnsWrapper","makeEmptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","_GroupRow","GroupRows","isEvenRow","_PreventClickOnDrag","GroupRow","classNamesForGroup","PreventClickOnDrag","originClickX","cancelClick","childElement","handleMouseDown","handleMouseUp","ScrollElement","handleWheel","parentPosition","dragStartPosition","dragLastPosition","singleTouchStart","lastSingleTouch","deltaX0","deltaY0","moveX","moveY","scrollComponentStyle","refHandler","handleMouseMove","handleTouchMove","handleTouchEnd","_MarkerCanvasContext","_TimelineMarkersRenderer","staticStyles","MarkerCanvas","subscription","canvasX","containerEl","isCursorOverCanvas","sub","handleMouseMoveSubscribe","_markerType","renderer","_shared","defaultRenderer","TodayMarker","intervalToken","createIntervalUpdater","setInterval","defaultCustomMarkerRenderer","CustomMarker","CursorMarker","isShowingCursor","subscribeToCanvasMouseOver","handleCanvasMouseOver","CursorMarkerWrapper","_resizeEventListener","handleEvent","_ref$headerContext","_ref$data","intervalText","_Interval","primaryHeader","Interval","nextUnit","onIntervalClick","intervalContext","_this$props$subscribe","TodayMarkerWrapper","CustomMarkerWrapper","useIsomorphicLayoutEffect","InitialAsyncState","loading","InitialAsyncLoadingState","DefaultOptions","initialState","executeOnMount","executeOnUpdate","setLoading","setResult","_asyncState","setError","onSuccess","useAsyncInternal","asyncFunction","normalizedOptions","currentParams","setCurrentParams","AsyncState","CurrentPromise","shouldHandlePromise","executeAsyncOperation","syncResult","execute","currentPromise","useAsync","useAsyncCallback","abortControllerRef","abortController","AbortController","finalizer","signal","fetchMore","isEndFn","isEnd","getAsyncValue","setIsEnd","fetchMoreId","fetchMoreAsync","freshAsyncValue","currentId","moreResult","shouldReset","canFetchMore","typeOf","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","isValidElementType","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","dirtyObject","setUTCDay","dirtyDay","currentDay","dayIndex","numericPatterns","timezonePatterns","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","enumValue","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","parsers","incompatibleTokens","isTwoDigitYear","validate","normalizedTwoDigitYear","_match","_flags","firstWeekOfYear","setUTCMonth","dirtyWeek","setUTCWeek","dirtyISOWeek","setUTCISOWeek","wholeWeekDays","setUTCISODay","setUTCSeconds","setUTCMilliseconds","timestampIsSet","_token","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","notWhitespaceRegExp","unescapedLatinCharacterRegExp","dirtyDateString","dirtyFormatString","dirtyBackupDate","formatString","defaultLocale","subFnOptions","setters","dateToSystemTimezone","firstCharacter","longFormatter","usedTokens","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","parser","incompatibleToken","usedToken","fullToken","cleanEscapedString","uniquePrioritySetters","setterArray","utcDate","convertedDate","addLeadingZeros","formatters","signedYear","dayPeriodEnumValue","numberOfDigits","dayPeriodEnum","formatTimezoneShort","dirtyDelimiter","absOffset","formatTimezoneWithOptionalMinutes","formatTimezone","lightFormatters","signedWeekYear","startOfYearTimestamp","difference","getUTCDayOfYear","localDayOfWeek","isoDayOfWeek","_localize","timezoneOffset","_originalDate","originalDate","dirtyFormatStr","formatStr","formatterOptions","ManagerReferenceNodeContext","ManagerReferenceNodeSetterContext","newReferenceNode","referenceNode","setReferenceNode","unwrapArray","safeInvoke","initialStyle","initialArrowStyle","InnerPopper","popperNode","updatePopperInstance","arrowNode","popperInstance","destroyPopperInstance","getOptions","setPopperNode","getPopperStyle","getPopperPlacement","getOutOfBoundariesState","setArrowNode","getArrowStyle","InnerReference","_extensionConfig","ext","_analyticsPlugin","addHistoryListener","pageViewTelemetry","uri","trackPageView","trackMetric","metric","customProperties","pageView","reactPlugin","_mountTimestamp","_firstActiveTimestamp","_idleStartTimestamp","_lastActiveTimestamp","_totalIdleTime","_idleCount","_idleTimeout","trackActivity","lastIdleTime","_intervalId","metricData","average","getEngagementTimeSeconds","sampleCount","additionalProperties","processContext","initPlugins","lastPlugin","extA","extB","bHasProcess","_arrForEach","_objDefineAccessors","_addChannelQueue","channelQueues","queueItem","_checkQueuePriority","StorageType","FieldType","DistributedTracingModes","_channelQueue","queues","getChannelControls","isCookieUseDisabled","channelQueue","channels","_createChannelQueues","initializePlugins","_staticInit","ChannelController","BaseTelemetryPlugin","_isInitialized","_extensions","_channelController","_setInit","_eventQueue","notificationManager","instrumentationKey","channelController","addNotificationListener","removeNotificationListener","eventsSent","eventsDiscarded","_notificationManager","NotificationManager","allExtensions","sortPlugins","coreExtensions","channelExtensions","extPriorities","extPriority","getTransmissionControls","telemetryItem","iKey","ver","thePlugins","EventsDiscardedReason","_notifyInvalidEvent","_validateTelemetryItem","pollInternalLogs","diagnosticLogInterval","baseType","baseData","requestContextHeader","requestContextTargetKey","requestContextAppIdFormat","requestIdHeader","traceParentHeader","sdkContextHeader","sdkContextHeaderAppIdRequest","requestContextHeaderLowerCase","sanitizeKeyAndAddUniqueness","origLength","DataSanitizer","sanitizeKey","uniqueField","MAX_NAME_LENGTH","padNumber","nameTrunc","sanitizeString","maxLength","valueTrunc","MAX_STRING_LENGTH","sanitizeUrl","sanitizeInput","MAX_URL_LENGTH","sanitizeMessage","messageTrunc","MAX_MESSAGE_LENGTH","sanitizeException","exceptionTrunc","MAX_EXCEPTION_LENGTH","sanitizeProperties","tempProps","MAX_PROPERTY_LENGTH","sanitizeMeasurements","measurements","tempMeasurements","measure","sanitizeId","MAX_ID_LENGTH","_msgId","inputTrunc","_isString","_uaDisallowsSameSiteNone","DataPointType","createDomEvent","initEvent","disableStorage","Util","_canUseLocalStorage","_canUseSessionStorage","_getLocalStorageObject","canUseLocalStorage","_getVerifiedStorageObject","LocalStorage","storageType","fail","storage","setItem","getItem","removeItem","isInternalApplicationInsightsEndpoint","endpointUrl","_internalEndpoints","getStorage","getExceptionName","dump","setStorage","removeStorage","_getSessionStorageObject","canUseSessionStorage","SessionStorage","getSessionStorageKeys","getSessionStorage","setSessionStorage","removeSessionStorage","canUseCookies","disallowsSameSiteNone","_endsWith","setCookie","domainAttrib","secureAttrib","stringToBoolOrDefault","getCookie","cookieName","deleteCookie","newId","random32","generateW3CId","hexValues","oct","clockSequenceHi","isError","getIEVersion","userAgentStr","myNav","msToTimeSpan","totalms","sec","isCrossOriginError","objectTypeDump","propertyValueDump","IsBeaconApiSupported","sendBeacon","getExtension","extension","extIx","NotSpecified","toISOStringForIE8","parseUrl","UrlHelper","htmlAnchorElement","parseHost","getAbsoluteUrl","getPathName","getCompleteUrl","absoluteUrl","canIncludeCorrelationHeader","requestUrl","currentHost","disableCorrelationHeaders","requestHost","enableCorsCorrelation","includedDomains","correlationHeaderDomains","excludedDomains","correlationHeaderExcludedDomains","getCorrelationContext","responseHeader","correlationId","CorrelationIdHelper","getCorrelationContextValue","RequestHeaders","correlationIdPrefix","keyValues","keyValue","ParseDependencyPath","commandName","parsedUrl","pathName","Now","perf","timing","navigationStart","GetDuration","envelopeName","systemProperties","Domain","aiDataContract","Required","Default","envelopeType","severityLevel","SeverityLevel","kind","stdDev","Measurement","dataPoint","Metric","durationMs","PageView","unused","cs4BaseData","perfTotal","networkConnect","sentRequest","receivedResponse","domProcessing","hasFullStack","parsedStack","exceptions","problemGroup","isManual","Exception","CreateFromInterface","toInterface","CreateSimpleException","typeName","assembly","details","outerId","_ExceptionDetails","parseStack","frame","level","totalSizeInBytes","parsedFrame","sizeInBytes","acceptedLeft","acceptedRight","howMany","ExceptionDetails","sourceFrame","_StackFrame","baseSize","StackFrame","DisabledPropertyName","SampleRate","ProcessLegacy","HttpMethod","DEFAULT_BREEZE_ENDPOINT","connectionString","kvPairs","ConnectionStringParser","_FIELDS_SEPARATOR","fields","kv","kvParts","_FIELD_KEY_VALUE_SEPARATOR","endpointsuffix","locationPrefix","ingestionendpoint","Base","sampleRate","Hidden","success","resultCode","requestAPI","correlationContext","dependencyKind","dependencySource","dependencyTypeName","dependencyFields","configValue","applicationVersion","applicationBuild","applicationTypeId","applicationId","applicationLayer","deviceId","deviceIp","deviceLanguage","deviceLocale","deviceModel","deviceFriendlyName","deviceNetwork","deviceNetworkName","deviceOEMName","deviceOS","deviceOSVersion","deviceRoleInstance","deviceRoleName","deviceScreenResolution","deviceType","deviceMachineName","deviceVMName","deviceBrowser","deviceBrowserVersion","locationIp","locationCountry","locationProvince","locationCity","operationId","operationName","operationParentId","operationRootId","operationSyntheticSource","operationCorrelationVector","sessionId","sessionIsFirst","sessionIsNew","userAccountAcquisitionDate","userAccountId","userId","userStoreRegion","userAuthUserId","userAnonymousUserAcquisitionDate","userAuthenticatedUserAcquisitionDate","cloudName","cloudRole","cloudRoleVer","cloudRoleInstance","cloudEnvironment","cloudLocation","cloudDeploymentUnit","internalNodeName","internalSdkVersion","internalAgentVersion","UserExt","DeviceExt","TraceExt","WebExt","AppExt","OSExt","SessionExt","SDKExt","CtxTagKeys","ContextTagKeys","PropertiesPluginIdentifier","BreezeChannelIdentifier","appInsights","overridePageViewDuration","pageViewPerformanceManager","pageViewPerformanceSent","_pageViewPerformanceManager","_channel","_logger","isPerformanceTimingSupported","sendPageViewInternal","customDuration","pageViewSent","getPerformanceTiming","shouldCollectDuration","isPerformanceTimingDataReady","pageViewPerformance","populatePageViewPerformanceEvent","sendPageViewPerformanceInternal","pageVisitTimeTrackingHandler","prevPageVisitDataKeyName","trackPreviousPageVisit","currentPageName","currentPageUrl","prevPageVisitTimeData","restartPageVisitTimer","pageName","pageUrl","pageVisitTime","prevPageVisitData","stopPageVisitTimer","startPageVisitTimer","currPageVisitData","PageVisitData","currPageVisitDataStr","pageVisitEndTime","pageVisitDataJsonStr","pageVisitStartTime","MAX_DURATION_ALLOWED","navigationTiming","getPerformanceNavigationTiming","network","connectEnd","requestStart","responseStart","responseEnd","loadEventEnd","isPerformanceNavigationTimingSupported","getEntriesByType","domainLookupStart","domLoading","_navigator","botAgentNames","isGoogleBot","durations","_dispatchEvent","evnt","dispatchEvent","autoRoutePVDelay","_trackAjaxAttempts","_prevUri","getDefaultConfig","sessionRenewalMs","sessionExpirationMs","disableExceptionTracking","autoTrackPageVisitTime","enableUnhandledPromiseRejectionTracking","samplingPercentage","isStorageUseDisabled","isBrowserLinkTrackingEnabled","enableAutoRouteTracking","namePrefix","doNotSendItem","telemetryInitializersCount","_telemetryInitializers","telemetryInitializer","trackEvent","startTrackEvent","_eventTracking","stopTrackEvent","trackTrace","trace","inPv","_pageViewManager","_pageVisitTimeManager","refUri","referrer","trackPageViewPerformance","startTrackPage","_pageTracking","stopTrackPage","sendExceptionInternal","exceptionPartB","trackException","_onerror","URL","_sendCORSException","errorString","addTelemetryInitializer","ctx","_globalconfig","ApplicationInsights","configGetters","accountId","cookieDomain","sdkExtension","appId","trackPageVisitTime","_addDefaultTelemetryInitializers","pageViewItem","_history","_location","autoExceptionInstrumented","handled","autoUnhandledPromiseInstrumented","_properties","telemetryTrace","traceID","_currUri","PageName","PageUrl","_addTelemetryInitializer","envelope","remoteData","Version","_name","_buffer","enqueue","getItems","batchPayloads","emitLineDelimitedJson","markAsSent","clearSent","_bufferFullMessageSent","bufferItems","getBuffer","SessionStorageSendBuffer","BUFFER_KEY","notDeliveredItems","SENT_BUFFER_KEY","MAX_BUFFER_SIZE","setBuffer","removePayloadsFromBuffer","sentElements","payloads","prefixedKey","bufferJson","extractPropsAndMeasurements","createEnvelope","iKeyNoDashes","EnvelopeCreator","extractPartAExtensions","user","authId","localId","app","sesId","device","deviceClass","ip","web","browserLang","browserVer","screenRes","userConsent","os","parentID","tgs","Create","customMeasurements","command","responseCode","DependencyEnvelopeCreator","EventEnvelopeCreator","ExceptionEnvelopeCreator","MetricEnvelopeCreator","currentContextId","pageType","isLoggedIn","pageTags","PageViewEnvelopeCreator","PageViewPerformanceEnvelopeCreator","TraceEnvelopeCreator","serialize","_serializeObject","_serializeStringMap","_serializeArray","contract","isPresent","expectedType","Offline","_onlineStatus","_document","isListening","_setOnline","_setOffline","ononline","onoffline","isOnline","onLine","isOffline","OfflineListener","getHashCodeScore","getHashCode","HashCodeScoreGenerator","INT_MAX_VALUE","MIN_INPUT_LENGTH","hashCodeGeneragor","getSamplingScore","samplingRate","samplingScoreGenerator","isSampledIn","_XMLHttpRequestSupported","constructEnvelope","orig","_getDefaultAppInsightsChannelConfig","maxBatchInterval","maxBatchSizeInBytes","disableTelemetry","enableSessionStorageBuffer","isRetryDisabled","isBeaconApiDisabled","onunloadDisableBeacon","_getEmptyAppInsightsChannelConfig","pause","resume","triggerSend","onunloadFlush","_senderConfig","_beaconSender","_serializer","_consecutiveErrors","_retryAt","_lastSend","_sender","Sender","ArraySendBuffer","_sample","_xhrSender","XDomainRequest","_xdrSender","_isSampledIn","callBack","bufferPayload","batch","_setupTimer","_xhrReadyStateChange","xhr","countOfItemsInPayload","_appId","_parseResponse","_isRetriable","_resendPayload","_onError","_formatErrorMessageXhr","_onPartialSuccess","_onSuccess","forcedSender","_timeoutHandle","failed","retry","errors","extracted","statusCode","itemsAccepted","itemsReceived","_xdrOnLoad","xdr","_formatErrorMessageXdr","isAsync","plainTextBatch","Blob","linearFactor","_setRetryTime","delayInSeconds","backOffSlot","backOffDelay","retryAfterTimeSpan","retryInterval","timerValue","onload","hostingProtocol","_SessionManager","_storageNamePrefix","cookieNameConst","automaticSession","Session","initializeAutomaticSession","acquisitionExpired","acquisitionDate","renewalExpired","renewalDate","renew","cookieUpdatedTimestamp","cookieUpdateInterval","backup","initializeAutomaticSessionWithData","sessionData","acq","renewal","guid","acquisitionExpiry","renewalExpiry","cookieExpiry","cookieDomnain","UTCString","toUTCString","acquisitionSpan","renewalSpan","sdkVersion","isNewUser","User","userCookieName","cookieSeparator","acqStr","accountAcquisitionDate","newCookie","authCookie","authUserCookieName","authCookieString","authenticatedId","setAuthenticatedUserContext","authenticatedUserId","storeInCookie","validateUserInput","clearAuthenticatedUserContext","parentId","sessionManager","application","Application","Device","internal","Internal","Location","session","applySessionContext","sessionContext","applyOperatingSystemContxt","applyApplicationContext","build","applyDeviceContext","applyInternalContext","agentVersion","applyLocationContext","applyOperationContext","applyWebContext","applyUserContext","cleanUp","Extensions","PropertiesPlugin","_breezeChannel","_processTelemetryInternal","openDone","setRequestHeaderDone","sendDone","abortDone","onreadystatechangeCallbackAttached","spanID","completed","requestHeadersSize","ttfb","responseReceivingDuration","callbackDuration","ajaxTotalDuration","aborted","requestSize","requestSentTime","responseStartedTime","responseFinishedTime","callbackFinishedTime","originalOnreadystatechage","xhrMonitoringState","XHRMonitoringState","clientFailure","CalculateMetrics","traceId","spanId","traceFlag","Traceparent","DEFAULT_TRACE_FLAG","DEFAULT_VERSION","isValidTraceId","isValidSpanId","AjaxMonitor","getEmptyConfig","currentWindowHost","initialized","_fetchInitialized","maxAjaxCallsPerView","disableAjaxTracking","disableFetchTracking","distributedTracingMode","AI","enableRequestHeaderTracking","enableResponseHeaderTracking","enableAjaxErrorStatusText","getFailedAjaxDiagnosticsMessage","ajaxData","trackDependencyData","dependency","trackDependencyDataInternal","includeCorrelationHeaders","Headers","Request","_isUsingAIHeaders","_isUsingW3CHeaders","traceparent","AI_AND_W3C","W3C","instrumentXhr","instrumentFetch","propExt","supportsFetch","originalFetch","fetch","fetchMonitorInstance","fetchData","isFetchInstrumented","isMonitoredInstance","createFetchRecord","ajaxDiagnosticsMessage","getFailedFetchDiagnosticsMessage","onFetchComplete","onFetchFailed","supportsAjaxMonitoring","instrumentOpen","instrumentSend","instrumentAbort","instrumentSetRequestHeader","excludeAjaxDataValidation","disabledProperty","ajaxValidation","originalOpen","ajaxMonitorInstance","funcThis","openHandler","attachToOnReadyStateChange","originalSend","sendHandler","originalAbort","originalSetRequestHeader","onAjaxComplete","exceptionText","getAjaxCorrelationContext","responseHeadersString","getResponseHeader","_global","fetchDiagnosticsMessage","getFetchCorrelationContext","snippet","cs","ingest","instrumentationkey","getSKUDefaults","inPvp","channel","loadAppInsights","legacyMode","appInsightsChannel","emptyQueue","addHousekeepingBeforeUnload","updateSnippetDefinitions","appInsightsInstance","performHousekeeping","_sessionManager","disableFlushOnBeforeUnload","added","disableFlushOnUnload"],"mappings":"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DlqB,KAAM,KACNkqB,QAAS,aACR,CACDlqB,KAAM,IACNkqB,QAAS,mEACR,CACDlqB,KAAM,IACNkqB,QAAS,2CACR,CACDlqB,KAAM,IACNkqB,QAAS,6GACR,CACDlqB,KAAM,IACNkqB,QAAS,6GACR,CACDlqB,KAAM,IACNkqB,QAAS,iGACR,CACDlqB,KAAM,KACNkqB,QAAS,aACR,CACDlqB,KAAM,IACNkqB,QAAS,mNACR,CACDlqB,KAAM,IACNkqB,QAAS,uDACR,CACDlqB,KAAM,KACNkqB,QAAS,aACR,CACDlqB,KAAM,IACNkqB,QAAS,mEACR,CACDlqB,KAAM,IACNkqB,QAAS,qCACR,CACDlqB,KAAM,IACNkqB,QAAS,iGACR,CACDlqB,KAAM,IACNkqB,QAAS,2FACR,CACDlqB,KAAM,IACNkqB,QAAS,yNACR,CACDlqB,KAAM,KACNkqB,QAAS,aACR,CACDlqB,KAAM,KACNkqB,QAAS,yBACR,CACDlqB,KAAM,KACNkqB,QAAS,aACR,CACDlqB,KAAM,KACNkqB,QAAS,aACR,CACDlqB,KAAM,KACNkqB,QAAS,mBACR,CACDlqB,KAAM,KACNkqB,QAAS,aACR,CACDlqB,KAAM,IACNkqB,QAAS,6DACR,CACDlqB,KAAM,IACNkqB,QAAS,qFACR,CACDlqB,KAAM,IACNkqB,QAAS,2FACR,CACDlqB,KAAM,KACNkqB,QAAS,mBACR,CACDlqB,KAAM,IACNkqB,QAAS,iMACR,CACDlqB,KAAM,IACNkqB,QAAS,2CACR,CACDlqB,KAAM,IACNkqB,QAAS,iGACR,CACDlqB,KAAM,IACNkqB,QAAS,iGACR,CACDlqB,KAAM,KACNkqB,QAAS,aACR,CACDlqB,KAAM,IACNkqB,QAAS,+HACR,CACDlqB,KAAM,IACNkqB,QAAS,2CACR,CACDlqB,KAAM,IACNkqB,QAAS,2FACR,CACDlqB,KAAM,IACNkqB,QAAS,yHACR,CACDlqB,KAAM,KACNkqB,QAAS,aACR,CACDlqB,KAAM,IACNkqB,QAAS,uDACR,CACDlqB,KAAM,IACNkqB,QAAS,6GACR,CACDlqB,KAAM,KACNkqB,QAAS,aA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","file":"static/js/2.713e42da.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","/**\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","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}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","var MILI = 'milliseconds'\n , SECONDS = 'seconds'\n , MINUTES = 'minutes'\n , HOURS = 'hours'\n , DAY = 'day'\n , WEEK = 'week'\n , MONTH = 'month'\n , YEAR = 'year'\n , DECADE = 'decade'\n , CENTURY = 'century';\n\nvar multiplierMilli = {\n 'milliseconds': 1,\n 'seconds': 1000,\n 'minutes': 60 * 1000,\n 'hours': 60 * 60 * 1000,\n 'day': 24 * 60 * 60 * 1000,\n 'week': 7 * 24 * 60 * 60 * 1000 \n}\n\nvar multiplierMonth = {\n 'month': 1,\n 'year': 12,\n 'decade': 10 * 12,\n 'century': 100 * 12\n}\n\nfunction daysOf(year) {\n return [31, daysInFeb(year), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\n}\n\nfunction daysInFeb(year) {\n return (\n year % 4 === 0 \n && year % 100 !== 0\n ) || year % 400 === 0\n ? 29\n : 28\n}\n\nexport function add(d, num, unit) {\n d = new Date(d)\n\n switch (unit){\n case MILI:\n case SECONDS:\n case MINUTES:\n case HOURS:\n case DAY:\n case WEEK:\n return addMillis(d, num * multiplierMilli[unit])\n case MONTH:\n case YEAR:\n case DECADE:\n case CENTURY:\n return addMonths(d, num * multiplierMonth[unit])\n }\n\n throw new TypeError('Invalid units: \"' + unit + '\"')\n}\n\nfunction addMillis(d, num) {\n var nextDate = new Date(+(d) + num)\n\n return solveDST(d, nextDate)\n}\n\nfunction addMonths(d, num) {\n var year = d.getFullYear()\n , month = d.getMonth()\n , day = d.getDate()\n , totalMonths = year * 12 + month + num\n , nextYear = Math.trunc(totalMonths / 12)\n , nextMonth = totalMonths % 12\n , nextDay = Math.min(day, daysOf(nextYear)[nextMonth])\n\n var nextDate = new Date(d)\n nextDate.setFullYear(nextYear)\n\n // To avoid a bug when sets the Feb month\n // with a date > 28 or date > 29 (leap year)\n nextDate.setDate(1)\n\n nextDate.setMonth(nextMonth)\n nextDate.setDate(nextDay)\n\n return nextDate\n}\n\nfunction solveDST(currentDate, nextDate) {\n var currentOffset = currentDate.getTimezoneOffset()\n , nextOffset = nextDate.getTimezoneOffset()\n\n // if is DST, add the difference in minutes\n // else the difference is zero\n var diffMinutes = (nextOffset - currentOffset)\n\n return new Date(+(nextDate) + diffMinutes * multiplierMilli['minutes'])\n}\n\nexport function subtract(d, num, unit) {\n return add(d, -num, unit)\n}\n\nexport function startOf(d, unit, firstOfWeek) {\n d = new Date(d)\n\n switch (unit) {\n case CENTURY:\n case DECADE:\n case YEAR:\n d = month(d, 0);\n case MONTH:\n d = date(d, 1);\n case WEEK:\n case DAY:\n d = hours(d, 0);\n case HOURS:\n d = minutes(d, 0);\n case MINUTES:\n d = seconds(d, 0);\n case SECONDS:\n d = milliseconds(d, 0);\n }\n\n if (unit === DECADE)\n d = subtract(d, year(d) % 10, 'year')\n\n if (unit === CENTURY)\n d = subtract(d, year(d) % 100, 'year')\n\n if (unit === WEEK)\n d = weekday(d, 0, firstOfWeek);\n\n return d\n}\n\nexport function endOf(d, unit, firstOfWeek){\n d = new Date(d)\n d = startOf(d, unit, firstOfWeek)\n switch (unit) {\n case CENTURY:\n case DECADE:\n case YEAR:\n case MONTH:\n case WEEK:\n d = add(d, 1, unit)\n d = subtract(d, 1, DAY)\n d.setHours(23, 59, 59, 999)\n break;\n case DAY:\n d.setHours(23, 59, 59, 999)\n break;\n case HOURS:\n case MINUTES:\n case SECONDS:\n d = add(d, 1, unit)\n d = subtract(d, 1, MILI)\n }\n return d\n}\n\nexport var eq = createComparer(function(a, b){ return a === b })\nexport var neq = createComparer(function(a, b){ return a !== b })\nexport var gt = createComparer(function(a, b){ return a > b })\nexport var gte = createComparer(function(a, b){ return a >= b })\nexport var lt = createComparer(function(a, b){ return a < b })\nexport var lte = createComparer(function(a, b){ return a <= b })\n\nexport function min(){\n return new Date(Math.min.apply(Math, arguments))\n}\n\nexport function max(){\n return new Date(Math.max.apply(Math, arguments))\n}\n\nexport function inRange(day, min, max, unit){\n unit = unit || 'day'\n\n return (!min || gte(day, min, unit))\n && (!max || lte(day, max, unit))\n}\n\nexport var milliseconds = createAccessor('Milliseconds')\nexport var seconds = createAccessor('Seconds')\nexport var minutes = createAccessor('Minutes')\nexport var hours = createAccessor('Hours')\nexport var day = createAccessor('Day')\nexport var date = createAccessor('Date')\nexport var month = createAccessor('Month')\nexport var year = createAccessor('FullYear')\n\nexport function decade(d, val) {\n return val === undefined\n ? year(startOf(d, DECADE))\n : add(d, val + 10, YEAR);\n}\n\nexport function century(d, val) {\n return val === undefined\n ? year(startOf(d, CENTURY))\n : add(d, val + 100, YEAR);\n}\n\nexport function weekday(d, val, firstDay) {\n var w = (day(d) + 7 - (firstDay || 0) ) % 7;\n\n return val === undefined\n ? w\n : add(d, val - w, DAY);\n}\n\nexport function diff(date1, date2, unit, asFloat) {\n var dividend, divisor, result;\n\n switch (unit) {\n case MILI:\n case SECONDS:\n case MINUTES:\n case HOURS:\n case DAY:\n case WEEK:\n dividend = date2.getTime() - date1.getTime(); break;\n case MONTH:\n case YEAR:\n case DECADE:\n case CENTURY:\n dividend = (year(date2) - year(date1)) * 12 + month(date2) - month(date1); break;\n default:\n throw new TypeError('Invalid units: \"' + unit + '\"');\n }\n\n switch (unit) {\n case MILI:\n divisor = 1; break;\n case SECONDS:\n divisor = 1000; break;\n case MINUTES:\n divisor = 1000 * 60; break;\n case HOURS:\n divisor = 1000 * 60 * 60; break;\n case DAY:\n divisor = 1000 * 60 * 60 * 24; break;\n case WEEK:\n divisor = 1000 * 60 * 60 * 24 * 7; break;\n case MONTH:\n divisor = 1; break;\n case YEAR:\n divisor = 12; break;\n case DECADE:\n divisor = 120; break;\n case CENTURY:\n divisor = 1200; break;\n default:\n throw new TypeError('Invalid units: \"' + unit + '\"');\n }\n\n result = dividend / divisor;\n\n return asFloat ? result : Math.round(result);\n}\n\nfunction createAccessor(method){\n var hourLength = (function(method) { \n switch(method) {\n case 'Milliseconds':\n return 3600000;\n case 'Seconds':\n return 3600;\n case 'Minutes':\n return 60;\n case 'Hours':\n return 1;\n default:\n return null;\n }\n })(method);\n \n return function(d, val){\n if (val === undefined)\n return d['get' + method]()\n\n var dateOut = new Date(d)\n dateOut['set' + method](val)\n \n if(hourLength && dateOut['get'+method]() != val && (method === 'Hours' || val >=hourLength && (dateOut.getHours()-d.getHours() 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 */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\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 arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","//! moment.js\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 input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\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 input != null && Object.prototype.toString.call(input) === '[object Object]';\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 (obj.hasOwnProperty(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 typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [], i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\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 invalidMonth : null,\n invalidFormat : false,\n userInvalidated : false,\n iso : false,\n parsedDateParts : [],\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 var len = t.length >>> 0;\n\n for (var i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m);\n var parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n var isNowValid = !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid = 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 }\n else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid (flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n }\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\n function copyConfig(to, from) {\n var i, prop, val;\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 (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; 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 var updateInProgress = false;\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 obj instanceof Moment || (obj != null && obj._isAMomentObject != null);\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 // 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 ((dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false &&\n (typeof console !== 'undefined') && console.warn) {\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 var arg;\n for (var i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (var key in arguments[0]) {\n arg += key + ': ' + arguments[0][key] + ', ';\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(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + (new Error()).stack);\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 input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set (config) {\n var prop, i;\n for (i in config) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\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 '|' + (/\\d{1,2}/).source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig), 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 (hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])) {\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, 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 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.replace(/MMMM|MM|DD|dddd/g, function (val) {\n return val.slice(1);\n });\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 var 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 M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n };\n\n function relativeTime (number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return (isFunction(output)) ?\n output(number, withoutSuffix, string, isFuture) :\n output.replace(/%d/i, number);\n }\n\n function pastFuture (diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias (unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [];\n for (var u in unitsObj) {\n units.push({unit: u, priority: priorities[u]});\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\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 (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n\n var localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n\n var formatFunctions = {};\n\n var 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(func.apply(this, arguments), token);\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), i, 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 = '', i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : 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] = 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(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var match1 = /\\d/; // 0 - 9\n var match2 = /\\d\\d/; // 00 - 99\n var match3 = /\\d{3}/; // 000 - 999\n var match4 = /\\d{4}/; // 0000 - 9999\n var match6 = /[+-]?\\d{6}/; // -999999 - 999999\n var match1to2 = /\\d\\d?/; // 0 - 99\n var match3to4 = /\\d\\d\\d\\d?/; // 999 - 9999\n var match5to6 = /\\d\\d\\d\\d\\d\\d?/; // 99999 - 999999\n var match1to3 = /\\d{1,3}/; // 0 - 999\n var match1to4 = /\\d{1,4}/; // 0 - 9999\n var match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\n\n var matchUnsigned = /\\d+/; // 0 - inf\n var matchSigned = /[+-]?\\d+/; // -inf - inf\n\n var matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\n var matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n\n var matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n\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 var matchWord = /[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\n var regexes = {};\n\n function addRegexToken (token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : 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(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken (token, callback) {\n var i, func = callback;\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 for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken (token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0;\n var MONTH = 1;\n var DATE = 2;\n var HOUR = 3;\n var MINUTE = 4;\n var SECOND = 5;\n var MILLISECOND = 6;\n var WEEK = 7;\n var WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? '' + y : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = 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 function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\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 return mom.isValid() ?\n mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1 (mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n }\n else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet (units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n\n function stringSet (units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units);\n for (var i = 0; i < prioritized.length; 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 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');\n function localeMonths (m, format) {\n if (!m) {\n return isArray(this._months) ? this._months :\n this._months['standalone'];\n }\n return isArray(this._months) ? this._months[m.month()] :\n this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');\n function localeMonthsShort (m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort :\n this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] :\n this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i, ii, mom, 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(mom, '').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('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth (mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth (value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth () {\n return daysInMonth(this.year(), this.month());\n }\n\n var defaultMonthsShortRegex = matchWord;\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 : this._monthsShortRegex;\n }\n }\n\n var defaultMonthsRegex = matchWord;\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 : this._monthsRegex;\n }\n }\n\n function computeMonthsParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\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;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n var 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, 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, resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek (mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek () {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear () {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek (input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek (input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays (ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\n function localeWeekdays (m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays :\n this._weekdays[(m && m !== true && this._weekdays.isFormat.test(format)) ? 'format' : 'standalone'];\n return (m === true) ? shiftWeekdays(weekdays, this._week.dow)\n : (m) ? weekdays[m.day()] : weekdays;\n }\n\n var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\n function localeWeekdaysShort (m) {\n return (m === true) ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\n function localeWeekdaysMin (m) {\n return (m === true) ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i, ii, mom, 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(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').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('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n var defaultWeekdaysRegex = matchWord;\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 : this._weekdaysRegex;\n }\n }\n\n var defaultWeekdaysShortRegex = matchWord;\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 : this._weekdaysShortRegex;\n }\n }\n\n var defaultWeekdaysMinRegex = matchWord;\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 : this._weekdaysMinRegex;\n }\n }\n\n\n function computeWeekdaysParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom, minp, shortp, 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 = this.weekdaysMin(mom, '');\n shortp = this.weekdaysShort(mom, '');\n longp = 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 for (i = 0; i < 7; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\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('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\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 '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\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 '' + this.hours() + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n function meridiem (token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem (isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var 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 var 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 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\n // MOMENTS\n\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 var getSetHour = makeGetSet('Hours', true);\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 var localeFamilies = {};\n var globalLocale;\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, j, next, locale, 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 (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\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 loadLocale(name) {\n var oldLocale = null;\n // TODO: Find a better way to register and load all the locales in Node\n if (!locales[name] && (typeof module !== 'undefined') &&\n module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n var aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {}\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 }\n else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n }\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('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale (name, config) {\n if (config !== null) {\n var locale, parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple('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 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\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, tmpLocale, parentConfig = baseConfig;\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\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 } 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 var a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :\n a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :\n a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :\n a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :\n a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :\n a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :\n -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\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 // 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 [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\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, date, input = [], currentDate, expectedWeekday, 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 (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\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] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : 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 (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\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(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\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 var 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 // 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 = /^\\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 var basicIsoRegex = /^\\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\n var tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\n\n var 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 // YYYYMM is NOT allowed by the standard\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/]\n ];\n\n // iso time formats and regexes\n var 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\n var aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\n\n // date from iso format\n function configFromISO(config) {\n var i, l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime, dateFormat, timeFormat, tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; 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 = isoTimes.length; 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 // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n var rfc2822 = /^(?:(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\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\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.replace(/\\([^)]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).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 var 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 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 var m = hm % 100, 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 if (match) {\n var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\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 iso format or fallback\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\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 // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\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 and will be removed in an upcoming major release. Please refer to ' +\n '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 // 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, parsedInput, tokens, token, skipped,\n stringLength = string.length,\n totalParsedInputLength = 0;\n\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n // console.log('token', token, 'parsedInput', parsedInput,\n // 'regex', getParseRegexForToken(token, config));\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(string.indexOf(parsedInput) + parsedInput.length);\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 }\n else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n }\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 = 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 (config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0) {\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(config._locale, config._a[HOUR], config._meridiem);\n\n configFromArray(config);\n checkOverflow(config);\n }\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\n scoreToBeat,\n i,\n currentScore;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\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 continue;\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 (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\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 config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\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 (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if ((isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)) {\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\n var 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 = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n for (var key in m) {\n if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n var unitHasDecimal = false;\n for (var i = 0; i < ordering.length; ++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 = +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 +\n 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 +\n quarters * 3 +\n 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 // FORMATTING\n\n function offset (token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset();\n var sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);\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\n if (matches === null) {\n return null;\n }\n\n var chunk = matches[matches.length - 1] || [];\n var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n var minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ?\n 0 :\n 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 = (isMoment(input) || isDate(input) ? input.valueOf() : 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() / 15) * 15;\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(this, createDuration(input - offset, 'm'), 1, false);\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 }\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\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() &&\n 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\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 var isoRegex = /^(-|\\+)?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)) {\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) {// checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\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 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 = other.month() - base.month() +\n (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(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val; val = period; period = tmp;\n }\n\n val = typeof val === 'string' ? +val : val;\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 var subtract = createAdder(-1, 'subtract');\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' :\n diff < -1 ? 'lastWeek' :\n diff < 0 ? 'lastDay' :\n diff < 1 ? 'sameDay' :\n diff < 2 ? 'nextDay' :\n diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1 (time, formats) {\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\n var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\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 (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\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 this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\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,\n zoneDelta,\n 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': output = monthDiff(this, that) / 12; break;\n case 'month': output = monthDiff(this, that); break;\n case 'quarter': output = monthDiff(this, that) / 3; break;\n case 'second': output = (this - that) / 1e3; break; // 1000\n case 'minute': output = (this - that) / 6e4; break; // 1000 * 60\n case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60\n case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst\n case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default: output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff (a, b) {\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, 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 var m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\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).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\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 var zone = '';\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n var prefix = '[' + func + '(\"]';\n var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';\n var datetime = '-MM-DD[T]HH:mm:ss.SSS';\n var suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format (inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({to: this, from: time}).locale(this.locale()).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 (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({from: this, to: time}).locale(this.locale()).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 var MS_PER_MINUTE = 60 * MS_PER_SECOND;\n var MS_PER_HOUR = 60 * MS_PER_MINUTE;\n var 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;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var 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(this.year(), this.month() - this.month() % 3, 1);\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\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(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\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;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var 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 = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 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 += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 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 [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\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 // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken (token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n\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(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\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(this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear () {\n return weeksInYear(this.year(), 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 getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter (input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ?\n (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :\n locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear (input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token;\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 // MOMENTS\n\n var 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 proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\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.isoWeeksInYear = getISOWeeksInYear;\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('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\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\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 var 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 var 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\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n var i;\n var out = [];\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 dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (toInt(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\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 var days = this._days;\n var months = this._months;\n var data = this._data;\n var seconds, minutes, hours, years, 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 (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0))) {\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 var months;\n var 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': return months;\n case 'quarter': return months / 3;\n case 'year': 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' : return days / 7 + milliseconds / 6048e5;\n case 'day' : return days + milliseconds / 864e5;\n case 'hour' : return days * 24 + milliseconds / 36e5;\n case 'minute' : return days * 1440 + milliseconds / 6e4;\n case 'second' : return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond': return Math.floor(days * 864e5) + milliseconds;\n default: throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1 () {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs (alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms');\n var asSeconds = makeAs('s');\n var asMinutes = makeAs('m');\n var asHours = makeAs('h');\n var asDays = makeAs('d');\n var asWeeks = makeAs('w');\n var asMonths = makeAs('M');\n var asQuarters = makeAs('Q');\n var asYears = makeAs('y');\n\n function clone$1 () {\n return createDuration(this);\n }\n\n function get$2 (units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds');\n var seconds = makeGetter('seconds');\n var minutes = makeGetter('minutes');\n var hours = makeGetter('hours');\n var days = makeGetter('days');\n var months = makeGetter('months');\n var years = makeGetter('years');\n\n function weeks () {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round;\n var 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\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, locale) {\n var duration = createDuration(posNegDuration).abs();\n var seconds = round(duration.as('s'));\n var minutes = round(duration.as('m'));\n var hours = round(duration.as('h'));\n var days = round(duration.as('d'));\n var months = round(duration.as('M'));\n var years = round(duration.as('y'));\n\n var a = 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 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 (withSuffix) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var locale = this.localeData();\n var output = relativeTime$1(this, !withSuffix, 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 var days = abs$1(this._days);\n var months = abs$1(this._months);\n var minutes, hours, years;\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\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n var Y = years;\n var M = months;\n var D = days;\n var h = hours;\n var m = minutes;\n var s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n var total = this.asSeconds();\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 var totalSign = total < 0 ? '-' : '';\n var ymSign = sign(this._months) !== sign(total) ? '-' : '';\n var daysSign = sign(this._days) !== sign(total) ? '-' : '';\n var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return totalSign + 'P' +\n (Y ? ymSign + Y + 'Y' : '') +\n (M ? ymSign + M + 'M' : '') +\n (D ? daysSign + D + 'D' : '') +\n ((h || m || s) ? 'T' : '') +\n (h ? hmsSign + h + 'H' : '') +\n (m ? hmsSign + m + 'M' : '') +\n (s ? hmsSign + s + 'S' : '');\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('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang;\n\n // Side effect imports\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, 10) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n // Side effect imports\n\n\n hooks.version = '2.24.0';\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","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className]);\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false && cache.compat !== undefined) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(\".\" + className, current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles };\n","import _inheritsLoose from '@babel/runtime/helpers/inheritsLoose';\nimport { createContext, forwardRef, createElement, Component } from 'react';\nimport createCache from '@emotion/cache';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { StyleSheet } from '@emotion/sheet';\nimport css from '@emotion/css';\nexport { default as css } from '@emotion/css';\n\nvar EmotionCacheContext = createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? createCache() : null);\nvar ThemeContext = createContext({});\nvar CacheProvider = EmotionCacheContext.Provider;\n\nvar withEmotionCache = function withEmotionCache(func) {\n var render = function render(props, ref) {\n return createElement(EmotionCacheContext.Consumer, null, function (cache) {\n return func(props, cache, ref);\n });\n }; // $FlowFixMe\n\n\n return forwardRef(render);\n};\n\n// thus we only need to replace what is a valid character for JS, but not for CSS\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar render = function render(cache, props, theme, ref) {\n var cssProp = theme === null ? props.css : props.css(theme); // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var type = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles);\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n var rules = insertStyles(cache, serialized, typeof type === 'string');\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n var ele = createElement(type, newProps);\n\n return ele;\n};\n\nvar Emotion =\n/* #__PURE__ */\nwithEmotionCache(function (props, cache, ref) {\n // use Context.read for the theme when it's stable\n if (typeof props.css === 'function') {\n return createElement(ThemeContext.Consumer, null, function (theme) {\n return render(cache, props, theme, ref);\n });\n }\n\n return render(cache, props, null, ref);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n} // $FlowFixMe\n\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return createElement.apply(undefined, args);\n }\n\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/css' like this: css`\" + props.css + \"`\");\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type;\n\n if (process.env.NODE_ENV !== 'production') {\n var error = new Error();\n\n if (error.stack) {\n // chrome\n var match = error.stack.match(/at (?:Object\\.|)jsx.*\\n\\s+at ([A-Z][A-Za-z$]+) /);\n\n if (!match) {\n // safari and firefox\n match = error.stack.match(/^.*\\n([A-Z][A-Za-z$]+)@/);\n }\n\n if (match) {\n newProps[labelPropName] = sanitizeIdentifier(match[1]);\n }\n }\n }\n\n createElementArgArray[1] = newProps;\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false;\nvar Global =\n/* #__PURE__ */\nwithEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n\n if (typeof styles === 'function') {\n return createElement(ThemeContext.Consumer, null, function (theme) {\n var serialized = serializeStyles([styles(theme)]);\n return createElement(InnerGlobal, {\n serialized: serialized,\n cache: cache\n });\n });\n }\n\n var serialized = serializeStyles([styles]);\n return createElement(InnerGlobal, {\n serialized: serialized,\n cache: cache\n });\n});\n\n// maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\nvar InnerGlobal =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(InnerGlobal, _React$Component);\n\n function InnerGlobal(props, context, updater) {\n return _React$Component.call(this, props, context, updater) || this;\n }\n\n var _proto = InnerGlobal.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.sheet = new StyleSheet({\n key: this.props.cache.key + \"-global\",\n nonce: this.props.cache.sheet.nonce,\n container: this.props.cache.sheet.container\n }); // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion-\" + this.props.cache.key + \"=\\\"\" + this.props.serialized.name + \"\\\"]\");\n\n if (node !== null) {\n this.sheet.tags.push(node);\n }\n\n if (this.props.cache.sheet.tags.length) {\n this.sheet.before = this.props.cache.sheet.tags[0];\n }\n\n this.insertStyles();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (prevProps.serialized.name !== this.props.serialized.name) {\n this.insertStyles();\n }\n };\n\n _proto.insertStyles = function insertStyles$1() {\n if (this.props.serialized.next !== undefined) {\n // insert keyframes\n insertStyles(this.props.cache, this.props.serialized.next, true);\n }\n\n if (this.sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = this.sheet.tags[this.sheet.tags.length - 1].nextElementSibling;\n this.sheet.before = element;\n this.sheet.flush();\n }\n\n this.props.cache.insert(\"\", this.props.serialized, this.sheet, false);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.sheet.flush();\n };\n\n _proto.render = function render() {\n\n return null;\n };\n\n return InnerGlobal;\n}(Component);\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar ClassNames = withEmotionCache(function (props, context) {\n return createElement(ThemeContext.Consumer, null, function (theme) {\n var hasRendered = false;\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, context.registered);\n\n {\n insertStyles(context, serialized, false);\n }\n\n return context.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(context.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: theme\n };\n var ele = props.children(content);\n hasRendered = true;\n\n return ele;\n });\n});\n\nexport { CacheProvider, ClassNames, Global, ThemeContext, jsx, keyframes, withEmotionCache };\n","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { getWindow, getDocument, strUndefined } from './EnvUtils';\r\n\r\n// Added to help with minfication\r\nexport const Undefined = strUndefined;\r\nlet prototype = \"prototype\";\r\nconst strFunction = \"function\";\r\nconst strObject = \"object\"\r\nconst strOnPrefix = \"on\";\r\nconst strAttachEvent = \"attachEvent\";\r\nconst strAddEventHelper = \"addEventListener\";\r\nconst strDetachEvent = \"detachEvent\";\r\nconst strRemoveEventListener = \"removeEventListener\";\r\n\r\nfunction _isTypeof(value: any, theType: string): boolean\r\n{\r\n return typeof value === theType;\r\n}\r\n\r\nfunction _isUndefined(value: any): boolean\r\n{\r\n return value === undefined || _isTypeof(value, Undefined);\r\n}\r\n\r\nfunction _isNullOrUndefined(value: any): boolean\r\n{\r\n return (_isUndefined(value) || value === null);\r\n}\r\n\r\nfunction _hasOwnProperty(obj:any, prop:string): boolean {\r\n return obj && Object[prototype].hasOwnProperty.call(obj, prop);\r\n}\r\n\r\nfunction _isObject(value: any): boolean {\r\n return _isTypeof(value, strObject);\r\n}\r\n\r\nfunction _isFunction(value: any): boolean {\r\n return _isTypeof(value, strFunction);\r\n}\r\n\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj Object to add the event too.\r\n * @param eventNameWithoutOn String that specifies any of the standard DHTML Events without \"on\" prefix\r\n * @param handlerRef Pointer that specifies the function to call when event fires\r\n * @param useCapture [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nfunction _attachEvent(obj:any, eventNameWithoutOn:string, handlerRef:any, useCapture:boolean = false) {\r\n let result = false;\r\n if (!_isNullOrUndefined(obj)) {\r\n try {\r\n if (!_isNullOrUndefined(obj[strAddEventHelper])) {\r\n // all browsers except IE before version 9\r\n obj[strAddEventHelper](eventNameWithoutOn, handlerRef, useCapture);\r\n result = true;\r\n } else if (!_isNullOrUndefined(obj[strAttachEvent])) {\r\n // IE before version 9 \r\n obj[strAttachEvent](strOnPrefix + eventNameWithoutOn, handlerRef);\r\n result = true;\r\n }\r\n } catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object to remove the event from\r\n * @param eventNameWithoutOn {string} - The name of the event\r\n * @param handlerRef {any} - The callback function that needs to be executed for the given event\r\n * @param useCapture [Optional] Defaults to false\r\n */\r\nfunction _detachEvent(obj:any, eventNameWithoutOn:string, handlerRef:any, useCapture:boolean = false) {\r\n if (!_isNullOrUndefined(obj)) {\r\n try {\r\n if (!_isNullOrUndefined(obj[strRemoveEventListener])) {\r\n obj[strRemoveEventListener](eventNameWithoutOn, handlerRef, useCapture);\r\n } else if (!_isNullOrUndefined(obj[strDetachEvent])) {\r\n obj[strDetachEvent](strOnPrefix + eventNameWithoutOn, handlerRef);\r\n }\r\n } catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n}\r\n\r\nexport class CoreUtils {\r\n public static _canUseCookies: boolean;\r\n\r\n public static isTypeof:(value: any, theType: string) => boolean = _isTypeof;\r\n \r\n public static isUndefined:(value: any) => boolean = _isUndefined;\r\n \r\n public static isNullOrUndefined:(value: any) => boolean = _isNullOrUndefined;\r\n \r\n public static hasOwnProperty:(obj:any, prop:string) => boolean = _hasOwnProperty;\r\n \r\n /**\r\n * Checks if the passed of value is a function.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a boolean, false otherwise.\r\n */\r\n public static isFunction:(value: any) => boolean = _isFunction;\r\n\r\n /**\r\n * Checks if the passed of value is a function.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a boolean, false otherwise.\r\n */\r\n public static isObject:(value: any) => boolean = _isObject;\r\n\r\n /**\r\n * Check if an object is of type Date\r\n */\r\n public static isDate(obj: any): boolean {\r\n return Object[prototype].toString.call(obj) === \"[object Date]\";\r\n }\r\n\r\n /**\r\n * Checks if the type of value is a string.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a string, false otherwise.\r\n */\r\n public static isString(value: any): boolean {\r\n return _isTypeof(value, \"string\");\r\n }\r\n\r\n /**\r\n * Checks if the type of value is a number.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a number, false otherwise.\r\n */\r\n public static isNumber(value: any): boolean {\r\n return _isTypeof(value, \"number\");\r\n }\r\n\r\n /**\r\n * Checks if the type of value is a boolean.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a boolean, false otherwise.\r\n */\r\n public static isBoolean(value: any): boolean {\r\n return _isTypeof(value, \"boolean\");\r\n }\r\n\r\n /**\r\n * Creates a new GUID.\r\n * @return {string} A GUID.\r\n */\r\n\r\n public static disableCookies() {\r\n CoreUtils._canUseCookies = false;\r\n }\r\n\r\n public static newGuid():  string  {\r\n return  'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(GuidRegex,  (c) => {\r\n const  r  =  (Math.random()  *  16  |  0),  v  =  (c  ===  'x'  ?  r  :  r  &  0x3  |  0x8);\r\n return  v.toString(16);\r\n });\r\n }\r\n\r\n /**\r\n * Convert a date to I.S.O. format in IE8\r\n */\r\n public static toISOString(date: Date) {\r\n if (CoreUtils.isDate(date)) {\r\n const pad = (num: number) => {\r\n let r = String(num);\r\n if (r.length === 1) {\r\n r = \"0\" + r;\r\n }\r\n\r\n return r;\r\n }\r\n\r\n return date.getUTCFullYear()\r\n + \"-\" + pad(date.getUTCMonth() + 1)\r\n + \"-\" + pad(date.getUTCDate())\r\n + \"T\" + pad(date.getUTCHours())\r\n + \":\" + pad(date.getUTCMinutes())\r\n + \":\" + pad(date.getUTCSeconds())\r\n + \".\" + String((date.getUTCMilliseconds() / 1000).toFixed(3)).slice(2, 5)\r\n + \"Z\";\r\n }\r\n }\r\n\r\n /**\r\n * Performs the specified action for each element in an array. This helper exists to avoid adding a polyfil for older browsers\r\n * that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype\r\n * implementation. Note: For consistency this will not use the Array.prototype.xxxx implementation if it exists as this would\r\n * cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.\r\n * @param thisArg [Optional] An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\n public static arrForEach(arr: T[], callbackfn: (value: T, index?: number, array?: T[]) => void, thisArg?: any):void {\r\n let len = arr.length;\r\n for (let idx = 0; idx < len; ++idx) {\r\n if (idx in arr) {\r\n callbackfn.call(thisArg || arr, arr[idx], idx, arr);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Returns the index of the first occurrence of a value in an array. This helper exists to avoid adding a polyfil for older browsers\r\n * that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype\r\n * implementation. Note: For consistency this will not use the Array.prototype.xxxx implementation if it exists as this would\r\n * cause a testing requirement to test with and without the implementations\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\r\n */\r\n public static arrIndexOf(arr: T[], searchElement: T, fromIndex?: number): number {\r\n let len = arr.length;\r\n let from = fromIndex || 0;\r\n for (let lp = Math.max(from >= 0 ? from : len - Math.abs(from), 0); lp < len; lp++) {\r\n if (lp in arr && arr[lp] === searchElement) {\r\n return lp;\r\n }\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n /**\r\n * Calls a defined callback function on each element of an array, and returns an array that contains the results. This helper exists \r\n * to avoid adding a polyfil for older browsers that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page \r\n * checks for presence/absence of the prototype implementation. Note: For consistency this will not use the Array.prototype.xxxx \r\n * implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\n public static arrMap(arr: T[], callbackfn: (value: T, index?: number, array?: T[]) => R, thisArg?: any): R[] {\r\n let len = arr.length;\r\n let _this = thisArg || arr;\r\n let results = new Array(len);\r\n \r\n for (let lp = 0; lp < len; lp++) {\r\n if (lp in arr) {\r\n results[lp] = callbackfn.call(_this, arr[lp], arr);\r\n }\r\n }\r\n\r\n return results;\r\n }\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is\r\n * provided as an argument in the next call to the callback function. This helper exists to avoid adding a polyfil for older browsers that do not define\r\n * Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype implementation. Note: For consistency \r\n * this will not use the Array.prototype.xxxx implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n */\r\n public static arrReduce(arr: T[], callbackfn: (previousValue: T|R, currentValue?: T, currentIndex?: number, array?: T[]) => R, initialValue?: R): R {\r\n let len = arr.length;\r\n let lp = 0;\r\n let value;\r\n\r\n // Specifically checking the number of passed arguments as the value could be anything\r\n if (arguments.length >= 3) {\r\n value = arguments[2];\r\n } else {\r\n while (lp < len && !(lp in arr)) {\r\n lp++;\r\n }\r\n\r\n value = arr[lp++];\r\n }\r\n\r\n while (lp < len) {\r\n if (lp in arr) {\r\n value = callbackfn(value, arr[lp], lp, arr);\r\n }\r\n lp++;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n /**\r\n * Creates an object that has the specified prototype, and that optionally contains specified properties. This helper exists to avoid adding a polyfil\r\n * for older browsers that do not define Object.create eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.create implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param obj Object to use as a prototype. May be null\r\n */\r\n public static objCreate(obj:object):any {\r\n if (obj == null) {\r\n return {};\r\n }\r\n\r\n if (!_isObject(obj) && !_isFunction(obj)) {\r\n throw new TypeError('Object prototype may only be an Object: ' + obj)\r\n }\r\n\r\n function tmpFunc() {};\r\n tmpFunc[prototype] = obj;\r\n\r\n return new tmpFunc();\r\n }\r\n\r\n /**\r\n * Returns the names of the enumerable string properties and methods of an object. This helper exists to avoid adding a polyfil for older browsers \r\n * that do not define Object.keys eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.keys implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param obj Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\r\n */\r\n public static objKeys(obj: {}): string[] {\r\n var hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString');\r\n\r\n if (!_isFunction(obj) && (!_isObject(obj) || obj === null)) {\r\n throw new TypeError('objKeys called on non-object');\r\n }\r\n\r\n let result:string[] = [];\r\n \r\n for (let prop in obj) {\r\n if (_hasOwnProperty(obj, prop)) {\r\n result.push(prop);\r\n }\r\n }\r\n\r\n if (hasDontEnumBug) {\r\n let dontEnums = [\r\n 'toString',\r\n 'toLocaleString',\r\n 'valueOf',\r\n 'hasOwnProperty',\r\n 'isPrototypeOf',\r\n 'propertyIsEnumerable',\r\n 'constructor'\r\n ];\r\n let dontEnumsLength = dontEnums.length;\r\n \r\n for (let lp = 0; lp < dontEnumsLength; lp++) {\r\n if (_hasOwnProperty(obj, dontEnums[lp])) {\r\n result.push(dontEnums[lp]);\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Try to define get/set object property accessors for the target object/prototype, this will provide compatibility with\r\n * existing API definition when run within an ES5+ container that supports accessors but still enable the code to be loaded\r\n * and executed in an ES3 container, providing basic IE8 compatibility.\r\n * @param target The object on which to define the property.\r\n * @param prop The name of the property to be defined or modified.\r\n * @param getProp The getter function to wire against the getter.\r\n * @param setProp The setter function to wire against the setter.\r\n * @returns True if it was able to create the accessors otherwise false\r\n */\r\n public static objDefineAccessors(target:any, prop:string, getProp?:() => T, setProp?: (v:T) => void) : boolean {\r\n let defineProp = Object[\"defineProperty\"];\r\n if (defineProp) {\r\n try {\r\n let descriptor:PropertyDescriptor = {\r\n enumerable: true,\r\n configurable: true\r\n }\r\n\r\n if (getProp) {\r\n descriptor.get = getProp;\r\n }\r\n if (setProp) {\r\n descriptor.set = setProp;\r\n }\r\n\r\n defineProp(target, prop, descriptor);\r\n return true;\r\n } catch (e) {\r\n // IE8 Defines a defineProperty on Object but it's only supported for DOM elements so it will throw\r\n // We will just ignore this here.\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Trys to add an event handler for the specified event to the window, body and document\r\n * @param eventName {string} - The name of the event\r\n * @param callback {any} - The callback function that needs to be executed for the given event\r\n * @return {boolean} - true if the handler was successfully added\r\n */\r\n public static addEventHandler(eventName: string, callback: any): boolean {\r\n let result = false;\r\n let w = getWindow();\r\n if (w) {\r\n result = _attachEvent(w, eventName, callback);\r\n result = _attachEvent(w[\"body\"], eventName, callback) || result;\r\n }\r\n\r\n let doc = getDocument();\r\n if (doc) {\r\n result = EventHelper.Attach(doc, eventName, callback) || result;\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n\r\nconst GuidRegex = /[xy]/g;\r\n\r\nexport class EventHelper {\r\n /**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj Object to add the event too.\r\n * @param eventNameWithoutOn String that specifies any of the standard DHTML Events without \"on\" prefix\r\n * @param handlerRef Pointer that specifies the function to call when event fires\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\n public static Attach:(obj:any, eventNameWithoutOn:string, handlerRef:any) => boolean = _attachEvent;\r\n\r\n /**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @deprecated Use {@link EventHelper#Attach} as we are already in a class call EventHelper the extra \"Event\" just causes a larger result\r\n * @param obj Object to add the event too.\r\n * @param eventNameWithoutOn String that specifies any of the standard DHTML Events without \"on\" prefix\r\n * @param handlerRef Pointer that specifies the function to call when event fires\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\n public static AttachEvent:(obj:any, eventNameWithoutOn:string, handlerRef:any) => boolean = _attachEvent;\r\n\r\n /**\r\n * Removes an event handler for the specified event\r\n * @param eventName {string} - The name of the event\r\n * @param callback {any} - The callback function that needs to be executed for the given event\r\n * @return {boolean} - true if the handler was successfully added\r\n */\r\n public static Detach:(obj:any, eventNameWithoutOn:string, handlerRef:any) => void = _detachEvent;\r\n\r\n /**\r\n * Removes an event handler for the specified event\r\n * @deprecated Use {@link EventHelper#Detach} as we are already in a class call EventHelper the extra \"Event\" just causes a larger result\r\n * @param eventName {string} - The name of the event\r\n * @param callback {any} - The callback function that needs to be executed for the given event\r\n * @return {boolean} - true if the handler was successfully added\r\n */\r\n public static DetachEvent:(obj:any, eventNameWithoutOn:string, handlerRef:any) => void = _detachEvent;\r\n}\r\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}","export default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}","export default function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { Component } from 'react';\nimport { jsx, keyframes, ClassNames } from '@emotion/core';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport _typeof from '@babel/runtime/helpers/esm/typeof';\nimport { g as getBoundingClientObj, a as getScrollParent, b as getScrollTop, c as animatedScrollTo, s as scrollTo } from './chunk-39d3fda8.browser.esm.js';\nimport _css from '@emotion/css';\nimport _taggedTemplateLiteral from '@babel/runtime/helpers/esm/taggedTemplateLiteral';\nimport AutosizeInput from 'react-input-autosize';\n\nfunction getMenuPlacement(_ref) {\n var maxHeight = _ref.maxHeight,\n menuEl = _ref.menuEl,\n minHeight = _ref.minHeight,\n placement = _ref.placement,\n shouldScroll = _ref.shouldScroll,\n isFixedPosition = _ref.isFixedPosition,\n theme = _ref.theme;\n var spacing = theme.spacing;\n var scrollParent = getScrollParent(menuEl);\n var defaultState = {\n placement: 'bottom',\n maxHeight: maxHeight\n }; // something went wrong, return default state\n\n if (!menuEl || !menuEl.offsetParent) return defaultState; // we can't trust `scrollParent.scrollHeight` --> it may increase when\n // the menu is rendered\n\n var _scrollParent$getBoun = scrollParent.getBoundingClientRect(),\n scrollHeight = _scrollParent$getBoun.height;\n\n var _menuEl$getBoundingCl = menuEl.getBoundingClientRect(),\n menuBottom = _menuEl$getBoundingCl.bottom,\n menuHeight = _menuEl$getBoundingCl.height,\n menuTop = _menuEl$getBoundingCl.top;\n\n var _menuEl$offsetParent$ = menuEl.offsetParent.getBoundingClientRect(),\n containerTop = _menuEl$offsetParent$.top;\n\n var viewHeight = window.innerHeight;\n var scrollTop = getScrollTop(scrollParent);\n var marginBottom = parseInt(getComputedStyle(menuEl).marginBottom, 10);\n var marginTop = parseInt(getComputedStyle(menuEl).marginTop, 10);\n var viewSpaceAbove = containerTop - marginTop;\n var viewSpaceBelow = viewHeight - menuTop;\n var scrollSpaceAbove = viewSpaceAbove + scrollTop;\n var scrollSpaceBelow = scrollHeight - scrollTop - menuTop;\n var scrollDown = menuBottom - viewHeight + scrollTop + marginBottom;\n var scrollUp = scrollTop + menuTop - marginTop;\n var scrollDuration = 160;\n\n switch (placement) {\n case 'auto':\n case 'bottom':\n // 1: the menu will fit, do nothing\n if (viewSpaceBelow >= menuHeight) {\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n } // 2: the menu will fit, if scrolled\n\n\n if (scrollSpaceBelow >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n }\n\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n } // 3: the menu will fit, if constrained\n\n\n if (!isFixedPosition && scrollSpaceBelow >= minHeight || isFixedPosition && viewSpaceBelow >= minHeight) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n } // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n\n\n var constrainedHeight = isFixedPosition ? viewSpaceBelow - marginBottom : scrollSpaceBelow - marginBottom;\n return {\n placement: 'bottom',\n maxHeight: constrainedHeight\n };\n } // 4. Forked beviour when there isn't enough space below\n // AUTO: flip the menu, render above\n\n\n if (placement === 'auto' || isFixedPosition) {\n // may need to be constrained after flipping\n var _constrainedHeight = maxHeight;\n var spaceAbove = isFixedPosition ? viewSpaceAbove : scrollSpaceAbove;\n\n if (spaceAbove >= minHeight) {\n _constrainedHeight = Math.min(spaceAbove - marginBottom - spacing.controlHeight, maxHeight);\n }\n\n return {\n placement: 'top',\n maxHeight: _constrainedHeight\n };\n } // BOTTOM: allow browser to increase scrollable area and immediately set scroll\n\n\n if (placement === 'bottom') {\n scrollTo(scrollParent, scrollDown);\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n }\n\n break;\n\n case 'top':\n // 1: the menu will fit, do nothing\n if (viewSpaceAbove >= menuHeight) {\n return {\n placement: 'top',\n maxHeight: maxHeight\n };\n } // 2: the menu will fit, if scrolled\n\n\n if (scrollSpaceAbove >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n\n return {\n placement: 'top',\n maxHeight: maxHeight\n };\n } // 3: the menu will fit, if constrained\n\n\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n var _constrainedHeight2 = maxHeight; // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n _constrainedHeight2 = isFixedPosition ? viewSpaceAbove - marginTop : scrollSpaceAbove - marginTop;\n }\n\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n\n return {\n placement: 'top',\n maxHeight: _constrainedHeight2\n };\n } // 4. not enough space, the browser WILL NOT increase scrollable area when\n // absolutely positioned element rendered above the viewport (only below).\n // Flip the menu, render below\n\n\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n\n default:\n throw new Error(\"Invalid placement provided \\\"\".concat(placement, \"\\\".\"));\n } // fulfil contract with flow: implicit return value of undefined\n\n\n return defaultState;\n} // Menu Component\n// ------------------------------\n\nfunction alignToControl(placement) {\n var placementToCSSProp = {\n bottom: 'top',\n top: 'bottom'\n };\n return placement ? placementToCSSProp[placement] : 'bottom';\n}\n\nvar coercePlacement = function coercePlacement(p) {\n return p === 'auto' ? 'bottom' : p;\n};\n\nvar menuCSS = function menuCSS(_ref2) {\n var _ref3;\n\n var placement = _ref2.placement,\n _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n spacing = _ref2$theme.spacing,\n colors = _ref2$theme.colors;\n return _ref3 = {\n label: 'menu'\n }, _defineProperty(_ref3, alignToControl(placement), '100%'), _defineProperty(_ref3, \"backgroundColor\", colors.neutral0), _defineProperty(_ref3, \"borderRadius\", borderRadius), _defineProperty(_ref3, \"boxShadow\", '0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)'), _defineProperty(_ref3, \"marginBottom\", spacing.menuGutter), _defineProperty(_ref3, \"marginTop\", spacing.menuGutter), _defineProperty(_ref3, \"position\", 'absolute'), _defineProperty(_ref3, \"width\", '100%'), _defineProperty(_ref3, \"zIndex\", 1), _ref3;\n}; // NOTE: internal only\n\nvar MenuPlacer =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(MenuPlacer, _Component);\n\n function MenuPlacer() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, MenuPlacer);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(MenuPlacer)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {\n maxHeight: _this.props.maxMenuHeight,\n placement: null\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getPlacement\", function (ref) {\n var _this$props = _this.props,\n minMenuHeight = _this$props.minMenuHeight,\n maxMenuHeight = _this$props.maxMenuHeight,\n menuPlacement = _this$props.menuPlacement,\n menuPosition = _this$props.menuPosition,\n menuShouldScrollIntoView = _this$props.menuShouldScrollIntoView,\n theme = _this$props.theme;\n var getPortalPlacement = _this.context.getPortalPlacement;\n if (!ref) return; // DO NOT scroll if position is fixed\n\n var isFixedPosition = menuPosition === 'fixed';\n var shouldScroll = menuShouldScrollIntoView && !isFixedPosition;\n var state = getMenuPlacement({\n maxHeight: maxMenuHeight,\n menuEl: ref,\n minHeight: minMenuHeight,\n placement: menuPlacement,\n shouldScroll: shouldScroll,\n isFixedPosition: isFixedPosition,\n theme: theme\n });\n if (getPortalPlacement) getPortalPlacement(state);\n\n _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getUpdatedProps\", function () {\n var menuPlacement = _this.props.menuPlacement;\n var placement = _this.state.placement || coercePlacement(menuPlacement);\n return _objectSpread({}, _this.props, {\n placement: placement,\n maxHeight: _this.state.maxHeight\n });\n });\n\n return _this;\n }\n\n _createClass(MenuPlacer, [{\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n return children({\n ref: this.getPlacement,\n placerProps: this.getUpdatedProps()\n });\n }\n }]);\n\n return MenuPlacer;\n}(Component);\n\n_defineProperty(MenuPlacer, \"contextTypes\", {\n getPortalPlacement: PropTypes.func\n});\n\nvar Menu = function Menu(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('menu', props),\n className: cx({\n menu: true\n }, className)\n }, innerProps, {\n ref: innerRef\n }), children);\n};\n// Menu List\n// ==============================\n\nvar menuListCSS = function menuListCSS(_ref4) {\n var maxHeight = _ref4.maxHeight,\n baseUnit = _ref4.theme.spacing.baseUnit;\n return {\n maxHeight: maxHeight,\n overflowY: 'auto',\n paddingBottom: baseUnit,\n paddingTop: baseUnit,\n position: 'relative',\n // required for offset[Height, Top] > keyboard scroll\n WebkitOverflowScrolling: 'touch'\n };\n};\nvar MenuList = function MenuList(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isMulti = props.isMulti,\n innerRef = props.innerRef;\n return jsx(\"div\", {\n css: getStyles('menuList', props),\n className: cx({\n 'menu-list': true,\n 'menu-list--is-multi': isMulti\n }, className),\n ref: innerRef\n }, children);\n}; // ==============================\n// Menu Notices\n// ==============================\n\nvar noticeCSS = function noticeCSS(_ref5) {\n var _ref5$theme = _ref5.theme,\n baseUnit = _ref5$theme.spacing.baseUnit,\n colors = _ref5$theme.colors;\n return {\n color: colors.neutral40,\n padding: \"\".concat(baseUnit * 2, \"px \").concat(baseUnit * 3, \"px\"),\n textAlign: 'center'\n };\n};\n\nvar noOptionsMessageCSS = noticeCSS;\nvar loadingMessageCSS = noticeCSS;\nvar NoOptionsMessage = function NoOptionsMessage(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('noOptionsMessage', props),\n className: cx({\n 'menu-notice': true,\n 'menu-notice--no-options': true\n }, className)\n }, innerProps), children);\n};\nNoOptionsMessage.defaultProps = {\n children: 'No options'\n};\nvar LoadingMessage = function LoadingMessage(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('loadingMessage', props),\n className: cx({\n 'menu-notice': true,\n 'menu-notice--loading': true\n }, className)\n }, innerProps), children);\n};\nLoadingMessage.defaultProps = {\n children: 'Loading...'\n}; // ==============================\n// Menu Portal\n// ==============================\n\nvar menuPortalCSS = function menuPortalCSS(_ref6) {\n var rect = _ref6.rect,\n offset = _ref6.offset,\n position = _ref6.position;\n return {\n left: rect.left,\n position: position,\n top: offset,\n width: rect.width,\n zIndex: 1\n };\n};\nvar MenuPortal =\n/*#__PURE__*/\nfunction (_Component2) {\n _inherits(MenuPortal, _Component2);\n\n function MenuPortal() {\n var _getPrototypeOf3;\n\n var _this2;\n\n _classCallCheck(this, MenuPortal);\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this2 = _possibleConstructorReturn(this, (_getPrototypeOf3 = _getPrototypeOf(MenuPortal)).call.apply(_getPrototypeOf3, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), \"state\", {\n placement: null\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), \"getPortalPlacement\", function (_ref7) {\n var placement = _ref7.placement;\n var initialPlacement = coercePlacement(_this2.props.menuPlacement); // avoid re-renders if the placement has not changed\n\n if (placement !== initialPlacement) {\n _this2.setState({\n placement: placement\n });\n }\n });\n\n return _this2;\n }\n\n _createClass(MenuPortal, [{\n key: \"getChildContext\",\n value: function getChildContext() {\n return {\n getPortalPlacement: this.getPortalPlacement\n };\n } // callback for occassions where the menu must \"flip\"\n\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n appendTo = _this$props2.appendTo,\n children = _this$props2.children,\n controlElement = _this$props2.controlElement,\n menuPlacement = _this$props2.menuPlacement,\n position = _this$props2.menuPosition,\n getStyles = _this$props2.getStyles;\n var isFixed = position === 'fixed'; // bail early if required elements aren't present\n\n if (!appendTo && !isFixed || !controlElement) {\n return null;\n }\n\n var placement = this.state.placement || coercePlacement(menuPlacement);\n var rect = getBoundingClientObj(controlElement);\n var scrollDistance = isFixed ? 0 : window.pageYOffset;\n var offset = rect[placement] + scrollDistance;\n var state = {\n offset: offset,\n position: position,\n rect: rect\n }; // same wrapper element whether fixed or portalled\n\n var menuWrapper = jsx(\"div\", {\n css: getStyles('menuPortal', state)\n }, children);\n return appendTo ? createPortal(menuWrapper, appendTo) : menuWrapper;\n }\n }]);\n\n return MenuPortal;\n}(Component);\n\n_defineProperty(MenuPortal, \"childContextTypes\", {\n getPortalPlacement: PropTypes.func\n});\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && _typeof(a) == 'object' && _typeof(b) == 'object') {\n var arrA = isArray(a),\n arrB = isArray(b),\n i,\n length,\n key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\n }\n\n if (arrA != arrB) return false;\n var dateA = a instanceof Date,\n dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n var regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length) {\n return false;\n }\n\n for (i = length; i-- !== 0;) {\n if (!hasProp.call(b, keys[i])) return false;\n } // end fast-deep-equal\n // Custom handling for React\n\n\n for (i = length; i-- !== 0;) {\n key = keys[i];\n\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n } // fast-deep-equal index.js 2.0.1\n\n\n return true;\n }\n\n return a !== a && b !== b;\n} // end fast-deep-equal\n\n\nfunction exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (error.message && error.message.match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n } // some other error. we should definitely know about these\n\n\n throw error;\n }\n}\n\nvar containerCSS = function containerCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isRtl = _ref.isRtl;\n return {\n label: 'container',\n direction: isRtl ? 'rtl' : null,\n pointerEvents: isDisabled ? 'none' : null,\n // cancel mouse events when disabled\n position: 'relative'\n };\n};\nvar SelectContainer = function SelectContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isDisabled = props.isDisabled,\n isRtl = props.isRtl;\n return jsx(\"div\", _extends({\n css: getStyles('container', props),\n className: cx({\n '--is-disabled': isDisabled,\n '--is-rtl': isRtl\n }, className)\n }, innerProps), children);\n}; // ==============================\n// Value Container\n// ==============================\n\nvar valueContainerCSS = function valueContainerCSS(_ref2) {\n var spacing = _ref2.theme.spacing;\n return {\n alignItems: 'center',\n display: 'flex',\n flex: 1,\n flexWrap: 'wrap',\n padding: \"\".concat(spacing.baseUnit / 2, \"px \").concat(spacing.baseUnit * 2, \"px\"),\n WebkitOverflowScrolling: 'touch',\n position: 'relative',\n overflow: 'hidden'\n };\n};\nvar ValueContainer =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ValueContainer, _Component);\n\n function ValueContainer() {\n _classCallCheck(this, ValueContainer);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ValueContainer).apply(this, arguments));\n }\n\n _createClass(ValueContainer, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n children = _this$props.children,\n className = _this$props.className,\n cx = _this$props.cx,\n isMulti = _this$props.isMulti,\n getStyles = _this$props.getStyles,\n hasValue = _this$props.hasValue;\n return jsx(\"div\", {\n css: getStyles('valueContainer', this.props),\n className: cx({\n 'value-container': true,\n 'value-container--is-multi': isMulti,\n 'value-container--has-value': hasValue\n }, className)\n }, children);\n }\n }]);\n\n return ValueContainer;\n}(Component); // ==============================\n// Indicator Container\n// ==============================\n\nvar indicatorsContainerCSS = function indicatorsContainerCSS() {\n return {\n alignItems: 'center',\n alignSelf: 'stretch',\n display: 'flex',\n flexShrink: 0\n };\n};\nvar IndicatorsContainer = function IndicatorsContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles;\n return jsx(\"div\", {\n css: getStyles('indicatorsContainer', props),\n className: cx({\n indicators: true\n }, className)\n }, children);\n};\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteral([\"\\n 0%, 80%, 100% { opacity: 0; }\\n 40% { opacity: 1; }\\n\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nvar _ref2 = process.env.NODE_ENV === \"production\" ? {\n name: \"19bqh2r\",\n styles: \"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0;\"\n} : {\n name: \"19bqh2r\",\n styles: \"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0JJIiwiZmlsZSI6ImluZGljYXRvcnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyB0eXBlIE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBqc3gsIGtleWZyYW1lcyB9IGZyb20gJ0BlbW90aW9uL2NvcmUnO1xuXG5pbXBvcnQgdHlwZSB7IENvbW1vblByb3BzLCBUaGVtZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEljb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgU3ZnID0gKHsgc2l6ZSwgLi4ucHJvcHMgfTogeyBzaXplOiBudW1iZXIgfSkgPT4gKFxuICA8c3ZnXG4gICAgaGVpZ2h0PXtzaXplfVxuICAgIHdpZHRoPXtzaXplfVxuICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgIGNzcz17e1xuICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICBmaWxsOiAnY3VycmVudENvbG9yJyxcbiAgICAgIGxpbmVIZWlnaHQ6IDEsXG4gICAgICBzdHJva2U6ICdjdXJyZW50Q29sb3InLFxuICAgICAgc3Ryb2tlV2lkdGg6IDAsXG4gICAgfX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pO1xuXG5leHBvcnQgY29uc3QgQ3Jvc3NJY29uID0gKHByb3BzOiBhbnkpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTE0LjM0OCAxNC44NDljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDBsLTIuNjUxLTMuMDMwLTIuNjUxIDMuMDI5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtMC40NjktMC40NjktMC40NjktMS4yMjggMC0xLjY5N3MxLjIyOC0wLjQ2OSAxLjY5NyAwbDIuNjUyIDMuMDMxIDIuNjUxLTMuMDMxYzAuNDY5LTAuNDY5IDEuMjI4LTAuNDY5IDEuNjk3IDBzMC40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMwLjQ2OSAwLjQ2OSAwLjQ2OSAxLjIyOSAwIDEuNjk4elwiIC8+XG4gIDwvU3ZnPlxuKTtcbmV4cG9ydCBjb25zdCBEb3duQ2hldnJvbiA9IChwcm9wczogYW55KSA9PiAoXG4gIDxTdmcgc2l6ZT17MjB9IHsuLi5wcm9wc30+XG4gICAgPHBhdGggZD1cIk00LjUxNiA3LjU0OGMwLjQzNi0wLjQ0NiAxLjA0My0wLjQ4MSAxLjU3NiAwbDMuOTA4IDMuNzQ3IDMuOTA4LTMuNzQ3YzAuNTMzLTAuNDgxIDEuMTQxLTAuNDQ2IDEuNTc0IDAgMC40MzYgMC40NDUgMC40MDggMS4xOTcgMCAxLjYxNS0wLjQwNiAwLjQxOC00LjY5NSA0LjUwMi00LjY5NSA0LjUwMi0wLjIxNyAwLjIyMy0wLjUwMiAwLjMzNS0wLjc4NyAwLjMzNXMtMC41Ny0wLjExMi0wLjc4OS0wLjMzNWMwIDAtNC4yODctNC4wODQtNC42OTUtNC41MDJzLTAuNDM2LTEuMTcgMC0xLjYxNXpcIiAvPlxuICA8L1N2Zz5cbik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRHJvcGRvd24gJiBDbGVhciBCdXR0b25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgSW5kaWNhdG9yUHJvcHMgPSBDb21tb25Qcm9wcyAmIHtcbiAgLyoqIFRoZSBjaGlsZHJlbiB0byBiZSByZW5kZXJlZCBpbnNpZGUgdGhlIGluZGljYXRvci4gKi9cbiAgY2hpbGRyZW46IE5vZGUsXG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogYW55LFxuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuLFxuICAvKiogV2hldGhlciB0aGUgdGV4dCBpcyByaWdodCB0byBsZWZ0ICovXG4gIGlzUnRsOiBib29sZWFuLFxufTtcblxuY29uc3QgYmFzZUNTUyA9ICh7XG4gIGlzRm9jdXNlZCxcbiAgdGhlbWU6IHtcbiAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gICAgY29sb3JzLFxuICB9LFxufTogSW5kaWNhdG9yUHJvcHMpID0+ICh7XG4gIGxhYmVsOiAnaW5kaWNhdG9yQ29udGFpbmVyJyxcbiAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHBhZGRpbmc6IGJhc2VVbml0ICogMixcbiAgdHJhbnNpdGlvbjogJ2NvbG9yIDE1MG1zJyxcblxuICAnOmhvdmVyJzoge1xuICAgIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDgwIDogY29sb3JzLm5ldXRyYWw0MCxcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgZHJvcGRvd25JbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xuZXhwb3J0IGNvbnN0IERyb3Bkb3duSW5kaWNhdG9yID0gKHByb3BzOiBJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIGN4LCBnZXRTdHlsZXMsIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2Ryb3Bkb3duSW5kaWNhdG9yJywgcHJvcHMpfVxuICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAge1xuICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgICAnZHJvcGRvd24taW5kaWNhdG9yJzogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbiB8fCA8RG93bkNoZXZyb24gLz59XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgY2xlYXJJbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xuZXhwb3J0IGNvbnN0IENsZWFySW5kaWNhdG9yID0gKHByb3BzOiBJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIGN4LCBnZXRTdHlsZXMsIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2NsZWFySW5kaWNhdG9yJywgcHJvcHMpfVxuICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAge1xuICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgICAnY2xlYXItaW5kaWNhdG9yJzogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbiB8fCA8Q3Jvc3NJY29uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTZXBhcmF0b3Jcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG50eXBlIFNlcGFyYXRvclN0YXRlID0geyBpc0Rpc2FibGVkOiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCBpbmRpY2F0b3JTZXBhcmF0b3JDU1MgPSAoe1xuICBpc0Rpc2FibGVkLFxuICB0aGVtZToge1xuICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICBjb2xvcnMsXG4gIH0sXG59OiBDb21tb25Qcm9wcyAmIFNlcGFyYXRvclN0YXRlKSA9PiAoe1xuICBsYWJlbDogJ2luZGljYXRvclNlcGFyYXRvcicsXG4gIGFsaWduU2VsZjogJ3N0cmV0Y2gnLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGlzRGlzYWJsZWQgPyBjb2xvcnMubmV1dHJhbDEwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgbWFyZ2luQm90dG9tOiBiYXNlVW5pdCAqIDIsXG4gIG1hcmdpblRvcDogYmFzZVVuaXQgKiAyLFxuICB3aWR0aDogMSxcbn0pO1xuXG5leHBvcnQgY29uc3QgSW5kaWNhdG9yU2VwYXJhdG9yID0gKHByb3BzOiBJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7IGNsYXNzTmFtZSwgY3gsIGdldFN0eWxlcywgaW5uZXJQcm9wcyB9ID0gcHJvcHM7XG4gIHJldHVybiAoXG4gICAgPHNwYW5cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2luZGljYXRvclNlcGFyYXRvcicsIHByb3BzKX1cbiAgICAgIGNsYXNzTmFtZT17Y3goeyAnaW5kaWNhdG9yLXNlcGFyYXRvcic6IHRydWUgfSwgY2xhc3NOYW1lKX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2FkaW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXNgXG4gIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cbmA7XG5cbmV4cG9ydCBjb25zdCBsb2FkaW5nSW5kaWNhdG9yQ1NTID0gKHtcbiAgaXNGb2N1c2VkLFxuICBzaXplLFxuICB0aGVtZToge1xuICAgIGNvbG9ycyxcbiAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gIH0sXG59OiB7XG4gIGlzRm9jdXNlZDogYm9vbGVhbixcbiAgc2l6ZTogbnVtYmVyLFxuICB0aGVtZTogVGhlbWUsXG59KSA9PiAoe1xuICBsYWJlbDogJ2xvYWRpbmdJbmRpY2F0b3InLFxuICBjb2xvcjogaXNGb2N1c2VkID8gY29sb3JzLm5ldXRyYWw2MCA6IGNvbG9ycy5uZXV0cmFsMjAsXG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAgcGFkZGluZzogYmFzZVVuaXQgKiAyLFxuICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnLFxuICBhbGlnblNlbGY6ICdjZW50ZXInLFxuICBmb250U2l6ZTogc2l6ZSxcbiAgbGluZUhlaWdodDogMSxcbiAgbWFyZ2luUmlnaHQ6IHNpemUsXG4gIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxufSk7XG5cbnR5cGUgRG90UHJvcHMgPSB7IGRlbGF5OiBudW1iZXIsIG9mZnNldDogYm9vbGVhbiB9O1xuY29uc3QgTG9hZGluZ0RvdCA9ICh7IGRlbGF5LCBvZmZzZXQgfTogRG90UHJvcHMpID0+IChcbiAgPHNwYW5cbiAgICBjc3M9e3tcbiAgICAgIGFuaW1hdGlvbjogYCR7bG9hZGluZ0RvdEFuaW1hdGlvbnN9IDFzIGVhc2UtaW4tb3V0ICR7ZGVsYXl9bXMgaW5maW5pdGU7YCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBib3JkZXJSYWRpdXM6ICcxZW0nLFxuICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICBtYXJnaW5MZWZ0OiBvZmZzZXQgPyAnMWVtJyA6IG51bGwsXG4gICAgICBoZWlnaHQ6ICcxZW0nLFxuICAgICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG4gICAgICB3aWR0aDogJzFlbScsXG4gICAgfX1cbiAgLz5cbik7XG5cbmV4cG9ydCB0eXBlIExvYWRpbmdJY29uUHJvcHMgPSB7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogYW55LFxuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuLFxuICAvKiogV2hldGhlciB0aGUgdGV4dCBpcyByaWdodCB0byBsZWZ0ICovXG4gIGlzUnRsOiBib29sZWFuLFxufSAmIENvbW1vblByb3BzICYge1xuICAgIC8qKiBTZXQgc2l6ZSBvZiB0aGUgY29udGFpbmVyLiAqL1xuICAgIHNpemU6IG51bWJlcixcbiAgfTtcbmV4cG9ydCBjb25zdCBMb2FkaW5nSW5kaWNhdG9yID0gKHByb3BzOiBMb2FkaW5nSWNvblByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY2xhc3NOYW1lLCBjeCwgZ2V0U3R5bGVzLCBpbm5lclByb3BzLCBpc1J0bCB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICAgIGNzcz17Z2V0U3R5bGVzKCdsb2FkaW5nSW5kaWNhdG9yJywgcHJvcHMpfVxuICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAge1xuICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgICAnbG9hZGluZy1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICl9XG4gICAgPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezB9IG9mZnNldD17aXNSdGx9IC8+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MTYwfSBvZmZzZXQgLz5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXszMjB9IG9mZnNldD17IWlzUnRsfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcbkxvYWRpbmdJbmRpY2F0b3IuZGVmYXVsdFByb3BzID0geyBzaXplOiA0IH07XG4iXX0= */\"\n};\n\n// ==============================\n// Dropdown & Clear Icons\n// ==============================\nvar Svg = function Svg(_ref) {\n var size = _ref.size,\n props = _objectWithoutProperties(_ref, [\"size\"]);\n\n return jsx(\"svg\", _extends({\n height: size,\n width: size,\n viewBox: \"0 0 20 20\",\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n css: _ref2\n }, props));\n};\n\nvar CrossIcon = function CrossIcon(props) {\n return jsx(Svg, _extends({\n size: 20\n }, props), jsx(\"path\", {\n d: \"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z\"\n }));\n};\nvar DownChevron = function DownChevron(props) {\n return jsx(Svg, _extends({\n size: 20\n }, props), jsx(\"path\", {\n d: \"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z\"\n }));\n}; // ==============================\n// Dropdown & Clear Buttons\n// ==============================\n\nvar baseCSS = function baseCSS(_ref3) {\n var isFocused = _ref3.isFocused,\n _ref3$theme = _ref3.theme,\n baseUnit = _ref3$theme.spacing.baseUnit,\n colors = _ref3$theme.colors;\n return {\n label: 'indicatorContainer',\n color: isFocused ? colors.neutral60 : colors.neutral20,\n display: 'flex',\n padding: baseUnit * 2,\n transition: 'color 150ms',\n ':hover': {\n color: isFocused ? colors.neutral80 : colors.neutral40\n }\n };\n};\n\nvar dropdownIndicatorCSS = baseCSS;\nvar DropdownIndicator = function DropdownIndicator(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({}, innerProps, {\n css: getStyles('dropdownIndicator', props),\n className: cx({\n indicator: true,\n 'dropdown-indicator': true\n }, className)\n }), children || jsx(DownChevron, null));\n};\nvar clearIndicatorCSS = baseCSS;\nvar ClearIndicator = function ClearIndicator(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({}, innerProps, {\n css: getStyles('clearIndicator', props),\n className: cx({\n indicator: true,\n 'clear-indicator': true\n }, className)\n }), children || jsx(CrossIcon, null));\n}; // ==============================\n// Separator\n// ==============================\n\nvar indicatorSeparatorCSS = function indicatorSeparatorCSS(_ref4) {\n var isDisabled = _ref4.isDisabled,\n _ref4$theme = _ref4.theme,\n baseUnit = _ref4$theme.spacing.baseUnit,\n colors = _ref4$theme.colors;\n return {\n label: 'indicatorSeparator',\n alignSelf: 'stretch',\n backgroundColor: isDisabled ? colors.neutral10 : colors.neutral20,\n marginBottom: baseUnit * 2,\n marginTop: baseUnit * 2,\n width: 1\n };\n};\nvar IndicatorSeparator = function IndicatorSeparator(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"span\", _extends({}, innerProps, {\n css: getStyles('indicatorSeparator', props),\n className: cx({\n 'indicator-separator': true\n }, className)\n }));\n}; // ==============================\n// Loading\n// ==============================\n\nvar loadingDotAnimations = keyframes(_templateObject());\nvar loadingIndicatorCSS = function loadingIndicatorCSS(_ref5) {\n var isFocused = _ref5.isFocused,\n size = _ref5.size,\n _ref5$theme = _ref5.theme,\n colors = _ref5$theme.colors,\n baseUnit = _ref5$theme.spacing.baseUnit;\n return {\n label: 'loadingIndicator',\n color: isFocused ? colors.neutral60 : colors.neutral20,\n display: 'flex',\n padding: baseUnit * 2,\n transition: 'color 150ms',\n alignSelf: 'center',\n fontSize: size,\n lineHeight: 1,\n marginRight: size,\n textAlign: 'center',\n verticalAlign: 'middle'\n };\n};\n\nvar LoadingDot = function LoadingDot(_ref6) {\n var delay = _ref6.delay,\n offset = _ref6.offset;\n return jsx(\"span\", {\n css:\n /*#__PURE__*/\n _css({\n animation: \"\".concat(loadingDotAnimations, \" 1s ease-in-out \").concat(delay, \"ms infinite;\"),\n backgroundColor: 'currentColor',\n borderRadius: '1em',\n display: 'inline-block',\n marginLeft: offset ? '1em' : null,\n height: '1em',\n verticalAlign: 'top',\n width: '1em'\n }, process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0xJIiwiZmlsZSI6ImluZGljYXRvcnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyB0eXBlIE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBqc3gsIGtleWZyYW1lcyB9IGZyb20gJ0BlbW90aW9uL2NvcmUnO1xuXG5pbXBvcnQgdHlwZSB7IENvbW1vblByb3BzLCBUaGVtZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEljb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgU3ZnID0gKHsgc2l6ZSwgLi4ucHJvcHMgfTogeyBzaXplOiBudW1iZXIgfSkgPT4gKFxuICA8c3ZnXG4gICAgaGVpZ2h0PXtzaXplfVxuICAgIHdpZHRoPXtzaXplfVxuICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgIGNzcz17e1xuICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICBmaWxsOiAnY3VycmVudENvbG9yJyxcbiAgICAgIGxpbmVIZWlnaHQ6IDEsXG4gICAgICBzdHJva2U6ICdjdXJyZW50Q29sb3InLFxuICAgICAgc3Ryb2tlV2lkdGg6IDAsXG4gICAgfX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pO1xuXG5leHBvcnQgY29uc3QgQ3Jvc3NJY29uID0gKHByb3BzOiBhbnkpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTE0LjM0OCAxNC44NDljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDBsLTIuNjUxLTMuMDMwLTIuNjUxIDMuMDI5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtMC40NjktMC40NjktMC40NjktMS4yMjggMC0xLjY5N3MxLjIyOC0wLjQ2OSAxLjY5NyAwbDIuNjUyIDMuMDMxIDIuNjUxLTMuMDMxYzAuNDY5LTAuNDY5IDEuMjI4LTAuNDY5IDEuNjk3IDBzMC40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMwLjQ2OSAwLjQ2OSAwLjQ2OSAxLjIyOSAwIDEuNjk4elwiIC8+XG4gIDwvU3ZnPlxuKTtcbmV4cG9ydCBjb25zdCBEb3duQ2hldnJvbiA9IChwcm9wczogYW55KSA9PiAoXG4gIDxTdmcgc2l6ZT17MjB9IHsuLi5wcm9wc30+XG4gICAgPHBhdGggZD1cIk00LjUxNiA3LjU0OGMwLjQzNi0wLjQ0NiAxLjA0My0wLjQ4MSAxLjU3NiAwbDMuOTA4IDMuNzQ3IDMuOTA4LTMuNzQ3YzAuNTMzLTAuNDgxIDEuMTQxLTAuNDQ2IDEuNTc0IDAgMC40MzYgMC40NDUgMC40MDggMS4xOTcgMCAxLjYxNS0wLjQwNiAwLjQxOC00LjY5NSA0LjUwMi00LjY5NSA0LjUwMi0wLjIxNyAwLjIyMy0wLjUwMiAwLjMzNS0wLjc4NyAwLjMzNXMtMC41Ny0wLjExMi0wLjc4OS0wLjMzNWMwIDAtNC4yODctNC4wODQtNC42OTUtNC41MDJzLTAuNDM2LTEuMTcgMC0xLjYxNXpcIiAvPlxuICA8L1N2Zz5cbik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRHJvcGRvd24gJiBDbGVhciBCdXR0b25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgSW5kaWNhdG9yUHJvcHMgPSBDb21tb25Qcm9wcyAmIHtcbiAgLyoqIFRoZSBjaGlsZHJlbiB0byBiZSByZW5kZXJlZCBpbnNpZGUgdGhlIGluZGljYXRvci4gKi9cbiAgY2hpbGRyZW46IE5vZGUsXG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogYW55LFxuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuLFxuICAvKiogV2hldGhlciB0aGUgdGV4dCBpcyByaWdodCB0byBsZWZ0ICovXG4gIGlzUnRsOiBib29sZWFuLFxufTtcblxuY29uc3QgYmFzZUNTUyA9ICh7XG4gIGlzRm9jdXNlZCxcbiAgdGhlbWU6IHtcbiAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gICAgY29sb3JzLFxuICB9LFxufTogSW5kaWNhdG9yUHJvcHMpID0+ICh7XG4gIGxhYmVsOiAnaW5kaWNhdG9yQ29udGFpbmVyJyxcbiAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHBhZGRpbmc6IGJhc2VVbml0ICogMixcbiAgdHJhbnNpdGlvbjogJ2NvbG9yIDE1MG1zJyxcblxuICAnOmhvdmVyJzoge1xuICAgIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDgwIDogY29sb3JzLm5ldXRyYWw0MCxcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgZHJvcGRvd25JbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xuZXhwb3J0IGNvbnN0IERyb3Bkb3duSW5kaWNhdG9yID0gKHByb3BzOiBJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIGN4LCBnZXRTdHlsZXMsIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2Ryb3Bkb3duSW5kaWNhdG9yJywgcHJvcHMpfVxuICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAge1xuICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgICAnZHJvcGRvd24taW5kaWNhdG9yJzogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbiB8fCA8RG93bkNoZXZyb24gLz59XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgY2xlYXJJbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xuZXhwb3J0IGNvbnN0IENsZWFySW5kaWNhdG9yID0gKHByb3BzOiBJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIGN4LCBnZXRTdHlsZXMsIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2NsZWFySW5kaWNhdG9yJywgcHJvcHMpfVxuICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAge1xuICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgICAnY2xlYXItaW5kaWNhdG9yJzogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbiB8fCA8Q3Jvc3NJY29uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTZXBhcmF0b3Jcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG50eXBlIFNlcGFyYXRvclN0YXRlID0geyBpc0Rpc2FibGVkOiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCBpbmRpY2F0b3JTZXBhcmF0b3JDU1MgPSAoe1xuICBpc0Rpc2FibGVkLFxuICB0aGVtZToge1xuICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICBjb2xvcnMsXG4gIH0sXG59OiBDb21tb25Qcm9wcyAmIFNlcGFyYXRvclN0YXRlKSA9PiAoe1xuICBsYWJlbDogJ2luZGljYXRvclNlcGFyYXRvcicsXG4gIGFsaWduU2VsZjogJ3N0cmV0Y2gnLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGlzRGlzYWJsZWQgPyBjb2xvcnMubmV1dHJhbDEwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgbWFyZ2luQm90dG9tOiBiYXNlVW5pdCAqIDIsXG4gIG1hcmdpblRvcDogYmFzZVVuaXQgKiAyLFxuICB3aWR0aDogMSxcbn0pO1xuXG5leHBvcnQgY29uc3QgSW5kaWNhdG9yU2VwYXJhdG9yID0gKHByb3BzOiBJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7IGNsYXNzTmFtZSwgY3gsIGdldFN0eWxlcywgaW5uZXJQcm9wcyB9ID0gcHJvcHM7XG4gIHJldHVybiAoXG4gICAgPHNwYW5cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2luZGljYXRvclNlcGFyYXRvcicsIHByb3BzKX1cbiAgICAgIGNsYXNzTmFtZT17Y3goeyAnaW5kaWNhdG9yLXNlcGFyYXRvcic6IHRydWUgfSwgY2xhc3NOYW1lKX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2FkaW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXNgXG4gIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cbmA7XG5cbmV4cG9ydCBjb25zdCBsb2FkaW5nSW5kaWNhdG9yQ1NTID0gKHtcbiAgaXNGb2N1c2VkLFxuICBzaXplLFxuICB0aGVtZToge1xuICAgIGNvbG9ycyxcbiAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gIH0sXG59OiB7XG4gIGlzRm9jdXNlZDogYm9vbGVhbixcbiAgc2l6ZTogbnVtYmVyLFxuICB0aGVtZTogVGhlbWUsXG59KSA9PiAoe1xuICBsYWJlbDogJ2xvYWRpbmdJbmRpY2F0b3InLFxuICBjb2xvcjogaXNGb2N1c2VkID8gY29sb3JzLm5ldXRyYWw2MCA6IGNvbG9ycy5uZXV0cmFsMjAsXG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAgcGFkZGluZzogYmFzZVVuaXQgKiAyLFxuICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnLFxuICBhbGlnblNlbGY6ICdjZW50ZXInLFxuICBmb250U2l6ZTogc2l6ZSxcbiAgbGluZUhlaWdodDogMSxcbiAgbWFyZ2luUmlnaHQ6IHNpemUsXG4gIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxufSk7XG5cbnR5cGUgRG90UHJvcHMgPSB7IGRlbGF5OiBudW1iZXIsIG9mZnNldDogYm9vbGVhbiB9O1xuY29uc3QgTG9hZGluZ0RvdCA9ICh7IGRlbGF5LCBvZmZzZXQgfTogRG90UHJvcHMpID0+IChcbiAgPHNwYW5cbiAgICBjc3M9e3tcbiAgICAgIGFuaW1hdGlvbjogYCR7bG9hZGluZ0RvdEFuaW1hdGlvbnN9IDFzIGVhc2UtaW4tb3V0ICR7ZGVsYXl9bXMgaW5maW5pdGU7YCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBib3JkZXJSYWRpdXM6ICcxZW0nLFxuICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICBtYXJnaW5MZWZ0OiBvZmZzZXQgPyAnMWVtJyA6IG51bGwsXG4gICAgICBoZWlnaHQ6ICcxZW0nLFxuICAgICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG4gICAgICB3aWR0aDogJzFlbScsXG4gICAgfX1cbiAgLz5cbik7XG5cbmV4cG9ydCB0eXBlIExvYWRpbmdJY29uUHJvcHMgPSB7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogYW55LFxuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuLFxuICAvKiogV2hldGhlciB0aGUgdGV4dCBpcyByaWdodCB0byBsZWZ0ICovXG4gIGlzUnRsOiBib29sZWFuLFxufSAmIENvbW1vblByb3BzICYge1xuICAgIC8qKiBTZXQgc2l6ZSBvZiB0aGUgY29udGFpbmVyLiAqL1xuICAgIHNpemU6IG51bWJlcixcbiAgfTtcbmV4cG9ydCBjb25zdCBMb2FkaW5nSW5kaWNhdG9yID0gKHByb3BzOiBMb2FkaW5nSWNvblByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY2xhc3NOYW1lLCBjeCwgZ2V0U3R5bGVzLCBpbm5lclByb3BzLCBpc1J0bCB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICAgIGNzcz17Z2V0U3R5bGVzKCdsb2FkaW5nSW5kaWNhdG9yJywgcHJvcHMpfVxuICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAge1xuICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgICAnbG9hZGluZy1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICl9XG4gICAgPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezB9IG9mZnNldD17aXNSdGx9IC8+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MTYwfSBvZmZzZXQgLz5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXszMjB9IG9mZnNldD17IWlzUnRsfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcbkxvYWRpbmdJbmRpY2F0b3IuZGVmYXVsdFByb3BzID0geyBzaXplOiA0IH07XG4iXX0= */\")\n });\n};\n\nvar LoadingIndicator = function LoadingIndicator(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isRtl = props.isRtl;\n return jsx(\"div\", _extends({}, innerProps, {\n css: getStyles('loadingIndicator', props),\n className: cx({\n indicator: true,\n 'loading-indicator': true\n }, className)\n }), jsx(LoadingDot, {\n delay: 0,\n offset: isRtl\n }), jsx(LoadingDot, {\n delay: 160,\n offset: true\n }), jsx(LoadingDot, {\n delay: 320,\n offset: !isRtl\n }));\n};\nLoadingIndicator.defaultProps = {\n size: 4\n};\n\nvar css = function css(_ref) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n _ref$theme = _ref.theme,\n colors = _ref$theme.colors,\n borderRadius = _ref$theme.borderRadius,\n spacing = _ref$theme.spacing;\n return {\n label: 'control',\n alignItems: 'center',\n backgroundColor: isDisabled ? colors.neutral5 : colors.neutral0,\n borderColor: isDisabled ? colors.neutral10 : isFocused ? colors.primary : colors.neutral20,\n borderRadius: borderRadius,\n borderStyle: 'solid',\n borderWidth: 1,\n boxShadow: isFocused ? \"0 0 0 1px \".concat(colors.primary) : null,\n cursor: 'default',\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n minHeight: spacing.controlHeight,\n outline: '0 !important',\n position: 'relative',\n transition: 'all 100ms',\n '&:hover': {\n borderColor: isFocused ? colors.primary : colors.neutral30\n }\n };\n};\n\nvar Control = function Control(props) {\n var children = props.children,\n cx = props.cx,\n getStyles = props.getStyles,\n className = props.className,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n innerRef = props.innerRef,\n innerProps = props.innerProps,\n menuIsOpen = props.menuIsOpen;\n return jsx(\"div\", _extends({\n ref: innerRef,\n css: getStyles('control', props),\n className: cx({\n control: true,\n 'control--is-disabled': isDisabled,\n 'control--is-focused': isFocused,\n 'control--menu-is-open': menuIsOpen\n }, className)\n }, innerProps), children);\n};\n\nvar groupCSS = function groupCSS(_ref) {\n var spacing = _ref.theme.spacing;\n return {\n paddingBottom: spacing.baseUnit * 2,\n paddingTop: spacing.baseUnit * 2\n };\n};\n\nvar Group = function Group(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n Heading = props.Heading,\n headingProps = props.headingProps,\n label = props.label,\n theme = props.theme,\n selectProps = props.selectProps;\n return jsx(\"div\", {\n css: getStyles('group', props),\n className: cx({\n group: true\n }, className)\n }, jsx(Heading, _extends({}, headingProps, {\n selectProps: selectProps,\n theme: theme,\n getStyles: getStyles,\n cx: cx\n }), label), jsx(\"div\", null, children));\n};\n\nvar groupHeadingCSS = function groupHeadingCSS(_ref2) {\n var spacing = _ref2.theme.spacing;\n return {\n label: 'group',\n color: '#999',\n cursor: 'default',\n display: 'block',\n fontSize: '75%',\n fontWeight: '500',\n marginBottom: '0.25em',\n paddingLeft: spacing.baseUnit * 3,\n paddingRight: spacing.baseUnit * 3,\n textTransform: 'uppercase'\n };\n};\nvar GroupHeading = function GroupHeading(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n theme = props.theme,\n selectProps = props.selectProps,\n cleanProps = _objectWithoutProperties(props, [\"className\", \"cx\", \"getStyles\", \"theme\", \"selectProps\"]);\n\n return jsx(\"div\", _extends({\n css: getStyles('groupHeading', _objectSpread({\n theme: theme\n }, cleanProps)),\n className: cx({\n 'group-heading': true\n }, className)\n }, cleanProps));\n};\n\nvar inputCSS = function inputCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n margin: spacing.baseUnit / 2,\n paddingBottom: spacing.baseUnit / 2,\n paddingTop: spacing.baseUnit / 2,\n visibility: isDisabled ? 'hidden' : 'visible',\n color: colors.neutral80\n };\n};\n\nvar inputStyle = function inputStyle(isHidden) {\n return {\n label: 'input',\n background: 0,\n border: 0,\n fontSize: 'inherit',\n opacity: isHidden ? 0 : 1,\n outline: 0,\n padding: 0,\n color: 'inherit'\n };\n};\n\nvar Input = function Input(_ref2) {\n var className = _ref2.className,\n cx = _ref2.cx,\n getStyles = _ref2.getStyles,\n innerRef = _ref2.innerRef,\n isHidden = _ref2.isHidden,\n isDisabled = _ref2.isDisabled,\n theme = _ref2.theme,\n selectProps = _ref2.selectProps,\n props = _objectWithoutProperties(_ref2, [\"className\", \"cx\", \"getStyles\", \"innerRef\", \"isHidden\", \"isDisabled\", \"theme\", \"selectProps\"]);\n\n return jsx(\"div\", {\n css: getStyles('input', _objectSpread({\n theme: theme\n }, props))\n }, jsx(AutosizeInput, _extends({\n className: cx({\n input: true\n }, className),\n inputRef: innerRef,\n inputStyle: inputStyle(isHidden),\n disabled: isDisabled\n }, props)));\n};\n\nvar multiValueCSS = function multiValueCSS(_ref) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n borderRadius = _ref$theme.borderRadius,\n colors = _ref$theme.colors;\n return {\n label: 'multiValue',\n backgroundColor: colors.neutral10,\n borderRadius: borderRadius / 2,\n display: 'flex',\n margin: spacing.baseUnit / 2,\n minWidth: 0 // resolves flex/text-overflow bug\n\n };\n};\nvar multiValueLabelCSS = function multiValueLabelCSS(_ref2) {\n var _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n colors = _ref2$theme.colors,\n cropWithEllipsis = _ref2.cropWithEllipsis;\n return {\n borderRadius: borderRadius / 2,\n color: colors.neutral80,\n fontSize: '85%',\n overflow: 'hidden',\n padding: 3,\n paddingLeft: 6,\n textOverflow: cropWithEllipsis ? 'ellipsis' : null,\n whiteSpace: 'nowrap'\n };\n};\nvar multiValueRemoveCSS = function multiValueRemoveCSS(_ref3) {\n var _ref3$theme = _ref3.theme,\n spacing = _ref3$theme.spacing,\n borderRadius = _ref3$theme.borderRadius,\n colors = _ref3$theme.colors,\n isFocused = _ref3.isFocused;\n return {\n alignItems: 'center',\n borderRadius: borderRadius / 2,\n backgroundColor: isFocused && colors.dangerLight,\n display: 'flex',\n paddingLeft: spacing.baseUnit,\n paddingRight: spacing.baseUnit,\n ':hover': {\n backgroundColor: colors.dangerLight,\n color: colors.danger\n }\n };\n};\nvar MultiValueGeneric = function MultiValueGeneric(_ref4) {\n var children = _ref4.children,\n innerProps = _ref4.innerProps;\n return jsx(\"div\", innerProps, children);\n};\nvar MultiValueContainer = MultiValueGeneric;\nvar MultiValueLabel = MultiValueGeneric;\nvar MultiValueRemove =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(MultiValueRemove, _Component);\n\n function MultiValueRemove() {\n _classCallCheck(this, MultiValueRemove);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(MultiValueRemove).apply(this, arguments));\n }\n\n _createClass(MultiValueRemove, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n children = _this$props.children,\n innerProps = _this$props.innerProps;\n return jsx(\"div\", innerProps, children || jsx(CrossIcon, {\n size: 14\n }));\n }\n }]);\n\n return MultiValueRemove;\n}(Component);\n\nvar MultiValue =\n/*#__PURE__*/\nfunction (_Component2) {\n _inherits(MultiValue, _Component2);\n\n function MultiValue() {\n _classCallCheck(this, MultiValue);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(MultiValue).apply(this, arguments));\n }\n\n _createClass(MultiValue, [{\n key: \"render\",\n value: function render() {\n var _this = this;\n\n var _this$props2 = this.props,\n children = _this$props2.children,\n className = _this$props2.className,\n components = _this$props2.components,\n cx = _this$props2.cx,\n data = _this$props2.data,\n getStyles = _this$props2.getStyles,\n innerProps = _this$props2.innerProps,\n isDisabled = _this$props2.isDisabled,\n removeProps = _this$props2.removeProps,\n selectProps = _this$props2.selectProps;\n var Container = components.Container,\n Label = components.Label,\n Remove = components.Remove;\n return jsx(ClassNames, null, function (_ref5) {\n var css = _ref5.css,\n emotionCx = _ref5.cx;\n return jsx(Container, {\n data: data,\n innerProps: _objectSpread({}, innerProps, {\n className: emotionCx(css(getStyles('multiValue', _this.props)), cx({\n 'multi-value': true,\n 'multi-value--is-disabled': isDisabled\n }, className))\n }),\n selectProps: selectProps\n }, jsx(Label, {\n data: data,\n innerProps: {\n className: emotionCx(css(getStyles('multiValueLabel', _this.props)), cx({\n 'multi-value__label': true\n }, className))\n },\n selectProps: selectProps\n }, children), jsx(Remove, {\n data: data,\n innerProps: _objectSpread({\n className: emotionCx(css(getStyles('multiValueRemove', _this.props)), cx({\n 'multi-value__remove': true\n }, className))\n }, removeProps),\n selectProps: selectProps\n }));\n });\n }\n }]);\n\n return MultiValue;\n}(Component);\n\n_defineProperty(MultiValue, \"defaultProps\", {\n cropWithEllipsis: true\n});\n\nvar optionCSS = function optionCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n isSelected = _ref.isSelected,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n label: 'option',\n backgroundColor: isSelected ? colors.primary : isFocused ? colors.primary25 : 'transparent',\n color: isDisabled ? colors.neutral20 : isSelected ? colors.neutral0 : 'inherit',\n cursor: 'default',\n display: 'block',\n fontSize: 'inherit',\n padding: \"\".concat(spacing.baseUnit * 2, \"px \").concat(spacing.baseUnit * 3, \"px\"),\n width: '100%',\n userSelect: 'none',\n WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)',\n // provide some affordance on touch devices\n ':active': {\n backgroundColor: !isDisabled && (isSelected ? colors.primary : colors.primary50)\n }\n };\n};\n\nvar Option = function Option(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n isSelected = props.isSelected,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('option', props),\n className: cx({\n option: true,\n 'option--is-disabled': isDisabled,\n 'option--is-focused': isFocused,\n 'option--is-selected': isSelected\n }, className),\n ref: innerRef\n }, innerProps), children);\n};\n\nvar placeholderCSS = function placeholderCSS(_ref) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n label: 'placeholder',\n color: colors.neutral50,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2,\n position: 'absolute',\n top: '50%',\n transform: 'translateY(-50%)'\n };\n};\n\nvar Placeholder = function Placeholder(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('placeholder', props),\n className: cx({\n placeholder: true\n }, className)\n }, innerProps), children);\n};\n\nvar css$1 = function css(_ref) {\n var isDisabled = _ref.isDisabled,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n label: 'singleValue',\n color: isDisabled ? colors.neutral40 : colors.neutral80,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2,\n maxWidth: \"calc(100% - \".concat(spacing.baseUnit * 2, \"px)\"),\n overflow: 'hidden',\n position: 'absolute',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n top: '50%',\n transform: 'translateY(-50%)'\n };\n};\n\nvar SingleValue = function SingleValue(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isDisabled = props.isDisabled,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('singleValue', props),\n className: cx({\n 'single-value': true,\n 'single-value--is-disabled': isDisabled\n }, className)\n }, innerProps), children);\n};\n\nvar components = {\n ClearIndicator: ClearIndicator,\n Control: Control,\n DropdownIndicator: DropdownIndicator,\n DownChevron: DownChevron,\n CrossIcon: CrossIcon,\n Group: Group,\n GroupHeading: GroupHeading,\n IndicatorsContainer: IndicatorsContainer,\n IndicatorSeparator: IndicatorSeparator,\n Input: Input,\n LoadingIndicator: LoadingIndicator,\n Menu: Menu,\n MenuList: MenuList,\n MenuPortal: MenuPortal,\n LoadingMessage: LoadingMessage,\n NoOptionsMessage: NoOptionsMessage,\n MultiValue: MultiValue,\n MultiValueContainer: MultiValueContainer,\n MultiValueLabel: MultiValueLabel,\n MultiValueRemove: MultiValueRemove,\n Option: Option,\n Placeholder: Placeholder,\n SelectContainer: SelectContainer,\n SingleValue: SingleValue,\n ValueContainer: ValueContainer\n};\nvar defaultComponents = function defaultComponents(props) {\n return _objectSpread({}, components, props.components);\n};\n\nexport { MenuPlacer as M, containerCSS as a, css as b, clearIndicatorCSS as c, dropdownIndicatorCSS as d, groupHeadingCSS as e, indicatorSeparatorCSS as f, groupCSS as g, inputCSS as h, indicatorsContainerCSS as i, loadingMessageCSS as j, menuListCSS as k, loadingIndicatorCSS as l, menuCSS as m, menuPortalCSS as n, multiValueCSS as o, multiValueLabelCSS as p, multiValueRemoveCSS as q, noOptionsMessageCSS as r, optionCSS as s, placeholderCSS as t, css$1 as u, valueContainerCSS as v, defaultComponents as w, exportedEqual as x, components as y };\n","function toVal(mix) {\n\tvar k, y, str='';\n\tif (mix) {\n\t\tif (typeof mix === 'object') {\n\t\t\tif (Array.isArray(mix)) {\n\t\t\t\tfor (k=0; k < mix.length; k++) {\n\t\t\t\t\tif (mix[k] && (y = toVal(mix[k]))) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (k in mix) {\n\t\t\t\t\tif (mix[k] && (y = toVal(k))) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (typeof mix !== 'boolean' && !mix.call) {\n\t\t\tstr && (str += ' ');\n\t\t\tstr += mix;\n\t\t}\n\t}\n\treturn str;\n}\n\nexport default function () {\n\tvar i=0, x, str='';\n\twhile (i < arguments.length) {\n\t\tif (x = toVal(arguments[i++])) {\n\t\t\tstr && (str += ' ');\n\t\t\tstr += x\n\t\t}\n\t}\n\treturn str;\n}\n","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nmodule.exports = _inheritsLoose;","import freeGlobal from './_freeGlobal.js';\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\nexport default root;\n","import _typeof from '@babel/runtime/helpers/esm/typeof';\n\n// ==============================\n// NO OP\n// ==============================\nvar noop = function noop() {};\n// Class Name Prefixer\n// ==============================\n\n/**\n String representation of component state for styling with class names.\n\n Expects an array of strings OR a string/object pair:\n - className(['comp', 'comp-arg', 'comp-arg-2'])\n @returns 'react-select__comp react-select__comp-arg react-select__comp-arg-2'\n - className('comp', { some: true, state: false })\n @returns 'react-select__comp react-select__comp--some'\n*/\n\nfunction applyPrefixToName(prefix, name) {\n if (!name) {\n return prefix;\n } else if (name[0] === '-') {\n return prefix + name;\n } else {\n return prefix + '__' + name;\n }\n}\n\nfunction classNames(prefix, state, className) {\n var arr = [className];\n\n if (state && prefix) {\n for (var key in state) {\n if (state.hasOwnProperty(key) && state[key]) {\n arr.push(\"\".concat(applyPrefixToName(prefix, key)));\n }\n }\n }\n\n return arr.filter(function (i) {\n return i;\n }).map(function (i) {\n return String(i).trim();\n }).join(' ');\n} // ==============================\n// Clean Value\n// ==============================\n\nvar cleanValue = function cleanValue(value) {\n if (Array.isArray(value)) return value.filter(Boolean);\n if (_typeof(value) === 'object' && value !== null) return [value];\n return [];\n}; // ==============================\n// Handle Input Change\n// ==============================\n\nfunction handleInputChange(inputValue, actionMeta, onInputChange) {\n if (onInputChange) {\n var newValue = onInputChange(inputValue, actionMeta);\n if (typeof newValue === 'string') return newValue;\n }\n\n return inputValue;\n} // ==============================\n// Scroll Helpers\n// ==============================\n\nfunction isDocumentElement(el) {\n return [document.documentElement, document.body, window].indexOf(el) > -1;\n} // Normalized Scroll Top\n// ------------------------------\n\nfunction getScrollTop(el) {\n if (isDocumentElement(el)) {\n return window.pageYOffset;\n }\n\n return el.scrollTop;\n}\nfunction scrollTo(el, top) {\n // with a scroll distance, we perform scroll on the element\n if (isDocumentElement(el)) {\n window.scrollTo(0, top);\n return;\n }\n\n el.scrollTop = top;\n} // Get Scroll Parent\n// ------------------------------\n\nfunction getScrollParent(element) {\n var style = getComputedStyle(element);\n var excludeStaticParent = style.position === 'absolute';\n var overflowRx = /(auto|scroll)/;\n var docEl = document.documentElement; // suck it, flow...\n\n if (style.position === 'fixed') return docEl;\n\n for (var parent = element; parent = parent.parentElement;) {\n style = getComputedStyle(parent);\n\n if (excludeStaticParent && style.position === 'static') {\n continue;\n }\n\n if (overflowRx.test(style.overflow + style.overflowY + style.overflowX)) {\n return parent;\n }\n }\n\n return docEl;\n} // Animated Scroll To\n// ------------------------------\n\n/**\n @param t: time (elapsed)\n @param b: initial value\n @param c: amount of change\n @param d: duration\n*/\n\nfunction easeOutCubic(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t + 1) + b;\n}\n\nfunction animatedScrollTo(element, to) {\n var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;\n var callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : noop;\n var start = getScrollTop(element);\n var change = to - start;\n var increment = 10;\n var currentTime = 0;\n\n function animateScroll() {\n currentTime += increment;\n var val = easeOutCubic(currentTime, start, change, duration);\n scrollTo(element, val);\n\n if (currentTime < duration) {\n window.requestAnimationFrame(animateScroll);\n } else {\n callback(element);\n }\n }\n\n animateScroll();\n} // Scroll Into View\n// ------------------------------\n\nfunction scrollIntoView(menuEl, focusedEl) {\n var menuRect = menuEl.getBoundingClientRect();\n var focusedRect = focusedEl.getBoundingClientRect();\n var overScroll = focusedEl.offsetHeight / 3;\n\n if (focusedRect.bottom + overScroll > menuRect.bottom) {\n scrollTo(menuEl, Math.min(focusedEl.offsetTop + focusedEl.clientHeight - menuEl.offsetHeight + overScroll, menuEl.scrollHeight));\n } else if (focusedRect.top - overScroll < menuRect.top) {\n scrollTo(menuEl, Math.max(focusedEl.offsetTop - overScroll, 0));\n }\n} // ==============================\n// Get bounding client object\n// ==============================\n// cannot get keys using array notation with DOMRect\n\nfunction getBoundingClientObj(element) {\n var rect = element.getBoundingClientRect();\n return {\n bottom: rect.bottom,\n height: rect.height,\n left: rect.left,\n right: rect.right,\n top: rect.top,\n width: rect.width\n };\n}\n// Touch Capability Detector\n// ==============================\n\nfunction isTouchCapable() {\n try {\n document.createEvent('TouchEvent');\n return true;\n } catch (e) {\n return false;\n }\n} // ==============================\n// Mobile Device Detector\n// ==============================\n\nfunction isMobileDevice() {\n try {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n } catch (e) {\n return false;\n }\n}\n\nexport { getScrollParent as a, getScrollTop as b, animatedScrollTo as c, isMobileDevice as d, isDocumentElement as e, cleanValue as f, getBoundingClientObj as g, scrollIntoView as h, isTouchCapable as i, classNames as j, handleInputChange as k, noop as n, scrollTo as s };\n","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","function areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (newInputs[i] !== lastInputs[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nexport default memoizeOne;\n","import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport React, { Component, PureComponent } from 'react';\nimport memoizeOne from 'memoize-one';\nimport { jsx } from '@emotion/core';\nimport { findDOMNode } from 'react-dom';\nimport { i as isTouchCapable, d as isMobileDevice, e as isDocumentElement, f as cleanValue, h as scrollIntoView, j as classNames, n as noop } from '../../chunk-39d3fda8.browser.esm.js';\nimport { c as clearIndicatorCSS, a as containerCSS, b as css, d as dropdownIndicatorCSS, g as groupCSS, e as groupHeadingCSS, i as indicatorsContainerCSS, f as indicatorSeparatorCSS, h as inputCSS, l as loadingIndicatorCSS, j as loadingMessageCSS, m as menuCSS, k as menuListCSS, n as menuPortalCSS, o as multiValueCSS, p as multiValueLabelCSS, q as multiValueRemoveCSS, r as noOptionsMessageCSS, s as optionCSS, t as placeholderCSS, u as css$1, v as valueContainerCSS, w as defaultComponents, x as exportedEqual, M as MenuPlacer } from '../../chunk-80640036.browser.esm.js';\nimport _css from '@emotion/css';\n\nvar diacritics = [{\n base: 'A',\n letters: /[\\u0041\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F]/g\n}, {\n base: 'AA',\n letters: /[\\uA732]/g\n}, {\n base: 'AE',\n letters: /[\\u00C6\\u01FC\\u01E2]/g\n}, {\n base: 'AO',\n letters: /[\\uA734]/g\n}, {\n base: 'AU',\n letters: /[\\uA736]/g\n}, {\n base: 'AV',\n letters: /[\\uA738\\uA73A]/g\n}, {\n base: 'AY',\n letters: /[\\uA73C]/g\n}, {\n base: 'B',\n letters: /[\\u0042\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181]/g\n}, {\n base: 'C',\n letters: /[\\u0043\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\u00C7\\u1E08\\u0187\\u023B\\uA73E]/g\n}, {\n base: 'D',\n letters: /[\\u0044\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779]/g\n}, {\n base: 'DZ',\n letters: /[\\u01F1\\u01C4]/g\n}, {\n base: 'Dz',\n letters: /[\\u01F2\\u01C5]/g\n}, {\n base: 'E',\n letters: /[\\u0045\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E]/g\n}, {\n base: 'F',\n letters: /[\\u0046\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B]/g\n}, {\n base: 'G',\n letters: /[\\u0047\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E]/g\n}, {\n base: 'H',\n letters: /[\\u0048\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D]/g\n}, {\n base: 'I',\n letters: /[\\u0049\\u24BE\\uFF29\\u00CC\\u00CD\\u00CE\\u0128\\u012A\\u012C\\u0130\\u00CF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197]/g\n}, {\n base: 'J',\n letters: /[\\u004A\\u24BF\\uFF2A\\u0134\\u0248]/g\n}, {\n base: 'K',\n letters: /[\\u004B\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2]/g\n}, {\n base: 'L',\n letters: /[\\u004C\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780]/g\n}, {\n base: 'LJ',\n letters: /[\\u01C7]/g\n}, {\n base: 'Lj',\n letters: /[\\u01C8]/g\n}, {\n base: 'M',\n letters: /[\\u004D\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C]/g\n}, {\n base: 'N',\n letters: /[\\u004E\\u24C3\\uFF2E\\u01F8\\u0143\\u00D1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4]/g\n}, {\n base: 'NJ',\n letters: /[\\u01CA]/g\n}, {\n base: 'Nj',\n letters: /[\\u01CB]/g\n}, {\n base: 'O',\n letters: /[\\u004F\\u24C4\\uFF2F\\u00D2\\u00D3\\u00D4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\u00D5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\u00D6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\u00D8\\u01FE\\u0186\\u019F\\uA74A\\uA74C]/g\n}, {\n base: 'OI',\n letters: /[\\u01A2]/g\n}, {\n base: 'OO',\n letters: /[\\uA74E]/g\n}, {\n base: 'OU',\n letters: /[\\u0222]/g\n}, {\n base: 'P',\n letters: /[\\u0050\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754]/g\n}, {\n base: 'Q',\n letters: /[\\u0051\\u24C6\\uFF31\\uA756\\uA758\\u024A]/g\n}, {\n base: 'R',\n letters: /[\\u0052\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782]/g\n}, {\n base: 'S',\n letters: /[\\u0053\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784]/g\n}, {\n base: 'T',\n letters: /[\\u0054\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786]/g\n}, {\n base: 'TZ',\n letters: /[\\uA728]/g\n}, {\n base: 'U',\n letters: /[\\u0055\\u24CA\\uFF35\\u00D9\\u00DA\\u00DB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\u00DC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244]/g\n}, {\n base: 'V',\n letters: /[\\u0056\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245]/g\n}, {\n base: 'VY',\n letters: /[\\uA760]/g\n}, {\n base: 'W',\n letters: /[\\u0057\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72]/g\n}, {\n base: 'X',\n letters: /[\\u0058\\u24CD\\uFF38\\u1E8A\\u1E8C]/g\n}, {\n base: 'Y',\n letters: /[\\u0059\\u24CE\\uFF39\\u1EF2\\u00DD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE]/g\n}, {\n base: 'Z',\n letters: /[\\u005A\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762]/g\n}, {\n base: 'a',\n letters: /[\\u0061\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250]/g\n}, {\n base: 'aa',\n letters: /[\\uA733]/g\n}, {\n base: 'ae',\n letters: /[\\u00E6\\u01FD\\u01E3]/g\n}, {\n base: 'ao',\n letters: /[\\uA735]/g\n}, {\n base: 'au',\n letters: /[\\uA737]/g\n}, {\n base: 'av',\n letters: /[\\uA739\\uA73B]/g\n}, {\n base: 'ay',\n letters: /[\\uA73D]/g\n}, {\n base: 'b',\n letters: /[\\u0062\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253]/g\n}, {\n base: 'c',\n letters: /[\\u0063\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184]/g\n}, {\n base: 'd',\n letters: /[\\u0064\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A]/g\n}, {\n base: 'dz',\n letters: /[\\u01F3\\u01C6]/g\n}, {\n base: 'e',\n letters: /[\\u0065\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD]/g\n}, {\n base: 'f',\n letters: /[\\u0066\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C]/g\n}, {\n base: 'g',\n letters: /[\\u0067\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F]/g\n}, {\n base: 'h',\n letters: /[\\u0068\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265]/g\n}, {\n base: 'hv',\n letters: /[\\u0195]/g\n}, {\n base: 'i',\n letters: /[\\u0069\\u24D8\\uFF49\\u00EC\\u00ED\\u00EE\\u0129\\u012B\\u012D\\u00EF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131]/g\n}, {\n base: 'j',\n letters: /[\\u006A\\u24D9\\uFF4A\\u0135\\u01F0\\u0249]/g\n}, {\n base: 'k',\n letters: /[\\u006B\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3]/g\n}, {\n base: 'l',\n letters: /[\\u006C\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747]/g\n}, {\n base: 'lj',\n letters: /[\\u01C9]/g\n}, {\n base: 'm',\n letters: /[\\u006D\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F]/g\n}, {\n base: 'n',\n letters: /[\\u006E\\u24DD\\uFF4E\\u01F9\\u0144\\u00F1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5]/g\n}, {\n base: 'nj',\n letters: /[\\u01CC]/g\n}, {\n base: 'o',\n letters: /[\\u006F\\u24DE\\uFF4F\\u00F2\\u00F3\\u00F4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\u00F5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\u00F6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\u00F8\\u01FF\\u0254\\uA74B\\uA74D\\u0275]/g\n}, {\n base: 'oi',\n letters: /[\\u01A3]/g\n}, {\n base: 'ou',\n letters: /[\\u0223]/g\n}, {\n base: 'oo',\n letters: /[\\uA74F]/g\n}, {\n base: 'p',\n letters: /[\\u0070\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755]/g\n}, {\n base: 'q',\n letters: /[\\u0071\\u24E0\\uFF51\\u024B\\uA757\\uA759]/g\n}, {\n base: 'r',\n letters: /[\\u0072\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783]/g\n}, {\n base: 's',\n letters: /[\\u0073\\u24E2\\uFF53\\u00DF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B]/g\n}, {\n base: 't',\n letters: /[\\u0074\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787]/g\n}, {\n base: 'tz',\n letters: /[\\uA729]/g\n}, {\n base: 'u',\n letters: /[\\u0075\\u24E4\\uFF55\\u00F9\\u00FA\\u00FB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\u00FC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289]/g\n}, {\n base: 'v',\n letters: /[\\u0076\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C]/g\n}, {\n base: 'vy',\n letters: /[\\uA761]/g\n}, {\n base: 'w',\n letters: /[\\u0077\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73]/g\n}, {\n base: 'x',\n letters: /[\\u0078\\u24E7\\uFF58\\u1E8B\\u1E8D]/g\n}, {\n base: 'y',\n letters: /[\\u0079\\u24E8\\uFF59\\u1EF3\\u00FD\\u0177\\u1EF9\\u0233\\u1E8F\\u00FF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF]/g\n}, {\n base: 'z',\n letters: /[\\u007A\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763]/g\n}];\nvar stripDiacritics = function stripDiacritics(str) {\n for (var i = 0; i < diacritics.length; i++) {\n str = str.replace(diacritics[i].letters, diacritics[i].base);\n }\n\n return str;\n};\n\nvar trimString = function trimString(str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n};\n\nvar defaultStringify = function defaultStringify(option) {\n return \"\".concat(option.label, \" \").concat(option.value);\n};\n\nvar createFilter = function createFilter(config) {\n return function (option, rawInput) {\n var _ignoreCase$ignoreAcc = _objectSpread({\n ignoreCase: true,\n ignoreAccents: true,\n stringify: defaultStringify,\n trim: true,\n matchFrom: 'any'\n }, config),\n ignoreCase = _ignoreCase$ignoreAcc.ignoreCase,\n ignoreAccents = _ignoreCase$ignoreAcc.ignoreAccents,\n stringify = _ignoreCase$ignoreAcc.stringify,\n trim = _ignoreCase$ignoreAcc.trim,\n matchFrom = _ignoreCase$ignoreAcc.matchFrom;\n\n var input = trim ? trimString(rawInput) : rawInput;\n var candidate = trim ? trimString(stringify(option)) : stringify(option);\n\n if (ignoreCase) {\n input = input.toLowerCase();\n candidate = candidate.toLowerCase();\n }\n\n if (ignoreAccents) {\n input = stripDiacritics(input);\n candidate = stripDiacritics(candidate);\n }\n\n return matchFrom === 'start' ? candidate.substr(0, input.length) === input : candidate.indexOf(input) > -1;\n };\n};\n\nvar _ref = process.env.NODE_ENV === \"production\" ? {\n name: \"1laao21-a11yText\",\n styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap;\"\n} : {\n name: \"1laao21-a11yText\",\n styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkExMXlUZXh0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFNIiwiZmlsZSI6IkExMXlUZXh0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQGZsb3dcbi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgdHlwZSBFbGVtZW50Q29uZmlnIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vY29yZSc7XG5cbi8vIEFzc2lzdGl2ZSB0ZXh0IHRvIGRlc2NyaWJlIHZpc3VhbCBlbGVtZW50cy4gSGlkZGVuIGZvciBzaWdodGVkIHVzZXJzLlxuY29uc3QgQTExeVRleHQgPSAocHJvcHM6IEVsZW1lbnRDb25maWc8J3NwYW4nPikgPT4gKFxuICAgIDxzcGFuXG4gICAgICBjc3M9e3tcbiAgICAgICAgbGFiZWw6ICdhMTF5VGV4dCcsXG4gICAgICAgIHpJbmRleDogOTk5OSxcbiAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICBjbGlwOiAncmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpJyxcbiAgICAgICAgaGVpZ2h0OiAxLFxuICAgICAgICB3aWR0aDogMSxcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgd2hpdGVTcGFjZTogJ25vd3JhcCcsXG4gICAgICB9fVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBBMTF5VGV4dDtcbiJdfQ== */\"\n};\n\nvar A11yText = function A11yText(props) {\n return jsx(\"span\", _extends({\n css: _ref\n }, props));\n};\n\nvar DummyInput =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(DummyInput, _Component);\n\n function DummyInput() {\n _classCallCheck(this, DummyInput);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(DummyInput).apply(this, arguments));\n }\n\n _createClass(DummyInput, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n inProp = _this$props.in,\n out = _this$props.out,\n onExited = _this$props.onExited,\n appear = _this$props.appear,\n enter = _this$props.enter,\n exit = _this$props.exit,\n innerRef = _this$props.innerRef,\n emotion = _this$props.emotion,\n props = _objectWithoutProperties(_this$props, [\"in\", \"out\", \"onExited\", \"appear\", \"enter\", \"exit\", \"innerRef\", \"emotion\"]);\n\n return jsx(\"input\", _extends({\n ref: innerRef\n }, props, {\n css:\n /*#__PURE__*/\n _css({\n label: 'dummyInput',\n // get rid of any default styles\n background: 0,\n border: 0,\n fontSize: 'inherit',\n outline: 0,\n padding: 0,\n // important! without `width` browsers won't allow focus\n width: 1,\n // remove cursor on desktop\n color: 'transparent',\n // remove cursor on mobile whilst maintaining \"scroll into view\" behaviour\n left: -100,\n opacity: 0,\n position: 'relative',\n transform: 'scale(0)'\n }, process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkR1bW15SW5wdXQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWVEiLCJmaWxlIjoiRHVtbXlJbnB1dC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEBmbG93XG4vKiogQGpzeCBqc3ggKi9cbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ0BlbW90aW9uL2NvcmUnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEdW1teUlucHV0IGV4dGVuZHMgQ29tcG9uZW50PGFueT4ge1xuICByZW5kZXIgKCkge1xuICAgIGNvbnN0IHsgaW46IGluUHJvcCwgb3V0LCBvbkV4aXRlZCwgYXBwZWFyLCBlbnRlciwgZXhpdCwgaW5uZXJSZWYsIGVtb3Rpb24sIC4uLnByb3BzIH0gPSB0aGlzLnByb3BzO1xuICAgIHJldHVybihcbiAgICAgIDxpbnB1dFxuICAgICAgICByZWY9e2lubmVyUmVmfVxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIGNzcz17e1xuICAgICAgICAgIGxhYmVsOiAnZHVtbXlJbnB1dCcsXG4gICAgICAgICAgLy8gZ2V0IHJpZCBvZiBhbnkgZGVmYXVsdCBzdHlsZXNcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAwLFxuICAgICAgICAgIGJvcmRlcjogMCxcbiAgICAgICAgICBmb250U2l6ZTogJ2luaGVyaXQnLFxuICAgICAgICAgIG91dGxpbmU6IDAsXG4gICAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgICAvLyBpbXBvcnRhbnQhIHdpdGhvdXQgYHdpZHRoYCBicm93c2VycyB3b24ndCBhbGxvdyBmb2N1c1xuICAgICAgICAgIHdpZHRoOiAxLFxuXG4gICAgICAgICAgLy8gcmVtb3ZlIGN1cnNvciBvbiBkZXNrdG9wXG4gICAgICAgICAgY29sb3I6ICd0cmFuc3BhcmVudCcsXG5cbiAgICAgICAgICAvLyByZW1vdmUgY3Vyc29yIG9uIG1vYmlsZSB3aGlsc3QgbWFpbnRhaW5pbmcgXCJzY3JvbGwgaW50byB2aWV3XCIgYmVoYXZpb3VyXG4gICAgICAgICAgbGVmdDogLTEwMCxcbiAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlKDApJyxcbiAgICAgICAgfX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxufVxuIl19 */\")\n }));\n }\n }]);\n\n return DummyInput;\n}(Component);\n\nvar NodeResolver =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(NodeResolver, _Component);\n\n function NodeResolver() {\n _classCallCheck(this, NodeResolver);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(NodeResolver).apply(this, arguments));\n }\n\n _createClass(NodeResolver, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.props.innerRef(findDOMNode(this));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.props.innerRef(null);\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n\n return NodeResolver;\n}(Component);\n\nvar STYLE_KEYS = ['boxSizing', 'height', 'overflow', 'paddingRight', 'position'];\nvar LOCK_STYLES = {\n boxSizing: 'border-box',\n // account for possible declaration `width: 100%;` on body\n overflow: 'hidden',\n position: 'relative',\n height: '100%'\n};\n\nfunction preventTouchMove(e) {\n e.preventDefault();\n}\nfunction allowTouchMove(e) {\n e.stopPropagation();\n}\nfunction preventInertiaScroll() {\n var top = this.scrollTop;\n var totalScroll = this.scrollHeight;\n var currentScroll = top + this.offsetHeight;\n\n if (top === 0) {\n this.scrollTop = 1;\n } else if (currentScroll === totalScroll) {\n this.scrollTop = top - 1;\n }\n} // `ontouchstart` check works on most browsers\n// `maxTouchPoints` works on IE10/11 and Surface\n\nfunction isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints;\n}\n\nvar canUseDOM = !!(window.document && window.document.createElement);\nvar activeScrollLocks = 0;\n\nvar ScrollLock =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ScrollLock, _Component);\n\n function ScrollLock() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, ScrollLock);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ScrollLock)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"originalStyles\", {});\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"listenerOptions\", {\n capture: false,\n passive: false\n });\n\n return _this;\n }\n\n _createClass(ScrollLock, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n if (!canUseDOM) return;\n var _this$props = this.props,\n accountForScrollbars = _this$props.accountForScrollbars,\n touchScrollTarget = _this$props.touchScrollTarget;\n var target = document.body;\n var targetStyle = target && target.style;\n\n if (accountForScrollbars) {\n // store any styles already applied to the body\n STYLE_KEYS.forEach(function (key) {\n var val = targetStyle && targetStyle[key];\n _this2.originalStyles[key] = val;\n });\n } // apply the lock styles and padding if this is the first scroll lock\n\n\n if (accountForScrollbars && activeScrollLocks < 1) {\n var currentPadding = parseInt(this.originalStyles.paddingRight, 10) || 0;\n var clientWidth = document.body ? document.body.clientWidth : 0;\n var adjustedPadding = window.innerWidth - clientWidth + currentPadding || 0;\n Object.keys(LOCK_STYLES).forEach(function (key) {\n var val = LOCK_STYLES[key];\n\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n\n if (targetStyle) {\n targetStyle.paddingRight = \"\".concat(adjustedPadding, \"px\");\n }\n } // account for touch devices\n\n\n if (target && isTouchDevice()) {\n // Mobile Safari ignores { overflow: hidden } declaration on the body.\n target.addEventListener('touchmove', preventTouchMove, this.listenerOptions); // Allow scroll on provided target\n\n if (touchScrollTarget) {\n touchScrollTarget.addEventListener('touchstart', preventInertiaScroll, this.listenerOptions);\n touchScrollTarget.addEventListener('touchmove', allowTouchMove, this.listenerOptions);\n }\n } // increment active scroll locks\n\n\n activeScrollLocks += 1;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var _this3 = this;\n\n if (!canUseDOM) return;\n var _this$props2 = this.props,\n accountForScrollbars = _this$props2.accountForScrollbars,\n touchScrollTarget = _this$props2.touchScrollTarget;\n var target = document.body;\n var targetStyle = target && target.style; // safely decrement active scroll locks\n\n activeScrollLocks = Math.max(activeScrollLocks - 1, 0); // reapply original body styles, if any\n\n if (accountForScrollbars && activeScrollLocks < 1) {\n STYLE_KEYS.forEach(function (key) {\n var val = _this3.originalStyles[key];\n\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n } // remove touch listeners\n\n\n if (target && isTouchDevice()) {\n target.removeEventListener('touchmove', preventTouchMove, this.listenerOptions);\n\n if (touchScrollTarget) {\n touchScrollTarget.removeEventListener('touchstart', preventInertiaScroll, this.listenerOptions);\n touchScrollTarget.removeEventListener('touchmove', allowTouchMove, this.listenerOptions);\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return ScrollLock;\n}(Component);\n\n_defineProperty(ScrollLock, \"defaultProps\", {\n accountForScrollbars: true\n});\n\nvar _ref$1 = process.env.NODE_ENV === \"production\" ? {\n name: \"1dsbpcp\",\n styles: \"position:fixed;left:0;bottom:0;right:0;top:0;\"\n} : {\n name: \"1dsbpcp\",\n styles: \"position:fixed;left:0;bottom:0;right:0;top:0;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNjcm9sbEJsb2NrLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZEVSIsImZpbGUiOiJTY3JvbGxCbG9jay5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEBmbG93XG4vKiogQGpzeCBqc3ggKi9cbmltcG9ydCB7IFB1cmVDb21wb25lbnQsIHR5cGUgRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ0BlbW90aW9uL2NvcmUnO1xuaW1wb3J0IE5vZGVSZXNvbHZlciBmcm9tICcuL05vZGVSZXNvbHZlcic7XG5pbXBvcnQgU2Nyb2xsTG9jayBmcm9tICcuL1Njcm9sbExvY2svaW5kZXgnO1xuXG50eXBlIFByb3BzID0ge1xuICBjaGlsZHJlbjogRWxlbWVudDwqPixcbiAgaXNFbmFibGVkOiBib29sZWFuLFxufTtcbnR5cGUgU3RhdGUgPSB7XG4gIHRvdWNoU2Nyb2xsVGFyZ2V0OiBIVE1MRWxlbWVudCB8IG51bGwsXG59O1xuXG4vLyBOT1RFOlxuLy8gV2Ugc2hvdWxkbid0IG5lZWQgdGhpcyBhZnRlciB1cGRhdGluZyB0byBSZWFjdCB2MTYuMy4wLCB3aGljaCBpbnRyb2R1Y2VzOlxuLy8gLSBjcmVhdGVSZWYoKSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjcmVhY3RjcmVhdGVyZWZcbi8vIC0gZm9yd2FyZFJlZigpIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNyZWFjdGZvcndhcmRyZWZcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2Nyb2xsQmxvY2sgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PFByb3BzLCBTdGF0ZT4ge1xuICBzdGF0ZSA9IHsgdG91Y2hTY3JvbGxUYXJnZXQ6IG51bGwgfTtcblxuICAvLyBtdXN0IGJlIGluIHN0YXRlIHRvIHRyaWdnZXIgYSByZS1yZW5kZXIsIG9ubHkgcnVucyBvbmNlIHBlciBpbnN0YW5jZVxuICBnZXRTY3JvbGxUYXJnZXQgPSAocmVmOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgIGlmIChyZWYgPT09IHRoaXMuc3RhdGUudG91Y2hTY3JvbGxUYXJnZXQpIHJldHVybjtcbiAgICB0aGlzLnNldFN0YXRlKHsgdG91Y2hTY3JvbGxUYXJnZXQ6IHJlZiB9KTtcbiAgfTtcblxuICAvLyB0aGlzIHdpbGwgY2xvc2UgdGhlIG1lbnUgd2hlbiBhIHVzZXIgY2xpY2tzIG91dHNpZGVcbiAgYmx1clNlbGVjdElucHV0ID0gKCkgPT4ge1xuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB7XG4gICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgY2hpbGRyZW4sIGlzRW5hYmxlZCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHRvdWNoU2Nyb2xsVGFyZ2V0IH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgLy8gYmFpbCBlYXJseSBpZiBub3QgZW5hYmxlZFxuICAgIGlmICghaXNFbmFibGVkKSByZXR1cm4gY2hpbGRyZW47XG5cbiAgICAvKlxuICAgICAqIERpdlxuICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAqIGJsb2NrcyBzY3JvbGxpbmcgb24gbm9uLWJvZHkgZWxlbWVudHMgYmVoaW5kIHRoZSBtZW51XG5cbiAgICAgKiBOb2RlUmVzb2x2ZXJcbiAgICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgKiB3ZSBuZWVkIGEgcmVmZXJlbmNlIHRvIHRoZSBzY3JvbGxhYmxlIGVsZW1lbnQgdG8gXCJ1bmxvY2tcIiBzY3JvbGwgb25cbiAgICAgKiBtb2JpbGUgZGV2aWNlc1xuXG4gICAgICogU2Nyb2xsTG9ja1xuICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAqIGFjdHVhbGx5IGRvZXMgdGhlIHNjcm9sbCBsb2NraW5nXG4gICAgICovXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBvbkNsaWNrPXt0aGlzLmJsdXJTZWxlY3RJbnB1dH1cbiAgICAgICAgICBjc3M9e3sgcG9zaXRpb246ICdmaXhlZCcsIGxlZnQ6IDAsIGJvdHRvbTogMCwgcmlnaHQ6IDAsIHRvcDogMCB9fVxuICAgICAgICAvPlxuICAgICAgICA8Tm9kZVJlc29sdmVyIGlubmVyUmVmPXt0aGlzLmdldFNjcm9sbFRhcmdldH0+e2NoaWxkcmVufTwvTm9kZVJlc29sdmVyPlxuICAgICAgICB7dG91Y2hTY3JvbGxUYXJnZXQgPyAoXG4gICAgICAgICAgPFNjcm9sbExvY2sgdG91Y2hTY3JvbGxUYXJnZXQ9e3RvdWNoU2Nyb2xsVGFyZ2V0fSAvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cbiJdfQ== */\"\n};\n\n// NOTE:\n// We shouldn't need this after updating to React v16.3.0, which introduces:\n// - createRef() https://reactjs.org/docs/react-api.html#reactcreateref\n// - forwardRef() https://reactjs.org/docs/react-api.html#reactforwardref\nvar ScrollBlock =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(ScrollBlock, _PureComponent);\n\n function ScrollBlock() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, ScrollBlock);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ScrollBlock)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {\n touchScrollTarget: null\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getScrollTarget\", function (ref) {\n if (ref === _this.state.touchScrollTarget) return;\n\n _this.setState({\n touchScrollTarget: ref\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"blurSelectInput\", function () {\n if (document.activeElement) {\n document.activeElement.blur();\n }\n });\n\n return _this;\n }\n\n _createClass(ScrollBlock, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n children = _this$props.children,\n isEnabled = _this$props.isEnabled;\n var touchScrollTarget = this.state.touchScrollTarget; // bail early if not enabled\n\n if (!isEnabled) return children;\n /*\n * Div\n * ------------------------------\n * blocks scrolling on non-body elements behind the menu\n * NodeResolver\n * ------------------------------\n * we need a reference to the scrollable element to \"unlock\" scroll on\n * mobile devices\n * ScrollLock\n * ------------------------------\n * actually does the scroll locking\n */\n\n return jsx(\"div\", null, jsx(\"div\", {\n onClick: this.blurSelectInput,\n css: _ref$1\n }), jsx(NodeResolver, {\n innerRef: this.getScrollTarget\n }, children), touchScrollTarget ? jsx(ScrollLock, {\n touchScrollTarget: touchScrollTarget\n }) : null);\n }\n }]);\n\n return ScrollBlock;\n}(PureComponent);\n\nvar ScrollCaptor =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ScrollCaptor, _Component);\n\n function ScrollCaptor() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, ScrollCaptor);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ScrollCaptor)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"isBottom\", false);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"isTop\", false);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"scrollTarget\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"touchStart\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"cancelScroll\", function (event) {\n event.preventDefault();\n event.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleEventDelta\", function (event, delta) {\n var _this$props = _this.props,\n onBottomArrive = _this$props.onBottomArrive,\n onBottomLeave = _this$props.onBottomLeave,\n onTopArrive = _this$props.onTopArrive,\n onTopLeave = _this$props.onTopLeave;\n var _this$scrollTarget = _this.scrollTarget,\n scrollTop = _this$scrollTarget.scrollTop,\n scrollHeight = _this$scrollTarget.scrollHeight,\n clientHeight = _this$scrollTarget.clientHeight;\n var target = _this.scrollTarget;\n var isDeltaPositive = delta > 0;\n var availableScroll = scrollHeight - clientHeight - scrollTop;\n var shouldCancelScroll = false; // reset bottom/top flags\n\n if (availableScroll > delta && _this.isBottom) {\n if (onBottomLeave) onBottomLeave(event);\n _this.isBottom = false;\n }\n\n if (isDeltaPositive && _this.isTop) {\n if (onTopLeave) onTopLeave(event);\n _this.isTop = false;\n } // bottom limit\n\n\n if (isDeltaPositive && delta > availableScroll) {\n if (onBottomArrive && !_this.isBottom) {\n onBottomArrive(event);\n }\n\n target.scrollTop = scrollHeight;\n shouldCancelScroll = true;\n _this.isBottom = true; // top limit\n } else if (!isDeltaPositive && -delta > scrollTop) {\n if (onTopArrive && !_this.isTop) {\n onTopArrive(event);\n }\n\n target.scrollTop = 0;\n shouldCancelScroll = true;\n _this.isTop = true;\n } // cancel scroll\n\n\n if (shouldCancelScroll) {\n _this.cancelScroll(event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onWheel\", function (event) {\n _this.handleEventDelta(event, event.deltaY);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onTouchStart\", function (event) {\n // set touch start so we can calculate touchmove delta\n _this.touchStart = event.changedTouches[0].clientY;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onTouchMove\", function (event) {\n var deltaY = _this.touchStart - event.changedTouches[0].clientY;\n\n _this.handleEventDelta(event, deltaY);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getScrollTarget\", function (ref) {\n _this.scrollTarget = ref;\n });\n\n return _this;\n }\n\n _createClass(ScrollCaptor, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startListening(this.scrollTarget);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.stopListening(this.scrollTarget);\n }\n }, {\n key: \"startListening\",\n value: function startListening(el) {\n // bail early if no element is available to attach to\n if (!el) return; // all the if statements are to appease Flow 😢\n\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('wheel', this.onWheel, false);\n }\n\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('touchstart', this.onTouchStart, false);\n }\n\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('touchmove', this.onTouchMove, false);\n }\n }\n }, {\n key: \"stopListening\",\n value: function stopListening(el) {\n // all the if statements are to appease Flow 😢\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('wheel', this.onWheel, false);\n }\n\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('touchstart', this.onTouchStart, false);\n }\n\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('touchmove', this.onTouchMove, false);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return React.createElement(NodeResolver, {\n innerRef: this.getScrollTarget\n }, this.props.children);\n }\n }]);\n\n return ScrollCaptor;\n}(Component);\n\nvar ScrollCaptorSwitch =\n/*#__PURE__*/\nfunction (_Component2) {\n _inherits(ScrollCaptorSwitch, _Component2);\n\n function ScrollCaptorSwitch() {\n _classCallCheck(this, ScrollCaptorSwitch);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ScrollCaptorSwitch).apply(this, arguments));\n }\n\n _createClass(ScrollCaptorSwitch, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n isEnabled = _this$props2.isEnabled,\n props = _objectWithoutProperties(_this$props2, [\"isEnabled\"]);\n\n return isEnabled ? React.createElement(ScrollCaptor, props) : this.props.children;\n }\n }]);\n\n return ScrollCaptorSwitch;\n}(Component);\n\n_defineProperty(ScrollCaptorSwitch, \"defaultProps\", {\n isEnabled: true\n});\n\nvar instructionsAriaMessage = function instructionsAriaMessage(event) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var isSearchable = context.isSearchable,\n isMulti = context.isMulti,\n label = context.label,\n isDisabled = context.isDisabled;\n\n switch (event) {\n case 'menu':\n return \"Use Up and Down to choose options\".concat(isDisabled ? '' : ', press Enter to select the currently focused option', \", press Escape to exit the menu, press Tab to select the option and exit the menu.\");\n\n case 'input':\n return \"\".concat(label ? label : 'Select', \" is focused \").concat(isSearchable ? ',type to refine list' : '', \", press Down to open the menu, \").concat(isMulti ? ' press left to focus selected values' : '');\n\n case 'value':\n return 'Use left and right to toggle between focused values, press Backspace to remove the currently focused value';\n }\n};\nvar valueEventAriaMessage = function valueEventAriaMessage(event, context) {\n var value = context.value,\n isDisabled = context.isDisabled;\n if (!value) return;\n\n switch (event) {\n case 'deselect-option':\n case 'pop-value':\n case 'remove-value':\n return \"option \".concat(value, \", deselected.\");\n\n case 'select-option':\n return isDisabled ? \"option \".concat(value, \" is disabled. Select another option.\") : \"option \".concat(value, \", selected.\");\n }\n};\nvar valueFocusAriaMessage = function valueFocusAriaMessage(_ref) {\n var focusedValue = _ref.focusedValue,\n getOptionLabel = _ref.getOptionLabel,\n selectValue = _ref.selectValue;\n return \"value \".concat(getOptionLabel(focusedValue), \" focused, \").concat(selectValue.indexOf(focusedValue) + 1, \" of \").concat(selectValue.length, \".\");\n};\nvar optionFocusAriaMessage = function optionFocusAriaMessage(_ref2) {\n var focusedOption = _ref2.focusedOption,\n getOptionLabel = _ref2.getOptionLabel,\n options = _ref2.options;\n return \"option \".concat(getOptionLabel(focusedOption), \" focused\").concat(focusedOption.isDisabled ? ' disabled' : '', \", \").concat(options.indexOf(focusedOption) + 1, \" of \").concat(options.length, \".\");\n};\nvar resultsAriaMessage = function resultsAriaMessage(_ref3) {\n var inputValue = _ref3.inputValue,\n screenReaderMessage = _ref3.screenReaderMessage;\n return \"\".concat(screenReaderMessage).concat(inputValue ? ' for search term ' + inputValue : '', \".\");\n};\n\nvar formatGroupLabel = function formatGroupLabel(group) {\n return group.label;\n};\nvar getOptionLabel = function getOptionLabel(option) {\n return option.label;\n};\nvar getOptionValue = function getOptionValue(option) {\n return option.value;\n};\nvar isOptionDisabled = function isOptionDisabled(option) {\n return !!option.isDisabled;\n};\n\nvar defaultStyles = {\n clearIndicator: clearIndicatorCSS,\n container: containerCSS,\n control: css,\n dropdownIndicator: dropdownIndicatorCSS,\n group: groupCSS,\n groupHeading: groupHeadingCSS,\n indicatorsContainer: indicatorsContainerCSS,\n indicatorSeparator: indicatorSeparatorCSS,\n input: inputCSS,\n loadingIndicator: loadingIndicatorCSS,\n loadingMessage: loadingMessageCSS,\n menu: menuCSS,\n menuList: menuListCSS,\n menuPortal: menuPortalCSS,\n multiValue: multiValueCSS,\n multiValueLabel: multiValueLabelCSS,\n multiValueRemove: multiValueRemoveCSS,\n noOptionsMessage: noOptionsMessageCSS,\n option: optionCSS,\n placeholder: placeholderCSS,\n singleValue: css$1,\n valueContainer: valueContainerCSS\n}; // Merge Utility\n// Allows consumers to extend a base Select with additional styles\n\nfunction mergeStyles(source) {\n var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // initialize with source styles\n var styles = _objectSpread({}, source); // massage in target styles\n\n\n Object.keys(target).forEach(function (key) {\n if (source[key]) {\n styles[key] = function (rsCss, props) {\n return target[key](source[key](rsCss, props), props);\n };\n } else {\n styles[key] = target[key];\n }\n });\n return styles;\n}\n\nvar colors = {\n primary: '#2684FF',\n primary75: '#4C9AFF',\n primary50: '#B2D4FF',\n primary25: '#DEEBFF',\n danger: '#DE350B',\n dangerLight: '#FFBDAD',\n neutral0: 'hsl(0, 0%, 100%)',\n neutral5: 'hsl(0, 0%, 95%)',\n neutral10: 'hsl(0, 0%, 90%)',\n neutral20: 'hsl(0, 0%, 80%)',\n neutral30: 'hsl(0, 0%, 70%)',\n neutral40: 'hsl(0, 0%, 60%)',\n neutral50: 'hsl(0, 0%, 50%)',\n neutral60: 'hsl(0, 0%, 40%)',\n neutral70: 'hsl(0, 0%, 30%)',\n neutral80: 'hsl(0, 0%, 20%)',\n neutral90: 'hsl(0, 0%, 10%)'\n};\nvar borderRadius = 4; // Used to calculate consistent margin/padding on elements\n\nvar baseUnit = 4; // The minimum height of the control\n\nvar controlHeight = 38; // The amount of space between the control and menu */\n\nvar menuGutter = baseUnit * 2;\nvar spacing = {\n baseUnit: baseUnit,\n controlHeight: controlHeight,\n menuGutter: menuGutter\n};\nvar defaultTheme = {\n borderRadius: borderRadius,\n colors: colors,\n spacing: spacing\n};\n\nvar defaultProps = {\n backspaceRemovesValue: true,\n blurInputOnSelect: isTouchCapable(),\n captureMenuScroll: !isTouchCapable(),\n closeMenuOnSelect: true,\n closeMenuOnScroll: false,\n components: {},\n controlShouldRenderValue: true,\n escapeClearsValue: false,\n filterOption: createFilter(),\n formatGroupLabel: formatGroupLabel,\n getOptionLabel: getOptionLabel,\n getOptionValue: getOptionValue,\n isDisabled: false,\n isLoading: false,\n isMulti: false,\n isRtl: false,\n isSearchable: true,\n isOptionDisabled: isOptionDisabled,\n loadingMessage: function loadingMessage() {\n return 'Loading...';\n },\n maxMenuHeight: 300,\n minMenuHeight: 140,\n menuIsOpen: false,\n menuPlacement: 'bottom',\n menuPosition: 'absolute',\n menuShouldBlockScroll: false,\n menuShouldScrollIntoView: !isMobileDevice(),\n noOptionsMessage: function noOptionsMessage() {\n return 'No options';\n },\n openMenuOnFocus: false,\n openMenuOnClick: true,\n options: [],\n pageSize: 5,\n placeholder: 'Select...',\n screenReaderStatus: function screenReaderStatus(_ref) {\n var count = _ref.count;\n return \"\".concat(count, \" result\").concat(count !== 1 ? 's' : '', \" available\");\n },\n styles: {},\n tabIndex: '0',\n tabSelectsValue: true\n};\nvar instanceId = 1;\n\nvar Select =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Select, _Component);\n\n // Misc. Instance Properties\n // ------------------------------\n // TODO\n // Refs\n // ------------------------------\n // Lifecycle\n // ------------------------------\n function Select(_props) {\n var _this;\n\n _classCallCheck(this, Select);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Select).call(this, _props));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {\n ariaLiveSelection: '',\n ariaLiveContext: '',\n focusedOption: null,\n focusedValue: null,\n inputIsHidden: false,\n isFocused: false,\n menuOptions: {\n render: [],\n focusable: []\n },\n selectValue: []\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"blockOptionHover\", false);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"isComposing\", false);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"clearFocusValueOnUpdate\", false);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"commonProps\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"components\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"hasGroups\", false);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"initialTouchX\", 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"initialTouchY\", 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"inputIsHiddenAfterUpdate\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"instancePrefix\", '');\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"openAfterFocus\", false);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"scrollToFocusedOptionOnUpdate\", false);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"userIsDragging\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"controlRef\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getControlRef\", function (ref) {\n _this.controlRef = ref;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"focusedOptionRef\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getFocusedOptionRef\", function (ref) {\n _this.focusedOptionRef = ref;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"menuListRef\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getMenuListRef\", function (ref) {\n _this.menuListRef = ref;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"inputRef\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getInputRef\", function (ref) {\n _this.inputRef = ref;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"cacheComponents\", function (components) {\n _this.components = defaultComponents({\n components: components\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"focus\", _this.focusInput);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"blur\", _this.blurInput);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onChange\", function (newValue, actionMeta) {\n var _this$props = _this.props,\n onChange = _this$props.onChange,\n name = _this$props.name;\n onChange(newValue, _objectSpread({}, actionMeta, {\n name: name\n }));\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"setValue\", function (newValue) {\n var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'set-value';\n var option = arguments.length > 2 ? arguments[2] : undefined;\n var _this$props2 = _this.props,\n closeMenuOnSelect = _this$props2.closeMenuOnSelect,\n isMulti = _this$props2.isMulti;\n\n _this.onInputChange('', {\n action: 'set-value'\n });\n\n if (closeMenuOnSelect) {\n _this.inputIsHiddenAfterUpdate = !isMulti;\n\n _this.onMenuClose();\n } // when the select value should change, we should reset focusedValue\n\n\n _this.clearFocusValueOnUpdate = true;\n\n _this.onChange(newValue, {\n action: action,\n option: option\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"selectOption\", function (newValue) {\n var _this$props3 = _this.props,\n blurInputOnSelect = _this$props3.blurInputOnSelect,\n isMulti = _this$props3.isMulti;\n var selectValue = _this.state.selectValue;\n\n if (isMulti) {\n if (_this.isOptionSelected(newValue, selectValue)) {\n var candidate = _this.getOptionValue(newValue);\n\n _this.setValue(selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n }), 'deselect-option', newValue);\n\n _this.announceAriaLiveSelection({\n event: 'deselect-option',\n context: {\n value: _this.getOptionLabel(newValue)\n }\n });\n } else {\n if (!_this.isOptionDisabled(newValue, selectValue)) {\n _this.setValue([].concat(_toConsumableArray(selectValue), [newValue]), 'select-option', newValue);\n\n _this.announceAriaLiveSelection({\n event: 'select-option',\n context: {\n value: _this.getOptionLabel(newValue)\n }\n });\n } else {\n // announce that option is disabled\n _this.announceAriaLiveSelection({\n event: 'select-option',\n context: {\n value: _this.getOptionLabel(newValue),\n isDisabled: true\n }\n });\n }\n }\n } else {\n if (!_this.isOptionDisabled(newValue, selectValue)) {\n _this.setValue(newValue, 'select-option');\n\n _this.announceAriaLiveSelection({\n event: 'select-option',\n context: {\n value: _this.getOptionLabel(newValue)\n }\n });\n } else {\n // announce that option is disabled\n _this.announceAriaLiveSelection({\n event: 'select-option',\n context: {\n value: _this.getOptionLabel(newValue),\n isDisabled: true\n }\n });\n }\n }\n\n if (blurInputOnSelect) {\n _this.blurInput();\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"removeValue\", function (removedValue) {\n var selectValue = _this.state.selectValue;\n\n var candidate = _this.getOptionValue(removedValue);\n\n var newValue = selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n });\n\n _this.onChange(newValue.length ? newValue : null, {\n action: 'remove-value',\n removedValue: removedValue\n });\n\n _this.announceAriaLiveSelection({\n event: 'remove-value',\n context: {\n value: removedValue ? _this.getOptionLabel(removedValue) : ''\n }\n });\n\n _this.focusInput();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"clearValue\", function () {\n var isMulti = _this.props.isMulti;\n\n _this.onChange(isMulti ? [] : null, {\n action: 'clear'\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"popValue\", function () {\n var selectValue = _this.state.selectValue;\n var lastSelectedValue = selectValue[selectValue.length - 1];\n var newValue = selectValue.slice(0, selectValue.length - 1);\n\n _this.announceAriaLiveSelection({\n event: 'pop-value',\n context: {\n value: lastSelectedValue ? _this.getOptionLabel(lastSelectedValue) : ''\n }\n });\n\n _this.onChange(newValue.length ? newValue : null, {\n action: 'pop-value',\n removedValue: lastSelectedValue\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getOptionLabel\", function (data) {\n return _this.props.getOptionLabel(data);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getOptionValue\", function (data) {\n return _this.props.getOptionValue(data);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getStyles\", function (key, props) {\n var base = defaultStyles[key](props);\n base.boxSizing = 'border-box';\n var custom = _this.props.styles[key];\n return custom ? custom(base, props) : base;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getElementId\", function (element) {\n return \"\".concat(_this.instancePrefix, \"-\").concat(element);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getActiveDescendentId\", function () {\n var menuIsOpen = _this.props.menuIsOpen;\n var _this$state = _this.state,\n menuOptions = _this$state.menuOptions,\n focusedOption = _this$state.focusedOption;\n if (!focusedOption || !menuIsOpen) return undefined;\n var index = menuOptions.focusable.indexOf(focusedOption);\n var option = menuOptions.render[index];\n return option && option.key;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"announceAriaLiveSelection\", function (_ref2) {\n var event = _ref2.event,\n context = _ref2.context;\n\n _this.setState({\n ariaLiveSelection: valueEventAriaMessage(event, context)\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"announceAriaLiveContext\", function (_ref3) {\n var event = _ref3.event,\n context = _ref3.context;\n\n _this.setState({\n ariaLiveContext: instructionsAriaMessage(event, _objectSpread({}, context, {\n label: _this.props['aria-label']\n }))\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onMenuMouseDown\", function (event) {\n if (event.button !== 0) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n _this.focusInput();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onMenuMouseMove\", function (event) {\n _this.blockOptionHover = false;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onControlMouseDown\", function (event) {\n var openMenuOnClick = _this.props.openMenuOnClick;\n\n if (!_this.state.isFocused) {\n if (openMenuOnClick) {\n _this.openAfterFocus = true;\n }\n\n _this.focusInput();\n } else if (!_this.props.menuIsOpen) {\n if (openMenuOnClick) {\n _this.openMenu('first');\n }\n } else {\n //$FlowFixMe\n if (event.target.tagName !== 'INPUT') {\n _this.onMenuClose();\n }\n } //$FlowFixMe\n\n\n if (event.target.tagName !== 'INPUT') {\n event.preventDefault();\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onDropdownIndicatorMouseDown\", function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n\n if (_this.props.isDisabled) return;\n var _this$props4 = _this.props,\n isMulti = _this$props4.isMulti,\n menuIsOpen = _this$props4.menuIsOpen;\n\n _this.focusInput();\n\n if (menuIsOpen) {\n _this.inputIsHiddenAfterUpdate = !isMulti;\n\n _this.onMenuClose();\n } else {\n _this.openMenu('first');\n }\n\n event.preventDefault();\n event.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onClearIndicatorMouseDown\", function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n\n _this.clearValue();\n\n event.stopPropagation();\n _this.openAfterFocus = false;\n\n if (event.type === 'touchend') {\n _this.focusInput();\n } else {\n setTimeout(function () {\n return _this.focusInput();\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onScroll\", function (event) {\n if (typeof _this.props.closeMenuOnScroll === 'boolean') {\n if (event.target instanceof HTMLElement && isDocumentElement(event.target)) {\n _this.props.onMenuClose();\n }\n } else if (typeof _this.props.closeMenuOnScroll === 'function') {\n if (_this.props.closeMenuOnScroll(event)) {\n _this.props.onMenuClose();\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onCompositionStart\", function () {\n _this.isComposing = true;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onCompositionEnd\", function () {\n _this.isComposing = false;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onTouchStart\", function (_ref4) {\n var touches = _ref4.touches;\n var touch = touches.item(0);\n\n if (!touch) {\n return;\n }\n\n _this.initialTouchX = touch.clientX;\n _this.initialTouchY = touch.clientY;\n _this.userIsDragging = false;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onTouchMove\", function (_ref5) {\n var touches = _ref5.touches;\n var touch = touches.item(0);\n\n if (!touch) {\n return;\n }\n\n var deltaX = Math.abs(touch.clientX - _this.initialTouchX);\n var deltaY = Math.abs(touch.clientY - _this.initialTouchY);\n var moveThreshold = 5;\n _this.userIsDragging = deltaX > moveThreshold || deltaY > moveThreshold;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onTouchEnd\", function (event) {\n if (_this.userIsDragging) return; // close the menu if the user taps outside\n // we're checking on event.target here instead of event.currentTarget, because we want to assert information\n // on events on child elements, not the document (which we've attached this handler to).\n\n if (_this.controlRef && !_this.controlRef.contains(event.target) && _this.menuListRef && !_this.menuListRef.contains(event.target)) {\n _this.blurInput();\n } // reset move vars\n\n\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onControlTouchEnd\", function (event) {\n if (_this.userIsDragging) return;\n\n _this.onControlMouseDown(event);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onClearIndicatorTouchEnd\", function (event) {\n if (_this.userIsDragging) return;\n\n _this.onClearIndicatorMouseDown(event);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onDropdownIndicatorTouchEnd\", function (event) {\n if (_this.userIsDragging) return;\n\n _this.onDropdownIndicatorMouseDown(event);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleInputChange\", function (event) {\n var inputValue = event.currentTarget.value;\n _this.inputIsHiddenAfterUpdate = false;\n\n _this.onInputChange(inputValue, {\n action: 'input-change'\n });\n\n _this.onMenuOpen();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onInputFocus\", function (event) {\n var _this$props5 = _this.props,\n isSearchable = _this$props5.isSearchable,\n isMulti = _this$props5.isMulti;\n\n if (_this.props.onFocus) {\n _this.props.onFocus(event);\n }\n\n _this.inputIsHiddenAfterUpdate = false;\n\n _this.announceAriaLiveContext({\n event: 'input',\n context: {\n isSearchable: isSearchable,\n isMulti: isMulti\n }\n });\n\n _this.setState({\n isFocused: true\n });\n\n if (_this.openAfterFocus || _this.props.openMenuOnFocus) {\n _this.openMenu('first');\n }\n\n _this.openAfterFocus = false;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onInputBlur\", function (event) {\n if (_this.menuListRef && _this.menuListRef.contains(document.activeElement)) {\n _this.inputRef.focus();\n\n return;\n }\n\n if (_this.props.onBlur) {\n _this.props.onBlur(event);\n }\n\n _this.onInputChange('', {\n action: 'input-blur'\n });\n\n _this.onMenuClose();\n\n _this.setState({\n focusedValue: null,\n isFocused: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onOptionHover\", function (focusedOption) {\n if (_this.blockOptionHover || _this.state.focusedOption === focusedOption) {\n return;\n }\n\n _this.setState({\n focusedOption: focusedOption\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"shouldHideSelectedOptions\", function () {\n var _this$props6 = _this.props,\n hideSelectedOptions = _this$props6.hideSelectedOptions,\n isMulti = _this$props6.isMulti;\n if (hideSelectedOptions === undefined) return isMulti;\n return hideSelectedOptions;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onKeyDown\", function (event) {\n var _this$props7 = _this.props,\n isMulti = _this$props7.isMulti,\n backspaceRemovesValue = _this$props7.backspaceRemovesValue,\n escapeClearsValue = _this$props7.escapeClearsValue,\n inputValue = _this$props7.inputValue,\n isClearable = _this$props7.isClearable,\n isDisabled = _this$props7.isDisabled,\n menuIsOpen = _this$props7.menuIsOpen,\n onKeyDown = _this$props7.onKeyDown,\n tabSelectsValue = _this$props7.tabSelectsValue,\n openMenuOnFocus = _this$props7.openMenuOnFocus;\n var _this$state2 = _this.state,\n focusedOption = _this$state2.focusedOption,\n focusedValue = _this$state2.focusedValue,\n selectValue = _this$state2.selectValue;\n if (isDisabled) return;\n\n if (typeof onKeyDown === 'function') {\n onKeyDown(event);\n\n if (event.defaultPrevented) {\n return;\n }\n } // Block option hover events when the user has just pressed a key\n\n\n _this.blockOptionHover = true;\n\n switch (event.key) {\n case 'ArrowLeft':\n if (!isMulti || inputValue) return;\n\n _this.focusValue('previous');\n\n break;\n\n case 'ArrowRight':\n if (!isMulti || inputValue) return;\n\n _this.focusValue('next');\n\n break;\n\n case 'Delete':\n case 'Backspace':\n if (inputValue) return;\n\n if (focusedValue) {\n _this.removeValue(focusedValue);\n } else {\n if (!backspaceRemovesValue) return;\n\n if (isMulti) {\n _this.popValue();\n } else if (isClearable) {\n _this.clearValue();\n }\n }\n\n break;\n\n case 'Tab':\n if (_this.isComposing) return;\n\n if (event.shiftKey || !menuIsOpen || !tabSelectsValue || !focusedOption || // don't capture the event if the menu opens on focus and the focused\n // option is already selected; it breaks the flow of navigation\n openMenuOnFocus && _this.isOptionSelected(focusedOption, selectValue)) {\n return;\n }\n\n _this.selectOption(focusedOption);\n\n break;\n\n case 'Enter':\n if (event.keyCode === 229) {\n // ignore the keydown event from an Input Method Editor(IME)\n // ref. https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\n break;\n }\n\n if (menuIsOpen) {\n if (!focusedOption) return;\n if (_this.isComposing) return;\n\n _this.selectOption(focusedOption);\n\n break;\n }\n\n return;\n\n case 'Escape':\n if (menuIsOpen) {\n _this.inputIsHiddenAfterUpdate = false;\n\n _this.onInputChange('', {\n action: 'menu-close'\n });\n\n _this.onMenuClose();\n } else if (isClearable && escapeClearsValue) {\n _this.clearValue();\n }\n\n break;\n\n case ' ':\n // space\n if (inputValue) {\n return;\n }\n\n if (!menuIsOpen) {\n _this.openMenu('first');\n\n break;\n }\n\n if (!focusedOption) return;\n\n _this.selectOption(focusedOption);\n\n break;\n\n case 'ArrowUp':\n if (menuIsOpen) {\n _this.focusOption('up');\n } else {\n _this.openMenu('last');\n }\n\n break;\n\n case 'ArrowDown':\n if (menuIsOpen) {\n _this.focusOption('down');\n } else {\n _this.openMenu('first');\n }\n\n break;\n\n case 'PageUp':\n if (!menuIsOpen) return;\n\n _this.focusOption('pageup');\n\n break;\n\n case 'PageDown':\n if (!menuIsOpen) return;\n\n _this.focusOption('pagedown');\n\n break;\n\n case 'Home':\n if (!menuIsOpen) return;\n\n _this.focusOption('first');\n\n break;\n\n case 'End':\n if (!menuIsOpen) return;\n\n _this.focusOption('last');\n\n break;\n\n default:\n return;\n }\n\n event.preventDefault();\n });\n\n var value = _props.value;\n _this.cacheComponents = memoizeOne(_this.cacheComponents, exportedEqual).bind(_assertThisInitialized(_assertThisInitialized(_this)));\n\n _this.cacheComponents(_props.components);\n\n _this.instancePrefix = 'react-select-' + (_this.props.instanceId || ++instanceId);\n\n var _selectValue = cleanValue(value);\n\n var _menuOptions = _props.menuIsOpen ? _this.buildMenuOptions(_props, _selectValue) : {\n render: [],\n focusable: []\n };\n\n _this.state.menuOptions = _menuOptions;\n _this.state.selectValue = _selectValue;\n return _this;\n }\n\n _createClass(Select, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startListeningComposition();\n this.startListeningToTouch();\n\n if (this.props.closeMenuOnScroll && document && document.addEventListener) {\n // Listen to all scroll events, and filter them out inside of 'onScroll'\n document.addEventListener('scroll', this.onScroll, true);\n }\n\n if (this.props.autoFocus) {\n this.focusInput();\n }\n }\n }, {\n key: \"UNSAFE_componentWillReceiveProps\",\n value: function UNSAFE_componentWillReceiveProps(nextProps) {\n var _this$props8 = this.props,\n options = _this$props8.options,\n value = _this$props8.value,\n menuIsOpen = _this$props8.menuIsOpen,\n inputValue = _this$props8.inputValue; // re-cache custom components\n\n this.cacheComponents(nextProps.components); // rebuild the menu options\n\n if (nextProps.value !== value || nextProps.options !== options || nextProps.menuIsOpen !== menuIsOpen || nextProps.inputValue !== inputValue) {\n var selectValue = cleanValue(nextProps.value);\n var menuOptions = nextProps.menuIsOpen ? this.buildMenuOptions(nextProps, selectValue) : {\n render: [],\n focusable: []\n };\n var focusedValue = this.getNextFocusedValue(selectValue);\n var focusedOption = this.getNextFocusedOption(menuOptions.focusable);\n this.setState({\n menuOptions: menuOptions,\n selectValue: selectValue,\n focusedOption: focusedOption,\n focusedValue: focusedValue\n });\n } // some updates should toggle the state of the input visibility\n\n\n if (this.inputIsHiddenAfterUpdate != null) {\n this.setState({\n inputIsHidden: this.inputIsHiddenAfterUpdate\n });\n delete this.inputIsHiddenAfterUpdate;\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props9 = this.props,\n isDisabled = _this$props9.isDisabled,\n menuIsOpen = _this$props9.menuIsOpen;\n var isFocused = this.state.isFocused;\n\n if ( // ensure focus is restored correctly when the control becomes enabled\n isFocused && !isDisabled && prevProps.isDisabled || // ensure focus is on the Input when the menu opens\n isFocused && menuIsOpen && !prevProps.menuIsOpen) {\n this.focusInput();\n } // scroll the focused option into view if necessary\n\n\n if (this.menuListRef && this.focusedOptionRef && this.scrollToFocusedOptionOnUpdate) {\n scrollIntoView(this.menuListRef, this.focusedOptionRef);\n }\n\n this.scrollToFocusedOptionOnUpdate = false;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.stopListeningComposition();\n this.stopListeningToTouch();\n document.removeEventListener('scroll', this.onScroll, true);\n }\n }, {\n key: \"onMenuOpen\",\n // ==============================\n // Consumer Handlers\n // ==============================\n value: function onMenuOpen() {\n this.props.onMenuOpen();\n }\n }, {\n key: \"onMenuClose\",\n value: function onMenuClose() {\n var _this$props10 = this.props,\n isSearchable = _this$props10.isSearchable,\n isMulti = _this$props10.isMulti;\n this.announceAriaLiveContext({\n event: 'input',\n context: {\n isSearchable: isSearchable,\n isMulti: isMulti\n }\n });\n this.onInputChange('', {\n action: 'menu-close'\n });\n this.props.onMenuClose();\n }\n }, {\n key: \"onInputChange\",\n value: function onInputChange(newValue, actionMeta) {\n this.props.onInputChange(newValue, actionMeta);\n } // ==============================\n // Methods\n // ==============================\n\n }, {\n key: \"focusInput\",\n value: function focusInput() {\n if (!this.inputRef) return;\n this.inputRef.focus();\n }\n }, {\n key: \"blurInput\",\n value: function blurInput() {\n if (!this.inputRef) return;\n this.inputRef.blur();\n } // aliased for consumers\n\n }, {\n key: \"openMenu\",\n value: function openMenu(focusOption) {\n var _this$state3 = this.state,\n menuOptions = _this$state3.menuOptions,\n selectValue = _this$state3.selectValue,\n isFocused = _this$state3.isFocused;\n var isMulti = this.props.isMulti;\n var openAtIndex = focusOption === 'first' ? 0 : menuOptions.focusable.length - 1;\n\n if (!isMulti) {\n var selectedIndex = menuOptions.focusable.indexOf(selectValue[0]);\n\n if (selectedIndex > -1) {\n openAtIndex = selectedIndex;\n }\n } // only scroll if the menu isn't already open\n\n\n this.scrollToFocusedOptionOnUpdate = !(isFocused && this.menuListRef);\n this.inputIsHiddenAfterUpdate = false;\n this.onMenuOpen();\n this.setState({\n focusedValue: null,\n focusedOption: menuOptions.focusable[openAtIndex]\n });\n this.announceAriaLiveContext({\n event: 'menu'\n });\n }\n }, {\n key: \"focusValue\",\n value: function focusValue(direction) {\n var _this$props11 = this.props,\n isMulti = _this$props11.isMulti,\n isSearchable = _this$props11.isSearchable;\n var _this$state4 = this.state,\n selectValue = _this$state4.selectValue,\n focusedValue = _this$state4.focusedValue; // Only multiselects support value focusing\n\n if (!isMulti) return;\n this.setState({\n focusedOption: null\n });\n var focusedIndex = selectValue.indexOf(focusedValue);\n\n if (!focusedValue) {\n focusedIndex = -1;\n this.announceAriaLiveContext({\n event: 'value'\n });\n }\n\n var lastIndex = selectValue.length - 1;\n var nextFocus = -1;\n if (!selectValue.length) return;\n\n switch (direction) {\n case 'previous':\n if (focusedIndex === 0) {\n // don't cycle from the start to the end\n nextFocus = 0;\n } else if (focusedIndex === -1) {\n // if nothing is focused, focus the last value first\n nextFocus = lastIndex;\n } else {\n nextFocus = focusedIndex - 1;\n }\n\n break;\n\n case 'next':\n if (focusedIndex > -1 && focusedIndex < lastIndex) {\n nextFocus = focusedIndex + 1;\n }\n\n break;\n }\n\n if (nextFocus === -1) {\n this.announceAriaLiveContext({\n event: 'input',\n context: {\n isSearchable: isSearchable,\n isMulti: isMulti\n }\n });\n }\n\n this.setState({\n inputIsHidden: nextFocus !== -1,\n focusedValue: selectValue[nextFocus]\n });\n }\n }, {\n key: \"focusOption\",\n value: function focusOption() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'first';\n var pageSize = this.props.pageSize;\n var _this$state5 = this.state,\n focusedOption = _this$state5.focusedOption,\n menuOptions = _this$state5.menuOptions;\n var options = menuOptions.focusable;\n if (!options.length) return;\n var nextFocus = 0; // handles 'first'\n\n var focusedIndex = options.indexOf(focusedOption);\n\n if (!focusedOption) {\n focusedIndex = -1;\n this.announceAriaLiveContext({\n event: 'menu'\n });\n }\n\n if (direction === 'up') {\n nextFocus = focusedIndex > 0 ? focusedIndex - 1 : options.length - 1;\n } else if (direction === 'down') {\n nextFocus = (focusedIndex + 1) % options.length;\n } else if (direction === 'pageup') {\n nextFocus = focusedIndex - pageSize;\n if (nextFocus < 0) nextFocus = 0;\n } else if (direction === 'pagedown') {\n nextFocus = focusedIndex + pageSize;\n if (nextFocus > options.length - 1) nextFocus = options.length - 1;\n } else if (direction === 'last') {\n nextFocus = options.length - 1;\n }\n\n this.scrollToFocusedOptionOnUpdate = true;\n this.setState({\n focusedOption: options[nextFocus],\n focusedValue: null\n });\n this.announceAriaLiveContext({\n event: 'menu',\n context: {\n isDisabled: isOptionDisabled(options[nextFocus])\n }\n });\n }\n }, {\n key: \"getTheme\",\n // ==============================\n // Getters\n // ==============================\n value: function getTheme() {\n // Use the default theme if there are no customizations.\n if (!this.props.theme) {\n return defaultTheme;\n } // If the theme prop is a function, assume the function\n // knows how to merge the passed-in default theme with\n // its own modifications.\n\n\n if (typeof this.props.theme === 'function') {\n return this.props.theme(defaultTheme);\n } // Otherwise, if a plain theme object was passed in,\n // overlay it with the default theme.\n\n\n return _objectSpread({}, defaultTheme, this.props.theme);\n }\n }, {\n key: \"getCommonProps\",\n value: function getCommonProps() {\n var clearValue = this.clearValue,\n getStyles = this.getStyles,\n setValue = this.setValue,\n selectOption = this.selectOption,\n props = this.props;\n var classNamePrefix = props.classNamePrefix,\n isMulti = props.isMulti,\n isRtl = props.isRtl,\n options = props.options;\n var selectValue = this.state.selectValue;\n var hasValue = this.hasValue();\n\n var getValue = function getValue() {\n return selectValue;\n };\n\n var cx = classNames.bind(null, classNamePrefix);\n return {\n cx: cx,\n clearValue: clearValue,\n getStyles: getStyles,\n getValue: getValue,\n hasValue: hasValue,\n isMulti: isMulti,\n isRtl: isRtl,\n options: options,\n selectOption: selectOption,\n setValue: setValue,\n selectProps: props,\n theme: this.getTheme()\n };\n }\n }, {\n key: \"getNextFocusedValue\",\n value: function getNextFocusedValue(nextSelectValue) {\n if (this.clearFocusValueOnUpdate) {\n this.clearFocusValueOnUpdate = false;\n return null;\n }\n\n var _this$state6 = this.state,\n focusedValue = _this$state6.focusedValue,\n lastSelectValue = _this$state6.selectValue;\n var lastFocusedIndex = lastSelectValue.indexOf(focusedValue);\n\n if (lastFocusedIndex > -1) {\n var nextFocusedIndex = nextSelectValue.indexOf(focusedValue);\n\n if (nextFocusedIndex > -1) {\n // the focused value is still in the selectValue, return it\n return focusedValue;\n } else if (lastFocusedIndex < nextSelectValue.length) {\n // the focusedValue is not present in the next selectValue array by\n // reference, so return the new value at the same index\n return nextSelectValue[lastFocusedIndex];\n }\n }\n\n return null;\n }\n }, {\n key: \"getNextFocusedOption\",\n value: function getNextFocusedOption(options) {\n var lastFocusedOption = this.state.focusedOption;\n return lastFocusedOption && options.indexOf(lastFocusedOption) > -1 ? lastFocusedOption : options[0];\n }\n }, {\n key: \"hasValue\",\n value: function hasValue() {\n var selectValue = this.state.selectValue;\n return selectValue.length > 0;\n }\n }, {\n key: \"hasOptions\",\n value: function hasOptions() {\n return !!this.state.menuOptions.render.length;\n }\n }, {\n key: \"countOptions\",\n value: function countOptions() {\n return this.state.menuOptions.focusable.length;\n }\n }, {\n key: \"isClearable\",\n value: function isClearable() {\n var _this$props12 = this.props,\n isClearable = _this$props12.isClearable,\n isMulti = _this$props12.isMulti; // single select, by default, IS NOT clearable\n // multi select, by default, IS clearable\n\n if (isClearable === undefined) return isMulti;\n return isClearable;\n }\n }, {\n key: \"isOptionDisabled\",\n value: function isOptionDisabled(option, selectValue) {\n return typeof this.props.isOptionDisabled === 'function' ? this.props.isOptionDisabled(option, selectValue) : false;\n }\n }, {\n key: \"isOptionSelected\",\n value: function isOptionSelected(option, selectValue) {\n var _this2 = this;\n\n if (selectValue.indexOf(option) > -1) return true;\n\n if (typeof this.props.isOptionSelected === 'function') {\n return this.props.isOptionSelected(option, selectValue);\n }\n\n var candidate = this.getOptionValue(option);\n return selectValue.some(function (i) {\n return _this2.getOptionValue(i) === candidate;\n });\n }\n }, {\n key: \"filterOption\",\n value: function filterOption(option, inputValue) {\n return this.props.filterOption ? this.props.filterOption(option, inputValue) : true;\n }\n }, {\n key: \"formatOptionLabel\",\n value: function formatOptionLabel(data, context) {\n if (typeof this.props.formatOptionLabel === 'function') {\n var inputValue = this.props.inputValue;\n var selectValue = this.state.selectValue;\n return this.props.formatOptionLabel(data, {\n context: context,\n inputValue: inputValue,\n selectValue: selectValue\n });\n } else {\n return this.getOptionLabel(data);\n }\n }\n }, {\n key: \"formatGroupLabel\",\n value: function formatGroupLabel(data) {\n return this.props.formatGroupLabel(data);\n } // ==============================\n // Mouse Handlers\n // ==============================\n\n }, {\n key: \"startListeningComposition\",\n // ==============================\n // Composition Handlers\n // ==============================\n value: function startListeningComposition() {\n if (document && document.addEventListener) {\n document.addEventListener('compositionstart', this.onCompositionStart, false);\n document.addEventListener('compositionend', this.onCompositionEnd, false);\n }\n }\n }, {\n key: \"stopListeningComposition\",\n value: function stopListeningComposition() {\n if (document && document.removeEventListener) {\n document.removeEventListener('compositionstart', this.onCompositionStart);\n document.removeEventListener('compositionend', this.onCompositionEnd);\n }\n }\n }, {\n key: \"startListeningToTouch\",\n // ==============================\n // Touch Handlers\n // ==============================\n value: function startListeningToTouch() {\n if (document && document.addEventListener) {\n document.addEventListener('touchstart', this.onTouchStart, false);\n document.addEventListener('touchmove', this.onTouchMove, false);\n document.addEventListener('touchend', this.onTouchEnd, false);\n }\n }\n }, {\n key: \"stopListeningToTouch\",\n value: function stopListeningToTouch() {\n if (document && document.removeEventListener) {\n document.removeEventListener('touchstart', this.onTouchStart);\n document.removeEventListener('touchmove', this.onTouchMove);\n document.removeEventListener('touchend', this.onTouchEnd);\n }\n }\n }, {\n key: \"buildMenuOptions\",\n // ==============================\n // Menu Options\n // ==============================\n value: function buildMenuOptions(props, selectValue) {\n var _this3 = this;\n\n var _props$inputValue = props.inputValue,\n inputValue = _props$inputValue === void 0 ? '' : _props$inputValue,\n options = props.options;\n\n var toOption = function toOption(option, id) {\n var isDisabled = _this3.isOptionDisabled(option, selectValue);\n\n var isSelected = _this3.isOptionSelected(option, selectValue);\n\n var label = _this3.getOptionLabel(option);\n\n var value = _this3.getOptionValue(option);\n\n if (_this3.shouldHideSelectedOptions() && isSelected || !_this3.filterOption({\n label: label,\n value: value,\n data: option\n }, inputValue)) {\n return;\n }\n\n var onHover = isDisabled ? undefined : function () {\n return _this3.onOptionHover(option);\n };\n var onSelect = isDisabled ? undefined : function () {\n return _this3.selectOption(option);\n };\n var optionId = \"\".concat(_this3.getElementId('option'), \"-\").concat(id);\n return {\n innerProps: {\n id: optionId,\n onClick: onSelect,\n onMouseMove: onHover,\n onMouseOver: onHover,\n tabIndex: -1\n },\n data: option,\n isDisabled: isDisabled,\n isSelected: isSelected,\n key: optionId,\n label: label,\n type: 'option',\n value: value\n };\n };\n\n return options.reduce(function (acc, item, itemIndex) {\n if (item.options) {\n // TODO needs a tidier implementation\n if (!_this3.hasGroups) _this3.hasGroups = true;\n var items = item.options;\n var children = items.map(function (child, i) {\n var option = toOption(child, \"\".concat(itemIndex, \"-\").concat(i));\n if (option) acc.focusable.push(child);\n return option;\n }).filter(Boolean);\n\n if (children.length) {\n var groupId = \"\".concat(_this3.getElementId('group'), \"-\").concat(itemIndex);\n acc.render.push({\n type: 'group',\n key: groupId,\n data: item,\n options: children\n });\n }\n } else {\n var option = toOption(item, \"\".concat(itemIndex));\n\n if (option) {\n acc.render.push(option);\n acc.focusable.push(item);\n }\n }\n\n return acc;\n }, {\n render: [],\n focusable: []\n });\n } // ==============================\n // Renderers\n // ==============================\n\n }, {\n key: \"constructAriaLiveMessage\",\n value: function constructAriaLiveMessage() {\n var _this$state7 = this.state,\n ariaLiveContext = _this$state7.ariaLiveContext,\n selectValue = _this$state7.selectValue,\n focusedValue = _this$state7.focusedValue,\n focusedOption = _this$state7.focusedOption;\n var _this$props13 = this.props,\n options = _this$props13.options,\n menuIsOpen = _this$props13.menuIsOpen,\n inputValue = _this$props13.inputValue,\n screenReaderStatus = _this$props13.screenReaderStatus; // An aria live message representing the currently focused value in the select.\n\n var focusedValueMsg = focusedValue ? valueFocusAriaMessage({\n focusedValue: focusedValue,\n getOptionLabel: this.getOptionLabel,\n selectValue: selectValue\n }) : ''; // An aria live message representing the currently focused option in the select.\n\n var focusedOptionMsg = focusedOption && menuIsOpen ? optionFocusAriaMessage({\n focusedOption: focusedOption,\n getOptionLabel: this.getOptionLabel,\n options: options\n }) : ''; // An aria live message representing the set of focusable results and current searchterm/inputvalue.\n\n var resultsMsg = resultsAriaMessage({\n inputValue: inputValue,\n screenReaderMessage: screenReaderStatus({\n count: this.countOptions()\n })\n });\n return \"\".concat(focusedValueMsg, \" \").concat(focusedOptionMsg, \" \").concat(resultsMsg, \" \").concat(ariaLiveContext);\n }\n }, {\n key: \"renderInput\",\n value: function renderInput() {\n var _this$props14 = this.props,\n isDisabled = _this$props14.isDisabled,\n isSearchable = _this$props14.isSearchable,\n inputId = _this$props14.inputId,\n inputValue = _this$props14.inputValue,\n tabIndex = _this$props14.tabIndex;\n var Input = this.components.Input;\n var inputIsHidden = this.state.inputIsHidden;\n var id = inputId || this.getElementId('input');\n\n if (!isSearchable) {\n // use a dummy input to maintain focus/blur functionality\n return React.createElement(DummyInput, {\n id: id,\n innerRef: this.getInputRef,\n onBlur: this.onInputBlur,\n onChange: noop,\n onFocus: this.onInputFocus,\n readOnly: true,\n disabled: isDisabled,\n tabIndex: tabIndex,\n value: \"\"\n });\n } // aria attributes makes the JSX \"noisy\", separated for clarity\n\n\n var ariaAttributes = {\n 'aria-autocomplete': 'list',\n 'aria-label': this.props['aria-label'],\n 'aria-labelledby': this.props['aria-labelledby']\n };\n var _this$commonProps = this.commonProps,\n cx = _this$commonProps.cx,\n theme = _this$commonProps.theme,\n selectProps = _this$commonProps.selectProps;\n return React.createElement(Input, _extends({\n autoCapitalize: \"none\",\n autoComplete: \"off\",\n autoCorrect: \"off\",\n cx: cx,\n getStyles: this.getStyles,\n id: id,\n innerRef: this.getInputRef,\n isDisabled: isDisabled,\n isHidden: inputIsHidden,\n onBlur: this.onInputBlur,\n onChange: this.handleInputChange,\n onFocus: this.onInputFocus,\n selectProps: selectProps,\n spellCheck: \"false\",\n tabIndex: tabIndex,\n theme: theme,\n type: \"text\",\n value: inputValue\n }, ariaAttributes));\n }\n }, {\n key: \"renderPlaceholderOrValue\",\n value: function renderPlaceholderOrValue() {\n var _this4 = this;\n\n var _this$components = this.components,\n MultiValue = _this$components.MultiValue,\n MultiValueContainer = _this$components.MultiValueContainer,\n MultiValueLabel = _this$components.MultiValueLabel,\n MultiValueRemove = _this$components.MultiValueRemove,\n SingleValue = _this$components.SingleValue,\n Placeholder = _this$components.Placeholder;\n var commonProps = this.commonProps;\n var _this$props15 = this.props,\n controlShouldRenderValue = _this$props15.controlShouldRenderValue,\n isDisabled = _this$props15.isDisabled,\n isMulti = _this$props15.isMulti,\n inputValue = _this$props15.inputValue,\n placeholder = _this$props15.placeholder;\n var _this$state8 = this.state,\n selectValue = _this$state8.selectValue,\n focusedValue = _this$state8.focusedValue,\n isFocused = _this$state8.isFocused;\n\n if (!this.hasValue() || !controlShouldRenderValue) {\n return inputValue ? null : React.createElement(Placeholder, _extends({}, commonProps, {\n key: \"placeholder\",\n isDisabled: isDisabled,\n isFocused: isFocused\n }), placeholder);\n }\n\n if (isMulti) {\n var selectValues = selectValue.map(function (opt, index) {\n var isOptionFocused = opt === focusedValue;\n return React.createElement(MultiValue, _extends({}, commonProps, {\n components: {\n Container: MultiValueContainer,\n Label: MultiValueLabel,\n Remove: MultiValueRemove\n },\n isFocused: isOptionFocused,\n isDisabled: isDisabled,\n key: _this4.getOptionValue(opt),\n index: index,\n removeProps: {\n onClick: function onClick() {\n return _this4.removeValue(opt);\n },\n onTouchEnd: function onTouchEnd() {\n return _this4.removeValue(opt);\n },\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n }\n },\n data: opt\n }), _this4.formatOptionLabel(opt, 'value'));\n });\n return selectValues;\n }\n\n if (inputValue) {\n return null;\n }\n\n var singleValue = selectValue[0];\n return React.createElement(SingleValue, _extends({}, commonProps, {\n data: singleValue,\n isDisabled: isDisabled\n }), this.formatOptionLabel(singleValue, 'value'));\n }\n }, {\n key: \"renderClearIndicator\",\n value: function renderClearIndicator() {\n var ClearIndicator = this.components.ClearIndicator;\n var commonProps = this.commonProps;\n var _this$props16 = this.props,\n isDisabled = _this$props16.isDisabled,\n isLoading = _this$props16.isLoading;\n var isFocused = this.state.isFocused;\n\n if (!this.isClearable() || !ClearIndicator || isDisabled || !this.hasValue() || isLoading) {\n return null;\n }\n\n var innerProps = {\n onMouseDown: this.onClearIndicatorMouseDown,\n onTouchEnd: this.onClearIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return React.createElement(ClearIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderLoadingIndicator\",\n value: function renderLoadingIndicator() {\n var LoadingIndicator = this.components.LoadingIndicator;\n var commonProps = this.commonProps;\n var _this$props17 = this.props,\n isDisabled = _this$props17.isDisabled,\n isLoading = _this$props17.isLoading;\n var isFocused = this.state.isFocused;\n if (!LoadingIndicator || !isLoading) return null;\n var innerProps = {\n 'aria-hidden': 'true'\n };\n return React.createElement(LoadingIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderIndicatorSeparator\",\n value: function renderIndicatorSeparator() {\n var _this$components2 = this.components,\n DropdownIndicator = _this$components2.DropdownIndicator,\n IndicatorSeparator = _this$components2.IndicatorSeparator; // separator doesn't make sense without the dropdown indicator\n\n if (!DropdownIndicator || !IndicatorSeparator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n return React.createElement(IndicatorSeparator, _extends({}, commonProps, {\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderDropdownIndicator\",\n value: function renderDropdownIndicator() {\n var DropdownIndicator = this.components.DropdownIndicator;\n if (!DropdownIndicator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n var innerProps = {\n onMouseDown: this.onDropdownIndicatorMouseDown,\n onTouchEnd: this.onDropdownIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return React.createElement(DropdownIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderMenu\",\n value: function renderMenu() {\n var _this5 = this;\n\n var _this$components3 = this.components,\n Group = _this$components3.Group,\n GroupHeading = _this$components3.GroupHeading,\n Menu = _this$components3.Menu,\n MenuList = _this$components3.MenuList,\n MenuPortal = _this$components3.MenuPortal,\n LoadingMessage = _this$components3.LoadingMessage,\n NoOptionsMessage = _this$components3.NoOptionsMessage,\n Option = _this$components3.Option;\n var commonProps = this.commonProps;\n var _this$state9 = this.state,\n focusedOption = _this$state9.focusedOption,\n menuOptions = _this$state9.menuOptions;\n var _this$props18 = this.props,\n captureMenuScroll = _this$props18.captureMenuScroll,\n inputValue = _this$props18.inputValue,\n isLoading = _this$props18.isLoading,\n loadingMessage = _this$props18.loadingMessage,\n minMenuHeight = _this$props18.minMenuHeight,\n maxMenuHeight = _this$props18.maxMenuHeight,\n menuIsOpen = _this$props18.menuIsOpen,\n menuPlacement = _this$props18.menuPlacement,\n menuPosition = _this$props18.menuPosition,\n menuPortalTarget = _this$props18.menuPortalTarget,\n menuShouldBlockScroll = _this$props18.menuShouldBlockScroll,\n menuShouldScrollIntoView = _this$props18.menuShouldScrollIntoView,\n noOptionsMessage = _this$props18.noOptionsMessage,\n onMenuScrollToTop = _this$props18.onMenuScrollToTop,\n onMenuScrollToBottom = _this$props18.onMenuScrollToBottom;\n if (!menuIsOpen) return null; // TODO: Internal Option Type here\n\n var render = function render(props) {\n // for performance, the menu options in state aren't changed when the\n // focused option changes so we calculate additional props based on that\n var isFocused = focusedOption === props.data;\n props.innerRef = isFocused ? _this5.getFocusedOptionRef : undefined;\n return React.createElement(Option, _extends({}, commonProps, props, {\n isFocused: isFocused\n }), _this5.formatOptionLabel(props.data, 'menu'));\n };\n\n var menuUI;\n\n if (this.hasOptions()) {\n menuUI = menuOptions.render.map(function (item) {\n if (item.type === 'group') {\n var type = item.type,\n group = _objectWithoutProperties(item, [\"type\"]);\n\n var headingId = \"\".concat(item.key, \"-heading\");\n return React.createElement(Group, _extends({}, commonProps, group, {\n Heading: GroupHeading,\n headingProps: {\n id: headingId\n },\n label: _this5.formatGroupLabel(item.data)\n }), item.options.map(function (option) {\n return render(option);\n }));\n } else if (item.type === 'option') {\n return render(item);\n }\n });\n } else if (isLoading) {\n var message = loadingMessage({\n inputValue: inputValue\n });\n if (message === null) return null;\n menuUI = React.createElement(LoadingMessage, commonProps, message);\n } else {\n var _message = noOptionsMessage({\n inputValue: inputValue\n });\n\n if (_message === null) return null;\n menuUI = React.createElement(NoOptionsMessage, commonProps, _message);\n }\n\n var menuPlacementProps = {\n minMenuHeight: minMenuHeight,\n maxMenuHeight: maxMenuHeight,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition,\n menuShouldScrollIntoView: menuShouldScrollIntoView\n };\n var menuElement = React.createElement(MenuPlacer, _extends({}, commonProps, menuPlacementProps), function (_ref6) {\n var ref = _ref6.ref,\n _ref6$placerProps = _ref6.placerProps,\n placement = _ref6$placerProps.placement,\n maxHeight = _ref6$placerProps.maxHeight;\n return React.createElement(Menu, _extends({}, commonProps, menuPlacementProps, {\n innerRef: ref,\n innerProps: {\n onMouseDown: _this5.onMenuMouseDown,\n onMouseMove: _this5.onMenuMouseMove\n },\n isLoading: isLoading,\n placement: placement\n }), React.createElement(ScrollCaptorSwitch, {\n isEnabled: captureMenuScroll,\n onTopArrive: onMenuScrollToTop,\n onBottomArrive: onMenuScrollToBottom\n }, React.createElement(ScrollBlock, {\n isEnabled: menuShouldBlockScroll\n }, React.createElement(MenuList, _extends({}, commonProps, {\n innerRef: _this5.getMenuListRef,\n isLoading: isLoading,\n maxHeight: maxHeight\n }), menuUI))));\n }); // positioning behaviour is almost identical for portalled and fixed,\n // so we use the same component. the actual portalling logic is forked\n // within the component based on `menuPosition`\n\n return menuPortalTarget || menuPosition === 'fixed' ? React.createElement(MenuPortal, _extends({}, commonProps, {\n appendTo: menuPortalTarget,\n controlElement: this.controlRef,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition\n }), menuElement) : menuElement;\n }\n }, {\n key: \"renderFormField\",\n value: function renderFormField() {\n var _this6 = this;\n\n var _this$props19 = this.props,\n delimiter = _this$props19.delimiter,\n isDisabled = _this$props19.isDisabled,\n isMulti = _this$props19.isMulti,\n name = _this$props19.name;\n var selectValue = this.state.selectValue;\n if (!name || isDisabled) return;\n\n if (isMulti) {\n if (delimiter) {\n var value = selectValue.map(function (opt) {\n return _this6.getOptionValue(opt);\n }).join(delimiter);\n return React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: value\n });\n } else {\n var input = selectValue.length > 0 ? selectValue.map(function (opt, i) {\n return React.createElement(\"input\", {\n key: \"i-\".concat(i),\n name: name,\n type: \"hidden\",\n value: _this6.getOptionValue(opt)\n });\n }) : React.createElement(\"input\", {\n name: name,\n type: \"hidden\"\n });\n return React.createElement(\"div\", null, input);\n }\n } else {\n var _value = selectValue[0] ? this.getOptionValue(selectValue[0]) : '';\n\n return React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: _value\n });\n }\n }\n }, {\n key: \"renderLiveRegion\",\n value: function renderLiveRegion() {\n if (!this.state.isFocused) return null;\n return React.createElement(A11yText, {\n \"aria-live\": \"polite\"\n }, React.createElement(\"p\", {\n id: \"aria-selection-event\"\n }, \"\\xA0\", this.state.ariaLiveSelection), React.createElement(\"p\", {\n id: \"aria-context\"\n }, \"\\xA0\", this.constructAriaLiveMessage()));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$components4 = this.components,\n Control = _this$components4.Control,\n IndicatorsContainer = _this$components4.IndicatorsContainer,\n SelectContainer = _this$components4.SelectContainer,\n ValueContainer = _this$components4.ValueContainer;\n var _this$props20 = this.props,\n className = _this$props20.className,\n id = _this$props20.id,\n isDisabled = _this$props20.isDisabled,\n menuIsOpen = _this$props20.menuIsOpen;\n var isFocused = this.state.isFocused;\n var commonProps = this.commonProps = this.getCommonProps();\n return React.createElement(SelectContainer, _extends({}, commonProps, {\n className: className,\n innerProps: {\n id: id,\n onKeyDown: this.onKeyDown\n },\n isDisabled: isDisabled,\n isFocused: isFocused\n }), this.renderLiveRegion(), React.createElement(Control, _extends({}, commonProps, {\n innerRef: this.getControlRef,\n innerProps: {\n onMouseDown: this.onControlMouseDown,\n onTouchEnd: this.onControlTouchEnd\n },\n isDisabled: isDisabled,\n isFocused: isFocused,\n menuIsOpen: menuIsOpen\n }), React.createElement(ValueContainer, _extends({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderPlaceholderOrValue(), this.renderInput()), React.createElement(IndicatorsContainer, _extends({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderClearIndicator(), this.renderLoadingIndicator(), this.renderIndicatorSeparator(), this.renderDropdownIndicator())), this.renderMenu(), this.renderFormField());\n }\n }]);\n\n return Select;\n}(Component);\n\n_defineProperty(Select, \"defaultProps\", defaultProps);\n\nexport { Select as S, defaultTheme as a, createFilter as c, defaultProps as d, mergeStyles as m };\n","import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport React, { Component } from 'react';\n\nvar defaultProps = {\n defaultInputValue: '',\n defaultMenuIsOpen: false,\n defaultValue: null\n};\n\nvar manageState = function manageState(SelectComponent) {\n var _class, _temp;\n\n return _temp = _class =\n /*#__PURE__*/\n function (_Component) {\n _inherits(StateManager, _Component);\n\n function StateManager() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, StateManager);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(StateManager)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"select\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {\n inputValue: _this.props.inputValue !== undefined ? _this.props.inputValue : _this.props.defaultInputValue,\n menuIsOpen: _this.props.menuIsOpen !== undefined ? _this.props.menuIsOpen : _this.props.defaultMenuIsOpen,\n value: _this.props.value !== undefined ? _this.props.value : _this.props.defaultValue\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onChange\", function (value, actionMeta) {\n _this.callProp('onChange', value, actionMeta);\n\n _this.setState({\n value: value\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onInputChange\", function (value, actionMeta) {\n // TODO: for backwards compatibility, we allow the prop to return a new\n // value, but now inputValue is a controllable prop we probably shouldn't\n var newValue = _this.callProp('onInputChange', value, actionMeta);\n\n _this.setState({\n inputValue: newValue !== undefined ? newValue : value\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onMenuOpen\", function () {\n _this.callProp('onMenuOpen');\n\n _this.setState({\n menuIsOpen: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onMenuClose\", function () {\n _this.callProp('onMenuClose');\n\n _this.setState({\n menuIsOpen: false\n });\n });\n\n return _this;\n }\n\n _createClass(StateManager, [{\n key: \"focus\",\n value: function focus() {\n this.select.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.select.blur();\n } // FIXME: untyped flow code, return any\n\n }, {\n key: \"getProp\",\n value: function getProp(key) {\n return this.props[key] !== undefined ? this.props[key] : this.state[key];\n } // FIXME: untyped flow code, return any\n\n }, {\n key: \"callProp\",\n value: function callProp(name) {\n if (typeof this.props[name] === 'function') {\n var _this$props;\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return (_this$props = this.props)[name].apply(_this$props, args);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n defaultInputValue = _this$props2.defaultInputValue,\n defaultMenuIsOpen = _this$props2.defaultMenuIsOpen,\n defaultValue = _this$props2.defaultValue,\n props = _objectWithoutProperties(_this$props2, [\"defaultInputValue\", \"defaultMenuIsOpen\", \"defaultValue\"]);\n\n return React.createElement(SelectComponent, _extends({}, props, {\n ref: function ref(_ref) {\n _this2.select = _ref;\n },\n inputValue: this.getProp('inputValue'),\n menuIsOpen: this.getProp('menuIsOpen'),\n onChange: this.onChange,\n onInputChange: this.onInputChange,\n onMenuClose: this.onMenuClose,\n onMenuOpen: this.onMenuOpen,\n value: this.getProp('value')\n }));\n }\n }]);\n\n return StateManager;\n }(Component), _defineProperty(_class, \"defaultProps\", defaultProps), _temp;\n};\n\nexport { manageState as m };\n","import '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport '@babel/runtime/helpers/esm/extends';\nimport '@babel/runtime/helpers/esm/toConsumableArray';\nimport '@babel/runtime/helpers/esm/objectSpread';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport React, { Component } from 'react';\nimport memoizeOne from 'memoize-one';\nimport { CacheProvider } from '@emotion/core';\nimport 'react-dom';\nimport 'prop-types';\nimport '@babel/runtime/helpers/esm/typeof';\nimport './chunk-39d3fda8.browser.esm.js';\nexport { y as components } from './chunk-80640036.browser.esm.js';\nimport { S as Select } from './base/dist/react-select-cac0a5ae.browser.esm.js';\nexport { c as createFilter, a as defaultTheme, m as mergeStyles } from './base/dist/react-select-cac0a5ae.browser.esm.js';\nimport '@emotion/css';\nimport '@babel/runtime/helpers/esm/taggedTemplateLiteral';\nimport 'react-input-autosize';\nimport { m as manageState } from './chunk-b36baf1a.browser.esm.js';\nimport createCache from '@emotion/cache';\n\nvar NonceProvider =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(NonceProvider, _Component);\n\n function NonceProvider(props) {\n var _this;\n\n _classCallCheck(this, NonceProvider);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(NonceProvider).call(this, props));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"createEmotionCache\", function (nonce) {\n return createCache({\n nonce: nonce\n });\n });\n\n _this.createEmotionCache = memoizeOne(_this.createEmotionCache);\n return _this;\n }\n\n _createClass(NonceProvider, [{\n key: \"render\",\n value: function render() {\n var emotionCache = this.createEmotionCache(this.props.nonce);\n return React.createElement(CacheProvider, {\n value: emotionCache\n }, this.props.children);\n }\n }]);\n\n return NonceProvider;\n}(Component);\n\nvar index = manageState(Select);\n\nexport default index;\nexport { NonceProvider };\n","module.exports = require(\"regenerator-runtime\");\n","import defineProperty from \"./defineProperty\";\nexport default function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? Object(arguments[i]) : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction deepMerge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};\n","var MILLISECONDS_IN_MINUTE = 60000;\n/**\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 */\n\nexport default function getTimezoneOffsetInMilliseconds(dirtyDate) {\n var date = new Date(dirtyDate.getTime());\n var baseTimezoneOffset = Math.ceil(date.getTimezoneOffset());\n date.setSeconds(0, 0);\n var millisecondsPartOfTimezoneOffset = date.getTime() % MILLISECONDS_IN_MINUTE;\n return baseTimezoneOffset * MILLISECONDS_IN_MINUTE + millisecondsPartOfTimezoneOffset;\n}","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n","var _typeof = require(\"../helpers/typeof\");\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\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}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport enum LoggingSeverity {\r\n /**\r\n * Error will be sent as internal telemetry\r\n */\r\n CRITICAL = 1,\r\n\r\n /**\r\n * Error will NOT be sent as internal telemetry, and will only be shown in browser console\r\n */\r\n WARNING = 2,\r\n}\r\n\r\n/**\r\n * Internal message ID. Please create a new one for every conceptually different message. Please keep alphabetically ordered\r\n */\r\nexport const _InternalMessageId = {\r\n // Non user actionable\r\n BrowserDoesNotSupportLocalStorage: 0,\r\n BrowserCannotReadLocalStorage: 1,\r\n BrowserCannotReadSessionStorage: 2,\r\n BrowserCannotWriteLocalStorage: 3,\r\n BrowserCannotWriteSessionStorage: 4,\r\n BrowserFailedRemovalFromLocalStorage: 5,\r\n BrowserFailedRemovalFromSessionStorage: 6,\r\n CannotSendEmptyTelemetry: 7,\r\n ClientPerformanceMathError: 8,\r\n ErrorParsingAISessionCookie: 9,\r\n ErrorPVCalc: 10,\r\n ExceptionWhileLoggingError: 11,\r\n FailedAddingTelemetryToBuffer: 12,\r\n FailedMonitorAjaxAbort: 13,\r\n FailedMonitorAjaxDur: 14,\r\n FailedMonitorAjaxOpen: 15,\r\n FailedMonitorAjaxRSC: 16,\r\n FailedMonitorAjaxSend: 17,\r\n FailedMonitorAjaxGetCorrelationHeader: 18,\r\n FailedToAddHandlerForOnBeforeUnload: 19,\r\n FailedToSendQueuedTelemetry: 20,\r\n FailedToReportDataLoss: 21,\r\n FlushFailed: 22,\r\n MessageLimitPerPVExceeded: 23,\r\n MissingRequiredFieldSpecification: 24,\r\n NavigationTimingNotSupported: 25,\r\n OnError: 26,\r\n SessionRenewalDateIsZero: 27,\r\n SenderNotInitialized: 28,\r\n StartTrackEventFailed: 29,\r\n StopTrackEventFailed: 30,\r\n StartTrackFailed: 31,\r\n StopTrackFailed: 32,\r\n TelemetrySampledAndNotSent: 33,\r\n TrackEventFailed: 34,\r\n TrackExceptionFailed: 35,\r\n TrackMetricFailed: 36,\r\n TrackPVFailed: 37,\r\n TrackPVFailedCalc: 38,\r\n TrackTraceFailed: 39,\r\n TransmissionFailed: 40,\r\n FailedToSetStorageBuffer: 41,\r\n FailedToRestoreStorageBuffer: 42,\r\n InvalidBackendResponse: 43,\r\n FailedToFixDepricatedValues: 44,\r\n InvalidDurationValue: 45,\r\n TelemetryEnvelopeInvalid: 46,\r\n CreateEnvelopeError: 47,\r\n\r\n // User actionable\r\n CannotSerializeObject: 48,\r\n CannotSerializeObjectNonSerializable: 49,\r\n CircularReferenceDetected: 50,\r\n ClearAuthContextFailed: 51,\r\n ExceptionTruncated: 52,\r\n IllegalCharsInName: 53,\r\n ItemNotInArray: 54,\r\n MaxAjaxPerPVExceeded: 55,\r\n MessageTruncated: 56,\r\n NameTooLong: 57,\r\n SampleRateOutOfRange: 58,\r\n SetAuthContextFailed: 59,\r\n SetAuthContextFailedAccountName: 60,\r\n StringValueTooLong: 61,\r\n StartCalledMoreThanOnce: 62,\r\n StopCalledWithoutStart: 63,\r\n TelemetryInitializerFailed: 64,\r\n TrackArgumentsNotSpecified: 65,\r\n UrlTooLong: 66,\r\n SessionStorageBufferFull: 67,\r\n CannotAccessCookie: 68,\r\n IdTooLong: 69,\r\n InvalidEvent: 70,\r\n FailedMonitorAjaxSetRequestHeader: 71,\r\n SendBrowserInfoOnUserInit: 72,\r\n PluginException: 73\r\n};\r\nexport type _InternalMessageId = number | typeof _InternalMessageId;\r\n","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\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}","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) {\n if (token === 'YYYY') {\n throw new RangeError('Use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr');\n } else if (token === 'YY') {\n throw new RangeError('Use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr');\n } else if (token === 'D') {\n throw new RangeError('Use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr');\n } else if (token === 'DD') {\n throw new RangeError('Use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr');\n }\n}","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.monthsInYear = monthsInYear;\nexports.firstVisibleDay = firstVisibleDay;\nexports.lastVisibleDay = lastVisibleDay;\nexports.visibleDays = visibleDays;\nexports.ceil = ceil;\nexports.range = range;\nexports.merge = merge;\nexports.eqTime = eqTime;\nexports.isJustDate = isJustDate;\nexports.duration = duration;\nexports.diff = diff;\nexports.total = total;\nexports.week = week;\nexports.today = today;\nexports.yesterday = yesterday;\nexports.tomorrow = tomorrow;\nexports.max = exports.min = exports.inRange = exports.lt = exports.lte = exports.gt = exports.gte = exports.eq = exports.add = exports.endOf = exports.startOf = exports.month = exports.hours = exports.minutes = exports.seconds = exports.milliseconds = void 0;\n\nvar dates = _interopRequireWildcard(require(\"date-arithmetic\"));\n\nexports.milliseconds = dates.milliseconds;\nexports.seconds = dates.seconds;\nexports.minutes = dates.minutes;\nexports.hours = dates.hours;\nexports.month = dates.month;\nexports.startOf = dates.startOf;\nexports.endOf = dates.endOf;\nexports.add = dates.add;\nexports.eq = dates.eq;\nexports.gte = dates.gte;\nexports.gt = dates.gt;\nexports.lte = dates.lte;\nexports.lt = dates.lt;\nexports.inRange = dates.inRange;\nexports.min = dates.min;\nexports.max = dates.max;\n\n/* eslint no-fallthrough: off */\nvar MILLI = {\n seconds: 1000,\n minutes: 1000 * 60,\n hours: 1000 * 60 * 60,\n day: 1000 * 60 * 60 * 24\n};\nvar MONTHS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n\nfunction monthsInYear(year) {\n var date = new Date(year, 0, 1);\n return MONTHS.map(function (i) {\n return dates.month(date, i);\n });\n}\n\nfunction firstVisibleDay(date, localizer) {\n var firstOfMonth = dates.startOf(date, 'month');\n return dates.startOf(firstOfMonth, 'week', localizer.startOfWeek());\n}\n\nfunction lastVisibleDay(date, localizer) {\n var endOfMonth = dates.endOf(date, 'month');\n return dates.endOf(endOfMonth, 'week', localizer.startOfWeek());\n}\n\nfunction visibleDays(date, localizer) {\n var current = firstVisibleDay(date, localizer),\n last = lastVisibleDay(date, localizer),\n days = [];\n\n while (dates.lte(current, last, 'day')) {\n days.push(current);\n current = dates.add(current, 1, 'day');\n }\n\n return days;\n}\n\nfunction ceil(date, unit) {\n var floor = dates.startOf(date, unit);\n return dates.eq(floor, date) ? floor : dates.add(floor, 1, unit);\n}\n\nfunction range(start, end, unit) {\n if (unit === void 0) {\n unit = 'day';\n }\n\n var current = start,\n days = [];\n\n while (dates.lte(current, end, unit)) {\n days.push(current);\n current = dates.add(current, 1, unit);\n }\n\n return days;\n}\n\nfunction merge(date, time) {\n if (time == null && date == null) return null;\n if (time == null) time = new Date();\n if (date == null) date = new Date();\n date = dates.startOf(date, 'day');\n date = dates.hours(date, dates.hours(time));\n date = dates.minutes(date, dates.minutes(time));\n date = dates.seconds(date, dates.seconds(time));\n return dates.milliseconds(date, dates.milliseconds(time));\n}\n\nfunction eqTime(dateA, dateB) {\n return dates.hours(dateA) === dates.hours(dateB) && dates.minutes(dateA) === dates.minutes(dateB) && dates.seconds(dateA) === dates.seconds(dateB);\n}\n\nfunction isJustDate(date) {\n return dates.hours(date) === 0 && dates.minutes(date) === 0 && dates.seconds(date) === 0 && dates.milliseconds(date) === 0;\n}\n\nfunction duration(start, end, unit, firstOfWeek) {\n if (unit === 'day') unit = 'date';\n return Math.abs(dates[unit](start, undefined, firstOfWeek) - dates[unit](end, undefined, firstOfWeek));\n}\n\nfunction diff(dateA, dateB, unit) {\n if (!unit || unit === 'milliseconds') return Math.abs(+dateA - +dateB); // the .round() handles an edge case\n // with DST where the total won't be exact\n // since one day in the range may be shorter/longer by an hour\n\n return Math.round(Math.abs(+dates.startOf(dateA, unit) / MILLI[unit] - +dates.startOf(dateB, unit) / MILLI[unit]));\n}\n\nfunction total(date, unit) {\n var ms = date.getTime(),\n div = 1;\n\n switch (unit) {\n case 'week':\n div *= 7;\n\n case 'day':\n div *= 24;\n\n case 'hours':\n div *= 60;\n\n case 'minutes':\n div *= 60;\n\n case 'seconds':\n div *= 1000;\n }\n\n return ms / div;\n}\n\nfunction week(date) {\n var d = new Date(date);\n d.setHours(0, 0, 0);\n d.setDate(d.getDate() + 4 - (d.getDay() || 7));\n return Math.ceil(((d - new Date(d.getFullYear(), 0, 1)) / 8.64e7 + 1) / 7);\n}\n\nfunction today() {\n return dates.startOf(new Date(), 'day');\n}\n\nfunction yesterday() {\n return dates.add(dates.startOf(new Date(), 'day'), -1, 'day');\n}\n\nfunction tomorrow() {\n return dates.add(dates.startOf(new Date(), 'day'), 1, 'day');\n}","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","import { serializeStyles } from '@emotion/serialize';\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nexport default css;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport { resolveToLocation, normalizeToLocation } from \"./utils/locationUtils\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link\";\nimport { resolveToLocation, normalizeToLocation } from \"./utils/locationUtils\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import contains from './contains';\nimport ownerDocument from './ownerDocument';\nimport scrollLeft from './scrollLeft';\nimport scrollTop from './scrollTop';\nexport default function offset(node) {\n var doc = ownerDocument(node);\n var box = {\n top: 0,\n left: 0,\n height: 0,\n width: 0\n };\n var docElem = doc && doc.documentElement; // Make sure it's not a disconnected DOM node\n\n if (!docElem || !contains(docElem, node)) return box;\n if (node.getBoundingClientRect !== undefined) box = node.getBoundingClientRect();\n box = {\n top: box.top + scrollTop(node) - (docElem.clientTop || 0),\n left: box.left + scrollLeft(node) - (docElem.clientLeft || 0),\n width: box.width,\n height: box.height\n };\n return box;\n}","/* eslint-disable no-bitwise, no-cond-assign */\n// HTML DOM and SVG DOM may have different support levels,\n// so we need to check on context instead of a document root element.\nexport default function contains(context, node) {\n if (context.contains) return context.contains(node);\n if (context.compareDocumentPosition) return context === node || !!(context.compareDocumentPosition(node) & 16);\n}","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\n\r\nimport { ITelemetryItem } from '../JavaScriptSDK.Interfaces/ITelemetryItem';\r\nimport { IProcessTelemetryContext } from \"../JavaScriptSDK.Interfaces/IProcessTelemetryContext\";\r\nimport { ITelemetryPluginChain } from \"../JavaScriptSDK.Interfaces/ITelemetryPluginChain\";\r\nimport { IPlugin, ITelemetryPlugin } from '../JavaScriptSDK.Interfaces/ITelemetryPlugin';\r\nimport { CoreUtils } from \"./CoreUtils\";\r\nimport { _InternalLogMessage } from \"./DiagnosticLogger\";\r\nimport { LoggingSeverity, _InternalMessageId } from '../JavaScriptSDK.Enums/LoggingEnums';\r\n\r\nlet _isFunction = CoreUtils.isFunction;\r\n\r\nexport class TelemetryPluginChain implements ITelemetryPluginChain {\r\n\r\n /**\r\n * Returns the underlying plugin that is being proxied for the processTelemetry call\r\n */\r\n getPlugin: () => ITelemetryPlugin;\r\n\r\n /**\r\n * Returns the next plugin\r\n */\r\n getNext: () => ITelemetryPluginChain;\r\n\r\n /**\r\n * Sets the next proxy to be executed as the next plugin\r\n * (Should only be used during initialization, which is why it's not defined on the interface)\r\n */\r\n setNext: (nextPlugin:ITelemetryPluginChain) => void;\r\n\r\n /**\r\n * Call back for telemetry processing before it it is sent\r\n * @param env - This is the current event being reported\r\n * @param itemCtx - This is the context for the current request, ITelemetryPlugin instances \r\n * can optionally use this to access the current core instance or define / pass additional information\r\n * to later plugins (vs appending items to the telemetry item)\r\n */\r\n processTelemetry: (env: ITelemetryItem, itemCtx: IProcessTelemetryContext) => void;\r\n\r\n /**\r\n * Internal flag used to try and identify root cause failures\r\n */\r\n private _hasRun: boolean;\r\n\r\n constructor(plugin:ITelemetryPlugin, defItemCtx:IProcessTelemetryContext) {\r\n let _self = this;\r\n let _nextProxy:ITelemetryPluginChain = null;\r\n let _hasProcessTelemetry = _isFunction(plugin.processTelemetry);\r\n let _hasSetNext = _isFunction(plugin.setNextPlugin);\r\n\r\n _self._hasRun = false;\r\n\r\n _self.getPlugin = () => {\r\n return plugin;\r\n };\r\n\r\n _self.getNext = () => {\r\n return _nextProxy;\r\n };\r\n\r\n _self.setNext = (nextPlugin:ITelemetryPluginChain) => {\r\n _nextProxy = nextPlugin;\r\n }\r\n\r\n _self.processTelemetry = (env: ITelemetryItem, itemCtx:IProcessTelemetryContext) => {\r\n if (!itemCtx) {\r\n // Looks like a plugin didn't pass the (optional) context, so restore to the default\r\n itemCtx = defItemCtx;\r\n }\r\n\r\n if (plugin && _hasProcessTelemetry) {\r\n _self._hasRun = true;\r\n try {\r\n\r\n // Ensure that we keep the context in sync (for processNext()), just in case a plugin\r\n // doesn't calls processTelemetry() instead of itemContext.processNext() or some \r\n // other form of error occurred\r\n itemCtx.setNext(_nextProxy);\r\n if (_hasSetNext) {\r\n // Backward compatibility setting the next plugin on the instance\r\n plugin.setNextPlugin(_nextProxy);\r\n }\r\n\r\n // Set a flag on the next plugin so we know if it was attempted to be executed\r\n _nextProxy && ((_nextProxy as TelemetryPluginChain)._hasRun = false);\r\n\r\n plugin.processTelemetry(env, itemCtx);\r\n } catch (error) {\r\n let hasRun = _nextProxy && (_nextProxy as TelemetryPluginChain)._hasRun;\r\n if (!_nextProxy || !hasRun) {\r\n // Either we have no next plugin or the current one did not attempt to call the next plugin\r\n // Which means the current one is the root of the failure so log/report this failure\r\n itemCtx.diagLog().throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.PluginException,\r\n \"Plugin [\" + plugin.identifier + \"] failed during processTelemetry - \" + error);\r\n }\r\n\r\n if (_nextProxy && !hasRun) {\r\n // As part of the failure the current plugin did not attempt to call the next plugin in the cahin\r\n // So rather than leave the pipeline dead in the water we call the next plugin\r\n _nextProxy.processTelemetry(env, itemCtx);\r\n }\r\n }\r\n } else if (_nextProxy) {\r\n _self._hasRun = true;\r\n\r\n // The underlying plugin is either not defined or does not have a processTelemetry implementation\r\n // so we still want the next plugin to be executed.\r\n _nextProxy.processTelemetry(env, itemCtx);\r\n }\r\n };\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\n\r\nimport { IAppInsightsCore } from \"../JavaScriptSDK.Interfaces/IAppInsightsCore\";\r\nimport { IDiagnosticLogger } from '../JavaScriptSDK.Interfaces/IDiagnosticLogger';\r\nimport { IConfiguration } from '../JavaScriptSDK.Interfaces/IConfiguration';\r\nimport { ITelemetryItem } from '../JavaScriptSDK.Interfaces/ITelemetryItem';\r\nimport { IPlugin, ITelemetryPlugin } from '../JavaScriptSDK.Interfaces/ITelemetryPlugin';\r\nimport { IProcessTelemetryContext } from \"../JavaScriptSDK.Interfaces/IProcessTelemetryContext\";\r\nimport { ITelemetryPluginChain } from '../JavaScriptSDK.Interfaces/ITelemetryPluginChain';\r\nimport { CoreUtils } from \"./CoreUtils\";\r\nimport { DiagnosticLogger } from \"./DiagnosticLogger\";\r\nimport { TelemetryPluginChain } from \"./TelemetryPluginChain\";\r\n\r\nlet _isNullOrUndefined = CoreUtils.isNullOrUndefined;\r\n\r\n/**\r\n * Creates the instance execution chain for the plugins\r\n */\r\nfunction _createProxyChain(plugins:IPlugin[], itemCtx:IProcessTelemetryContext) {\r\n let proxies:ITelemetryPluginChain[] = [];\r\n \r\n if (plugins && plugins.length > 0) {\r\n // Create the proxies and wire up the next plugin chain\r\n let lastProxy:TelemetryPluginChain = null;\r\n for (let idx = 0; idx < plugins.length; idx++) {\r\n let thePlugin = plugins[idx] as ITelemetryPlugin;\r\n if (thePlugin && CoreUtils.isFunction(thePlugin.processTelemetry)) {\r\n // Only add plugins that are processors\r\n let newProxy = new TelemetryPluginChain(thePlugin, itemCtx);\r\n proxies.push(newProxy);\r\n if (lastProxy) {\r\n // Set this new proxy as the next for the previous one\r\n lastProxy.setNext(newProxy);\r\n }\r\n \r\n lastProxy = newProxy;\r\n }\r\n }\r\n }\r\n\r\n return proxies.length > 0 ? proxies[0] : null;\r\n}\r\n\r\nfunction _copyProxyChain(proxy:ITelemetryPluginChain, itemCtx:IProcessTelemetryContext, startAt:IPlugin) {\r\n let plugins:IPlugin[] = [];\r\n let add = startAt ? false : true;\r\n\r\n if (proxy) {\r\n while (proxy) {\r\n let thePlugin = proxy.getPlugin();\r\n if (add || thePlugin === startAt) {\r\n add = true;\r\n plugins.push(thePlugin);\r\n }\r\n proxy = proxy.getNext();\r\n }\r\n }\r\n\r\n if (!add) {\r\n plugins.push(startAt);\r\n }\r\n \r\n return _createProxyChain(plugins, itemCtx);\r\n}\r\n\r\nfunction _copyPluginChain(srcPlugins:IPlugin[], itemCtx:IProcessTelemetryContext, startAt:IPlugin) {\r\n let plugins:IPlugin[] = srcPlugins;\r\n let add = false;\r\n if (startAt && srcPlugins) {\r\n plugins = [];\r\n \r\n CoreUtils.arrForEach(srcPlugins, thePlugin => {\r\n if (add || thePlugin === startAt) {\r\n add = true;\r\n plugins.push(thePlugin);\r\n }\r\n });\r\n }\r\n\r\n if (startAt && !add) {\r\n if (!plugins) {\r\n plugins = [];\r\n }\r\n plugins.push(startAt);\r\n }\r\n \r\n return _createProxyChain(plugins, itemCtx);\r\n}\r\n\r\nexport class ProcessTelemetryContext implements IProcessTelemetryContext {\r\n /**\r\n * Gets the current core config instance\r\n */\r\n public getCfg: () => IConfiguration;\r\n\r\n public getExtCfg: (identifier:string, defaultValue?:T|any) => T;\r\n \r\n public getConfig: (identifier:string, field: string, defaultValue?: number | string | boolean) => number | string | boolean;\r\n\r\n /**\r\n * Returns the IAppInsightsCore instance for the current request\r\n */\r\n public core: () => IAppInsightsCore;\r\n\r\n /**\r\n * Returns the current IDiagnosticsLogger for the current request\r\n */\r\n public diagLog: () => IDiagnosticLogger;\r\n\r\n /**\r\n * Helper to allow inherited classes to check and possibly shortcut executing code only\r\n * required if there is a nextPlugin\r\n */\r\n public hasNext: () => boolean;\r\n\r\n /**\r\n * Returns the next configured plugin proxy\r\n */\r\n public getNext: () => ITelemetryPluginChain;\r\n\r\n /**\r\n * Helper to set the next plugin proxy\r\n */\r\n public setNext: (nextCtx:ITelemetryPluginChain) => void;\r\n\r\n /**\r\n * Call back for telemetry processing before it it is sent\r\n * @param env - This is the current event being reported\r\n * @param itemCtx - This is the context for the current request, ITelemetryPlugin instances \r\n * can optionally use this to access the current core instance or define / pass additional information\r\n * to later plugins (vs appending items to the telemetry item)\r\n */\r\n public processNext: (env: ITelemetryItem) => void;\r\n\r\n /**\r\n * Create a new context using the core and config from the current instance\r\n */\r\n public createNew: (plugins?:IPlugin[]|ITelemetryPluginChain, startAt?:IPlugin) => IProcessTelemetryContext;\r\n\r\n /**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n */\r\n constructor(plugins:IPlugin[]|ITelemetryPluginChain, config: IConfiguration, core:IAppInsightsCore, startAt?:IPlugin) {\r\n let _self = this;\r\n let _nextProxy: ITelemetryPluginChain = null; // Null == No next plugin\r\n\r\n // There is no next element (null) vs not defined (undefined)\r\n if (startAt !== null) {\r\n if (plugins && CoreUtils.isFunction((plugins as ITelemetryPluginChain).getPlugin)) {\r\n // We have a proxy chain object\r\n _nextProxy = _copyProxyChain(plugins as ITelemetryPluginChain, _self, startAt||(plugins as ITelemetryPluginChain).getPlugin());\r\n } else {\r\n // We just have an array\r\n if (startAt) {\r\n _nextProxy = _copyPluginChain(plugins as IPlugin[], _self, startAt);\r\n } else if (CoreUtils.isUndefined(startAt)) {\r\n // Undefined means copy the existing chain\r\n _nextProxy = _createProxyChain(plugins as IPlugin[], _self)\r\n }\r\n }\r\n }\r\n\r\n _self.core = () => {\r\n return core;\r\n };\r\n \r\n _self.diagLog = () => {\r\n let logger: IDiagnosticLogger = (core||{} as IAppInsightsCore).logger;\r\n if (!logger) {\r\n // Fallback so we always have a logger\r\n logger = new DiagnosticLogger(config||{});\r\n }\r\n\r\n return logger;\r\n };\r\n\r\n _self.getCfg = () => {\r\n return config;\r\n };\r\n\r\n _self.getExtCfg = (identifier:string, defaultValue:T|any = {}) => {\r\n let theConfig:T;\r\n if (config) {\r\n let extConfig = config.extensionConfig;\r\n if (extConfig && identifier) {\r\n theConfig = extConfig[identifier];\r\n }\r\n }\r\n \r\n return (theConfig ? theConfig : defaultValue) as T;\r\n };\r\n\r\n _self.getConfig = (identifier:string, field: string, defaultValue: number | string | boolean = false) => {\r\n let theValue;\r\n let extConfig = _self.getExtCfg(identifier, null);\r\n if (extConfig && !_isNullOrUndefined(extConfig[field])) {\r\n theValue = extConfig[field];\r\n } else if (config && !_isNullOrUndefined(config[field])) {\r\n theValue = config[field];\r\n }\r\n \r\n return !_isNullOrUndefined(theValue) ? theValue : defaultValue;\r\n };\r\n\r\n _self.hasNext = () => {\r\n return _nextProxy != null;\r\n };\r\n\r\n _self.getNext = () => {\r\n return _nextProxy;\r\n }\r\n\r\n _self.setNext = (nextPlugin:ITelemetryPluginChain) => {\r\n _nextProxy = nextPlugin;\r\n };\r\n\r\n _self.processNext = (env: ITelemetryItem) => {\r\n let nextPlugin = _nextProxy;\r\n\r\n if (nextPlugin) {\r\n // Automatically move to the next plugin\r\n _nextProxy = nextPlugin.getNext();\r\n nextPlugin.processTelemetry(env, _self);\r\n }\r\n };\r\n\r\n _self.createNew = (plugins:IPlugin[]|ITelemetryPluginChain = null, startAt?:IPlugin) => {\r\n return new ProcessTelemetryContext(plugins||_nextProxy, config, core, startAt);\r\n }\r\n }\r\n}\r\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.coordinateToTimeRatio = coordinateToTimeRatio;\nexports.calculateXPositionForTime = calculateXPositionForTime;\nexports.calculateTimeForXPosition = calculateTimeForXPosition;\nexports.iterateTimes = iterateTimes;\nexports.getMinUnit = getMinUnit;\nexports.getNextUnit = getNextUnit;\nexports.calculateInteractionNewTimes = calculateInteractionNewTimes;\nexports.calculateDimensions = calculateDimensions;\nexports.getGroupOrders = getGroupOrders;\nexports.getGroupedItems = getGroupedItems;\nexports.getVisibleItems = getVisibleItems;\nexports.collision = collision;\nexports.groupStack = groupStack;\nexports.groupNoStack = groupNoStack;\nexports.stackAll = stackAll;\nexports.stackGroup = stackGroup;\nexports.stackTimelineItems = stackTimelineItems;\nexports.getCanvasWidth = getCanvasWidth;\nexports.getItemDimensions = getItemDimensions;\nexports.getItemWithInteractions = getItemWithInteractions;\nexports.getCanvasBoundariesFromVisibleTime = getCanvasBoundariesFromVisibleTime;\nexports.calculateScrollCanvas = calculateScrollCanvas;\nexports.minCellWidth = void 0;\n\nvar _moment = _interopRequireDefault(require(\"moment\"));\n\nvar _generic = require(\"./generic\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } 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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * Calculate the ms / pixel ratio of the timeline state\n * @param {number} canvasTimeStart\n * @param {number} canvasTimeEnd\n * @param {number} canvasWidth\n * @returns {number}\n */\nfunction coordinateToTimeRatio(canvasTimeStart, canvasTimeEnd, canvasWidth) {\n return (canvasTimeEnd - canvasTimeStart) / canvasWidth;\n}\n/**\n * For a given time, calculate the pixel position given timeline state\n * (timeline width in px, canvas time range)\n * @param {number} canvasTimeStart\n * @param {number} canvasTimeEnd\n * @param {number} canvasWidth\n * @param {number} time\n * @returns {number}\n */\n\n\nfunction calculateXPositionForTime(canvasTimeStart, canvasTimeEnd, canvasWidth, time) {\n var widthToZoomRatio = canvasWidth / (canvasTimeEnd - canvasTimeStart);\n var timeOffset = time - canvasTimeStart;\n return timeOffset * widthToZoomRatio;\n}\n/**\n * For a given x position (leftOffset) in pixels, calculate time based on\n * timeline state (timeline width in px, canvas time range)\n * @param {number} canvasTimeStart\n * @param {number} canvasTimeEnd\n * @param {number} canvasWidth\n * @param {number} leftOffset\n * @returns {number}\n */\n\n\nfunction calculateTimeForXPosition(canvasTimeStart, canvasTimeEnd, canvasWidth, leftOffset) {\n var timeToPxRatio = (canvasTimeEnd - canvasTimeStart) / canvasWidth;\n var timeFromCanvasTimeStart = timeToPxRatio * leftOffset;\n return timeFromCanvasTimeStart + canvasTimeStart;\n}\n\nfunction iterateTimes(start, end, unit, timeSteps, callback) {\n var time = (0, _moment[\"default\"])(start).startOf(unit);\n\n if (timeSteps[unit] && timeSteps[unit] > 1) {\n var value = time.get(unit);\n time.set(unit, value - value % timeSteps[unit]);\n }\n\n while (time.valueOf() < end) {\n var nextTime = (0, _moment[\"default\"])(time).add(timeSteps[unit] || 1, \"\".concat(unit, \"s\"));\n callback(time, nextTime);\n time = nextTime;\n }\n} // this function is VERY HOT as its used in Timeline.js render function\n// TODO: check if there are performance implications here\n// when \"weeks\" feature is implemented, this function will be modified heavily\n\n/** determine the current rendered time unit based on timeline time span\n *\n * zoom: (in milliseconds) difference between time start and time end of timeline canvas\n * width: (in pixels) pixel width of timeline canvas\n * timeSteps: map of timeDividers with number to indicate step of each divider\n */\n// the smallest cell we want to render is 17px\n// this can be manipulated to make the breakpoints change more/less\n// i.e. on zoom how often do we switch to the next unit of time\n// i think this is the distance between cell lines\n\n\nvar minCellWidth = 17;\nexports.minCellWidth = minCellWidth;\n\nfunction getMinUnit(zoom, width, timeSteps) {\n // for supporting weeks, its important to remember that each of these\n // units has a natural progression to the other. i.e. a year is 12 months\n // a month is 24 days, a day is 24 hours.\n // with weeks this isnt the case so weeks needs to be handled specially\n var timeDividers = {\n second: 1000,\n minute: 60,\n hour: 60,\n day: 24,\n month: 30,\n year: 12\n };\n var minUnit = 'year'; // this timespan is in ms initially\n\n var nextTimeSpanInUnitContext = zoom;\n Object.keys(timeDividers).some(function (unit) {\n // converts previous time span to current unit\n // (e.g. milliseconds to seconds, seconds to minutes, etc)\n nextTimeSpanInUnitContext = nextTimeSpanInUnitContext / timeDividers[unit]; // timeSteps is \"\n // With what step to display different units. E.g. 15 for minute means only minutes 0, 15, 30 and 45 will be shown.\"\n // how many cells would be rendered given this time span, for this unit?\n // e.g. for time span of 60 minutes, and time step of 1, we would render 60 cells\n\n var cellsToBeRenderedForCurrentUnit = nextTimeSpanInUnitContext / timeSteps[unit]; // what is happening here? why 3 if time steps are greater than 1??\n\n var cellWidthToUse = timeSteps[unit] && timeSteps[unit] > 1 ? 3 * minCellWidth : minCellWidth; // for the minWidth of a cell, how many cells would be rendered given\n // the current pixel width\n // i.e. f\n\n var minimumCellsToRenderUnit = width / cellWidthToUse;\n\n if (cellsToBeRenderedForCurrentUnit < minimumCellsToRenderUnit) {\n // for the current zoom, the number of cells we'd need to render all parts of this unit\n // is less than the minimum number of cells needed at minimum cell width\n minUnit = unit;\n return true;\n }\n });\n return minUnit;\n}\n\nfunction getNextUnit(unit) {\n var nextUnits = {\n second: 'minute',\n minute: 'hour',\n hour: 'day',\n day: 'month',\n month: 'year',\n year: 'year'\n };\n\n if (!nextUnits[unit]) {\n throw new Error(\"unit \".concat(unit, \" in not acceptable\"));\n }\n\n return nextUnits[unit];\n}\n/**\n * get the new start and new end time of item that is being\n * dragged or resized\n * @param {*} itemTimeStart original item time in milliseconds\n * @param {*} itemTimeEnd original item time in milliseconds\n * @param {*} dragTime new start time if item is dragged in milliseconds\n * @param {*} isDragging is item being dragged\n * @param {*} isResizing is item being resized\n * @param {`right` or `left`} resizingEdge resize edge\n * @param {*} resizeTime new resize time in milliseconds\n */\n\n\nfunction calculateInteractionNewTimes(_ref) {\n var itemTimeStart = _ref.itemTimeStart,\n itemTimeEnd = _ref.itemTimeEnd,\n dragTime = _ref.dragTime,\n isDragging = _ref.isDragging,\n isResizing = _ref.isResizing,\n resizingEdge = _ref.resizingEdge,\n resizeTime = _ref.resizeTime;\n var originalItemRange = itemTimeEnd - itemTimeStart;\n var itemStart = isResizing && resizingEdge === 'left' ? resizeTime : itemTimeStart;\n var itemEnd = isResizing && resizingEdge === 'right' ? resizeTime : itemTimeEnd;\n return [isDragging ? dragTime : itemStart, isDragging ? dragTime + originalItemRange : itemEnd];\n}\n\nfunction calculateDimensions(_ref2) {\n var itemTimeStart = _ref2.itemTimeStart,\n itemTimeEnd = _ref2.itemTimeEnd,\n canvasTimeStart = _ref2.canvasTimeStart,\n canvasTimeEnd = _ref2.canvasTimeEnd,\n canvasWidth = _ref2.canvasWidth;\n var itemTimeRange = itemTimeEnd - itemTimeStart; // restrict startTime and endTime to be bounded by canvasTimeStart and canvasTimeEnd\n\n var effectiveStartTime = Math.max(itemTimeStart, canvasTimeStart);\n var effectiveEndTime = Math.min(itemTimeEnd, canvasTimeEnd);\n var left = calculateXPositionForTime(canvasTimeStart, canvasTimeEnd, canvasWidth, effectiveStartTime);\n var right = calculateXPositionForTime(canvasTimeStart, canvasTimeEnd, canvasWidth, effectiveEndTime);\n var itemWidth = right - left;\n var dimensions = {\n left: left,\n width: Math.max(itemWidth, 3),\n collisionLeft: itemTimeStart,\n collisionWidth: itemTimeRange\n };\n return dimensions;\n}\n/**\n * Get the order of groups based on their keys\n * @param {*} groups array of groups\n * @param {*} keys the keys object\n * @returns Ordered hash of objects with their array index and group\n */\n\n\nfunction getGroupOrders(groups, keys) {\n var groupIdKey = keys.groupIdKey;\n var groupOrders = {};\n\n for (var i = 0; i < groups.length; i++) {\n groupOrders[(0, _generic._get)(groups[i], groupIdKey)] = {\n index: i,\n group: groups[i]\n };\n }\n\n return groupOrders;\n}\n/**\n * Adds items relevant to each group to the result of getGroupOrders\n * @param {*} items list of all items\n * @param {*} groupOrders the result of getGroupOrders\n */\n\n\nfunction getGroupedItems(items, groupOrders) {\n var groupedItems = {};\n var keys = Object.keys(groupOrders); // Initialize with result object for each group\n\n for (var i = 0; i < keys.length; i++) {\n var groupOrder = groupOrders[keys[i]];\n groupedItems[i] = {\n index: groupOrder.index,\n group: groupOrder.group,\n items: []\n };\n } // Populate groups\n\n\n for (var _i = 0; _i < items.length; _i++) {\n if (items[_i].dimensions.order !== undefined) {\n var groupItem = groupedItems[items[_i].dimensions.order.index];\n\n if (groupItem) {\n groupItem.items.push(items[_i]);\n }\n }\n }\n\n return groupedItems;\n}\n\nfunction getVisibleItems(items, canvasTimeStart, canvasTimeEnd, keys) {\n var itemTimeStartKey = keys.itemTimeStartKey,\n itemTimeEndKey = keys.itemTimeEndKey;\n return items.filter(function (item) {\n return (0, _generic._get)(item, itemTimeStartKey) <= canvasTimeEnd && (0, _generic._get)(item, itemTimeEndKey) >= canvasTimeStart;\n });\n}\n\nvar EPSILON = 0.001;\n\nfunction collision(a, b, lineHeight) {\n var collisionPadding = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : EPSILON;\n // 2d collisions detection - https://developer.mozilla.org/en-US/docs/Games/Techniques/2D_collision_detection\n var verticalMargin = 0;\n return a.collisionLeft + collisionPadding < b.collisionLeft + b.collisionWidth && a.collisionLeft + a.collisionWidth - collisionPadding > b.collisionLeft && a.top - verticalMargin + collisionPadding < b.top + b.height && a.top + a.height + verticalMargin - collisionPadding > b.top;\n}\n/**\n * Calculate the position of a given item for a group that\n * is being stacked\n */\n\n\nfunction groupStack(lineHeight, item, group, groupHeight, groupTop, itemIndex) {\n // calculate non-overlapping positions\n var curHeight = groupHeight;\n var verticalMargin = (lineHeight - item.dimensions.height) / 2;\n\n if (item.dimensions.stack && item.dimensions.top === null) {\n item.dimensions.top = groupTop + verticalMargin;\n curHeight = Math.max(curHeight, lineHeight);\n\n do {\n var collidingItem = null; //Items are placed from i=0 onwards, only check items with index < i\n\n for (var j = itemIndex - 1, jj = 0; j >= jj; j--) {\n var other = group[j];\n\n if (other.dimensions.top !== null && other.dimensions.stack && collision(item.dimensions, other.dimensions, lineHeight)) {\n collidingItem = other;\n break;\n } else {// console.log('dont test', other.top !== null, other !== item, other.stack);\n }\n }\n\n if (collidingItem != null) {\n // There is a collision. Reposition the items above the colliding element\n item.dimensions.top = collidingItem.dimensions.top + lineHeight;\n curHeight = Math.max(curHeight, item.dimensions.top + item.dimensions.height + verticalMargin - groupTop);\n }\n } while (collidingItem);\n }\n\n return {\n groupHeight: curHeight,\n verticalMargin: verticalMargin,\n itemTop: item.dimensions.top\n };\n} // Calculate the position of this item for a group that is not being stacked\n\n\nfunction groupNoStack(lineHeight, item, groupHeight, groupTop) {\n var verticalMargin = (lineHeight - item.dimensions.height) / 2;\n\n if (item.dimensions.top === null) {\n item.dimensions.top = groupTop + verticalMargin;\n groupHeight = Math.max(groupHeight, lineHeight);\n }\n\n return {\n groupHeight: groupHeight,\n verticalMargin: 0,\n itemTop: item.dimensions.top\n };\n}\n\nfunction sum() {\n var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return arr.reduce(function (acc, i) {\n return acc + i;\n }, 0);\n}\n/**\n * Stack all groups\n * @param {*} items items to be stacked\n * @param {*} groupOrders the groupOrders object\n * @param {*} lineHeight\n * @param {*} stackItems should items be stacked?\n */\n\n\nfunction stackAll(itemsDimensions, groupOrders, lineHeight, stackItems) {\n var groupHeights = [];\n var groupTops = [];\n var groupedItems = getGroupedItems(itemsDimensions, groupOrders);\n\n for (var index in groupedItems) {\n var groupItems = groupedItems[index];\n var _itemsDimensions = groupItems.items,\n group = groupItems.group;\n var groupTop = sum(groupHeights); // Is group being stacked?\n\n var isGroupStacked = group.stackItems !== undefined ? group.stackItems : stackItems;\n\n var _stackGroup = stackGroup(_itemsDimensions, isGroupStacked, lineHeight, groupTop),\n groupHeight = _stackGroup.groupHeight,\n verticalMargin = _stackGroup.verticalMargin; // If group height is overridden, push new height\n // Do this late as item position still needs to be calculated\n\n\n groupTops.push(groupTop);\n\n if (group.height) {\n groupHeights.push(group.height);\n } else {\n groupHeights.push(Math.max(groupHeight, lineHeight));\n }\n }\n\n return {\n height: sum(groupHeights),\n groupHeights: groupHeights,\n groupTops: groupTops\n };\n}\n/**\n * \n * @param {*} itemsDimensions \n * @param {*} isGroupStacked \n * @param {*} lineHeight \n * @param {*} groupTop \n */\n\n\nfunction stackGroup(itemsDimensions, isGroupStacked, lineHeight, groupTop) {\n var groupHeight = 0;\n var verticalMargin = 0; // Find positions for each item in group\n\n for (var itemIndex = 0; itemIndex < itemsDimensions.length; itemIndex++) {\n var r = {};\n\n if (isGroupStacked) {\n r = groupStack(lineHeight, itemsDimensions[itemIndex], itemsDimensions, groupHeight, groupTop, itemIndex);\n } else {\n r = groupNoStack(lineHeight, itemsDimensions[itemIndex], groupHeight, groupTop);\n }\n\n groupHeight = r.groupHeight;\n verticalMargin = r.verticalMargin;\n }\n\n return {\n groupHeight: groupHeight,\n verticalMargin: verticalMargin\n };\n}\n/**\n * Stack the items that will be visible\n * within the canvas area\n * @param {item[]} items\n * @param {group[]} groups\n * @param {number} canvasWidth\n * @param {number} canvasTimeStart\n * @param {number} canvasTimeEnd\n * @param {*} keys\n * @param {number} lineHeight\n * @param {number} itemHeightRatio\n * @param {boolean} stackItems\n * @param {*} draggingItem\n * @param {*} resizingItem\n * @param {number} dragTime\n * @param {left or right} resizingEdge\n * @param {number} resizeTime\n * @param {number} newGroupOrder\n */\n\n\nfunction stackTimelineItems(items, groups, canvasWidth, canvasTimeStart, canvasTimeEnd, keys, lineHeight, itemHeightRatio, stackItems, draggingItem, resizingItem, dragTime, resizingEdge, resizeTime, newGroupOrder) {\n var visibleItems = getVisibleItems(items, canvasTimeStart, canvasTimeEnd, keys);\n var visibleItemsWithInteraction = visibleItems.map(function (item) {\n return getItemWithInteractions({\n item: item,\n keys: keys,\n draggingItem: draggingItem,\n resizingItem: resizingItem,\n dragTime: dragTime,\n resizingEdge: resizingEdge,\n resizeTime: resizeTime,\n groups: groups,\n newGroupOrder: newGroupOrder\n });\n }); // if there are no groups return an empty array of dimensions\n\n if (groups.length === 0) {\n return {\n dimensionItems: [],\n height: 0,\n groupHeights: [],\n groupTops: []\n };\n } // Get the order of groups based on their id key\n\n\n var groupOrders = getGroupOrders(groups, keys);\n var dimensionItems = visibleItemsWithInteraction.map(function (item) {\n return getItemDimensions({\n item: item,\n keys: keys,\n canvasTimeStart: canvasTimeStart,\n canvasTimeEnd: canvasTimeEnd,\n canvasWidth: canvasWidth,\n groupOrders: groupOrders,\n lineHeight: lineHeight,\n itemHeightRatio: itemHeightRatio\n });\n }).filter(function (item) {\n return !!item;\n }); // Get a new array of groupOrders holding the stacked items\n\n var _stackAll = stackAll(dimensionItems, groupOrders, lineHeight, stackItems),\n height = _stackAll.height,\n groupHeights = _stackAll.groupHeights,\n groupTops = _stackAll.groupTops;\n\n return {\n dimensionItems: dimensionItems,\n height: height,\n groupHeights: groupHeights,\n groupTops: groupTops\n };\n}\n/**\n * get canvas width from visible width\n * @param {*} width\n * @param {*} buffer\n */\n\n\nfunction getCanvasWidth(width) {\n var buffer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3;\n return width * buffer;\n}\n/**\n * get item's position, dimensions and collisions\n * @param {*} item\n * @param {*} keys\n * @param {*} canvasTimeStart\n * @param {*} canvasTimeEnd\n * @param {*} canvasWidth\n * @param {*} groupOrders\n * @param {*} lineHeight\n * @param {*} itemHeightRatio\n */\n\n\nfunction getItemDimensions(_ref3) {\n var item = _ref3.item,\n keys = _ref3.keys,\n canvasTimeStart = _ref3.canvasTimeStart,\n canvasTimeEnd = _ref3.canvasTimeEnd,\n canvasWidth = _ref3.canvasWidth,\n groupOrders = _ref3.groupOrders,\n lineHeight = _ref3.lineHeight,\n itemHeightRatio = _ref3.itemHeightRatio;\n var itemId = (0, _generic._get)(item, keys.itemIdKey);\n var dimension = calculateDimensions({\n itemTimeStart: (0, _generic._get)(item, keys.itemTimeStartKey),\n itemTimeEnd: (0, _generic._get)(item, keys.itemTimeEndKey),\n canvasTimeStart: canvasTimeStart,\n canvasTimeEnd: canvasTimeEnd,\n canvasWidth: canvasWidth\n });\n\n if (dimension) {\n dimension.top = null;\n dimension.order = groupOrders[(0, _generic._get)(item, keys.itemGroupKey)];\n dimension.stack = !item.isOverlay;\n dimension.height = lineHeight * itemHeightRatio;\n return {\n id: itemId,\n dimensions: dimension\n };\n }\n}\n/**\n * get new item with changed `itemTimeStart` , `itemTimeEnd` and `itemGroupKey` according to user interaction\n * user interaction is dragging an item and resize left and right\n * @param {*} item\n * @param {*} keys\n * @param {*} draggingItem\n * @param {*} resizingItem\n * @param {*} dragTime\n * @param {*} resizingEdge\n * @param {*} resizeTime\n * @param {*} groups\n * @param {*} newGroupOrder\n */\n\n\nfunction getItemWithInteractions(_ref4) {\n var _objectSpread2;\n\n var item = _ref4.item,\n keys = _ref4.keys,\n draggingItem = _ref4.draggingItem,\n resizingItem = _ref4.resizingItem,\n dragTime = _ref4.dragTime,\n resizingEdge = _ref4.resizingEdge,\n resizeTime = _ref4.resizeTime,\n groups = _ref4.groups,\n newGroupOrder = _ref4.newGroupOrder;\n if (!resizingItem && !draggingItem) return item;\n var itemId = (0, _generic._get)(item, keys.itemIdKey);\n var isDragging = itemId === draggingItem;\n var isResizing = itemId === resizingItem;\n\n var _calculateInteraction = calculateInteractionNewTimes({\n itemTimeStart: (0, _generic._get)(item, keys.itemTimeStartKey),\n itemTimeEnd: (0, _generic._get)(item, keys.itemTimeEndKey),\n isDragging: isDragging,\n isResizing: isResizing,\n dragTime: dragTime,\n resizingEdge: resizingEdge,\n resizeTime: resizeTime\n }),\n _calculateInteraction2 = _slicedToArray(_calculateInteraction, 2),\n itemTimeStart = _calculateInteraction2[0],\n itemTimeEnd = _calculateInteraction2[1];\n\n var newItem = _objectSpread({}, item, (_objectSpread2 = {}, _defineProperty(_objectSpread2, keys.itemTimeStartKey, itemTimeStart), _defineProperty(_objectSpread2, keys.itemTimeEndKey, itemTimeEnd), _defineProperty(_objectSpread2, keys.itemGroupKey, isDragging ? (0, _generic._get)(groups[newGroupOrder], keys.groupIdKey) : (0, _generic._get)(item, keys.itemGroupKey)), _objectSpread2));\n\n return newItem;\n}\n/**\n * get canvas start and end time from visible start and end time\n * @param {number} visibleTimeStart\n * @param {number} visibleTimeEnd\n */\n\n\nfunction getCanvasBoundariesFromVisibleTime(visibleTimeStart, visibleTimeEnd) {\n var zoom = visibleTimeEnd - visibleTimeStart;\n var canvasTimeStart = visibleTimeStart - (visibleTimeEnd - visibleTimeStart);\n var canvasTimeEnd = canvasTimeStart + zoom * 3;\n return [canvasTimeStart, canvasTimeEnd];\n}\n/**\n * Get the the canvas area for a given visible time\n * Will shift the start/end of the canvas if the visible time\n * does not fit within the existing\n * @param {number} visibleTimeStart\n * @param {number} visibleTimeEnd\n * @param {boolean} forceUpdateDimensions\n * @param {*} items\n * @param {*} groups\n * @param {*} props\n * @param {*} state\n */\n\n\nfunction calculateScrollCanvas(visibleTimeStart, visibleTimeEnd, forceUpdateDimensions, items, groups, props, state) {\n var oldCanvasTimeStart = state.canvasTimeStart;\n var oldZoom = state.visibleTimeEnd - state.visibleTimeStart;\n var newZoom = visibleTimeEnd - visibleTimeStart;\n var newState = {\n visibleTimeStart: visibleTimeStart,\n visibleTimeEnd: visibleTimeEnd // Check if the current canvas covers the new times\n\n };\n var canKeepCanvas = newZoom === oldZoom && visibleTimeStart >= oldCanvasTimeStart + oldZoom * 0.5 && visibleTimeStart <= oldCanvasTimeStart + oldZoom * 1.5 && visibleTimeEnd >= oldCanvasTimeStart + oldZoom * 1.5 && visibleTimeEnd <= oldCanvasTimeStart + oldZoom * 2.5;\n\n if (!canKeepCanvas || forceUpdateDimensions) {\n var _getCanvasBoundariesF = getCanvasBoundariesFromVisibleTime(visibleTimeStart, visibleTimeEnd),\n _getCanvasBoundariesF2 = _slicedToArray(_getCanvasBoundariesF, 2),\n canvasTimeStart = _getCanvasBoundariesF2[0],\n canvasTimeEnd = _getCanvasBoundariesF2[1];\n\n newState.canvasTimeStart = canvasTimeStart;\n newState.canvasTimeEnd = canvasTimeEnd;\n\n var mergedState = _objectSpread({}, state, {}, newState);\n\n var canvasWidth = getCanvasWidth(mergedState.width); // The canvas cannot be kept, so calculate the new items position\n\n Object.assign(newState, stackTimelineItems(items, groups, canvasWidth, mergedState.canvasTimeStart, mergedState.canvasTimeEnd, props.keys, props.lineHeight, props.itemHeightRatio, props.stackItems, mergedState.draggingItem, mergedState.resizingItem, mergedState.dragTime, mergedState.resizingEdge, mergedState.resizeTime, mergedState.newGroupOrder));\n }\n\n return newState;\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/* eslint-disable no-return-assign */\nimport canUseDOM from './canUseDOM';\nexport var optionsSupported = false;\nexport var onceSupported = false;\n\ntry {\n var options = {\n get passive() {\n return optionsSupported = true;\n },\n\n get once() {\n // eslint-disable-next-line no-multi-assign\n return onceSupported = optionsSupported = true;\n }\n\n };\n\n if (canUseDOM) {\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, true);\n }\n} catch (e) {\n /* */\n}\n\n/**\n * An `addEventListener` ponyfill, supports the `once` option\n */\nfunction addEventListener(node, eventName, handler, options) {\n if (options && typeof options !== 'boolean' && !onceSupported) {\n var once = options.once,\n capture = options.capture;\n var wrappedHandler = handler;\n\n if (!onceSupported && once) {\n wrappedHandler = handler.__once || function onceHandler(event) {\n this.removeEventListener(eventName, onceHandler, capture);\n handler.call(this, event);\n };\n\n handler.__once = wrappedHandler;\n }\n\n node.addEventListener(eventName, wrappedHandler, optionsSupported ? options : capture);\n }\n\n node.addEventListener(eventName, handler, options);\n}\n\nexport default addEventListener;","function removeEventListener(node, eventName, handler, options) {\n var capture = options && typeof options !== 'boolean' ? options.capture : options;\n node.removeEventListener(eventName, handler, capture);\n\n if (handler.__once) {\n node.removeEventListener(eventName, handler.__once, capture);\n }\n}\n\nexport default removeEventListener;","import addEventListener from './addEventListener';\nimport removeEventListener from './removeEventListener';\n\nfunction listen(node, eventName, handler, options) {\n addEventListener(node, eventName, handler, options);\n return function () {\n removeEventListener(node, eventName, handler, options);\n };\n}\n\nexport default listen;","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport gud from 'gud';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + gud() + '__';\n\n var Provider =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer =\n /*#__PURE__*/\n function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle\";\nimport RouterContext from \"./RouterContext\";\nimport generatePath from \"./generatePath\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext\";\nimport matchPath from \"./matchPath\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext\";\nimport matchPath from \"./matchPath\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport RouterContext from \"./RouterContext\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n \n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a `\n );\n return (\n \n );\n }}\n \n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(Context).history;\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n return path\n ? matchPath(useLocation().pathname, path)\n : useContext(Context).match;\n}\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports._get = _get;\nexports._length = _length;\nexports.arraysEqual = arraysEqual;\nexports.deepObjectCompare = deepObjectCompare;\nexports.keyBy = keyBy;\nexports.noop = noop;\n\nvar _lodash = _interopRequireDefault(require(\"lodash.isequal\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n// so we could use both immutable.js objects and regular objects\nfunction _get(object, key) {\n return typeof object.get === 'function' ? object.get(key) : object[key];\n}\n\nfunction _length(object) {\n return typeof object.count === 'function' ? object.count() : object.length;\n}\n\nfunction arraysEqual(array1, array2) {\n return _length(array1) === _length(array2) && array1.every(function (element, index) {\n return element === _get(array2, index);\n });\n}\n\nfunction deepObjectCompare(obj1, obj2) {\n return (0, _lodash[\"default\"])(obj1, obj2);\n}\n\nfunction keyBy(value, key) {\n var obj = {};\n value.forEach(function (element) {\n obj[element[key]] = element;\n });\n return obj;\n}\n\nfunction noop() {}","export default typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n","import isBrowser from './isBrowser';\n\nconst timeoutDuration = (function(){\n const longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}());\n\nexport function microtaskDebounce(fn) {\n let called = false\n return () => {\n if (called) {\n return\n }\n called = true\n window.Promise.resolve().then(() => {\n called = false\n fn()\n })\n }\n}\n\nexport function taskDebounce(fn) {\n let scheduled = false;\n return () => {\n if (!scheduled) {\n scheduled = true;\n setTimeout(() => {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nexport default (supportsMicroTasks\n ? microtaskDebounce\n : taskDebounce);\n","/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nexport default function isFunction(functionToCheck) {\n const getType = {};\n return (\n functionToCheck &&\n getType.toString.call(functionToCheck) === '[object Function]'\n );\n}\n","/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nexport default function getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n const window = element.ownerDocument.defaultView;\n const css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n","/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nexport default function getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nexport default function getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body\n case '#document':\n return element.body\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n","/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nexport default function getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nexport default function isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nexport default function getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n const noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n let offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n const nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (\n ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n getStyleComputedProperty(offsetParent, 'position') === 'static'\n ) {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n","/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nexport default function getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nexport default function findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n const order =\n element1.compareDocumentPosition(element2) &\n Node.DOCUMENT_POSITION_FOLLOWING;\n const start = order ? element1 : element2;\n const end = order ? element2 : element1;\n\n // Get common ancestor container\n const range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n const { commonAncestorContainer } = range;\n\n // Both nodes are inside #document\n if (\n (element1 !== commonAncestorContainer &&\n element2 !== commonAncestorContainer) ||\n start.contains(end)\n ) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n const element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n const { nodeName } = element;\n if (nodeName === 'BODY') {\n return false;\n }\n return (\n nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element\n );\n}\n","/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nexport default function getScroll(element, side = 'top') {\n const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n const nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n const html = element.ownerDocument.documentElement;\n const scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n","import getScroll from './getScroll';\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nexport default function includeScroll(rect, element, subtract = false) {\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n const modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n","/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nexport default function getBordersSize(styles, axis) {\n const sideA = axis === 'x' ? 'Left' : 'Top';\n const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return (\n parseFloat(styles[`border${sideA}Width`]) +\n parseFloat(styles[`border${sideB}Width`])\n );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(\n body[`offset${axis}`],\n body[`scroll${axis}`],\n html[`client${axis}`],\n html[`offset${axis}`],\n html[`scroll${axis}`],\n isIE(10)\n ? (parseInt(html[`offset${axis}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n : 0 \n );\n}\n\nexport default function getWindowSizes(document) {\n const body = document.body;\n const html = document.documentElement;\n const computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle),\n };\n}\n","/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nexport default function getClientRect(offsets) {\n return {\n ...offsets,\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height,\n };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nexport default function getBoundingClientRect(element) {\n let rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n }\n else {\n rect = element.getBoundingClientRect();\n }\n }\n catch(e){}\n\n const result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top,\n };\n\n // subtract scrollbar size from sizes\n const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n const width =\n sizes.width || element.clientWidth || result.width;\n const height =\n sizes.height || element.clientHeight || result.height;\n\n let horizScrollbar = element.offsetWidth - width;\n let vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n const styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n const isIE10 = runIsIE(10);\n const isHTML = parent.nodeName === 'HTML';\n const childrenRect = getBoundingClientRect(children);\n const parentRect = getBoundingClientRect(parent);\n const scrollParent = getScrollParent(children);\n\n const styles = getStyleComputedProperty(parent);\n const borderTopWidth = parseFloat(styles.borderTopWidth);\n const borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if(fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n let offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height,\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n const marginTop = parseFloat(styles.marginTop);\n const marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (\n isIE10 && !fixedPosition\n ? parent.contains(scrollParent)\n : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n ) {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n const html = element.ownerDocument.documentElement;\n const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n const width = Math.max(html.clientWidth, window.innerWidth || 0);\n const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n const scrollTop = !excludeScroll ? getScroll(html) : 0;\n const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n const offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width,\n height,\n };\n\n return getClientRect(offset);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nexport default function isFixed(element) {\n const nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n const parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nexport default function getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n let el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getReferenceNode from './getReferenceNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nexport default function getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement,\n fixedPosition = false\n) {\n // NOTE: 1 DOM access here\n\n let boundaries = { top: 0, left: 0 };\n const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport' ) {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n }\n\n else {\n // Handle other cases based on DOM element used as boundaries\n let boundariesNode;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n const offsets = getOffsetRectRelativeToArbitraryNode(\n boundariesNode,\n offsetParent,\n fixedPosition\n );\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n const { height, width } = getWindowSizes(popper.ownerDocument);\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n const isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0; \n boundaries.top += isPaddingNumber ? padding : padding.top || 0; \n boundaries.right -= isPaddingNumber ? padding : padding.right || 0; \n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; \n\n return boundaries;\n}\n","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeAutoPlacement(\n placement,\n refRect,\n popper,\n reference,\n boundariesElement,\n padding = 0\n) {\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n const boundaries = getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement\n );\n\n const rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top,\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height,\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom,\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height,\n },\n };\n\n const sortedAreas = Object.keys(rects)\n .map(key => ({\n key,\n ...rects[key],\n area: getArea(rects[key]),\n }))\n .sort((a, b) => b.area - a.area);\n\n const filteredAreas = sortedAreas.filter(\n ({ width, height }) =>\n width >= popper.clientWidth && height >= popper.clientHeight\n );\n\n const computedPlacement = filteredAreas.length > 0\n ? filteredAreas[0].key\n : sortedAreas[0].key;\n\n const variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\nimport getReferenceNode from './getReferenceNode';\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n","/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nexport default function getOuterSizes(element) {\n const window = element.ownerDocument.defaultView;\n const styles = window.getComputedStyle(element);\n const x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n const y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n const result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x,\n };\n return result;\n}\n","/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nexport default function getOppositePlacement(placement) {\n const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n const popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n const popperOffsets = {\n width: popperRect.width,\n height: popperRect.height,\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n const mainSide = isHoriz ? 'top' : 'left';\n const secondarySide = isHoriz ? 'left' : 'top';\n const measurement = isHoriz ? 'height' : 'width';\n const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] =\n referenceOffsets[mainSide] +\n referenceOffsets[measurement] / 2 -\n popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] =\n referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] =\n referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n","/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nexport default function runModifiers(modifiers, data, ends) {\n const modifiersToRun = ends === undefined\n ? modifiers\n : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(modifier => {\n if (modifier['function']) { // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n const fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n","import find from './find';\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(cur => cur[prop] === value);\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n const match = find(arr, obj => obj[prop] === value);\n return arr.indexOf(match);\n}\n","import computeAutoPlacement from '../utils/computeAutoPlacement';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nexport default function update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n let data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {},\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(\n this.state,\n this.popper,\n this.reference,\n this.options.positionFixed\n );\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(\n this.options.placement,\n data.offsets.reference,\n this.popper,\n this.reference,\n this.options.modifiers.flip.boundariesElement,\n this.options.modifiers.flip.padding\n );\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(\n this.popper,\n data.offsets.reference,\n data.placement\n );\n\n data.offsets.popper.position = this.options.positionFixed\n ? 'fixed'\n : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(\n ({ name, enabled }) => enabled && name === modifierName\n );\n}\n","/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nexport default function getSupportedPropertyName(property) {\n const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (let i = 0; i < prefixes.length; i++) {\n const prefix = prefixes[i];\n const toCheck = prefix ? `${prefix}${upperProp}` : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n","import isModifierEnabled from '../utils/isModifierEnabled';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nexport default function destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n","/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n const ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n const isBody = scrollParent.nodeName === 'BODY';\n const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(\n getScrollParent(target.parentNode),\n event,\n callback,\n scrollParents\n );\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function setupEventListeners(\n reference,\n options,\n state,\n updateBound\n) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n const scrollElement = getScrollParent(reference);\n attachToScrollParents(\n scrollElement,\n 'scroll',\n state.updateBound,\n state.scrollParents\n );\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n","import setupEventListeners from '../utils/setupEventListeners';\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nexport default function enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(\n this.reference,\n this.options,\n this.state,\n this.scheduleUpdate\n );\n }\n}\n","import removeEventListeners from '../utils/removeEventListeners';\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nexport default function disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(target => {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n","/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nexport default function isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","import isNumeric from './isNumeric';\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setStyles(element, styles) {\n Object.keys(styles).forEach(prop => {\n let unit = '';\n // add unit if the value is numeric and is one of the following\n if (\n ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n -1 &&\n isNumeric(styles[prop])\n ) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n","import getSupportedPropertyName from '../utils/getSupportedPropertyName';\nimport find from '../utils/find';\nimport getOffsetParent from '../utils/getOffsetParent';\nimport getBoundingClientRect from '../utils/getBoundingClientRect';\nimport getRoundedOffsets from '../utils/getRoundedOffsets';\nimport isBrowser from '../utils/isBrowser';\n\nconst isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeStyle(data, options) {\n const { x, y } = options;\n const { popper } = data.offsets;\n\n // Remove this legacy support in Popper.js v2\n const legacyGpuAccelerationOption = find(\n data.instance.modifiers,\n modifier => modifier.name === 'applyStyle'\n ).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn(\n 'WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'\n );\n }\n const gpuAcceleration =\n legacyGpuAccelerationOption !== undefined\n ? legacyGpuAccelerationOption\n : options.gpuAcceleration;\n\n const offsetParent = getOffsetParent(data.instance.popper);\n const offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n const styles = {\n position: popper.position,\n };\n\n const offsets = getRoundedOffsets(\n data,\n window.devicePixelRatio < 2 || !isFirefox\n );\n\n const sideA = x === 'bottom' ? 'top' : 'bottom';\n const sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n const prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n let left, top;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = `translate3d(${left}px, ${top}px, 0)`;\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n const invertTop = sideA === 'bottom' ? -1 : 1;\n const invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = `${sideA}, ${sideB}`;\n }\n\n // Attributes\n const attributes = {\n 'x-placement': data.placement,\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = { ...attributes, ...data.attributes };\n data.styles = { ...styles, ...data.styles };\n data.arrowStyles = { ...data.offsets.arrow, ...data.arrowStyles };\n\n return data;\n}\n","import find from './find';\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nexport default function isModifierRequired(\n modifiers,\n requestingName,\n requestedName\n) {\n const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n const isRequired =\n !!requesting &&\n modifiers.some(modifier => {\n return (\n modifier.name === requestedName &&\n modifier.enabled &&\n modifier.order < requesting.order\n );\n });\n\n if (!isRequired) {\n const requesting = `\\`${requestingName}\\``;\n const requested = `\\`${requestedName}\\``;\n console.warn(\n `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n );\n }\n return isRequired;\n}\n","/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nexport default [\n 'auto-start',\n 'auto',\n 'auto-end',\n 'top-start',\n 'top',\n 'top-end',\n 'right-start',\n 'right',\n 'right-end',\n 'bottom-end',\n 'bottom',\n 'bottom-start',\n 'left-end',\n 'left',\n 'left-start',\n];\n","import placements from '../methods/placements';\n\n// Get rid of `auto` `auto-start` and `auto-end`\nconst validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nexport default function clockwise(placement, counter = false) {\n const index = validPlacements.indexOf(placement);\n const arr = validPlacements\n .slice(index + 1)\n .concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n","import getOppositePlacement from '../utils/getOppositePlacement';\nimport getOppositeVariation from '../utils/getOppositeVariation';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\nimport getBoundaries from '../utils/getBoundaries';\nimport isModifierEnabled from '../utils/isModifierEnabled';\nimport clockwise from '../utils/clockwise';\n\nconst BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise',\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n options.boundariesElement,\n data.positionFixed\n );\n\n let placement = data.placement.split('-')[0];\n let placementOpposite = getOppositePlacement(placement);\n let variation = data.placement.split('-')[1] || '';\n\n let flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach((step, index) => {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n const popperOffsets = data.offsets.popper;\n const refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n const floor = Math.floor;\n const overlapsRef =\n (placement === 'left' &&\n floor(popperOffsets.right) > floor(refOffsets.left)) ||\n (placement === 'right' &&\n floor(popperOffsets.left) < floor(refOffsets.right)) ||\n (placement === 'top' &&\n floor(popperOffsets.bottom) > floor(refOffsets.top)) ||\n (placement === 'bottom' &&\n floor(popperOffsets.top) < floor(refOffsets.bottom));\n\n const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n const overflowsBottom =\n floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n const overflowsBoundaries =\n (placement === 'left' && overflowsLeft) ||\n (placement === 'right' && overflowsRight) ||\n (placement === 'top' && overflowsTop) ||\n (placement === 'bottom' && overflowsBottom);\n\n // flip the variation if required\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n const flippedVariationByRef =\n !!options.flipVariations &&\n ((isVertical && variation === 'start' && overflowsLeft) ||\n (isVertical && variation === 'end' && overflowsRight) ||\n (!isVertical && variation === 'start' && overflowsTop) ||\n (!isVertical && variation === 'end' && overflowsBottom));\n\n // flips variation if popper content overflows boundaries\n const flippedVariationByContent =\n !!options.flipVariationsByContent &&\n ((isVertical && variation === 'start' && overflowsRight) ||\n (isVertical && variation === 'end' && overflowsLeft) ||\n (!isVertical && variation === 'start' && overflowsBottom) ||\n (!isVertical && variation === 'end' && overflowsTop));\n\n const flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = {\n ...data.offsets.popper,\n ...getPopperOffsets(\n data.instance.popper,\n data.offsets.reference,\n data.placement\n ),\n };\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n","import isNumeric from '../utils/isNumeric';\nimport getClientRect from '../utils/getClientRect';\nimport find from '../utils/find';\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nexport function toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n const split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n const value = +split[1];\n const unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n let element;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n const rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n let size;\n if (unit === 'vh') {\n size = Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n );\n } else {\n size = Math.max(\n document.documentElement.clientWidth,\n window.innerWidth || 0\n );\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nexport function parseOffset(\n offset,\n popperOffsets,\n referenceOffsets,\n basePlacement\n) {\n const offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n const useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n const fragments = offset.split(/(\\+|\\-)/).map(frag => frag.trim());\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n const divider = fragments.indexOf(\n find(fragments, frag => frag.search(/,|\\s/) !== -1)\n );\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn(\n 'Offsets separated by white space(s) are deprecated, use a comma (,) instead.'\n );\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n const splitRegex = /\\s*,\\s*|\\s+/;\n let ops = divider !== -1\n ? [\n fragments\n .slice(0, divider)\n .concat([fragments[divider].split(splitRegex)[0]]),\n [fragments[divider].split(splitRegex)[1]].concat(\n fragments.slice(divider + 1)\n ),\n ]\n : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map((op, index) => {\n // Most of the units rely on the orientation of the popper\n const measurement = (index === 1 ? !useHeight : useHeight)\n ? 'height'\n : 'width';\n let mergeWithPrevious = false;\n return (\n op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce((a, b) => {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(str => toValue(str, measurement, popperOffsets, referenceOffsets))\n );\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach((op, index) => {\n op.forEach((frag, index2) => {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nexport default function offset(data, { offset }) {\n const { placement, offsets: { popper, reference } } = data;\n const basePlacement = placement.split('-')[0];\n\n let offsets;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n","import applyStyle, { applyStyleOnLoad } from './applyStyle';\nimport computeStyle from './computeStyle';\nimport arrow from './arrow';\nimport flip from './flip';\nimport keepTogether from './keepTogether';\nimport offset from './offset';\nimport preventOverflow from './preventOverflow';\nimport shift from './shift';\nimport hide from './hide';\nimport inner from './inner';\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nexport default {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift,\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0,\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent',\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether,\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]',\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false,\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner,\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide,\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right',\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined,\n },\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n","import modifiers from '../modifiers/index';\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nexport default {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: () => {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: () => {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers,\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function shift(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n const { reference, popper } = data.offsets;\n const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n const side = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n const shiftOffsets = {\n start: { [side]: reference[side] },\n end: {\n [side]: reference[side] + reference[measurement] - popper[measurement],\n },\n };\n\n data.offsets.popper = { ...popper, ...shiftOffsets[shiftvariation] };\n }\n\n return data;\n}\n","import getOffsetParent from '../utils/getOffsetParent';\nimport getBoundaries from '../utils/getBoundaries';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function preventOverflow(data, options) {\n let boundariesElement =\n options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n const transformProp = getSupportedPropertyName('transform');\n const popperStyles = data.instance.popper.style; // assignment to help minification\n const { top, left, [transformProp]: transform } = popperStyles;\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n boundariesElement,\n data.positionFixed\n );\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n const order = options.priority;\n let popper = data.offsets.popper;\n\n const check = {\n primary(placement) {\n let value = popper[placement];\n if (\n popper[placement] < boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return { [placement]: value };\n },\n secondary(placement) {\n const mainSide = placement === 'right' ? 'left' : 'top';\n let value = popper[mainSide];\n if (\n popper[placement] > boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.min(\n popper[mainSide],\n boundaries[placement] -\n (placement === 'right' ? popper.width : popper.height)\n );\n }\n return { [mainSide]: value };\n },\n };\n\n order.forEach(placement => {\n const side =\n ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = { ...popper, ...check[side](placement) };\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function keepTogether(data) {\n const { popper, reference } = data.offsets;\n const placement = data.placement.split('-')[0];\n const floor = Math.floor;\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n const side = isVertical ? 'right' : 'bottom';\n const opSide = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] =\n floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOuterSizes from '../utils/getOuterSizes';\nimport isModifierRequired from '../utils/isModifierRequired';\nimport getStyleComputedProperty from '../utils/getStyleComputedProperty';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function arrow(data, options) {\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n let arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn(\n 'WARNING: `arrow.element` must be child of its popper element!'\n );\n return data;\n }\n }\n\n const placement = data.placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n const len = isVertical ? 'height' : 'width';\n const sideCapitalized = isVertical ? 'Top' : 'Left';\n const side = sideCapitalized.toLowerCase();\n const altSide = isVertical ? 'left' : 'top';\n const opSide = isVertical ? 'bottom' : 'right';\n const arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -=\n popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] +=\n reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n const center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n const css = getStyleComputedProperty(data.instance.popper);\n const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`]);\n const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`]);\n let sideValue =\n center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = {\n [side]: Math.round(sideValue),\n [altSide]: '', // make sure to unset any eventual altSide value from the DOM node\n };\n\n return data;\n}\n","/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nexport default function getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOppositePlacement from '../utils/getOppositePlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function inner(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] =\n reference[basePlacement] -\n (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n","import isModifierRequired from '../utils/isModifierRequired';\nimport find from '../utils/find';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n const refRect = data.offsets.reference;\n const bound = find(\n data.instance.modifiers,\n modifier => modifier.name === 'preventOverflow'\n ).boundaries;\n\n if (\n refRect.bottom < bound.top ||\n refRect.left > bound.right ||\n refRect.top > bound.bottom ||\n refRect.right < bound.left\n ) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n","/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nexport default function getRoundedOffsets(data, shouldRound) {\n const { popper, reference } = data.offsets;\n const { round, floor } = Math;\n const noRound = v => v;\n \n const referenceWidth = round(reference.width);\n const popperWidth = round(popper.width);\n \n const isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n const isVariation = data.placement.indexOf('-') !== -1;\n const sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n const bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n const horizontalToInteger = !shouldRound\n ? noRound\n : isVertical || isVariation || sameWidthParity\n ? round\n : floor;\n const verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(\n bothOddWidth && !isVariation && shouldRound\n ? popper.left - 1\n : popper.left\n ),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right),\n };\n}\n","import setStyles from '../utils/setStyles';\nimport setAttributes from '../utils/setAttributes';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nexport default function applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nexport function applyStyleOnLoad(\n reference,\n popper,\n options,\n modifierOptions,\n state\n) {\n // compute reference element offsets\n const referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n const placement = computeAutoPlacement(\n options.placement,\n referenceOffsets,\n popper,\n reference,\n options.modifiers.flip.boundariesElement,\n options.modifiers.flip.padding\n );\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n","/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function(prop) {\n const value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n","// Utils\nimport debounce from './utils/debounce';\nimport isFunction from './utils/isFunction';\n\n// Methods\nimport update from './methods/update';\nimport destroy from './methods/destroy';\nimport enableEventListeners from './methods/enableEventListeners';\nimport disableEventListeners from './methods/disableEventListeners';\nimport Defaults from './methods/defaults';\nimport placements from './methods/placements';\n\nexport default class Popper {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n constructor(reference, popper, options = {}) {\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = { ...Popper.Defaults, ...options };\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: [],\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys({\n ...Popper.Defaults.modifiers,\n ...options.modifiers,\n }).forEach(name => {\n this.options.modifiers[name] = {\n // If it's a built-in modifier, use it as base\n ...(Popper.Defaults.modifiers[name] || {}),\n // If there are custom options, override and merge with default ones\n ...(options.modifiers ? options.modifiers[name] : {}),\n };\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers)\n .map(name => ({\n name,\n ...this.options.modifiers[name],\n }))\n // sort the modifiers by order\n .sort((a, b) => a.order - b.order);\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(modifierOptions => {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(\n this.reference,\n this.popper,\n this.options,\n modifierOptions,\n this.state\n );\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n const eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n update() {\n return update.call(this);\n }\n destroy() {\n return destroy.call(this);\n }\n enableEventListeners() {\n return enableEventListeners.call(this);\n }\n disableEventListeners() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n scheduleUpdate = () => requestAnimationFrame(this.update);\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n static Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\n\n static placements = placements;\n\n static Defaults = Defaults;\n}\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 * var result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\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}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\n\r\n/**\r\n * This file exists to hold environment utilities that are requied to check and\r\n * validate the current operating environment. Unless otherwise required, please\r\n * only defined methods (functions) in this class so that users of these \r\n * functions/properties only need to include those that are used within their own modules.\r\n */\r\n\r\nexport const strUndefined = \"undefined\";\r\nexport const strObject = \"object\";\r\n\r\nconst strWindow = \"window\";\r\nconst strDocument = \"document\";\r\nconst strNavigator = \"navigator\";\r\nconst strHistory = \"history\";\r\nconst strLocation = \"location\";\r\nconst strPerformance = \"performance\";\r\nconst strJSON = \"JSON\";\r\n\r\n// To address compile time errors declaring these here\r\ndeclare var globalThis: Window;\r\ndeclare var global: Window;\r\n\r\n/**\r\n * Returns the current global scope object, for a normal web page this will be the current\r\n * window, for a Web Worker this will be current worker global scope via \"self\". The internal \r\n * implementation returns the first available instance object in the following order\r\n * - globalThis (New standard)\r\n * - self (Will return the current window instance for supported browsers)\r\n * - window (fallback for older browser implementations)\r\n * - global (NodeJS standard)\r\n * - (When all else fails)\r\n * While the return type is a Window for the normal case, not all environments will support all\r\n * of the properties or functions.\r\n */\r\nexport function getGlobal(): Window {\r\n if (typeof globalThis !== strUndefined && globalThis) {\r\n return globalThis;\r\n }\r\n\r\n if (typeof self !== strUndefined && self) {\r\n return self;\r\n }\r\n\r\n if (typeof window !== strUndefined && window) {\r\n return window;\r\n }\r\n\r\n if (typeof global !== strUndefined && global) {\r\n return global;\r\n }\r\n\r\n return null;\r\n}\r\n\r\n/**\r\n * Return the named global object if available, will return null if the object is not available.\r\n * @param name The globally named object\r\n */\r\nexport function getGlobalInst(name:string): T {\r\n let gbl = getGlobal();\r\n if (gbl && gbl[name]) {\r\n return gbl[name] as T;\r\n }\r\n\r\n // Test workaround, for environments where .window (when global == window) doesn't return the base window\r\n if (name === strWindow && hasWindow()) {\r\n // tslint:disable-next-line: no-angle-bracket-type-assertion\r\n return window as T;\r\n }\r\n\r\n return null;\r\n}\r\n\r\n/**\r\n * Checks if window object is available, this is required as we support the API running without a \r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a window \r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: window is not defined\" \r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasWindow(): boolean {\r\n return Boolean(typeof window === strObject && window);\r\n}\r\n\r\n/**\r\n * Returns the global window object if it is present otherwise null.\r\n * This helper is used to access the window object without causing an exception\r\n * \"Uncaught ReferenceError: window is not defined\"\r\n */\r\nexport function getWindow(): Window | null {\r\n if (hasWindow()) {\r\n return window;\r\n }\r\n\r\n // Return the global instance or null\r\n return getGlobalInst(strWindow);\r\n}\r\n\r\n/**\r\n * Checks if document object is available, this is required as we support the API running without a \r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a document \r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: document is not defined\" \r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasDocument(): boolean {\r\n return Boolean(typeof document === strObject && document);\r\n}\r\n\r\n/**\r\n * Returns the global document object if it is present otherwise null.\r\n * This helper is used to access the document object without causing an exception\r\n * \"Uncaught ReferenceError: document is not defined\"\r\n */\r\nexport function getDocument(): Document | null {\r\n if (hasDocument()) {\r\n return document;\r\n }\r\n\r\n return getGlobalInst(strDocument);\r\n}\r\n\r\n\r\n/**\r\n * Checks if navigator object is available, this is required as we support the API running without a \r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a navigator \r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: navigator is not defined\" \r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasNavigator(): boolean {\r\n return Boolean(typeof navigator === strObject && navigator);\r\n}\r\n\r\n/**\r\n * Returns the global navigator object if it is present otherwise null.\r\n * This helper is used to access the navigator object without causing an exception\r\n * \"Uncaught ReferenceError: navigator is not defined\"\r\n */\r\nexport function getNavigator(): Navigator | null {\r\n if (hasNavigator()) {\r\n return navigator;\r\n }\r\n\r\n return getGlobalInst(strNavigator);\r\n}\r\n\r\n/**\r\n * Checks if history object is available, this is required as we support the API running without a \r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history \r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: history is not defined\" \r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasHistory(): boolean {\r\n return Boolean(typeof history === strObject && history);\r\n}\r\n\r\n/**\r\n * Returns the global history object if it is present otherwise null.\r\n * This helper is used to access the history object without causing an exception\r\n * \"Uncaught ReferenceError: history is not defined\"\r\n */\r\nexport function getHistory(): History | null {\r\n if (hasHistory()) {\r\n return history;\r\n }\r\n\r\n return getGlobalInst(strHistory);\r\n}\r\n\r\n/**\r\n * Returns the global location object if it is present otherwise null.\r\n * This helper is used to access the location object without causing an exception\r\n * \"Uncaught ReferenceError: location is not defined\"\r\n */\r\nexport function getLocation(): Location | null {\r\n if (typeof location === strObject && location) {\r\n return location;\r\n }\r\n\r\n return getGlobalInst(strLocation);\r\n}\r\n\r\n/**\r\n * Returns the performance object if it is present otherwise null.\r\n * This helper is used to access the performance object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getPerformance(): Performance | null {\r\n return getGlobalInst(strPerformance);\r\n}\r\n\r\n/**\r\n * Checks if JSON object is available, this is required as we support the API running without a \r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history \r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: JSON is not defined\" \r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasJSON(): boolean {\r\n return Boolean((typeof JSON === strObject && JSON) || getGlobalInst(strJSON) !== null);\r\n}\r\n\r\n/**\r\n * Returns the global JSON object if it is present otherwise null.\r\n * This helper is used to access the JSON object without causing an exception\r\n * \"Uncaught ReferenceError: JSON is not defined\"\r\n */\r\nexport function getJSON(): JSON | null {\r\n if (hasJSON()) {\r\n return JSON || getGlobalInst(strJSON);\r\n }\r\n\r\n return null;\r\n}\r\n","/* eslint-disable */\n// murmurhash2 via https://github.com/garycourt/murmurhash-js/blob/master/murmurhash2_gc.js\nfunction murmurhash2_32_gc(str) {\n var l = str.length,\n h = l ^ l,\n i = 0,\n k;\n\n while (l >= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n k ^= k >>> 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16) ^ k;\n l -= 4;\n ++i;\n }\n\n switch (l) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n }\n\n h ^= h >>> 13;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h ^= h >>> 15;\n return (h >>> 0).toString(36);\n}\n\nexport default murmurhash2_32_gc;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(attr|calc|counters?|url)\\(/;\n var contentValues = ['normal', 'none', 'counter', 'open-quote', 'close-quote', 'no-open-quote', 'no-close-quote', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n console.error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar shouldWarnAboutInterpolatingClassNameFromCss = true;\n\nfunction handleInterpolation(mergedProps, registered, interpolation, couldBeSelectorInterpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result, couldBeSelectorInterpolation);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n\n if (process.env.NODE_ENV !== 'production' && couldBeSelectorInterpolation && shouldWarnAboutInterpolatingClassNameFromCss && cached !== undefined) {\n console.error('Interpolating a className from css`` is not recommended and will cause problems with composition.\\n' + 'Interpolating a className from css`` will be completely unsupported in a future major version of Emotion');\n shouldWarnAboutInterpolatingClassNameFromCss = false;\n }\n\n return cached !== undefined && !couldBeSelectorInterpolation ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i], false);\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value, false);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*;/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings, false);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i], styles.charCodeAt(styles.length - 1) === 46);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TimelineStateConsumer = exports.TimelineStateProvider = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _createReactContext2 = _interopRequireDefault(require(\"create-react-context\"));\n\nvar _calendar = require(\"../utility/calendar\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 _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/* this context will hold all information regarding timeline state:\n 1. timeline width\n 2. visible time start and end\n 3. canvas time start and end\n 4. helpers for calculating left offset of items (and really...anything)\n*/\n\n/* eslint-disable no-console */\nvar defaultContextState = {\n getTimelineState: function getTimelineState() {\n console.warn('\"getTimelineState\" default func is being used');\n },\n getLeftOffsetFromDate: function getLeftOffsetFromDate() {\n console.warn('\"getLeftOffsetFromDate\" default func is being used');\n },\n getDateFromLeftOffsetPosition: function getDateFromLeftOffsetPosition() {\n console.warn('\"getDateFromLeftOffsetPosition\" default func is being used');\n },\n showPeriod: function showPeriod() {\n console.warn('\"showPeriod\" default func is being used');\n }\n /* eslint-enable */\n\n};\n\nvar _createReactContext = (0, _createReactContext2[\"default\"])(defaultContextState),\n Consumer = _createReactContext.Consumer,\n Provider = _createReactContext.Provider;\n\nvar TimelineStateProvider =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(TimelineStateProvider, _React$Component);\n\n /* eslint-disable react/no-unused-prop-types */\n function TimelineStateProvider(props) {\n var _this;\n\n _classCallCheck(this, TimelineStateProvider);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(TimelineStateProvider).call(this, props));\n\n _defineProperty(_assertThisInitialized(_this), \"getTimelineState\", function () {\n var _this$props = _this.props,\n visibleTimeStart = _this$props.visibleTimeStart,\n visibleTimeEnd = _this$props.visibleTimeEnd,\n canvasTimeStart = _this$props.canvasTimeStart,\n canvasTimeEnd = _this$props.canvasTimeEnd,\n canvasWidth = _this$props.canvasWidth,\n timelineUnit = _this$props.timelineUnit,\n timelineWidth = _this$props.timelineWidth;\n return {\n visibleTimeStart: visibleTimeStart,\n visibleTimeEnd: visibleTimeEnd,\n canvasTimeStart: canvasTimeStart,\n canvasTimeEnd: canvasTimeEnd,\n canvasWidth: canvasWidth,\n timelineUnit: timelineUnit,\n timelineWidth: timelineWidth // REVIEW,\n\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getLeftOffsetFromDate\", function (date) {\n var _this$props2 = _this.props,\n canvasTimeStart = _this$props2.canvasTimeStart,\n canvasTimeEnd = _this$props2.canvasTimeEnd,\n canvasWidth = _this$props2.canvasWidth;\n return (0, _calendar.calculateXPositionForTime)(canvasTimeStart, canvasTimeEnd, canvasWidth, date);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getDateFromLeftOffsetPosition\", function (leftOffset) {\n var _this$props3 = _this.props,\n canvasTimeStart = _this$props3.canvasTimeStart,\n canvasTimeEnd = _this$props3.canvasTimeEnd,\n canvasWidth = _this$props3.canvasWidth;\n return (0, _calendar.calculateTimeForXPosition)(canvasTimeStart, canvasTimeEnd, canvasWidth, leftOffset);\n });\n\n _this.state = {\n timelineContext: {\n getTimelineState: _this.getTimelineState,\n getLeftOffsetFromDate: _this.getLeftOffsetFromDate,\n getDateFromLeftOffsetPosition: _this.getDateFromLeftOffsetPosition,\n showPeriod: _this.props.showPeriod\n }\n };\n return _this;\n }\n\n _createClass(TimelineStateProvider, [{\n key: \"render\",\n value: function render() {\n return _react[\"default\"].createElement(Provider, {\n value: this.state.timelineContext\n }, this.props.children);\n }\n }]);\n\n return TimelineStateProvider;\n}(_react[\"default\"].Component);\n\nexports.TimelineStateProvider = TimelineStateProvider;\n\n_defineProperty(TimelineStateProvider, \"propTypes\", {\n children: _propTypes[\"default\"].element.isRequired,\n visibleTimeStart: _propTypes[\"default\"].number.isRequired,\n visibleTimeEnd: _propTypes[\"default\"].number.isRequired,\n canvasTimeStart: _propTypes[\"default\"].number.isRequired,\n canvasTimeEnd: _propTypes[\"default\"].number.isRequired,\n canvasWidth: _propTypes[\"default\"].number.isRequired,\n showPeriod: _propTypes[\"default\"].func.isRequired,\n timelineUnit: _propTypes[\"default\"].string.isRequired,\n timelineWidth: _propTypes[\"default\"].number.isRequired\n});\n\nvar TimelineStateConsumer = Consumer;\nexports.TimelineStateConsumer = TimelineStateConsumer;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","import getScrollAccessor from './getScrollAccessor';\nexport default getScrollAccessor('pageXOffset');","import getScrollAccessor from './getScrollAccessor';\nexport default getScrollAccessor('pageYOffset');","export default !!(typeof window !== 'undefined' && window.document && window.document.createElement);","export default function _objectDestructuringEmpty(obj) {\n if (obj == null) throw new TypeError(\"Cannot destructure undefined\");\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added\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 * var result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\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 '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate, dirtyOptions);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\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, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\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 isDocument from './isDocument';\nexport default function isWindow(node) {\n if ('window' in node && node.window === node) return node;\n if (isDocument(node)) return node.defaultView || false;\n return false;\n}","export default function isDocument(element) {\n return 'nodeType' in element && element.nodeType === document.DOCUMENT_NODE;\n}","import canUseDOM from './canUseDOM';\n\n/* https://github.com/component/raf */\nvar prev = new Date().getTime();\n\nfunction fallback(fn) {\n var curr = new Date().getTime();\n var ms = Math.max(0, 16 - (curr - prev));\n var handle = setTimeout(fn, ms);\n prev = curr;\n return handle;\n}\n\nvar vendors = ['', 'webkit', 'moz', 'o', 'ms'];\nvar cancelMethod = 'clearTimeout';\nvar rafImpl = fallback; // eslint-disable-next-line import/no-mutable-exports\n\nvar getKey = function getKey(vendor, k) {\n return vendor + (!vendor ? k : k[0].toUpperCase() + k.substr(1)) + \"AnimationFrame\";\n};\n\nif (canUseDOM) {\n vendors.some(function (vendor) {\n var rafMethod = getKey(vendor, 'request');\n\n if (rafMethod in window) {\n cancelMethod = getKey(vendor, 'cancel'); // @ts-ignore\n\n rafImpl = function rafImpl(cb) {\n return window[rafMethod](cb);\n };\n }\n\n return !!rafImpl;\n });\n}\n\nexport var cancel = function cancel(id) {\n // @ts-ignore\n if (typeof window[cancelMethod] === 'function') window[cancelMethod](id);\n};\nexport var request = rafImpl;","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TimelineMarkersConsumer = exports.TimelineMarkersProvider = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _createReactContext2 = _interopRequireDefault(require(\"create-react-context\"));\n\nvar _generic = require(\"../utility/generic\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } 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 _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 _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 defaultContextState = {\n markers: [],\n subscribeMarker: function subscribeMarker() {\n // eslint-disable-next-line\n console.warn('default subscribe marker used');\n return _generic.noop;\n }\n};\n\nvar _createReactContext = (0, _createReactContext2[\"default\"])(defaultContextState),\n Consumer = _createReactContext.Consumer,\n Provider = _createReactContext.Provider; // REVIEW: is this the best way to manage ids?\n\n\nvar _id = 0;\n\nvar createId = function createId() {\n _id += 1;\n return _id + 1;\n};\n\nvar TimelineMarkersProvider =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(TimelineMarkersProvider, _React$Component);\n\n function TimelineMarkersProvider() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, TimelineMarkersProvider);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(TimelineMarkersProvider)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"handleSubscribeToMarker\", function (newMarker) {\n newMarker = _objectSpread({}, newMarker, {\n // REVIEW: in the event that we accept id to be passed to the Marker components, this line would override those\n id: createId()\n });\n\n _this.setState(function (state) {\n return {\n markers: [].concat(_toConsumableArray(state.markers), [newMarker])\n };\n });\n\n return {\n unsubscribe: function unsubscribe() {\n _this.setState(function (state) {\n return {\n markers: state.markers.filter(function (marker) {\n return marker.id !== newMarker.id;\n })\n };\n });\n },\n getMarker: function getMarker() {\n return newMarker;\n }\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleUpdateMarker\", function (updateMarker) {\n var markerIndex = _this.state.markers.findIndex(function (marker) {\n return marker.id === updateMarker.id;\n });\n\n if (markerIndex < 0) return;\n\n _this.setState(function (state) {\n return {\n markers: [].concat(_toConsumableArray(state.markers.slice(0, markerIndex)), [updateMarker], _toConsumableArray(state.markers.slice(markerIndex + 1)))\n };\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n markers: [],\n subscribeMarker: _this.handleSubscribeToMarker,\n updateMarker: _this.handleUpdateMarker\n });\n\n return _this;\n }\n\n _createClass(TimelineMarkersProvider, [{\n key: \"render\",\n value: function render() {\n return _react[\"default\"].createElement(Provider, {\n value: this.state\n }, this.props.children);\n }\n }]);\n\n return TimelineMarkersProvider;\n}(_react[\"default\"].Component);\n\nexports.TimelineMarkersProvider = TimelineMarkersProvider;\n\n_defineProperty(TimelineMarkersProvider, \"propTypes\", {\n children: _propTypes[\"default\"].element.isRequired\n});\n\nvar TimelineMarkersConsumer = Consumer;\nexports.TimelineMarkersConsumer = TimelineMarkersConsumer;","var simpleIsEqual = function simpleIsEqual(a, b) {\n return a === b;\n};\n\nfunction index (resultFn, isEqual) {\n if (isEqual === void 0) {\n isEqual = simpleIsEqual;\n }\n\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n\n var isNewArgEqualToLast = function isNewArgEqualToLast(newArg, index) {\n return isEqual(newArg, lastArgs[index]);\n };\n\n var result = function result() {\n for (var _len = arguments.length, newArgs = new Array(_len), _key = 0; _key < _len; _key++) {\n newArgs[_key] = arguments[_key];\n }\n\n if (calledOnce && lastThis === this && newArgs.length === lastArgs.length && newArgs.every(isNewArgEqualToLast)) {\n return lastResult;\n }\n\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n };\n\n return result;\n}\n\nexport default index;\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added\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 * var result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n date.setDate(date.getDate() + amount);\n return date;\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 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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added\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 * var result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\n\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n var desiredMonth = date.getMonth() + amount;\n var dateWithDesiredMonth = new Date(0);\n dateWithDesiredMonth.setFullYear(date.getFullYear(), desiredMonth, 1);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth); // Set the last day of the new month\n // if the original date was the last day of the longer month\n\n date.setMonth(desiredMonth, Math.min(daysInMonth, date.getDate()));\n return date;\n}","import getWindow from './isWindow';\nimport offset from './offset';\nexport default function height(node, client) {\n var win = getWindow(node);\n return win ? win.innerHeight : client ? node.clientHeight : offset(node).height;\n}","import getWindow from './isWindow';\nimport offset from './offset';\nexport default function getWidth(node, client) {\n var win = getWindow(node);\n return win ? win.innerWidth : client ? node.clientWidth : offset(node).width;\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\"\r\nimport { IConfiguration } from \"../JavaScriptSDK.Interfaces/IConfiguration\"\r\nimport { _InternalMessageId, LoggingSeverity } from \"../JavaScriptSDK.Enums/LoggingEnums\";\r\nimport { IDiagnosticLogger } from \"../JavaScriptSDK.Interfaces/IDiagnosticLogger\";\r\nimport { CoreUtils } from \"./CoreUtils\";\r\nimport { hasJSON, getJSON } from \"./EnvUtils\";\r\nimport { AppInsightsCore } from \"./AppInsightsCore\";\r\n\r\nexport class _InternalLogMessage{\r\n public static dataType: string = \"MessageData\";\r\n\r\n /**\r\n * For user non actionable traces use AI Internal prefix.\r\n */\r\n private static AiNonUserActionablePrefix = \"AI (Internal): \";\r\n\r\n /**\r\n * Prefix of the traces in portal.\r\n */\r\n private static AiUserActionablePrefix = \"AI: \";\r\n\r\n private static sanitizeDiagnosticText(text: string) {\r\n if (text) {\r\n return \"\\\"\" + text.replace(/\\\"/g, \"\") + \"\\\"\";\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n public message: string;\r\n public messageId: _InternalMessageId;\r\n\r\n constructor(msgId: _InternalMessageId, msg: string, isUserAct = false, properties?: Object) {\r\n\r\n this.messageId = msgId;\r\n this.message =\r\n (isUserAct ? _InternalLogMessage.AiUserActionablePrefix : _InternalLogMessage.AiNonUserActionablePrefix) +\r\n msgId;\r\n\r\n let strProps:string = \"\";\r\n if (hasJSON()) {\r\n strProps = getJSON().stringify(properties);\r\n }\r\n const diagnosticText =\r\n (msg ? \" message:\" + _InternalLogMessage.sanitizeDiagnosticText(msg) : \"\") +\r\n (properties ? \" props:\" + _InternalLogMessage.sanitizeDiagnosticText(strProps) : \"\");\r\n\r\n this.message += diagnosticText;\r\n }\r\n}\r\n\r\nexport class DiagnosticLogger implements IDiagnosticLogger {\r\n\r\n /**\r\n * The internal logging queue\r\n */\r\n public queue: _InternalLogMessage[] = [];\r\n\r\n /**\r\n * Session storage key for the prefix for the key indicating message type already logged\r\n */\r\n private AIInternalMessagePrefix: string = \"AITR_\";\r\n\r\n /**\r\n * Count of internal messages sent\r\n */\r\n private _messageCount = 0;\r\n\r\n /**\r\n * Holds information about what message types were already logged to console or sent to server.\r\n */\r\n private _messageLogged: { [msg: number]: boolean } = {};\r\n\r\n constructor(config?: IConfiguration) {\r\n if (CoreUtils.isNullOrUndefined(config)) {\r\n // TODO: Use default config\r\n // config = AppInsightsCore.defaultConfig;\r\n\r\n // For now, use defaults specified in DiagnosticLogger members;\r\n return;\r\n }\r\n if (!CoreUtils.isNullOrUndefined(config.loggingLevelConsole)) {\r\n this.consoleLoggingLevel = () => config.loggingLevelConsole;\r\n }\r\n if (!CoreUtils.isNullOrUndefined(config.loggingLevelTelemetry)) {\r\n this.telemetryLoggingLevel = () => config.loggingLevelTelemetry;\r\n }\r\n if (!CoreUtils.isNullOrUndefined(config.maxMessageLimit)) {\r\n this.maxInternalMessageLimit = () => config.maxMessageLimit\r\n }\r\n if (!CoreUtils.isNullOrUndefined(config.enableDebugExceptions)) {\r\n this.enableDebugExceptions = () => config.enableDebugExceptions;\r\n }\r\n }\r\n\r\n /**\r\n * When this is true the SDK will throw exceptions to aid in debugging.\r\n */\r\n public enableDebugExceptions = () => false;\r\n\r\n /**\r\n * 0: OFF (default)\r\n * 1: CRITICAL\r\n * 2: >= WARNING\r\n */\r\n public consoleLoggingLevel = () => 0;\r\n\r\n /**\r\n * 0: OFF\r\n * 1: CRITICAL (default)\r\n * 2: >= WARNING\r\n */\r\n public telemetryLoggingLevel = () => 1;\r\n\r\n /**\r\n * The maximum number of internal messages allowed to be sent per page view\r\n */\r\n public maxInternalMessageLimit = () => 25;\r\n\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\r\n public throwInternal(severity: LoggingSeverity, msgId: _InternalMessageId, msg: string, properties?: Object, isUserAct = false) {\r\n const message = new _InternalLogMessage(msgId, msg, isUserAct, properties);\r\n let _this = this;\r\n\r\n if (_this.enableDebugExceptions()) {\r\n throw message;\r\n } else {\r\n if (!CoreUtils.isUndefined(message) && !!message) {\r\n if (!CoreUtils.isUndefined(message.message)) {\r\n if (isUserAct) {\r\n // check if this message type was already logged to console for this page view and if so, don't log it again\r\n const messageKey: number = +message.messageId;\r\n\r\n if (!_this._messageLogged[messageKey] && _this.consoleLoggingLevel() >= LoggingSeverity.WARNING) {\r\n _this.warnToConsole(message.message);\r\n _this._messageLogged[messageKey] = true;\r\n }\r\n } else {\r\n // don't log internal AI traces in the console, unless the verbose logging is enabled\r\n if (_this.consoleLoggingLevel() >= LoggingSeverity.WARNING) {\r\n _this.warnToConsole(message.message);\r\n }\r\n }\r\n\r\n _this.logInternalMessage(severity, message);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * This will write a warning to the console if possible\r\n * @param message {string} - The warning message\r\n */\r\n public warnToConsole(message: string) {\r\n if (!CoreUtils.isUndefined(console) && !!console) {\r\n if (CoreUtils.isFunction(console.warn)) {\r\n console.warn(message);\r\n } else if (CoreUtils.isFunction(console.log)) {\r\n console.log(message);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Resets the internal message count\r\n */\r\n public resetInternalMessageCount(): void {\r\n this._messageCount = 0;\r\n this._messageLogged = {};\r\n }\r\n\r\n /**\r\n * Logs a message to the internal queue.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The message to log.\r\n */\r\n public logInternalMessage(severity: LoggingSeverity, message: _InternalLogMessage): void {\r\n let _this = this;\r\n if (_this._areInternalMessagesThrottled()) {\r\n return;\r\n }\r\n\r\n // check if this message type was already logged for this session and if so, don't log it again\r\n let logMessage = true;\r\n const messageKey = _this.AIInternalMessagePrefix + message.messageId;\r\n\r\n // if the session storage is not available, limit to only one message type per page view\r\n if (_this._messageLogged[messageKey]) {\r\n logMessage = false;\r\n } else {\r\n _this._messageLogged[messageKey] = true;\r\n }\r\n\r\n if (logMessage) {\r\n // Push the event in the internal queue\r\n if (severity <= _this.telemetryLoggingLevel()) {\r\n _this.queue.push(message);\r\n _this._messageCount++;\r\n }\r\n\r\n // When throttle limit reached, send a special event\r\n if (_this._messageCount === _this.maxInternalMessageLimit()) {\r\n const throttleLimitMessage = \"Internal events throttle limit per PageView reached for this app.\";\r\n const throttleMessage = new _InternalLogMessage(_InternalMessageId.MessageLimitPerPVExceeded, throttleLimitMessage, false);\r\n\r\n _this.queue.push(throttleMessage);\r\n _this.warnToConsole(throttleLimitMessage);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Indicates whether the internal events are throttled\r\n */\r\n private _areInternalMessagesThrottled(): boolean {\r\n return this._messageCount >= this.maxInternalMessageLimit();\r\n }\r\n}\r\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"TimelineMarkers\", {\n enumerable: true,\n get: function get() {\n return _TimelineMarkers[\"default\"];\n }\n});\nObject.defineProperty(exports, \"TodayMarker\", {\n enumerable: true,\n get: function get() {\n return _TodayMarker[\"default\"];\n }\n});\nObject.defineProperty(exports, \"CustomMarker\", {\n enumerable: true,\n get: function get() {\n return _CustomMarker[\"default\"];\n }\n});\nObject.defineProperty(exports, \"CursorMarker\", {\n enumerable: true,\n get: function get() {\n return _CursorMarker[\"default\"];\n }\n});\nObject.defineProperty(exports, \"TimelineHeaders\", {\n enumerable: true,\n get: function get() {\n return _TimelineHeaders[\"default\"];\n }\n});\nObject.defineProperty(exports, \"SidebarHeader\", {\n enumerable: true,\n get: function get() {\n return _SidebarHeader[\"default\"];\n }\n});\nObject.defineProperty(exports, \"CustomHeader\", {\n enumerable: true,\n get: function get() {\n return _CustomHeader[\"default\"];\n }\n});\nObject.defineProperty(exports, \"DateHeader\", {\n enumerable: true,\n get: function get() {\n return _DateHeader[\"default\"];\n }\n});\nexports[\"default\"] = void 0;\n\nvar _Timeline = _interopRequireDefault(require(\"./lib/Timeline\"));\n\nvar _TimelineMarkers = _interopRequireDefault(require(\"./lib/markers/public/TimelineMarkers\"));\n\nvar _TodayMarker = _interopRequireDefault(require(\"./lib/markers/public/TodayMarker\"));\n\nvar _CustomMarker = _interopRequireDefault(require(\"./lib/markers/public/CustomMarker\"));\n\nvar _CursorMarker = _interopRequireDefault(require(\"./lib/markers/public/CursorMarker\"));\n\nvar _TimelineHeaders = _interopRequireDefault(require(\"./lib/headers/TimelineHeaders\"));\n\nvar _SidebarHeader = _interopRequireDefault(require(\"./lib/headers/SidebarHeader\"));\n\nvar _CustomHeader = _interopRequireDefault(require(\"./lib/headers/CustomHeader\"));\n\nvar _DateHeader = _interopRequireDefault(require(\"./lib/headers/DateHeader\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _Timeline[\"default\"];\nexports[\"default\"] = _default;","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","\"use strict\";\n\nexports.__esModule = true;\nexports.notify = notify;\nexports.instanceId = instanceId;\nexports.isFirstFocusedRender = isFirstFocusedRender;\nvar idCount = 0;\n\nfunction uniqueId(prefix) {\n return '' + ((prefix == null ? '' : prefix) + ++idCount);\n}\n\nfunction notify(handler, args) {\n handler && handler.apply(null, [].concat(args));\n}\n\nfunction instanceId(component, suffix) {\n if (suffix === void 0) {\n suffix = '';\n }\n\n component.__id || (component.__id = uniqueId('rw_'));\n return (component.props.id || component.__id) + suffix;\n}\n\nfunction isFirstFocusedRender(component) {\n return component._firstFocus || component.state.focused && (component._firstFocus = true);\n}","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _implementation = require('./implementation');\n\nvar _implementation2 = _interopRequireDefault(_implementation);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _react2.default.createContext || _implementation2.default;\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TimelineMarkerType = void 0;\nvar TimelineMarkerType = {\n Today: 'Today',\n Custom: 'Custom',\n Cursor: 'Cursor'\n};\nexports.TimelineMarkerType = TimelineMarkerType;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TimelineHeadersConsumer = exports.TimelineHeadersProvider = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _createReactContext2 = _interopRequireDefault(require(\"create-react-context\"));\n\nvar _generic = require(\"../utility/generic\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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 defaultContextState = {\n registerScroll: function registerScroll() {\n // eslint-disable-next-line\n console.warn('default registerScroll header used');\n return _generic.noop;\n },\n rightSidebarWidth: 0,\n leftSidebarWidth: 150,\n timeSteps: {}\n};\n\nvar _createReactContext = (0, _createReactContext2[\"default\"])(defaultContextState),\n Consumer = _createReactContext.Consumer,\n Provider = _createReactContext.Provider;\n\nvar TimelineHeadersProvider =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(TimelineHeadersProvider, _React$Component);\n\n function TimelineHeadersProvider() {\n _classCallCheck(this, TimelineHeadersProvider);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(TimelineHeadersProvider).apply(this, arguments));\n }\n\n _createClass(TimelineHeadersProvider, [{\n key: \"render\",\n value: function render() {\n var contextValue = {\n rightSidebarWidth: this.props.rightSidebarWidth,\n leftSidebarWidth: this.props.leftSidebarWidth,\n timeSteps: this.props.timeSteps,\n registerScroll: this.props.registerScroll\n };\n return _react[\"default\"].createElement(Provider, {\n value: contextValue\n }, this.props.children);\n }\n }]);\n\n return TimelineHeadersProvider;\n}(_react[\"default\"].Component);\n\nexports.TimelineHeadersProvider = TimelineHeadersProvider;\n\n_defineProperty(TimelineHeadersProvider, \"propTypes\", {\n children: _propTypes[\"default\"].element.isRequired,\n rightSidebarWidth: _propTypes[\"default\"].number,\n leftSidebarWidth: _propTypes[\"default\"].number.isRequired,\n //TODO: maybe this should be skipped?\n timeSteps: _propTypes[\"default\"].object.isRequired,\n registerScroll: _propTypes[\"default\"].func.isRequired\n});\n\nvar TimelineHeadersConsumer = Consumer;\nexports.TimelineHeadersConsumer = TimelineHeadersConsumer;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","// @flow\n'use strict';\n\nvar key = '__global_unique_id__';\n\nmodule.exports = function() {\n return global[key] = (global[key] || 0) + 1;\n};\n","import isWindow from './isWindow';\nexport default function getscrollAccessor(offset) {\n var prop = offset === 'pageXOffset' ? 'scrollLeft' : 'scrollTop';\n\n function scrollAccessor(node, val) {\n var win = isWindow(node);\n\n if (val === undefined) {\n return win ? win[offset] : node[prop];\n }\n\n if (win) {\n win.scrollTo(win[offset], val);\n } else {\n node[prop] = val;\n }\n }\n\n return scrollAccessor;\n}","import canUseDOM from './canUseDOM';\nvar size;\nexport default function scrollbarSize(recalc) {\n if (!size && size !== 0 || recalc) {\n if (canUseDOM) {\n var scrollDiv = document.createElement('div');\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n size = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n }\n }\n\n return size;\n}","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import toInteger from '../_lib/toInteger/index.js';\nimport addMilliseconds from '../addMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted\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 * var result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/);\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","import toDate from '../../toDate/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\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\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 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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 * var result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\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 toDate from '../toDate/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 * var 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 * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\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 toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfQuarter\n * @category Quarter Helpers\n * @summary Return the start of a year quarter for the given date.\n *\n * @description\n * Return the start of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a quarter for 2 September 2014 11:55:00:\n * var result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Jul 01 2014 00:00:00\n */\n\nexport default function startOfQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var currentMonth = date.getMonth();\n var month = currentMonth - currentMonth % 3;\n date.setMonth(month, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n return tag;\n}\n\nvar StyleSheet =\n/*#__PURE__*/\nfunction () {\n function StyleSheet(options) {\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n var _tag = createStyleElement(this);\n\n var before;\n\n if (this.tags.length === 0) {\n before = this.before;\n } else {\n before = this.tags[this.tags.length - 1].nextSibling;\n }\n\n this.container.insertBefore(_tag, before);\n this.tags.push(_tag);\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is a really hot path\n // we check the second character first because having \"i\"\n // as the second character will happen less often than\n // having \"@\" as the first character\n var isImportRule = rule.charCodeAt(1) === 105 && rule.charCodeAt(0) === 64; // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n\n sheet.insertRule(rule, // we need to insert @import rules before anything else\n // otherwise there will be an error\n // technically this means that the @import rules will\n // _usually_(not always since there could be multiple style tags)\n // be the first ones in prod and generally later in dev\n // this shouldn't really matter in the real world though\n // @import is generally only used for font faces from google fonts and etc.\n // so while this could be technically correct then it would be slower and larger\n // for a tiny bit of correctness that won't matter in the real world\n isImportRule ? 0 : sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\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 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};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n}","export default function buildFormatLongFn(args) {\n return function (dirtyOptions) {\n var options = dirtyOptions || {};\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};\nexport default function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var value;\n\n if (Object.prototype.toString.call(parsePatterns) === '[object Array]') {\n value = findIndex(parsePatterns, function (pattern) {\n return pattern.test(string);\n });\n } else {\n value = findKey(parsePatterns, function (pattern) {\n return pattern.test(string);\n });\n }\n\n value = args.valueCallback ? args.valueCallback(value) : value;\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\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}\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}","import buildMatchPatternFn from '../../../_lib/buildMatchPatternFn/index.js';\nimport buildMatchFn from '../../../_lib/buildMatchFn/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 (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 (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 (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var matchResult = string.match(args.matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n\n if (!parseResult) {\n return null;\n }\n\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\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 */\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\n /* Sunday */\n ,\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'] // 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.\n\n};\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};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n}\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 (quarter) {\n return Number(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;","function stylis_min (W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {\n }\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nexport default stylis_min;\n","import { StyleSheet } from '@emotion/sheet';\nimport Stylis from '@emotion/stylis';\nimport '@emotion/weak-memoize';\n\n// https://github.com/thysultan/stylis.js/tree/master/plugins/rule-sheet\n// inlined to avoid umd wrapper and peerDep warnings/installing stylis\n// since we use stylis after closure compiler\nvar delimiter = '/*|*/';\nvar needle = delimiter + '}';\n\nfunction toSheet(block) {\n if (block) {\n Sheet.current.insert(block + '}');\n }\n}\n\nvar Sheet = {\n current: null\n};\nvar ruleSheet = function ruleSheet(context, content, selectors, parents, line, column, length, ns, depth, at) {\n switch (context) {\n // property\n case 1:\n {\n switch (content.charCodeAt(0)) {\n case 64:\n {\n // @import\n Sheet.current.insert(content + ';');\n return '';\n }\n // charcode for l\n\n case 108:\n {\n // charcode for b\n // this ignores label\n if (content.charCodeAt(2) === 98) {\n return '';\n }\n }\n }\n\n break;\n }\n // selector\n\n case 2:\n {\n if (ns === 0) return content + delimiter;\n break;\n }\n // at-rule\n\n case 3:\n {\n switch (ns) {\n // @font-face, @page\n case 102:\n case 112:\n {\n Sheet.current.insert(selectors[0] + content);\n return '';\n }\n\n default:\n {\n return content + (at === 0 ? delimiter : '');\n }\n }\n }\n\n case -2:\n {\n content.split(needle).forEach(toSheet);\n }\n }\n};\n\nvar createCache = function createCache(options) {\n if (options === undefined) options = {};\n var key = options.key || 'css';\n var stylisOptions;\n\n if (options.prefix !== undefined) {\n stylisOptions = {\n prefix: options.prefix\n };\n }\n\n var stylis = new Stylis(stylisOptions);\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {}; // $FlowFixMe\n\n var container;\n\n {\n container = options.container || document.head;\n var nodes = document.querySelectorAll(\"style[data-emotion-\" + key + \"]\");\n Array.prototype.forEach.call(nodes, function (node) {\n var attrib = node.getAttribute(\"data-emotion-\" + key); // $FlowFixMe\n\n attrib.split(' ').forEach(function (id) {\n inserted[id] = true;\n });\n\n if (node.parentNode !== container) {\n container.appendChild(node);\n }\n });\n }\n\n var _insert;\n\n {\n stylis.use(options.stylisPlugins)(ruleSheet);\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n var name = serialized.name;\n Sheet.current = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n var map = serialized.map;\n Sheet.current = {\n insert: function insert(rule) {\n sheet.insert(rule + map);\n }\n };\n }\n\n stylis(selector, serialized.styles);\n\n if (shouldCache) {\n cache.inserted[name] = true;\n }\n };\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // https://esbench.com/bench/5bf7371a4cd7e6009ef61d0a\n var commentStart = /\\/\\*/g;\n var commentEnd = /\\*\\//g;\n stylis.use(function (context, content) {\n switch (context) {\n case -1:\n {\n while (commentStart.test(content)) {\n commentEnd.lastIndex = commentStart.lastIndex;\n\n if (commentEnd.test(content)) {\n commentStart.lastIndex = commentEnd.lastIndex;\n continue;\n }\n\n throw new Error('Your styles have an unterminated comment (\"/*\" without corresponding \"*/\").');\n }\n\n commentStart.lastIndex = 0;\n break;\n }\n }\n });\n stylis.use(function (context, content, selectors) {\n switch (context) {\n case -1:\n {\n var flag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n var unsafePseudoClasses = content.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses && cache.compat !== true) {\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n var ignoreRegExp = new RegExp(unsafePseudoClass + \".*\\\\/\\\\* \" + flag + \" \\\\*\\\\/\");\n var ignore = ignoreRegExp.test(content);\n\n if (unsafePseudoClass && !ignore) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n }\n });\n }\n\n break;\n }\n }\n });\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n return cache;\n};\n\nexport default createCache;\n","import toInteger from '../toInteger/index.js';\nimport getUTCWeekYear from '../getUTCWeekYear/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\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; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\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(); // 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\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'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\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 startOfUTCISOWeek from '../startOfUTCISOWeek/index.js';\nimport startOfUTCISOWeekYear from '../startOfUTCISOWeekYear/index.js';\nimport requiredArgs from '../requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // 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\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","module.exports = function(originalModule) {\n\tif (!originalModule.webpackPolyfill) {\n\t\tvar module = Object.create(originalModule);\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"exports\", {\n\t\t\tenumerable: true\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","\"use strict\";\n\nexports.__esModule = true;\nexports.isSelected = isSelected;\nexports.slotWidth = slotWidth;\nexports.getSlotAtX = getSlotAtX;\nexports.pointInBox = pointInBox;\nexports.dateCellSelection = dateCellSelection;\n\nfunction isSelected(event, selected) {\n if (!event || selected == null) return false;\n return [].concat(selected).indexOf(event) !== -1;\n}\n\nfunction slotWidth(rowBox, slots) {\n var rowWidth = rowBox.right - rowBox.left;\n var cellWidth = rowWidth / slots;\n return cellWidth;\n}\n\nfunction getSlotAtX(rowBox, x, rtl, slots) {\n var cellWidth = slotWidth(rowBox, slots);\n return rtl ? slots - 1 - Math.floor((x - rowBox.left) / cellWidth) : Math.floor((x - rowBox.left) / cellWidth);\n}\n\nfunction pointInBox(box, _ref) {\n var x = _ref.x,\n y = _ref.y;\n return y >= box.top && y <= box.bottom && x >= box.left && x <= box.right;\n}\n\nfunction dateCellSelection(start, rowBox, box, slots, rtl) {\n var startIdx = -1;\n var endIdx = -1;\n var lastSlotIdx = slots - 1;\n var cellWidth = slotWidth(rowBox, slots); // cell under the mouse\n\n var currentSlot = getSlotAtX(rowBox, box.x, rtl, slots); // Identify row as either the initial row\n // or the row under the current mouse point\n\n var isCurrentRow = rowBox.top < box.y && rowBox.bottom > box.y;\n var isStartRow = rowBox.top < start.y && rowBox.bottom > start.y; // this row's position relative to the start point\n\n var isAboveStart = start.y > rowBox.bottom;\n var isBelowStart = rowBox.top > start.y;\n var isBetween = box.top < rowBox.top && box.bottom > rowBox.bottom; // this row is between the current and start rows, so entirely selected\n\n if (isBetween) {\n startIdx = 0;\n endIdx = lastSlotIdx;\n }\n\n if (isCurrentRow) {\n if (isBelowStart) {\n startIdx = 0;\n endIdx = currentSlot;\n } else if (isAboveStart) {\n startIdx = currentSlot;\n endIdx = lastSlotIdx;\n }\n }\n\n if (isStartRow) {\n // select the cell under the initial point\n startIdx = endIdx = rtl ? lastSlotIdx - Math.floor((start.x - rowBox.left) / cellWidth) : Math.floor((start.x - rowBox.left) / cellWidth);\n\n if (isCurrentRow) {\n if (currentSlot < startIdx) startIdx = currentSlot;else endIdx = currentSlot; //select current range\n } else if (start.y < box.y) {\n // the current row is below start row\n // select cells to the right of the start cell\n endIdx = lastSlotIdx;\n } else {\n // select cells to the left of the start cell\n startIdx = 0;\n }\n }\n\n return {\n startIdx: startIdx,\n endIdx: endIdx\n };\n}","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.endOfRange = endOfRange;\nexports.eventSegments = eventSegments;\nexports.eventLevels = eventLevels;\nexports.inRange = inRange;\nexports.segsOverlap = segsOverlap;\nexports.sortEvents = sortEvents;\n\nvar _findIndex = _interopRequireDefault(require(\"lodash/findIndex\"));\n\nvar dates = _interopRequireWildcard(require(\"./dates\"));\n\nfunction endOfRange(dateRange, unit) {\n if (unit === void 0) {\n unit = 'day';\n }\n\n return {\n first: dateRange[0],\n last: dates.add(dateRange[dateRange.length - 1], 1, unit)\n };\n}\n\nfunction eventSegments(event, range, accessors) {\n var _endOfRange = endOfRange(range),\n first = _endOfRange.first,\n last = _endOfRange.last;\n\n var slots = dates.diff(first, last, 'day');\n var start = dates.max(dates.startOf(accessors.start(event), 'day'), first);\n var end = dates.min(dates.ceil(accessors.end(event), 'day'), last);\n var padding = (0, _findIndex.default)(range, function (x) {\n return dates.eq(x, start, 'day');\n });\n var span = dates.diff(start, end, 'day');\n span = Math.min(span, slots);\n span = Math.max(span, 1);\n return {\n event: event,\n span: span,\n left: padding + 1,\n right: Math.max(padding + span, 1)\n };\n}\n\nfunction eventLevels(rowSegments, limit) {\n if (limit === void 0) {\n limit = Infinity;\n }\n\n var i,\n j,\n seg,\n levels = [],\n extra = [];\n\n for (i = 0; i < rowSegments.length; i++) {\n seg = rowSegments[i];\n\n for (j = 0; j < levels.length; j++) {\n if (!segsOverlap(seg, levels[j])) break;\n }\n\n if (j >= limit) {\n extra.push(seg);\n } else {\n ;\n (levels[j] || (levels[j] = [])).push(seg);\n }\n }\n\n for (i = 0; i < levels.length; i++) {\n levels[i].sort(function (a, b) {\n return a.left - b.left;\n }); //eslint-disable-line\n }\n\n return {\n levels: levels,\n extra: extra\n };\n}\n\nfunction inRange(e, start, end, accessors) {\n var eStart = dates.startOf(accessors.start(e), 'day');\n var eEnd = accessors.end(e);\n var startsBeforeEnd = dates.lte(eStart, end, 'day'); // when the event is zero duration we need to handle a bit differently\n\n var endsAfterStart = !dates.eq(eStart, eEnd, 'minutes') ? dates.gt(eEnd, start, 'minutes') : dates.gte(eEnd, start, 'minutes');\n return startsBeforeEnd && endsAfterStart;\n}\n\nfunction segsOverlap(seg, otherSegs) {\n return otherSegs.some(function (otherSeg) {\n return otherSeg.left <= seg.right && otherSeg.right >= seg.left;\n });\n}\n\nfunction sortEvents(evtA, evtB, accessors) {\n var startSort = +dates.startOf(accessors.start(evtA), 'day') - +dates.startOf(accessors.start(evtB), 'day');\n var durA = dates.diff(accessors.start(evtA), dates.ceil(accessors.end(evtA), 'day'), 'day');\n var durB = dates.diff(accessors.start(evtB), dates.ceil(accessors.end(evtB), 'day'), 'day');\n return startSort || // sort by start Day first\n Math.max(durB, 1) - Math.max(durA, 1) || // events spanning multiple days go first\n !!accessors.allDay(evtB) - !!accessors.allDay(evtA) || // then allDay single day events\n +accessors.start(evtA) - +accessors.start(evtB); // then sort by start time\n}","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\torigDefineProperty(obj, 'x', { enumerable: false, value: obj });\n\t\t// eslint-disable-next-line no-unused-vars, no-restricted-syntax\n\t\tfor (var _ in obj) { // jscs:ignore disallowUnusedVariables\n\t\t\treturn false;\n\t\t}\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createDefaultRenderer = exports.createMarkerStylesWithLeftOffset = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } 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/**\n * Baseline styles to get the marker to render correctly\n */\nvar criticalStyles = {\n position: 'absolute',\n top: 0,\n bottom: 0,\n width: '2px',\n backgroundColor: 'black',\n // by default, pointer events (specifically click) will\n // \"pass through\". This is added so that CursorMarker\n // will not get in the way of canvas click\n pointerEvents: 'none' // FIXME: this creates a new object each time in render\n // might want to memoize this?\n\n};\n\nvar createMarkerStylesWithLeftOffset = function createMarkerStylesWithLeftOffset(leftOffset) {\n return _objectSpread({}, criticalStyles, {\n left: leftOffset\n });\n};\n\nexports.createMarkerStylesWithLeftOffset = createMarkerStylesWithLeftOffset;\n\nvar createDefaultRenderer = function createDefaultRenderer(dataTestidValue) {\n // eslint-disable-next-line\n return function DefaultMarkerRenderer(_ref) {\n var styles = _ref.styles;\n return _react[\"default\"].createElement(\"div\", {\n style: styles\n });\n };\n};\n\nexports.createDefaultRenderer = createDefaultRenderer;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _HeadersContext = require(\"./HeadersContext\");\n\nvar _constants = require(\"./constants\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } 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 _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 _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 SidebarHeader =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(SidebarHeader, _React$PureComponent);\n\n function SidebarHeader() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, SidebarHeader);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(SidebarHeader)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"getRootProps\", function () {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var style = props.style;\n var width = _this.props.variant === _constants.RIGHT_VARIANT ? _this.props.rightSidebarWidth : _this.props.leftSidebarWidth;\n return {\n style: _objectSpread({}, style, {\n width: width\n })\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getStateAndHelpers\", function () {\n return {\n getRootProps: _this.getRootProps,\n data: _this.props.headerData\n };\n });\n\n return _this;\n }\n\n _createClass(SidebarHeader, [{\n key: \"render\",\n value: function render() {\n var props = this.getStateAndHelpers();\n var Renderer = this.props.children;\n return _react[\"default\"].createElement(Renderer, props);\n }\n }]);\n\n return SidebarHeader;\n}(_react[\"default\"].PureComponent);\n\n_defineProperty(SidebarHeader, \"propTypes\", {\n children: _propTypes[\"default\"].func.isRequired,\n rightSidebarWidth: _propTypes[\"default\"].number,\n leftSidebarWidth: _propTypes[\"default\"].number.isRequired,\n variant: _propTypes[\"default\"].string,\n headerData: _propTypes[\"default\"].object\n});\n\nvar SidebarWrapper = function SidebarWrapper(_ref) {\n var children = _ref.children,\n variant = _ref.variant,\n headerData = _ref.headerData;\n return _react[\"default\"].createElement(_HeadersContext.TimelineHeadersConsumer, null, function (_ref2) {\n var leftSidebarWidth = _ref2.leftSidebarWidth,\n rightSidebarWidth = _ref2.rightSidebarWidth;\n return _react[\"default\"].createElement(SidebarHeader, {\n leftSidebarWidth: leftSidebarWidth,\n rightSidebarWidth: rightSidebarWidth,\n children: children,\n variant: variant,\n headerData: headerData\n });\n });\n};\n\nSidebarWrapper.propTypes = {\n children: _propTypes[\"default\"].func.isRequired,\n variant: _propTypes[\"default\"].string,\n headerData: _propTypes[\"default\"].object\n};\nSidebarWrapper.defaultProps = {\n variant: _constants.LEFT_VARIANT,\n children: function children(_ref3) {\n var getRootProps = _ref3.getRootProps;\n return _react[\"default\"].createElement(\"div\", getRootProps());\n }\n};\nSidebarWrapper.secretKey = \"SidebarHeader\";\nvar _default = SidebarWrapper;\nexports[\"default\"] = _default;","var toArray = Function.prototype.bind.call(Function.prototype.call, [].slice);\nexport default function qsa(element, selector) {\n return toArray(element.querySelectorAll(selector));\n}","import 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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\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 * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * var result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return !isNaN(date);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMilliseconds from '../addMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_MINUTE = 60000;\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be added\n * @returns {Date} the new date with the minutes added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * var result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\n\nexport default function addMinutes(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_MINUTE);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMilliseconds from '../addMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_HOUR = 3600000;\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be added\n * @returns {Date} the new date with the hours added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * var result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\n\nexport default function addHours(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_HOUR);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addDays from '../addDays/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addWeeks\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of week to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be added\n * @returns {Date} the new date with the weeks added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * var result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\n\nexport default function addWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n var days = amount * 7;\n return addDays(dirtyDate, days);\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be added\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 * var result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\n\nexport default function addYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, amount * 12);\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 * var result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\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); // Set the last day of the new month\n // if the original date was the last day of the longer month\n\n date.setMonth(month, Math.min(day, daysInMonth));\n return date;\n}","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar sizerStyle = {\n\tposition: 'absolute',\n\ttop: 0,\n\tleft: 0,\n\tvisibility: 'hidden',\n\theight: 0,\n\toverflow: 'scroll',\n\twhiteSpace: 'pre'\n};\n\nvar INPUT_PROPS_BLACKLIST = ['extraWidth', 'injectStyles', 'inputClassName', 'inputRef', 'inputStyle', 'minWidth', 'onAutosize', 'placeholderIsMinWidth'];\n\nvar cleanInputProps = function cleanInputProps(inputProps) {\n\tINPUT_PROPS_BLACKLIST.forEach(function (field) {\n\t\treturn delete inputProps[field];\n\t});\n\treturn inputProps;\n};\n\nvar copyStyles = function copyStyles(styles, node) {\n\tnode.style.fontSize = styles.fontSize;\n\tnode.style.fontFamily = styles.fontFamily;\n\tnode.style.fontWeight = styles.fontWeight;\n\tnode.style.fontStyle = styles.fontStyle;\n\tnode.style.letterSpacing = styles.letterSpacing;\n\tnode.style.textTransform = styles.textTransform;\n};\n\nvar isIE = typeof window !== 'undefined' && window.navigator ? /MSIE |Trident\\/|Edge\\//.test(window.navigator.userAgent) : false;\n\nvar generateId = function generateId() {\n\t// we only need an auto-generated ID for stylesheet injection, which is only\n\t// used for IE. so if the browser is not IE, this should return undefined.\n\treturn isIE ? '_' + Math.random().toString(36).substr(2, 12) : undefined;\n};\n\nvar AutosizeInput = function (_Component) {\n\t_inherits(AutosizeInput, _Component);\n\n\tfunction AutosizeInput(props) {\n\t\t_classCallCheck(this, AutosizeInput);\n\n\t\tvar _this = _possibleConstructorReturn(this, (AutosizeInput.__proto__ || Object.getPrototypeOf(AutosizeInput)).call(this, props));\n\n\t\t_this.inputRef = function (el) {\n\t\t\t_this.input = el;\n\t\t\tif (typeof _this.props.inputRef === 'function') {\n\t\t\t\t_this.props.inputRef(el);\n\t\t\t}\n\t\t};\n\n\t\t_this.placeHolderSizerRef = function (el) {\n\t\t\t_this.placeHolderSizer = el;\n\t\t};\n\n\t\t_this.sizerRef = function (el) {\n\t\t\t_this.sizer = el;\n\t\t};\n\n\t\t_this.state = {\n\t\t\tinputWidth: props.minWidth,\n\t\t\tinputId: props.id || generateId()\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(AutosizeInput, [{\n\t\tkey: 'componentDidMount',\n\t\tvalue: function componentDidMount() {\n\t\t\tthis.mounted = true;\n\t\t\tthis.copyInputStyles();\n\t\t\tthis.updateInputWidth();\n\t\t}\n\t}, {\n\t\tkey: 'UNSAFE_componentWillReceiveProps',\n\t\tvalue: function UNSAFE_componentWillReceiveProps(nextProps) {\n\t\t\tvar id = nextProps.id;\n\n\t\t\tif (id !== this.props.id) {\n\t\t\t\tthis.setState({ inputId: id || generateId() });\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'componentDidUpdate',\n\t\tvalue: function componentDidUpdate(prevProps, prevState) {\n\t\t\tif (prevState.inputWidth !== this.state.inputWidth) {\n\t\t\t\tif (typeof this.props.onAutosize === 'function') {\n\t\t\t\t\tthis.props.onAutosize(this.state.inputWidth);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.updateInputWidth();\n\t\t}\n\t}, {\n\t\tkey: 'componentWillUnmount',\n\t\tvalue: function componentWillUnmount() {\n\t\t\tthis.mounted = false;\n\t\t}\n\t}, {\n\t\tkey: 'copyInputStyles',\n\t\tvalue: function copyInputStyles() {\n\t\t\tif (!this.mounted || !window.getComputedStyle) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar inputStyles = this.input && window.getComputedStyle(this.input);\n\t\t\tif (!inputStyles) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcopyStyles(inputStyles, this.sizer);\n\t\t\tif (this.placeHolderSizer) {\n\t\t\t\tcopyStyles(inputStyles, this.placeHolderSizer);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'updateInputWidth',\n\t\tvalue: function updateInputWidth() {\n\t\t\tif (!this.mounted || !this.sizer || typeof this.sizer.scrollWidth === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar newInputWidth = void 0;\n\t\t\tif (this.props.placeholder && (!this.props.value || this.props.value && this.props.placeholderIsMinWidth)) {\n\t\t\t\tnewInputWidth = Math.max(this.sizer.scrollWidth, this.placeHolderSizer.scrollWidth) + 2;\n\t\t\t} else {\n\t\t\t\tnewInputWidth = this.sizer.scrollWidth + 2;\n\t\t\t}\n\t\t\t// add extraWidth to the detected width. for number types, this defaults to 16 to allow for the stepper UI\n\t\t\tvar extraWidth = this.props.type === 'number' && this.props.extraWidth === undefined ? 16 : parseInt(this.props.extraWidth) || 0;\n\t\t\tnewInputWidth += extraWidth;\n\t\t\tif (newInputWidth < this.props.minWidth) {\n\t\t\t\tnewInputWidth = this.props.minWidth;\n\t\t\t}\n\t\t\tif (newInputWidth !== this.state.inputWidth) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tinputWidth: newInputWidth\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'getInput',\n\t\tvalue: function getInput() {\n\t\t\treturn this.input;\n\t\t}\n\t}, {\n\t\tkey: 'focus',\n\t\tvalue: function focus() {\n\t\t\tthis.input.focus();\n\t\t}\n\t}, {\n\t\tkey: 'blur',\n\t\tvalue: function blur() {\n\t\t\tthis.input.blur();\n\t\t}\n\t}, {\n\t\tkey: 'select',\n\t\tvalue: function select() {\n\t\t\tthis.input.select();\n\t\t}\n\t}, {\n\t\tkey: 'renderStyles',\n\t\tvalue: function renderStyles() {\n\t\t\t// this method injects styles to hide IE's clear indicator, which messes\n\t\t\t// with input size detection. the stylesheet is only injected when the\n\t\t\t// browser is IE, and can also be disabled by the `injectStyles` prop.\n\t\t\tvar injectStyles = this.props.injectStyles;\n\n\t\t\treturn isIE && injectStyles ? _react2.default.createElement('style', { dangerouslySetInnerHTML: {\n\t\t\t\t\t__html: 'input#' + this.state.inputId + '::-ms-clear {display: none;}'\n\t\t\t\t} }) : null;\n\t\t}\n\t}, {\n\t\tkey: 'render',\n\t\tvalue: function render() {\n\t\t\tvar sizerValue = [this.props.defaultValue, this.props.value, ''].reduce(function (previousValue, currentValue) {\n\t\t\t\tif (previousValue !== null && previousValue !== undefined) {\n\t\t\t\t\treturn previousValue;\n\t\t\t\t}\n\t\t\t\treturn currentValue;\n\t\t\t});\n\n\t\t\tvar wrapperStyle = _extends({}, this.props.style);\n\t\t\tif (!wrapperStyle.display) wrapperStyle.display = 'inline-block';\n\n\t\t\tvar inputStyle = _extends({\n\t\t\t\tboxSizing: 'content-box',\n\t\t\t\twidth: this.state.inputWidth + 'px'\n\t\t\t}, this.props.inputStyle);\n\n\t\t\tvar inputProps = _objectWithoutProperties(this.props, []);\n\n\t\t\tcleanInputProps(inputProps);\n\t\t\tinputProps.className = this.props.inputClassName;\n\t\t\tinputProps.id = this.state.inputId;\n\t\t\tinputProps.style = inputStyle;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: this.props.className, style: wrapperStyle },\n\t\t\t\tthis.renderStyles(),\n\t\t\t\t_react2.default.createElement('input', _extends({}, inputProps, { ref: this.inputRef })),\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ ref: this.sizerRef, style: sizerStyle },\n\t\t\t\t\tsizerValue\n\t\t\t\t),\n\t\t\t\tthis.props.placeholder ? _react2.default.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ ref: this.placeHolderSizerRef, style: sizerStyle },\n\t\t\t\t\tthis.props.placeholder\n\t\t\t\t) : null\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn AutosizeInput;\n}(_react.Component);\n\nAutosizeInput.propTypes = {\n\tclassName: _propTypes2.default.string, // className for the outer element\n\tdefaultValue: _propTypes2.default.any, // default field value\n\textraWidth: _propTypes2.default.oneOfType([// additional width for input element\n\t_propTypes2.default.number, _propTypes2.default.string]),\n\tid: _propTypes2.default.string, // id to use for the input, can be set for consistent snapshots\n\tinjectStyles: _propTypes2.default.bool, // inject the custom stylesheet to hide clear UI, defaults to true\n\tinputClassName: _propTypes2.default.string, // className for the input element\n\tinputRef: _propTypes2.default.func, // ref callback for the input element\n\tinputStyle: _propTypes2.default.object, // css styles for the input element\n\tminWidth: _propTypes2.default.oneOfType([// minimum width for input element\n\t_propTypes2.default.number, _propTypes2.default.string]),\n\tonAutosize: _propTypes2.default.func, // onAutosize handler: function(newWidth) {}\n\tonChange: _propTypes2.default.func, // onChange handler: function(event) {}\n\tplaceholder: _propTypes2.default.string, // placeholder text\n\tplaceholderIsMinWidth: _propTypes2.default.bool, // don't collapse size to less than the placeholder\n\tstyle: _propTypes2.default.object, // css styles for the outer element\n\tvalue: _propTypes2.default.any // field value\n};\nAutosizeInput.defaultProps = {\n\tminWidth: 1,\n\tinjectStyles: true\n};\n\nexports.default = AutosizeInput;","var matchesImpl;\nexport default function matches(node, selector) {\n if (!matchesImpl) {\n var body = document.body;\n var nativeMatch = body.matches || body.matchesSelector || body.webkitMatchesSelector || body.mozMatchesSelector || body.msMatchesSelector;\n\n matchesImpl = function matchesImpl(n, s) {\n return nativeMatch.call(n, s);\n };\n }\n\n return matchesImpl(node, selector);\n}","import matches from './matches';\nexport default function closest(node, selector, stopAt) {\n if (node.closest && !stopAt) node.closest(selector);\n var nextNode = node;\n\n do {\n if (matches(nextNode, selector)) return nextNode;\n nextNode = nextNode.parentElement;\n } while (nextNode && nextNode !== stopAt && nextNode.nodeType === document.ELEMENT_NODE);\n\n return null;\n}","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports,require(\"react\"),require(\"prop-types\"),require(\"classnames\"),require(\"date-fns/isDate\"),require(\"date-fns/isValid\"),require(\"date-fns/format\"),require(\"date-fns/addMinutes\"),require(\"date-fns/addHours\"),require(\"date-fns/addDays\"),require(\"date-fns/addWeeks\"),require(\"date-fns/addMonths\"),require(\"date-fns/addYears\"),require(\"date-fns/subMinutes\"),require(\"date-fns/subHours\"),require(\"date-fns/subDays\"),require(\"date-fns/subWeeks\"),require(\"date-fns/subMonths\"),require(\"date-fns/subYears\"),require(\"date-fns/getSeconds\"),require(\"date-fns/getMinutes\"),require(\"date-fns/getHours\"),require(\"date-fns/getDay\"),require(\"date-fns/getDate\"),require(\"date-fns/getMonth\"),require(\"date-fns/getQuarter\"),require(\"date-fns/getYear\"),require(\"date-fns/getTime\"),require(\"date-fns/setSeconds\"),require(\"date-fns/setMinutes\"),require(\"date-fns/setHours\"),require(\"date-fns/setMonth\"),require(\"date-fns/setQuarter\"),require(\"date-fns/setYear\"),require(\"date-fns/min\"),require(\"date-fns/max\"),require(\"date-fns/differenceInCalendarDays\"),require(\"date-fns/differenceInCalendarMonths\"),require(\"date-fns/differenceInCalendarWeeks\"),require(\"date-fns/differenceInCalendarYears\"),require(\"date-fns/startOfDay\"),require(\"date-fns/startOfWeek\"),require(\"date-fns/startOfMonth\"),require(\"date-fns/startOfQuarter\"),require(\"date-fns/startOfYear\"),require(\"date-fns/endOfDay\"),require(\"date-fns/endOfWeek\"),require(\"date-fns/endOfMonth\"),require(\"date-fns/isEqual\"),require(\"date-fns/isSameDay\"),require(\"date-fns/isSameMonth\"),require(\"date-fns/isSameYear\"),require(\"date-fns/isSameQuarter\"),require(\"date-fns/isAfter\"),require(\"date-fns/isBefore\"),require(\"date-fns/isWithinInterval\"),require(\"date-fns/toDate\"),require(\"date-fns/parse\"),require(\"date-fns/parseISO\"),require(\"react-onclickoutside\"),require(\"react-popper\")):\"function\"==typeof define&&define.amd?define([\"exports\",\"react\",\"prop-types\",\"classnames\",\"date-fns/isDate\",\"date-fns/isValid\",\"date-fns/format\",\"date-fns/addMinutes\",\"date-fns/addHours\",\"date-fns/addDays\",\"date-fns/addWeeks\",\"date-fns/addMonths\",\"date-fns/addYears\",\"date-fns/subMinutes\",\"date-fns/subHours\",\"date-fns/subDays\",\"date-fns/subWeeks\",\"date-fns/subMonths\",\"date-fns/subYears\",\"date-fns/getSeconds\",\"date-fns/getMinutes\",\"date-fns/getHours\",\"date-fns/getDay\",\"date-fns/getDate\",\"date-fns/getMonth\",\"date-fns/getQuarter\",\"date-fns/getYear\",\"date-fns/getTime\",\"date-fns/setSeconds\",\"date-fns/setMinutes\",\"date-fns/setHours\",\"date-fns/setMonth\",\"date-fns/setQuarter\",\"date-fns/setYear\",\"date-fns/min\",\"date-fns/max\",\"date-fns/differenceInCalendarDays\",\"date-fns/differenceInCalendarMonths\",\"date-fns/differenceInCalendarWeeks\",\"date-fns/differenceInCalendarYears\",\"date-fns/startOfDay\",\"date-fns/startOfWeek\",\"date-fns/startOfMonth\",\"date-fns/startOfQuarter\",\"date-fns/startOfYear\",\"date-fns/endOfDay\",\"date-fns/endOfWeek\",\"date-fns/endOfMonth\",\"date-fns/isEqual\",\"date-fns/isSameDay\",\"date-fns/isSameMonth\",\"date-fns/isSameYear\",\"date-fns/isSameQuarter\",\"date-fns/isAfter\",\"date-fns/isBefore\",\"date-fns/isWithinInterval\",\"date-fns/toDate\",\"date-fns/parse\",\"date-fns/parseISO\",\"react-onclickoutside\",\"react-popper\"],t):t((e=e||self).DatePicker={},e.React,e.PropTypes,e.classNames,e.isDate,e.isValidDate,e.format,e.addMinutes,e.addHours,e.utils,e.utils$1,e.addMonths,e.addYears,e.subMinutes,e.subHours,e.subDays,e.subWeeks,e.subMonths,e.subYears,e.getSeconds,e.getMinutes,e.getHours,e.getDay,e.getDate,e.getMonth,e.getQuarter,e.getYear,e.getTime,e.setSeconds,e.setMinutes,e.setHours,e.utils$2,e.utils$3,e.setYear,e.min,e.max,e.differenceInCalendarDays,e.differenceInCalendarMonths,e.differenceInCalendarWeeks,e.differenceInCalendarYears,e.startOfDay,e.startOfWeek,e.startOfMonth,e.startOfQuarter,e.startOfYear,e.endOfDay,e.endOfWeek,e.endOfMonth,e.dfIsEqual,e.dfIsSameDay,e.dfIsSameMonth,e.dfIsSameYear,e.dfIsSameQuarter,e.isAfter,e.isBefore,e.isWithinInterval,e.toDate,e.parse,e.parseISO,e.onClickOutside,e.ReactPopper)}(this,(function(e,t,r,n,a,o,s,p,i,c,d,l,u,h,f,m,y,D,v,w,g,k,C,_,b,S,M,O,P,E,N,T,Y,x,I,L,q,F,W,B,R,j,H,K,A,Q,V,U,$,z,G,J,X,Z,ee,te,re,ne,ae,oe,se){\"use strict\";function pe(e){return(pe=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function ie(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function ce(e,t){for(var r=0;r0&&(a=ne(e,t.slice(0,e.length),new Date)),Se(a)||(a=new Date(e))),Se(a)&&p?a:null)}function Se(e){return o(e)&&Z(e,new Date(\"1/1/1000\"))}function Me(e,t,r){if(\"en\"===r)return s(e,t,{awareOfUnicodeTokens:!0});var n=Fe(r);return r&&!n&&console.warn('A locale object was not found for the provided string [\"'.concat(r,'\"].')),!n&&qe()&&Fe(qe())&&(n=Fe(qe())),s(e,t,{locale:n||null,awareOfUnicodeTokens:!0})}function Oe(e,t){var r=t.hour,n=void 0===r?0:r,a=t.minute,o=void 0===a?0:a,s=t.second;return N(E(P(e,void 0===s?0:s),o),n)}function Pe(e,t){var r=Fe(t||qe());return j(e,{locale:r})}function Ee(e){return H(e)}function Ne(e,t){return e&&t?J(e,t):!e&&!t}function Te(e,t){return e&&t?G(e,t):!e&&!t}function Ye(e,t){return e&&t?X(e,t):!e&&!t}function xe(e,t){return e&&t?z(e,t):!e&&!t}function Ie(e,t){return e&&t?$(e,t):!e&&!t}function Le(e,t,r){var n,a=R(t),o=Q(r);try{n=te(e,{start:a,end:o})}catch(e){n=!1}return n}function qe(){return(\"undefined\"!=typeof window?window:global).__localeId__}function Fe(e){if(\"string\"==typeof e){var t=\"undefined\"!=typeof window?window:global;return t.__localeData__?t.__localeData__[e]:null}return e}function We(e,t){return Me(T(_e(),e),\"LLL\",t)}function Be(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.maxDate,a=t.excludeDates,o=t.includeDates,s=t.filterDate;return Ae(e,{minDate:r,maxDate:n})||a&&a.some((function(t){return xe(e,t)}))||o&&!o.some((function(t){return xe(e,t)}))||s&&!s(_e(e))||!1}function Re(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.maxDate,a=t.excludeDates,o=t.includeDates,s=t.filterDate;return Ae(e,{minDate:r,maxDate:n})||a&&a.some((function(t){return Te(e,t)}))||o&&!o.some((function(t){return Te(e,t)}))||s&&!s(_e(e))||!1}function je(e,t,r,n){var a=M(e),o=b(e),s=M(t),p=b(t),i=M(n);return a===s&&a===i?o<=r&&r<=p:a=r||ia:void 0}function He(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.maxDate,a=t.excludeDates,o=t.includeDates,s=t.filterDate;return Ae(e,{minDate:r,maxDate:n})||a&&a.some((function(t){return Ye(e,t)}))||o&&!o.some((function(t){return Ye(e,t)}))||s&&!s(_e(e))||!1}function Ke(e,t,r,n){var a=M(e),o=S(e),s=M(t),p=S(t),i=M(n);return a===s&&a===i?o<=r&&r<=p:a=r||ia:void 0}function Ae(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.maxDate;return r&&q(e,r)<0||n&&q(e,n)>0}function Qe(e,t){for(var r=t.length,n=0;n1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.includeDates,a=D(e,1);return r&&F(r,a)>0||n&&n.every((function(e){return F(e,a)>0}))||!1}function $e(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,n=t.includeDates,a=l(e,1);return r&&F(a,r)>0||n&&n.every((function(e){return F(a,e)>0}))||!1}function ze(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.includeDates,a=v(e,1);return r&&B(r,a)>0||n&&n.every((function(e){return B(e,a)>0}))||!1}function Ge(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,n=t.includeDates,a=u(e,1);return r&&B(a,r)>0||n&&n.every((function(e){return B(a,e)>0}))||!1}function Je(e){var t=e.minDate,r=e.includeDates;if(r&&t){var n=r.filter((function(e){return q(e,t)>=0}));return I(n)}return r?I(r):t}function Xe(e){var t=e.maxDate,r=e.includeDates;if(r&&t){var n=r.filter((function(e){return q(e,t)<=0}));return L(n)}return r?L(r):t}function Ze(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"react-datepicker__day--highlighted\",r=new Map,n=0,o=e.length;n=s),p&&a.push(s)}return a}var nt=oe(function(e){function r(e){var n;ie(this,r),le(De(n=ve(this,me(r).call(this,e))),\"renderOptions\",(function(){var e=n.props.year,r=n.state.yearsList.map((function(r){return t.createElement(\"div\",{className:e===r?\"react-datepicker__year-option react-datepicker__year-option--selected_year\":\"react-datepicker__year-option\",key:r,ref:r,onClick:n.onChange.bind(De(n),r)},e===r?t.createElement(\"span\",{className:\"react-datepicker__year-option--selected\"},\"✓\"):\"\",r)})),a=n.props.minDate?M(n.props.minDate):null,o=n.props.maxDate?M(n.props.maxDate):null;return o&&n.state.yearsList.find((function(e){return e===o}))||r.unshift(t.createElement(\"div\",{className:\"react-datepicker__year-option\",ref:\"upcoming\",key:\"upcoming\",onClick:n.incrementYears},t.createElement(\"a\",{className:\"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-upcoming\"}))),a&&n.state.yearsList.find((function(e){return e===a}))||r.push(t.createElement(\"div\",{className:\"react-datepicker__year-option\",ref:\"previous\",key:\"previous\",onClick:n.decrementYears},t.createElement(\"a\",{className:\"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-previous\"}))),r})),le(De(n),\"onChange\",(function(e){n.props.onChange(e)})),le(De(n),\"handleClickOutside\",(function(){n.props.onCancel()})),le(De(n),\"shiftYears\",(function(e){var t=n.state.yearsList.map((function(t){return t+e}));n.setState({yearsList:t})})),le(De(n),\"incrementYears\",(function(){return n.shiftYears(1)})),le(De(n),\"decrementYears\",(function(){return n.shiftYears(-1)}));var a=e.yearDropdownItemNumber,o=e.scrollableYearDropdown,s=a||(o?10:5);return n.state={yearsList:rt(n.props.year,s,n.props.minDate,n.props.maxDate)},n}return fe(r,e),de(r,[{key:\"render\",value:function(){var e=n({\"react-datepicker__year-dropdown\":!0,\"react-datepicker__year-dropdown--scrollable\":this.props.scrollableYearDropdown});return t.createElement(\"div\",{className:e},this.renderOptions())}}]),r}(t.Component)),at=function(e){function r(){var e,n;ie(this,r);for(var a=arguments.length,o=new Array(a),s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).excludeDates;return t&&t.some((function(t){return xe(e,t)}))||!1}(a.props.day,a.props)})),le(De(a),\"getHighLightedClass\",(function(e){var t=a.props,r=t.day,n=t.highlightDates;if(!n)return!1;var o=Me(r,\"MM.dd.yyyy\");return n.get(o)})),le(De(a),\"isInRange\",(function(){var e=a.props,t=e.day,r=e.startDate,n=e.endDate;return!(!r||!n)&&Le(t,r,n)})),le(De(a),\"isInSelectingRange\",(function(){var e=a.props,t=e.day,r=e.selectsStart,n=e.selectsEnd,o=e.selectingDate,s=e.startDate,p=e.endDate;return!(!r&&!n||!o||a.isDisabled())&&(r&&p&&(ee(o,p)||Ie(o,p))?Le(t,o,p):!(!n||!s||!Z(o,s)&&!Ie(o,s))&&Le(t,s,o))})),le(De(a),\"isSelectingRangeStart\",(function(){if(!a.isInSelectingRange())return!1;var e=a.props,t=e.day,r=e.selectingDate,n=e.startDate;return xe(t,e.selectsStart?r:n)})),le(De(a),\"isSelectingRangeEnd\",(function(){if(!a.isInSelectingRange())return!1;var e=a.props,t=e.day,r=e.selectingDate,n=e.endDate;return xe(t,e.selectsEnd?r:n)})),le(De(a),\"isRangeStart\",(function(){var e=a.props,t=e.day,r=e.startDate,n=e.endDate;return!(!r||!n)&&xe(r,t)})),le(De(a),\"isRangeEnd\",(function(){var e=a.props,t=e.day,r=e.startDate,n=e.endDate;return!(!r||!n)&&xe(n,t)})),le(De(a),\"isWeekend\",(function(){var e=C(a.props.day);return 0===e||6===e})),le(De(a),\"isOutsideMonth\",(function(){return void 0!==a.props.month&&a.props.month!==b(a.props.day)})),le(De(a),\"getClassNames\",(function(e){var t,r=a.props.dayClassName?a.props.dayClassName(e):void 0;return n(\"react-datepicker__day\",r,\"react-datepicker__day--\"+Me(a.props.day,\"ddd\",t),{\"react-datepicker__day--disabled\":a.isDisabled(),\"react-datepicker__day--excluded\":a.isExcluded(),\"react-datepicker__day--selected\":a.isSameDay(a.props.selected),\"react-datepicker__day--keyboard-selected\":a.isKeyboardSelected(),\"react-datepicker__day--range-start\":a.isRangeStart(),\"react-datepicker__day--range-end\":a.isRangeEnd(),\"react-datepicker__day--in-range\":a.isInRange(),\"react-datepicker__day--in-selecting-range\":a.isInSelectingRange(),\"react-datepicker__day--selecting-range-start\":a.isSelectingRangeStart(),\"react-datepicker__day--selecting-range-end\":a.isSelectingRangeEnd(),\"react-datepicker__day--today\":a.isSameDay(_e()),\"react-datepicker__day--weekend\":a.isWeekend(),\"react-datepicker__day--outside-month\":a.isOutsideMonth()},a.getHighLightedClass(\"react-datepicker__day--highlighted\"))})),le(De(a),\"getAriaLabel\",(function(){var e=a.props.day,t=a.isDisabled()||a.isExcluded()?\"Not available\":\"Choose\";return\"\".concat(t,\" \").concat(Me(e,\"PPPP\"))})),le(De(a),\"getTabIndex\",(function(e,t){var r=e||a.props.selected,n=t||a.props.preSelection;return a.isKeyboardSelected()||a.isSameDay(r)&&xe(n,r)?0:-1})),le(De(a),\"render\",(function(){return t.createElement(\"div\",{ref:a.dayEl,className:a.getClassNames(a.props.day),onKeyDown:a.handleOnKeyDown,onClick:a.handleClick,onMouseEnter:a.handleMouseEnter,tabIndex:a.getTabIndex(),\"aria-label\":a.getAriaLabel(),role:\"option\",\"aria-disabled\":a.isDisabled()},a.props.renderDayContents?a.props.renderDayContents(_(a.props.day),a.props.day):_(a.props.day))})),a}return fe(r,e),de(r,[{key:\"componentDidMount\",value:function(){0===this.getTabIndex()&&this.isSameDay(this.props.preSelection)&&(!document.activeElement||document.activeElement===document.body)&&this.dayEl.current.focus()}},{key:\"componentDidUpdate\",value:function(e){0===this.getTabIndex()&&this.isSameDay(this.props.preSelection)!==this.isSameDay(e.preSelection)&&!e.isInputFocused&&this.dayEl.current.focus()}}]),r}(t.Component),lt=function(e){function r(){var e,t;ie(this,r);for(var n=arguments.length,a=new Array(n),o=0;o=ht,i=!r&&!a.isWeekInMonth(n);if(p||i){if(!a.props.peekNextMonth)break;s=!0}}return e})),le(De(a),\"onMonthClick\",(function(e,t){a.handleDayClick(Ee(T(a.props.day,t)),e)})),le(De(a),\"onQuarterClick\",(function(e,t){var r;a.handleDayClick((r=Y(a.props.day,t),K(r)),e)})),le(De(a),\"getMonthClassNames\",(function(e){var t=a.props,r=t.day,o=t.startDate,s=t.endDate,p=t.selected,i=t.minDate,c=t.maxDate;return n(\"react-datepicker__month-text\",\"react-datepicker__month-\".concat(e),{\"react-datepicker__month--disabled\":(i||c)&&Re(T(r,e),a.props),\"react-datepicker__month--selected\":b(r)===e&&M(r)===M(p),\"react-datepicker__month--in-range\":je(o,s,e,r),\"react-datepicker__month--range-start\":a.isRangeStartMonth(e),\"react-datepicker__month--range-end\":a.isRangeEndMonth(e)})})),le(De(a),\"getQuarterClassNames\",(function(e){var t=a.props,r=t.day,o=t.startDate,s=t.endDate,p=t.selected,i=t.minDate,c=t.maxDate;return n(\"react-datepicker__quarter-text\",\"react-datepicker__quarter-\".concat(e),{\"react-datepicker__quarter--disabled\":(i||c)&&He(Y(r,e),a.props),\"react-datepicker__quarter--selected\":S(r)===e&&M(r)===M(p),\"react-datepicker__quarter--in-range\":Ke(o,s,e,r),\"react-datepicker__quarter--range-start\":a.isRangeStartQuarter(e),\"react-datepicker__quarter--range-end\":a.isRangeEndQuarter(e)})})),le(De(a),\"renderMonths\",(function(){return[[0,1,2],[3,4,5],[6,7,8],[9,10,11]].map((function(e,r){return t.createElement(\"div\",{className:\"react-datepicker__month-wrapper\",key:r},e.map((function(e,r){return t.createElement(\"div\",{key:r,onClick:function(t){a.onMonthClick(t,e)},className:a.getMonthClassNames(e)},We(e,a.props.locale))})))}))})),le(De(a),\"renderQuarters\",(function(){return t.createElement(\"div\",{className:\"react-datepicker__quarter-wrapper\"},[1,2,3,4].map((function(e,r){return t.createElement(\"div\",{key:r,onClick:function(t){a.onQuarterClick(t,e)},className:a.getQuarterClassNames(e)},(n=e,o=a.props.locale,Me(Y(_e(),n),\"QQQ\",o)));var n,o})))})),le(De(a),\"getClassNames\",(function(){var e=a.props,t=e.selectingDate,r=e.selectsStart,o=e.selectsEnd,s=e.showMonthYearPicker,p=e.showQuarterYearPicker;return n(\"react-datepicker__month\",{\"react-datepicker__month--selecting-range\":t&&(r||o)},{\"react-datepicker__monthPicker\":s},{\"react-datepicker__quarterPicker\":p})})),a}return fe(r,e),de(r,[{key:\"render\",value:function(){var e=this.props,r=e.showMonthYearPicker,n=e.showQuarterYearPicker;return t.createElement(\"div\",{className:this.getClassNames(),onMouseLeave:this.handleMouseLeave,role:\"listbox\",\"aria-label\":\"month-\"+Me(this.props.day,\"yyyy-MM\")},r?this.renderMonths():n?this.renderQuarters():this.renderWeeks())}}]),r}(t.Component),mt=function(e){function r(){var e,n;ie(this,r);for(var a=arguments.length,o=new Array(a),s=0;s=g(e)&&(n.centerLi=t)}},Me(e,a,n.props.locale))}))})),n}return fe(r,e),de(r,[{key:\"componentDidMount\",value:function(){this.list.scrollTop=r.calcCenterPosition(this.props.monthRef?this.props.monthRef.clientHeight-this.header.clientHeight:this.list.clientHeight,this.centerLi),this.props.monthRef&&this.header&&this.setState({height:this.props.monthRef.clientHeight-this.header.clientHeight})}},{key:\"render\",value:function(){var e=this,r=this.state.height;return t.createElement(\"div\",{className:\"react-datepicker__time-container \".concat(this.props.todayButton?\"react-datepicker__time-container--with-today-button\":\"\")},t.createElement(\"div\",{className:\"react-datepicker__header react-datepicker__header--time\",ref:function(t){e.header=t}},t.createElement(\"div\",{className:\"react-datepicker-time__header\"},this.props.timeCaption)),t.createElement(\"div\",{className:\"react-datepicker__time\"},t.createElement(\"div\",{className:\"react-datepicker__time-box\"},t.createElement(\"ul\",{className:\"react-datepicker__time-list\",ref:function(t){e.list=t},style:r?{height:r}:{}},this.renderTimes()))))}}],[{key:\"defaultProps\",get:function(){return{intervals:30,onTimeChange:function(){},todayButton:null,timeCaption:\"Time\"}}}]),r}(t.Component);le(mt,\"calcCenterPosition\",(function(e,t){return t.offsetTop-(e/2-t.clientHeight/2)}));var yt=function(e){function r(e){var n;return ie(this,r),le(De(n=ve(this,me(r).call(this,e))),\"onTimeChange\",(function(e){n.setState({time:e});var t=new Date;t.setHours(e.split(\":\")[0]),t.setMinutes(e.split(\":\")[1]),n.props.onChange(t)})),le(De(n),\"renderTimeInput\",(function(){var e=n.state.time,r=n.props,a=r.timeString,o=r.customTimeInput;return o?t.cloneElement(o,{value:e,onChange:n.onTimeChange}):t.createElement(\"input\",{type:\"time\",className:\"react-datepicker-time__input\",placeholder:\"Time\",name:\"time-input\",required:!0,value:e,onChange:function(e){n.onTimeChange(e.target.value||a)}})})),n.state={time:n.props.timeString},n}return fe(r,e),de(r,[{key:\"render\",value:function(){return t.createElement(\"div\",{className:\"react-datepicker__input-time-container\"},t.createElement(\"div\",{className:\"react-datepicker-time__caption\"},this.props.timeInputLabel),t.createElement(\"div\",{className:\"react-datepicker-time__input-container\"},t.createElement(\"div\",{className:\"react-datepicker-time__input\"},this.renderTimeInput())))}}]),r}(t.Component);function Dt(e){var r=e.className,n=e.children,a=e.showPopperArrow,o=e.arrowProps,s=void 0===o?{}:o;return t.createElement(\"div\",{className:r},a&&t.createElement(\"div\",ue({className:\"react-datepicker__triangle\"},s)),n)}var vt=[\"react-datepicker__year-select\",\"react-datepicker__month-select\",\"react-datepicker__month-year-select\"],wt=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(e.className||\"\").split(/\\s+/);return vt.some((function(e){return t.indexOf(e)>=0}))},gt=function(e){function r(e){var n;return ie(this,r),le(De(n=ve(this,me(r).call(this,e))),\"handleClickOutside\",(function(e){n.props.onClickOutside(e)})),le(De(n),\"setClickOutsideRef\",(function(){return n.containerRef.current})),le(De(n),\"handleDropdownFocus\",(function(e){wt(e.target)&&n.props.onDropdownFocus()})),le(De(n),\"getDateInView\",(function(){var e=n.props,t=e.preSelection,r=e.selected,a=e.openToDate,o=Je(n.props),s=Xe(n.props),p=_e(),i=a||r||t;return i||(o&&ee(p,o)?o:s&&Z(p,s)?s:p)})),le(De(n),\"increaseMonth\",(function(){n.setState((function(e){var t=e.date;return{date:l(t,1)}}),(function(){return n.handleMonthChange(n.state.date)}))})),le(De(n),\"decreaseMonth\",(function(){n.setState((function(e){var t=e.date;return{date:D(t,1)}}),(function(){return n.handleMonthChange(n.state.date)}))})),le(De(n),\"handleDayClick\",(function(e,t,r){return n.props.onSelect(e,t,r)})),le(De(n),\"handleDayMouseEnter\",(function(e){n.setState({selectingDate:e}),n.props.onDayMouseEnter&&n.props.onDayMouseEnter(e)})),le(De(n),\"handleMonthMouseLeave\",(function(){n.setState({selectingDate:null}),n.props.onMonthMouseLeave&&n.props.onMonthMouseLeave()})),le(De(n),\"handleYearChange\",(function(e){n.props.onYearChange&&n.props.onYearChange(e)})),le(De(n),\"handleMonthChange\",(function(e){n.props.onMonthChange&&n.props.onMonthChange(e),n.props.adjustDateOnChange&&(n.props.onSelect&&n.props.onSelect(e),n.props.setOpen&&n.props.setOpen(!0))})),le(De(n),\"handleMonthYearChange\",(function(e){n.handleYearChange(e),n.handleMonthChange(e)})),le(De(n),\"changeYear\",(function(e){n.setState((function(t){var r=t.date;return{date:x(r,e)}}),(function(){return n.handleYearChange(n.state.date)}))})),le(De(n),\"changeMonth\",(function(e){n.setState((function(t){var r=t.date;return{date:T(r,e)}}),(function(){return n.handleMonthChange(n.state.date)}))})),le(De(n),\"changeMonthYear\",(function(e){n.setState((function(t){var r=t.date;return{date:x(T(r,b(e)),M(e))}}),(function(){return n.handleMonthYearChange(n.state.date)}))})),le(De(n),\"header\",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n.state.date,r=Pe(e,n.props.locale),a=[];return n.props.showWeekNumbers&&a.push(t.createElement(\"div\",{key:\"W\",className:\"react-datepicker__day-name\"},n.props.weekLabel||\"#\")),a.concat([0,1,2,3,4,5,6].map((function(e){var a=c(r,e),o=n.formatWeekday(a,n.props.locale);return t.createElement(\"div\",{key:e,className:\"react-datepicker__day-name\"},o)})))})),le(De(n),\"formatWeekday\",(function(e,t){return n.props.formatWeekDay?function(e,t,r){return t(Me(e,\"EEEE\",r))}(e,n.props.formatWeekDay,t):n.props.useWeekdaysShort?function(e,t){return Me(e,\"EEE\",t)}(e,t):function(e,t){return Me(e,\"EEEEEE\",t)}(e,t)})),le(De(n),\"decreaseYear\",(function(){n.setState((function(e){var t=e.date;return{date:v(t,1)}}),(function(){return n.handleYearChange(n.state.date)}))})),le(De(n),\"renderPreviousButton\",(function(){if(!n.props.renderCustomHeader){var e=n.props.showMonthYearPicker?ze(n.state.date,n.props):Ue(n.state.date,n.props);if((n.props.forceShowMonthNavigation||n.props.showDisabledMonthNavigation||!e)&&!n.props.showTimeSelectOnly){var r=[\"react-datepicker__navigation\",\"react-datepicker__navigation--previous\"],a=n.decreaseMonth;(n.props.showMonthYearPicker||n.props.showQuarterYearPicker)&&(a=n.decreaseYear),e&&n.props.showDisabledMonthNavigation&&(r.push(\"react-datepicker__navigation--previous--disabled\"),a=null);var o=n.props.showMonthYearPicker||n.props.showQuarterYearPicker;return t.createElement(\"button\",{type:\"button\",className:r.join(\" \"),onClick:a,\"aria-label\":o?\"Previous Year\":\"Previous Month\"},o?n.props.previousYearButtonLabel:n.props.previousMonthButtonLabel)}}})),le(De(n),\"increaseYear\",(function(){n.setState((function(e){var t=e.date;return{date:u(t,1)}}),(function(){return n.handleYearChange(n.state.date)}))})),le(De(n),\"renderNextButton\",(function(){if(!n.props.renderCustomHeader){var e=n.props.showMonthYearPicker?Ge(n.state.date,n.props):$e(n.state.date,n.props);if((n.props.forceShowMonthNavigation||n.props.showDisabledMonthNavigation||!e)&&!n.props.showTimeSelectOnly){var r=[\"react-datepicker__navigation\",\"react-datepicker__navigation--next\"];n.props.showTimeSelect&&r.push(\"react-datepicker__navigation--next--with-time\"),n.props.todayButton&&r.push(\"react-datepicker__navigation--next--with-today-button\");var a=n.increaseMonth;(n.props.showMonthYearPicker||n.props.showQuarterYearPicker)&&(a=n.increaseYear),e&&n.props.showDisabledMonthNavigation&&(r.push(\"react-datepicker__navigation--next--disabled\"),a=null);var o=n.props.showMonthYearPicker||n.props.showQuarterYearPicker;return t.createElement(\"button\",{type:\"button\",className:r.join(\" \"),onClick:a,\"aria-label\":o?\"Next Year\":\"Next Month\"},o?n.props.nextYearButtonLabel:n.props.nextMonthButtonLabel)}}})),le(De(n),\"renderCurrentMonth\",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n.state.date,r=[\"react-datepicker__current-month\"];return n.props.showYearDropdown&&r.push(\"react-datepicker__current-month--hasYearDropdown\"),n.props.showMonthDropdown&&r.push(\"react-datepicker__current-month--hasMonthDropdown\"),n.props.showMonthYearDropdown&&r.push(\"react-datepicker__current-month--hasMonthYearDropdown\"),t.createElement(\"div\",{className:r.join(\" \")},Me(e,n.props.dateFormat,n.props.locale))})),le(De(n),\"renderYearDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(n.props.showYearDropdown&&!e)return t.createElement(at,{adjustDateOnChange:n.props.adjustDateOnChange,date:n.state.date,onSelect:n.props.onSelect,setOpen:n.props.setOpen,dropdownMode:n.props.dropdownMode,onChange:n.changeYear,minDate:n.props.minDate,maxDate:n.props.maxDate,year:M(n.state.date),scrollableYearDropdown:n.props.scrollableYearDropdown,yearDropdownItemNumber:n.props.yearDropdownItemNumber})})),le(De(n),\"renderMonthDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(n.props.showMonthDropdown&&!e)return t.createElement(st,{dropdownMode:n.props.dropdownMode,locale:n.props.locale,onChange:n.changeMonth,month:b(n.state.date),useShortMonthInDropdown:n.props.useShortMonthInDropdown})})),le(De(n),\"renderMonthYearDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(n.props.showMonthYearDropdown&&!e)return t.createElement(ct,{dropdownMode:n.props.dropdownMode,locale:n.props.locale,dateFormat:n.props.dateFormat,onChange:n.changeMonthYear,minDate:n.props.minDate,maxDate:n.props.maxDate,date:n.state.date,scrollableMonthYearDropdown:n.props.scrollableMonthYearDropdown})})),le(De(n),\"renderTodayButton\",(function(){if(n.props.todayButton&&!n.props.showTimeSelectOnly)return t.createElement(\"div\",{className:\"react-datepicker__today-button\",onClick:function(e){return n.props.onSelect(R(_e()),e)}},n.props.todayButton)})),le(De(n),\"renderDefaultHeader\",(function(e){var r=e.monthDate,a=e.i;return t.createElement(\"div\",{className:\"react-datepicker__header\"},n.renderCurrentMonth(r),t.createElement(\"div\",{className:\"react-datepicker__header__dropdown react-datepicker__header__dropdown--\".concat(n.props.dropdownMode),onFocus:n.handleDropdownFocus},n.renderMonthDropdown(0!==a),n.renderMonthYearDropdown(0!==a),n.renderYearDropdown(0!==a)),t.createElement(\"div\",{className:\"react-datepicker__day-names\"},n.header(r)))})),le(De(n),\"renderCustomHeader\",(function(e){var r=e.monthDate;if(0!==e.i)return null;var a=Ue(n.state.date,n.props),o=$e(n.state.date,n.props),s=ze(n.state.date,n.props),p=Ge(n.state.date,n.props);return t.createElement(\"div\",{className:\"react-datepicker__header react-datepicker__header--custom\",onFocus:n.props.onDropdownFocus},n.props.renderCustomHeader(function(e){for(var t=1;t1&&t[t.length-1].focus()})),le(De(n),\"handleFocusEnd\",(function(e){var t=n.getTabChildren();t&&t.length>1&&t[0].focus()})),n.tabLoopRef=t.createRef(),n}return fe(r,e),de(r,null,[{key:\"defaultProps\",get:function(){return{enableTabLoop:!0}}}]),de(r,[{key:\"render\",value:function(){return this.props.enableTabLoop?t.createElement(\"div\",{className:\"react-datepicker__tab-loop\",ref:this.tabLoopRef},t.createElement(\"div\",{className:\"react-datepicker__tab-loop__start\",tabIndex:\"0\",onFocus:this.handleFocusStart}),this.props.children,t.createElement(\"div\",{className:\"react-datepicker__tab-loop__end\",tabIndex:\"0\",onFocus:this.handleFocusEnd})):this.props.children}}]),r}(t.Component),bt=function(e){function r(){return ie(this,r),ve(this,me(r).apply(this,arguments))}return fe(r,e),de(r,[{key:\"render\",value:function(){var e,r=this.props,a=r.className,o=r.wrapperClassName,s=r.hidePopper,p=r.popperComponent,i=r.popperModifiers,c=r.popperPlacement,d=r.popperProps,l=r.targetComponent,u=r.enableTabLoop,h=r.popperOnKeyDown;if(!s){var f=n(\"react-datepicker-popper\",a);e=t.createElement(se.Popper,ue({modifiers:i,placement:c},d),(function(e){var r=e.ref,n=e.style,a=e.placement,o=e.arrowProps;return t.createElement(_t,{enableTabLoop:u},t.createElement(\"div\",ue({ref:r,style:n},{className:f,\"data-placement\":a,onKeyDown:h}),t.cloneElement(p,{arrowProps:o})))}))}this.props.popperContainer&&(e=t.createElement(this.props.popperContainer,{},e));var m=n(\"react-datepicker-wrapper\",o);return t.createElement(se.Manager,{className:\"react-datepicker-manager\"},t.createElement(se.Reference,null,(function(e){var r=e.ref;return t.createElement(\"div\",{ref:r,className:m},l)})),e)}}],[{key:\"defaultProps\",get:function(){return{hidePopper:!0,popperModifiers:{preventOverflow:{enabled:!0,escapeWithReference:!0,boundariesElement:\"viewport\"}},popperProps:{},popperPlacement:\"bottom-start\"}}}]),r}(t.Component),St=\"react-datepicker-ignore-onclickoutside\",Mt=oe(gt);var Ot=\"Date input not valid.\",Pt=function(e){function r(e){var o;return ie(this,r),le(De(o=ve(this,me(r).call(this,e))),\"getPreSelection\",(function(){return o.props.openToDate?o.props.openToDate:o.props.selectsEnd&&o.props.startDate?o.props.startDate:o.props.selectsStart&&o.props.endDate?o.props.endDate:_e()})),le(De(o),\"calcInitialState\",(function(){var e=o.getPreSelection(),t=Je(o.props),r=Xe(o.props),n=t&&ee(e,t)?t:r&&Z(e,r)?r:e;return{open:o.props.startOpen||!1,preventFocus:!1,preSelection:o.props.selected?o.props.selected:n,highlightDates:Ze(o.props.highlightDates),focused:!1}})),le(De(o),\"clearPreventFocusTimeout\",(function(){o.preventFocusTimeout&&clearTimeout(o.preventFocusTimeout)})),le(De(o),\"setFocus\",(function(){o.input&&o.input.focus&&o.input.focus()})),le(De(o),\"setBlur\",(function(){o.input&&o.input.blur&&o.input.blur(),o.cancelFocusInput()})),le(De(o),\"setOpen\",(function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];o.setState({open:e,preSelection:e&&o.state.open?o.state.preSelection:o.calcInitialState().preSelection,lastPreSelectChange:Nt},(function(){e||o.setState((function(e){return{focused:!!t&&e.focused}}),(function(){!t&&o.setBlur(),o.setState({inputValue:null})}))}))})),le(De(o),\"inputOk\",(function(){return a(o.state.preSelection)})),le(De(o),\"isCalendarOpen\",(function(){return void 0===o.props.open?o.state.open&&!o.props.disabled&&!o.props.readOnly:o.props.open})),le(De(o),\"handleFocus\",(function(e){o.state.preventFocus||(o.props.onFocus(e),o.props.preventOpenOnFocus||o.props.readOnly||o.setOpen(!0)),o.setState({focused:!0})})),le(De(o),\"cancelFocusInput\",(function(){clearTimeout(o.inputFocusTimeout),o.inputFocusTimeout=null})),le(De(o),\"deferFocusInput\",(function(){o.cancelFocusInput(),o.inputFocusTimeout=setTimeout((function(){return o.setFocus()}),1)})),le(De(o),\"handleDropdownFocus\",(function(){o.cancelFocusInput()})),le(De(o),\"handleBlur\",(function(e){(!o.state.open||o.props.withPortal||o.props.showTimeInput)&&o.props.onBlur(e),o.setState({focused:!1})})),le(De(o),\"handleCalendarClickOutside\",(function(e){o.props.inline||o.setOpen(!1),o.props.onClickOutside(e),o.props.withPortal&&e.preventDefault()})),le(De(o),\"handleChange\",(function(){for(var e=arguments.length,t=new Array(e),r=0;r1&&!o.props.inlineFocusSelectedMonth&&o.setState({monthSelectedIn:n})}o.props.onChange(a,t)}o.props.onSelect(a,t),r||o.setState({inputValue:null})}})),le(De(o),\"setPreSelection\",(function(e){var t=void 0!==o.props.minDate,r=void 0!==o.props.maxDate,n=!0;e&&(t&&r?n=Le(e,o.props.minDate,o.props.maxDate):t?n=Z(e,o.props.minDate):r&&(n=ee(e,o.props.maxDate))),n&&o.setState({preSelection:e})})),le(De(o),\"handleTimeChange\",(function(e){var t=Oe(o.props.selected?o.props.selected:o.getPreSelection(),{hour:k(e),minute:g(e)});o.setState({preSelection:t}),o.props.onChange(t),o.props.shouldCloseOnSelect&&o.setOpen(!1),o.props.showTimeInput&&o.setOpen(!0),o.setState({inputValue:null})})),le(De(o),\"onInputClick\",(function(){o.props.disabled||o.props.readOnly||o.setOpen(!0),o.props.onInputClick()})),le(De(o),\"onInputKeyDown\",(function(e){o.props.onKeyDown(e);var t=e.key;if(o.state.open||o.props.inline||o.props.preventOpenOnFocus){if(o.state.open){if(\"ArrowDown\"===t||\"ArrowUp\"===t){e.preventDefault();var r=o.calendar.componentNode&&o.calendar.componentNode.querySelector('.react-datepicker__day[tabindex=\"0\"]');return void(r&&r.focus())}var n=_e(o.state.preSelection);\"Enter\"===t?(e.preventDefault(),o.inputOk()&&o.state.lastPreSelectChange===Nt?(o.handleSelect(n,e),!o.props.shouldCloseOnSelect&&o.setPreSelection(n)):o.setOpen(!1)):\"Escape\"===t&&(e.preventDefault(),o.setOpen(!1)),o.inputOk()||o.props.onInputError({code:1,msg:Ot})}}else\"ArrowDown\"!==t&&\"ArrowUp\"!==t&&\"Enter\"!==t||o.onInputClick()})),le(De(o),\"onDayKeyDown\",(function(e){o.props.onKeyDown(e);var t=e.key,r=_e(o.state.preSelection);if(\"Enter\"===t)e.preventDefault(),o.handleSelect(r,e),!o.props.shouldCloseOnSelect&&o.setPreSelection(r);else if(\"Escape\"===t)e.preventDefault(),o.setOpen(!1),o.inputOk()||o.props.onInputError({code:1,msg:Ot});else if(!o.props.disabledKeyboardNavigation){var n;switch(t){case\"ArrowLeft\":n=m(r,1);break;case\"ArrowRight\":n=c(r,1);break;case\"ArrowUp\":n=y(r,1);break;case\"ArrowDown\":n=d(r,1);break;case\"PageUp\":n=D(r,1);break;case\"PageDown\":n=l(r,1);break;case\"Home\":n=v(r,1);break;case\"End\":n=u(r,1)}if(!n)return void(o.props.onInputError&&o.props.onInputError({code:1,msg:Ot}));e.preventDefault(),o.setState({lastPreSelectChange:Nt}),o.props.adjustDateOnChange&&o.setSelected(n),o.setPreSelection(n)}})),le(De(o),\"onPopperKeyDown\",(function(e){\"Escape\"===e.key&&(e.preventDefault(),o.setState({preventFocus:!0},(function(){o.setOpen(!1),setTimeout(o.setFocus)})))})),le(De(o),\"onClearClick\",(function(e){e&&e.preventDefault&&e.preventDefault(),o.props.onChange(null,e),o.setState({inputValue:null})})),le(De(o),\"clear\",(function(){o.onClearClick()})),le(De(o),\"renderCalendar\",(function(){return o.props.inline||o.isCalendarOpen()?t.createElement(Mt,{ref:function(e){o.calendar=e},locale:o.props.locale,adjustDateOnChange:o.props.adjustDateOnChange,setOpen:o.setOpen,shouldCloseOnSelect:o.props.shouldCloseOnSelect,dateFormat:o.props.dateFormatCalendar,useWeekdaysShort:o.props.useWeekdaysShort,formatWeekDay:o.props.formatWeekDay,dropdownMode:o.props.dropdownMode,selected:o.props.selected,preSelection:o.state.preSelection,onSelect:o.handleSelect,onWeekSelect:o.props.onWeekSelect,openToDate:o.props.openToDate,minDate:o.props.minDate,maxDate:o.props.maxDate,selectsStart:o.props.selectsStart,selectsEnd:o.props.selectsEnd,startDate:o.props.startDate,endDate:o.props.endDate,excludeDates:o.props.excludeDates,filterDate:o.props.filterDate,onClickOutside:o.handleCalendarClickOutside,formatWeekNumber:o.props.formatWeekNumber,highlightDates:o.state.highlightDates,includeDates:o.props.includeDates,includeTimes:o.props.includeTimes,injectTimes:o.props.injectTimes,inline:o.props.inline,peekNextMonth:o.props.peekNextMonth,showMonthDropdown:o.props.showMonthDropdown,showPreviousMonths:o.props.showPreviousMonths,useShortMonthInDropdown:o.props.useShortMonthInDropdown,showMonthYearDropdown:o.props.showMonthYearDropdown,showWeekNumbers:o.props.showWeekNumbers,showYearDropdown:o.props.showYearDropdown,withPortal:o.props.withPortal,forceShowMonthNavigation:o.props.forceShowMonthNavigation,showDisabledMonthNavigation:o.props.showDisabledMonthNavigation,scrollableYearDropdown:o.props.scrollableYearDropdown,scrollableMonthYearDropdown:o.props.scrollableMonthYearDropdown,todayButton:o.props.todayButton,weekLabel:o.props.weekLabel,outsideClickIgnoreClass:St,fixedHeight:o.props.fixedHeight,monthsShown:o.props.monthsShown,monthSelectedIn:o.state.monthSelectedIn,onDropdownFocus:o.handleDropdownFocus,onMonthChange:o.props.onMonthChange,onYearChange:o.props.onYearChange,dayClassName:o.props.dayClassName,monthClassName:o.props.monthClassName,timeClassName:o.props.timeClassName,showTimeSelect:o.props.showTimeSelect,showTimeSelectOnly:o.props.showTimeSelectOnly,onTimeChange:o.handleTimeChange,timeFormat:o.props.timeFormat,timeIntervals:o.props.timeIntervals,minTime:o.props.minTime,maxTime:o.props.maxTime,excludeTimes:o.props.excludeTimes,timeCaption:o.props.timeCaption,className:o.props.calendarClassName,container:o.props.calendarContainer,yearDropdownItemNumber:o.props.yearDropdownItemNumber,previousMonthButtonLabel:o.props.previousMonthButtonLabel,nextMonthButtonLabel:o.props.nextMonthButtonLabel,previousYearButtonLabel:o.props.previousYearButtonLabel,nextYearButtonLabel:o.props.nextYearButtonLabel,timeInputLabel:o.props.timeInputLabel,disabledKeyboardNavigation:o.props.disabledKeyboardNavigation,renderCustomHeader:o.props.renderCustomHeader,popperProps:o.props.popperProps,renderDayContents:o.props.renderDayContents,onDayMouseEnter:o.props.onDayMouseEnter,onMonthMouseLeave:o.props.onMonthMouseLeave,showTimeInput:o.props.showTimeInput,showMonthYearPicker:o.props.showMonthYearPicker,showQuarterYearPicker:o.props.showQuarterYearPicker,showPopperArrow:o.props.showPopperArrow,excludeScrollbar:o.props.excludeScrollbar,handleOnKeyDown:o.onDayKeyDown,isInputFocused:o.state.focused,customTimeInput:o.props.customTimeInput},o.props.children):null})),le(De(o),\"renderDateInput\",(function(){var e,r,a,s,p,i=n(o.props.className,le({},St,o.state.open)),c=o.props.customInput||t.createElement(\"input\",{type:\"text\"}),d=o.props.customInputRef||\"ref\",l=\"string\"==typeof o.props.value?o.props.value:\"string\"==typeof o.state.inputValue?o.state.inputValue:(r=o.props.selected,a=o.props,s=a.dateFormat,p=a.locale,r&&Me(r,Array.isArray(s)?s[0]:s,p)||\"\");return t.cloneElement(c,(le(e={},d,(function(e){o.input=e})),le(e,\"value\",l),le(e,\"onBlur\",o.handleBlur),le(e,\"onChange\",o.handleChange),le(e,\"onClick\",o.onInputClick),le(e,\"onFocus\",o.handleFocus),le(e,\"onKeyDown\",o.onInputKeyDown),le(e,\"id\",o.props.id),le(e,\"name\",o.props.name),le(e,\"autoFocus\",o.props.autoFocus),le(e,\"placeholder\",o.props.placeholderText),le(e,\"disabled\",o.props.disabled),le(e,\"autoComplete\",o.props.autoComplete),le(e,\"className\",n(c.props.className,i)),le(e,\"title\",o.props.title),le(e,\"readOnly\",o.props.readOnly),le(e,\"required\",o.props.required),le(e,\"tabIndex\",o.props.tabIndex),le(e,\"aria-labelledby\",o.props.ariaLabelledBy),e))})),le(De(o),\"renderClearButton\",(function(){return o.props.isClearable&&null!=o.props.selected?t.createElement(\"button\",{type:\"button\",className:\"react-datepicker__close-icon\",\"aria-label\":\"Close\",onClick:o.onClearClick,title:o.props.clearButtonTitle,tabIndex:-1}):null})),o.state=o.calcInitialState(),o}return fe(r,e),de(r,null,[{key:\"defaultProps\",get:function(){return{allowSameDay:!1,dateFormat:\"MM/dd/yyyy\",dateFormatCalendar:\"LLLL yyyy\",onChange:function(){},disabled:!1,disabledKeyboardNavigation:!1,dropdownMode:\"scroll\",onFocus:function(){},onBlur:function(){},onKeyDown:function(){},onInputClick:function(){},onSelect:function(){},onClickOutside:function(){},onMonthChange:function(){},onCalendarOpen:function(){},onCalendarClose:function(){},preventOpenOnFocus:!1,onYearChange:function(){},onInputError:function(){},monthsShown:1,readOnly:!1,withPortal:!1,shouldCloseOnSelect:!0,showTimeSelect:!1,showTimeInput:!1,showPreviousMonths:!1,showMonthYearPicker:!1,showQuarterYearPicker:!1,strictParsing:!1,timeIntervals:30,timeCaption:\"Time\",previousMonthButtonLabel:\"Previous Month\",nextMonthButtonLabel:\"Next Month\",previousYearButtonLabel:\"Previous Year\",nextYearButtonLabel:\"Next Year\",timeInputLabel:\"Time\",enableTabLoop:!0,renderDayContents:function(e){return e},inlineFocusSelectedMonth:!1,showPopperArrow:!0,excludeScrollbar:!0,customTimeInput:null}}}]),de(r,[{key:\"componentDidUpdate\",value:function(e,t){var r,n;e.inline&&(r=e.selected,n=this.props.selected,r&&n?b(r)!==b(n)||M(r)!==M(n):r!==n)&&this.setPreSelection(this.props.selected),void 0!==this.state.monthSelectedIn&&e.monthsShown!==this.props.monthsShown&&this.setState({monthSelectedIn:0}),e.highlightDates!==this.props.highlightDates&&this.setState({highlightDates:Ze(this.props.highlightDates)}),t.focused||Ie(e.selected,this.props.selected)||this.setState({inputValue:null}),t.open!==this.state.open&&(!1===t.open&&!0===this.state.open&&this.props.onCalendarOpen(),!0===t.open&&!1===this.state.open&&this.props.onCalendarClose())}},{key:\"componentWillUnmount\",value:function(){this.clearPreventFocusTimeout()}},{key:\"render\",value:function(){var e=this.renderCalendar();return this.props.inline&&!this.props.withPortal?e:this.props.withPortal?t.createElement(\"div\",null,this.props.inline?null:t.createElement(\"div\",{className:\"react-datepicker__input-container\"},this.renderDateInput(),this.renderClearButton()),this.state.open||this.props.inline?t.createElement(\"div\",{className:\"react-datepicker__portal\"},e):null):t.createElement(bt,{className:this.props.popperClassName,wrapperClassName:this.props.wrapperClassName,hidePopper:!this.isCalendarOpen(),popperModifiers:this.props.popperModifiers,targetComponent:t.createElement(\"div\",{className:\"react-datepicker__input-container\"},this.renderDateInput(),this.renderClearButton()),popperContainer:this.props.popperContainer,popperComponent:e,popperPlacement:this.props.popperPlacement,popperProps:this.props.popperProps,popperOnKeyDown:this.onPopperKeyDown,enableTabLoop:this.props.enableTabLoop})}}]),r}(t.Component),Et=\"input\",Nt=\"navigate\";e.CalendarContainer=Dt,e.default=Pt,e.getDefaultLocale=qe,e.registerLocale=function(e,t){var r=\"undefined\"!=typeof window?window:global;r.__localeData__||(r.__localeData__={}),r.__localeData__[e]=t},e.setDefaultLocale=function(e){(\"undefined\"!=typeof window?window:global).__localeId__=e},Object.defineProperty(e,\"__esModule\",{value:!0})}));\n","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _implementation = require('./implementation');\n\nvar _implementation2 = _interopRequireDefault(_implementation);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _react2.default.createContext || _implementation2.default;\nmodule.exports = exports['default'];","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n\"use strict\";\r\n\r\nimport { IAppInsightsCore } from \"../JavaScriptSDK.Interfaces/IAppInsightsCore\"\r\nimport { IConfiguration } from \"../JavaScriptSDK.Interfaces/IConfiguration\";\r\nimport { IDiagnosticLogger } from '../JavaScriptSDK.Interfaces/IDiagnosticLogger';\r\nimport { IPlugin, ITelemetryPlugin } from \"../JavaScriptSDK.Interfaces/ITelemetryPlugin\";\r\nimport { ITelemetryItem } from \"../JavaScriptSDK.Interfaces/ITelemetryItem\";\r\nimport { IProcessTelemetryContext } from \"../JavaScriptSDK.Interfaces/IProcessTelemetryContext\";\r\nimport { ITelemetryPluginChain } from \"../JavaScriptSDK.Interfaces/ITelemetryPluginChain\";\r\nimport { CoreUtils } from \"./CoreUtils\";\r\nimport { ProcessTelemetryContext } from './ProcessTelemetryContext';\r\n\r\nlet _isFunction = CoreUtils.isFunction;\r\nlet getPlugin = \"getPlugin\";\r\n\r\n/**\r\n * BaseTelemetryPlugin provides a basic implementation of the ITelemetryPlugin interface so that plugins\r\n * can avoid implementation the same set of boiler plate code as well as provide a base\r\n * implementation so that new default implementations can be added without breaking all plugins.\r\n */\r\nexport abstract class BaseTelemetryPlugin implements ITelemetryPlugin {\r\n\r\n /**\r\n * Call back for telemetry processing before it it is sent\r\n * @param env - This is the current event being reported\r\n * @param itemCtx - This is the context for the current request, ITelemetryPlugin instances \r\n * can optionally use this to access the current core instance or define / pass additional information\r\n * to later plugins (vs appending items to the telemetry item)\r\n */\r\n public processNext: (env: ITelemetryItem, itemCtx: IProcessTelemetryContext) => void;\r\n\r\n /**\r\n * Set next extension for telemetry processing\r\n */\r\n public setNextPlugin: (next: ITelemetryPlugin|ITelemetryPluginChain) => void;\r\n\r\n /**\r\n * Returns the current diagnostic logger that can be used to log issues, if no logger is currently\r\n * assigned a new default one will be created and returned.\r\n */\r\n public diagLog: (itemCtx?:IProcessTelemetryContext) => IDiagnosticLogger;\r\n\r\n /**\r\n * Returns whether the plugin has been initialized\r\n */\r\n public isInitialized: () => boolean;\r\n\r\n public identifier: string;\r\n public version?: string;\r\n\r\n /**\r\n * Holds the core instance that was used during initialization\r\n */\r\n public core: IAppInsightsCore; \r\n\r\n priority: number;\r\n\r\n /**\r\n * Helper to return the current IProcessTelemetryContext, if the passed argument exists this just\r\n * returns that value (helps with minification for callers), otherwise it will return the configured\r\n * context or a temporary one.\r\n * @param currentCtx - [Optional] The current execution context\r\n */\r\n protected _getTelCtx: (currentCtx?:IProcessTelemetryContext) => IProcessTelemetryContext;\r\n\r\n /**\r\n * Internal helper to allow setting of the internal initialized setting for inherited instances and unit testing\r\n */\r\n protected setInitialized: (isInitialized: boolean) => void;\r\n\r\n /**\r\n * Internal helper to initialize the instance\r\n */\r\n private _baseTelInit: (config: IConfiguration, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?:ITelemetryPluginChain) => void;\r\n\r\n constructor() {\r\n let _self = this;\r\n let _isinitialized = false;\r\n let _rootCtx: IProcessTelemetryContext = null; // Used as the root context, holding the current config and initialized core\r\n let _nextPlugin:ITelemetryPlugin|ITelemetryPluginChain = null; // Used for backward compatibility where plugins don't call the main pipeline\r\n\r\n _self.core = null;\r\n\r\n _self.diagLog = (itemCtx:IProcessTelemetryContext): IDiagnosticLogger => {\r\n return _self._getTelCtx(itemCtx).diagLog();\r\n }\r\n\r\n _self.isInitialized = () => {\r\n return _isinitialized;\r\n }\r\n\r\n _self.setInitialized = (isInitialized: boolean):void => {\r\n _isinitialized = isInitialized;\r\n }\r\n\r\n // _self.getNextPlugin = () => DO NOT IMPLEMENT\r\n // Sub-classes of this base class *should* not be relying on this value and instead\r\n // should use processNext() function. If you require access to the plugin use the\r\n // IProcessTelemetryContext.getNext().getPlugin() while in the pipeline, Note getNext() may return null.\r\n\r\n _self.setNextPlugin = (next: ITelemetryPlugin|ITelemetryPluginChain) => {\r\n _nextPlugin = next;\r\n };\r\n\r\n _self.processNext = (env: ITelemetryItem, itemCtx: IProcessTelemetryContext) => {\r\n if (itemCtx) {\r\n // Normal core execution sequence\r\n itemCtx.processNext(env);\r\n } else if (_nextPlugin && _isFunction(_nextPlugin.processTelemetry)) {\r\n // Looks like backward compatibility or out of band processing. And as it looks \r\n // like a ITelemetryPlugin or ITelemetryPluginChain, just call processTelemetry\r\n _nextPlugin.processTelemetry(env, null);\r\n }\r\n };\r\n\r\n _self._getTelCtx = (currentCtx:IProcessTelemetryContext = null) => {\r\n let itemCtx:IProcessTelemetryContext = currentCtx;\r\n if (!itemCtx) {\r\n let rootCtx = _rootCtx || new ProcessTelemetryContext(null, {}, _self.core);\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n if (_nextPlugin && _nextPlugin[getPlugin]) {\r\n // Looks like a chain object\r\n itemCtx = rootCtx.createNew(null, _nextPlugin[getPlugin]);\r\n } else {\r\n itemCtx = rootCtx.createNew(null, _nextPlugin as ITelemetryPlugin);\r\n }\r\n }\r\n \r\n return itemCtx;\r\n }\r\n\r\n _self._baseTelInit = (config: IConfiguration, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?:ITelemetryPluginChain) => { \r\n if (config) {\r\n // Make sure the extensionConfig exists\r\n config.extensionConfig = config.extensionConfig || [];\r\n }\r\n \r\n if (!pluginChain && core) {\r\n // Get the first plugin from the core\r\n pluginChain = core.getProcessTelContext().getNext();\r\n }\r\n \r\n let nextPlugin:IPlugin = _nextPlugin as IPlugin;\r\n if (_nextPlugin && _nextPlugin[getPlugin]) {\r\n // If it looks like a proxy/chain then get the plugin\r\n nextPlugin = _nextPlugin[getPlugin]();\r\n }\r\n\r\n // Support legacy plugins where core was defined as a property\r\n _self.core = core;\r\n _rootCtx = new ProcessTelemetryContext(pluginChain, config, core, nextPlugin);\r\n _isinitialized = true;\r\n }\r\n }\r\n\r\n public initialize(config: IConfiguration, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?:ITelemetryPluginChain): void {\r\n this._baseTelInit(config, core, extensions, pluginChain);\r\n }\r\n\r\n public abstract processTelemetry(env: ITelemetryItem, itemCtx?: IProcessTelemetryContext): void;\r\n}\r\n","import invariant from 'invariant';\n\nvar noop = function noop() {};\n\nfunction readOnlyPropType(handler, name) {\n return function (props, propName) {\n if (props[propName] !== undefined) {\n if (!props[handler]) {\n return new Error(\"You have provided a `\" + propName + \"` prop to `\" + name + \"` \" + (\"without an `\" + handler + \"` handler prop. This will render a read-only field. \") + (\"If the field should be mutable use `\" + defaultKey(propName) + \"`. \") + (\"Otherwise, set `\" + handler + \"`.\"));\n }\n }\n };\n}\n\nexport function uncontrolledPropTypes(controlledValues, displayName) {\n var propTypes = {};\n Object.keys(controlledValues).forEach(function (prop) {\n // add default propTypes for folks that use runtime checks\n propTypes[defaultKey(prop)] = noop;\n\n if (process.env.NODE_ENV !== 'production') {\n var handler = controlledValues[prop];\n !(typeof handler === 'string' && handler.trim().length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Uncontrollable - [%s]: the prop `%s` needs a valid handler key name in order to make it uncontrollable', displayName, prop) : invariant(false) : void 0;\n propTypes[prop] = readOnlyPropType(handler, displayName);\n }\n });\n return propTypes;\n}\nexport function isProp(props, prop) {\n return props[prop] !== undefined;\n}\nexport function defaultKey(key) {\n return 'default' + key.charAt(0).toUpperCase() + key.substr(1);\n}\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nexport function canAcceptRef(component) {\n return !!component && (typeof component !== 'function' || component.prototype && component.prototype.isReactComponent);\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\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/**\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\nexport default toNumber;\n","import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nexport default toFinite;\n","import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n","import baseSlice from './_baseSlice.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\nfunction chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n}\n\nexport default chunk;\n","import ownerWindow from './ownerWindow';\nexport default function getComputedStyle(node, psuedoElement) {\n return ownerWindow(node).getComputedStyle(node, psuedoElement);\n}","import ownerDocument from './ownerDocument';\nexport default function ownerWindow(node) {\n var doc = ownerDocument(node);\n return doc && doc.defaultView || window;\n}","var rUpper = /([A-Z])/g;\nexport default function hyphenate(string) {\n return string.replace(rUpper, '-$1').toLowerCase();\n}","/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js\n */\nimport hyphenate from './hyphenate';\nvar msPattern = /^ms-/;\nexport default function hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}","var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;\nexport default function isTransform(value) {\n return !!(value && supportedTransforms.test(value));\n}","import getComputedStyle from './getComputedStyle';\nimport hyphenate from './hyphenateStyle';\nimport isTransform from './isTransform';\n\nfunction style(node, property) {\n var css = '';\n var transforms = '';\n\n if (typeof property === 'string') {\n return node.style.getPropertyValue(hyphenate(property)) || getComputedStyle(node).getPropertyValue(hyphenate(property));\n }\n\n Object.keys(property).forEach(function (key) {\n var value = property[key];\n\n if (!value && value !== 0) {\n node.style.removeProperty(hyphenate(key));\n } else if (isTransform(key)) {\n transforms += key + \"(\" + value + \") \";\n } else {\n css += hyphenate(key) + \": \" + value + \";\";\n }\n });\n\n if (transforms) {\n css += \"transform: \" + transforms + \";\";\n }\n\n node.style.cssText += \";\" + css;\n}\n\nexport default style;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport css from './css';\nimport getOffset from './offset';\nimport getOffsetParent from './offsetParent';\nimport scrollLeft from './scrollLeft';\nimport scrollTop from './scrollTop';\n\nvar nodeName = function nodeName(node) {\n return node.nodeName && node.nodeName.toLowerCase();\n};\n\nexport default function position(node, offsetParent) {\n var parentOffset = {\n top: 0,\n left: 0\n };\n var offset; // Fixed elements are offset from window (parentOffset = {top:0, left: 0},\n // because it is its only offset parent\n\n if (css(node, 'position') === 'fixed') {\n offset = node.getBoundingClientRect();\n } else {\n var parent = offsetParent || getOffsetParent(node);\n offset = getOffset(node);\n if (nodeName(parent) !== 'html') parentOffset = getOffset(parent);\n var borderTop = String(css(parent, 'borderTopWidth') || 0);\n parentOffset.top += parseInt(borderTop, 10) - scrollTop(parent) || 0;\n var borderLeft = String(css(parent, 'borderLeftWidth') || 0);\n parentOffset.left += parseInt(borderLeft, 10) - scrollLeft(parent) || 0;\n }\n\n var marginTop = String(css(node, 'marginTop') || 0);\n var marginLeft = String(css(node, 'marginLeft') || 0); // Subtract parent offsets and node margins\n\n return _extends({}, offset, {\n top: offset.top - parentOffset.top - (parseInt(marginTop, 10) || 0),\n left: offset.left - parentOffset.left - (parseInt(marginLeft, 10) || 0)\n });\n}","import css from './css';\nimport ownerDocument from './ownerDocument';\n\nvar isHTMLElement = function isHTMLElement(e) {\n return !!e && 'offsetParent' in e;\n};\n\nexport default function offsetParent(node) {\n var doc = ownerDocument(node);\n var parent = node && node.offsetParent;\n\n while (isHTMLElement(parent) && parent.nodeName !== 'HTML' && css(parent, 'position') === 'static') {\n parent = parent.offsetParent;\n }\n\n return parent || doc.documentElement;\n}","import { useState } from 'react';\n/**\n * A convenience hook around `useState` designed to be paired with\n * the component [callback ref](https://reactjs.org/docs/refs-and-the-dom.html#callback-refs) api.\n * Callback refs are useful over `useRef()` when you need to respond to the ref being set\n * instead of lazily accessing it in an effect.\n *\n * ```ts\n * const [element, attachRef] = useCallbackRef()\n *\n * useEffect(() => {\n * if (!element) return\n *\n * const calendar = new FullCalendar.Calendar(element)\n *\n * return () => {\n * calendar.destroy()\n * }\n * }, [element])\n *\n * return
\n * ```\n */\n\nexport default function useCallbackRef() {\n return useState(null);\n}","import { useMemo } from 'react';\n\nvar toFnRef = function toFnRef(ref) {\n return !ref || typeof ref === 'function' ? ref : function (value) {\n ref.current = value;\n };\n};\n\nexport function mergeRefs(refA, refB) {\n var a = toFnRef(refA);\n var b = toFnRef(refB);\n return function (value) {\n if (a) a(value);\n if (b) b(value);\n };\n}\n/**\n * Create and returns a single callback ref composed from two other Refs.\n *\n * ```tsx\n * const Button = React.forwardRef((props, ref) => {\n * const [element, attachRef] = useCallbackRef();\n * const mergedRef = useMergedRefs(ref, attachRef);\n *\n * return \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n var node = ReactDOM.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n // allows for nested Transitions\n return React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, children(status, childProps));\n }\n\n var child = React.Children.only(children);\n return (// allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, React.cloneElement(child, childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the\n * `` component mounts. If you want to transition on the first\n * mount set `appear` to `true`, and the component will transition in as soon\n * as the `` mounts.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\nexport default Transition;","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n /**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React, { Component, isValidElement, cloneElement } from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport { Transition, TransitionGroup } from 'react-transition-group';\nimport { render } from 'react-dom';\n\nvar POSITION = {\n TOP_LEFT: 'top-left',\n TOP_RIGHT: 'top-right',\n TOP_CENTER: 'top-center',\n BOTTOM_LEFT: 'bottom-left',\n BOTTOM_RIGHT: 'bottom-right',\n BOTTOM_CENTER: 'bottom-center'\n};\nvar TYPE = {\n INFO: 'info',\n SUCCESS: 'success',\n WARNING: 'warning',\n ERROR: 'error',\n DEFAULT: 'default'\n};\nvar ACTION = {\n SHOW: 0,\n CLEAR: 1,\n DID_MOUNT: 2,\n WILL_UNMOUNT: 3,\n ON_CHANGE: 4\n};\nvar NOOP = function NOOP() {};\nvar RT_NAMESPACE = 'Toastify';\n\nfunction isValidDelay(val) {\n return typeof val === 'number' && !isNaN(val) && val > 0;\n}\nfunction objectValues(obj) {\n return Object.keys(obj).map(function (key) {\n return obj[key];\n });\n}\nvar canUseDom = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nfunction withRequired(fn) {\n fn.isRequired = function (props, propName, componentName) {\n var prop = props[propName];\n\n if (typeof prop === 'undefined') {\n return new Error(\"The prop \" + propName + \" is marked as required in \\n \" + componentName + \", but its value is undefined.\");\n }\n\n fn(props, propName, componentName);\n };\n\n return fn;\n}\n\nvar falseOrDelay = withRequired(function (props, propName, componentName) {\n var prop = props[propName];\n\n if (prop !== false && !isValidDelay(prop)) {\n return new Error(componentName + \" expect \" + propName + \" \\n to be a valid Number > 0 or equal to false. \" + prop + \" given.\");\n }\n\n return null;\n});\n\nvar eventManager = {\n list: new Map(),\n emitQueue: new Map(),\n on: function on(event, callback) {\n this.list.has(event) || this.list.set(event, []);\n this.list.get(event).push(callback);\n return this;\n },\n off: function off(event) {\n this.list.delete(event);\n return this;\n },\n cancelEmit: function cancelEmit(event) {\n var timers = this.emitQueue.get(event);\n\n if (timers) {\n timers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n this.emitQueue.delete(event);\n }\n\n return this;\n },\n\n /**\n * Enqueue the event at the end of the call stack\n * Doing so let the user call toast as follow:\n * toast('1')\n * toast('2')\n * toast('3')\n * Without setTimemout the code above will not work\n */\n emit: function emit(event) {\n var _this = this;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n this.list.has(event) && this.list.get(event).forEach(function (callback) {\n var timer = setTimeout(function () {\n callback.apply(void 0, args);\n }, 0);\n _this.emitQueue.has(event) || _this.emitQueue.set(event, []);\n\n _this.emitQueue.get(event).push(timer);\n });\n }\n};\n\nfunction cssTransition(_ref) {\n var enter = _ref.enter,\n exit = _ref.exit,\n _ref$duration = _ref.duration,\n duration = _ref$duration === void 0 ? 750 : _ref$duration,\n _ref$appendPosition = _ref.appendPosition,\n appendPosition = _ref$appendPosition === void 0 ? false : _ref$appendPosition;\n return function Animation(_ref2) {\n var children = _ref2.children,\n position = _ref2.position,\n preventExitTransition = _ref2.preventExitTransition,\n props = _objectWithoutPropertiesLoose(_ref2, [\"children\", \"position\", \"preventExitTransition\"]);\n\n var enterClassName = appendPosition ? enter + \"--\" + position : enter;\n var exitClassName = appendPosition ? exit + \"--\" + position : exit;\n var enterDuration, exitDuration;\n\n if (Array.isArray(duration) && duration.length === 2) {\n enterDuration = duration[0];\n exitDuration = duration[1];\n } else {\n enterDuration = exitDuration = duration;\n }\n\n var onEnter = function onEnter(node) {\n node.classList.add(enterClassName);\n node.style.animationFillMode = 'forwards';\n node.style.animationDuration = enterDuration * 0.001 + \"s\";\n };\n\n var onEntered = function onEntered(node) {\n node.classList.remove(enterClassName);\n node.style.cssText = '';\n };\n\n var onExit = function onExit(node) {\n node.classList.add(exitClassName);\n node.style.animationFillMode = 'forwards';\n node.style.animationDuration = exitDuration * 0.001 + \"s\";\n };\n\n return React.createElement(Transition, _extends({}, props, {\n timeout: preventExitTransition ? 0 : {\n enter: enterDuration,\n exit: exitDuration\n },\n onEnter: onEnter,\n onEntered: onEntered,\n onExit: preventExitTransition ? NOOP : onExit\n }), children);\n };\n}\n\nfunction ProgressBar(_ref) {\n var _cx, _animationEvent;\n\n var delay = _ref.delay,\n isRunning = _ref.isRunning,\n closeToast = _ref.closeToast,\n type = _ref.type,\n hide = _ref.hide,\n className = _ref.className,\n userStyle = _ref.style,\n controlledProgress = _ref.controlledProgress,\n progress = _ref.progress,\n rtl = _ref.rtl;\n\n var style = _extends({}, userStyle, {\n animationDuration: delay + \"ms\",\n animationPlayState: isRunning ? 'running' : 'paused',\n opacity: hide ? 0 : 1,\n transform: controlledProgress ? \"scaleX(\" + progress + \")\" : null\n });\n\n var classNames = cx(RT_NAMESPACE + \"__progress-bar\", controlledProgress ? RT_NAMESPACE + \"__progress-bar--controlled\" : RT_NAMESPACE + \"__progress-bar--animated\", RT_NAMESPACE + \"__progress-bar--\" + type, (_cx = {}, _cx[RT_NAMESPACE + \"__progress-bar--rtl\"] = rtl, _cx), className);\n var animationEvent = (_animationEvent = {}, _animationEvent[controlledProgress && progress >= 1 ? 'onTransitionEnd' : 'onAnimationEnd'] = controlledProgress && progress < 1 ? null : closeToast, _animationEvent);\n return React.createElement(\"div\", _extends({\n className: classNames,\n style: style\n }, animationEvent));\n}\n\nProgressBar.propTypes = {\n /**\n * The animation delay which determine when to close the toast\n */\n delay: falseOrDelay.isRequired,\n\n /**\n * Whether or not the animation is running or paused\n */\n isRunning: PropTypes.bool.isRequired,\n\n /**\n * Func to close the current toast\n */\n closeToast: PropTypes.func.isRequired,\n\n /**\n * Support rtl content\n */\n rtl: PropTypes.bool.isRequired,\n\n /**\n * Optional type : info, success ...\n */\n type: PropTypes.string,\n\n /**\n * Hide or not the progress bar\n */\n hide: PropTypes.bool,\n\n /**\n * Optionnal className\n */\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\n /**\n * Controlled progress value\n */\n progress: PropTypes.number,\n\n /**\n * Tell wether or not controlled progress bar is used\n */\n controlledProgress: PropTypes.bool\n};\nProgressBar.defaultProps = {\n type: TYPE.DEFAULT,\n hide: false\n};\n\nfunction getX(e) {\n return e.targetTouches && e.targetTouches.length >= 1 ? e.targetTouches[0].clientX : e.clientX;\n}\n\nfunction getY(e) {\n return e.targetTouches && e.targetTouches.length >= 1 ? e.targetTouches[0].clientY : e.clientY;\n}\n\nvar iLoveInternetExplorer = canUseDom && /(msie|trident)/i.test(navigator.userAgent);\n\nvar Toast =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose(Toast, _Component);\n\n function Toast() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.state = {\n isRunning: true,\n preventExitTransition: false\n };\n _this.flag = {\n canCloseOnClick: true,\n canDrag: false\n };\n _this.drag = {\n start: 0,\n x: 0,\n y: 0,\n deltaX: 0,\n removalDistance: 0\n };\n _this.boundingRect = null;\n _this.ref = null;\n\n _this.pauseToast = function () {\n if (_this.props.autoClose) {\n _this.setState({\n isRunning: false\n });\n }\n };\n\n _this.playToast = function () {\n if (_this.props.autoClose) {\n _this.setState({\n isRunning: true\n });\n }\n };\n\n _this.onDragStart = function (e) {\n _this.flag.canCloseOnClick = true;\n _this.flag.canDrag = true;\n _this.boundingRect = _this.ref.getBoundingClientRect();\n _this.ref.style.transition = '';\n _this.drag.start = _this.drag.x = getX(e.nativeEvent);\n _this.drag.removalDistance = _this.ref.offsetWidth * (_this.props.draggablePercent / 100);\n };\n\n _this.onDragMove = function (e) {\n if (_this.flag.canDrag) {\n if (_this.state.isRunning) {\n _this.pauseToast();\n }\n\n _this.drag.x = getX(e);\n _this.drag.deltaX = _this.drag.x - _this.drag.start;\n _this.drag.y = getY(e); // prevent false positif during a toast click\n\n _this.drag.start !== _this.drag.x && (_this.flag.canCloseOnClick = false);\n _this.ref.style.transform = \"translateX(\" + _this.drag.deltaX + \"px)\";\n _this.ref.style.opacity = 1 - Math.abs(_this.drag.deltaX / _this.drag.removalDistance);\n }\n };\n\n _this.onDragEnd = function (e) {\n if (_this.flag.canDrag) {\n _this.flag.canDrag = false;\n\n if (Math.abs(_this.drag.deltaX) > _this.drag.removalDistance) {\n _this.setState({\n preventExitTransition: true\n }, _this.props.closeToast);\n\n return;\n }\n\n _this.ref.style.transition = 'transform 0.2s, opacity 0.2s';\n _this.ref.style.transform = 'translateX(0)';\n _this.ref.style.opacity = 1;\n }\n };\n\n _this.onDragTransitionEnd = function () {\n if (_this.boundingRect) {\n var _this$boundingRect = _this.boundingRect,\n top = _this$boundingRect.top,\n bottom = _this$boundingRect.bottom,\n left = _this$boundingRect.left,\n right = _this$boundingRect.right;\n\n if (_this.props.pauseOnHover && _this.drag.x >= left && _this.drag.x <= right && _this.drag.y >= top && _this.drag.y <= bottom) {\n _this.pauseToast();\n } else {\n _this.playToast();\n }\n }\n };\n\n _this.onExitTransitionEnd = function () {\n if (iLoveInternetExplorer) {\n _this.props.onExited();\n\n return;\n }\n\n var height = _this.ref.scrollHeight;\n var style = _this.ref.style;\n requestAnimationFrame(function () {\n style.minHeight = 'initial';\n style.height = height + 'px';\n style.transition = 'all 0.4s ';\n requestAnimationFrame(function () {\n style.height = 0;\n style.padding = 0;\n style.margin = 0;\n });\n setTimeout(function () {\n return _this.props.onExited();\n }, 400);\n });\n };\n\n return _this;\n }\n\n var _proto = Toast.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.props.onOpen(this.props.children.props);\n\n if (this.props.draggable) {\n this.bindDragEvents();\n } // Maybe I could bind the event in the ToastContainer and rely on delegation\n\n\n if (this.props.pauseOnFocusLoss) {\n this.bindFocusEvents();\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (prevProps.draggable !== this.props.draggable) {\n if (this.props.draggable) {\n this.bindDragEvents();\n } else {\n this.unbindDragEvents();\n }\n }\n\n if (prevProps.pauseOnFocusLoss !== this.props.pauseOnFocusLoss) {\n if (this.props.pauseOnFocusLoss) {\n this.bindFocusEvents();\n } else {\n this.unbindFocusEvents();\n }\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.props.onClose(this.props.children.props);\n\n if (this.props.draggable) {\n this.unbindDragEvents();\n }\n\n if (this.props.pauseOnFocusLoss) {\n this.unbindFocusEvents();\n }\n };\n\n _proto.bindFocusEvents = function bindFocusEvents() {\n window.addEventListener('focus', this.playToast);\n window.addEventListener('blur', this.pauseToast);\n };\n\n _proto.unbindFocusEvents = function unbindFocusEvents() {\n window.removeEventListener('focus', this.playToast);\n window.removeEventListener('blur', this.pauseToast);\n };\n\n _proto.bindDragEvents = function bindDragEvents() {\n document.addEventListener('mousemove', this.onDragMove);\n document.addEventListener('mouseup', this.onDragEnd);\n document.addEventListener('touchmove', this.onDragMove);\n document.addEventListener('touchend', this.onDragEnd);\n };\n\n _proto.unbindDragEvents = function unbindDragEvents() {\n document.removeEventListener('mousemove', this.onDragMove);\n document.removeEventListener('mouseup', this.onDragEnd);\n document.removeEventListener('touchmove', this.onDragMove);\n document.removeEventListener('touchend', this.onDragEnd);\n };\n\n _proto.render = function render() {\n var _cx,\n _this2 = this;\n\n var _this$props = this.props,\n closeButton = _this$props.closeButton,\n children = _this$props.children,\n autoClose = _this$props.autoClose,\n pauseOnHover = _this$props.pauseOnHover,\n onClick = _this$props.onClick,\n closeOnClick = _this$props.closeOnClick,\n type = _this$props.type,\n hideProgressBar = _this$props.hideProgressBar,\n closeToast = _this$props.closeToast,\n Transition = _this$props.transition,\n position = _this$props.position,\n className = _this$props.className,\n bodyClassName = _this$props.bodyClassName,\n progressClassName = _this$props.progressClassName,\n progressStyle = _this$props.progressStyle,\n updateId = _this$props.updateId,\n role = _this$props.role,\n progress = _this$props.progress,\n rtl = _this$props.rtl;\n var toastProps = {\n className: cx(RT_NAMESPACE + \"__toast\", RT_NAMESPACE + \"__toast--\" + type, (_cx = {}, _cx[RT_NAMESPACE + \"__toast--rtl\"] = rtl, _cx), className)\n };\n\n if (autoClose && pauseOnHover) {\n toastProps.onMouseEnter = this.pauseToast;\n toastProps.onMouseLeave = this.playToast;\n } // prevent toast from closing when user drags the toast\n\n\n if (closeOnClick) {\n toastProps.onClick = function (e) {\n onClick && onClick(e);\n _this2.flag.canCloseOnClick && closeToast();\n };\n }\n\n var controlledProgress = parseFloat(progress) === progress;\n return React.createElement(Transition, {\n in: this.props.in,\n appear: true,\n onExited: this.onExitTransitionEnd,\n position: position,\n preventExitTransition: this.state.preventExitTransition\n }, React.createElement(\"div\", _extends({\n onClick: onClick\n }, toastProps, {\n ref: function ref(_ref) {\n return _this2.ref = _ref;\n },\n onMouseDown: this.onDragStart,\n onTouchStart: this.onDragStart,\n onMouseUp: this.onDragTransitionEnd,\n onTouchEnd: this.onDragTransitionEnd\n }), React.createElement(\"div\", _extends({}, this.props.in && {\n role: role\n }, {\n className: cx(RT_NAMESPACE + \"__toast-body\", bodyClassName)\n }), children), closeButton && closeButton, (autoClose || controlledProgress) && React.createElement(ProgressBar, _extends({}, updateId && !controlledProgress ? {\n key: \"pb-\" + updateId\n } : {}, {\n rtl: rtl,\n delay: autoClose,\n isRunning: this.state.isRunning,\n closeToast: closeToast,\n hide: hideProgressBar,\n type: type,\n style: progressStyle,\n className: progressClassName,\n controlledProgress: controlledProgress,\n progress: progress\n }))));\n };\n\n return Toast;\n}(Component);\n\nToast.propTypes = {\n closeButton: PropTypes.oneOfType([PropTypes.node, PropTypes.bool]).isRequired,\n autoClose: falseOrDelay.isRequired,\n children: PropTypes.node.isRequired,\n closeToast: PropTypes.func.isRequired,\n position: PropTypes.oneOf(objectValues(POSITION)).isRequired,\n pauseOnHover: PropTypes.bool.isRequired,\n pauseOnFocusLoss: PropTypes.bool.isRequired,\n closeOnClick: PropTypes.bool.isRequired,\n transition: PropTypes.func.isRequired,\n rtl: PropTypes.bool.isRequired,\n hideProgressBar: PropTypes.bool.isRequired,\n draggable: PropTypes.bool.isRequired,\n draggablePercent: PropTypes.number.isRequired,\n in: PropTypes.bool,\n onExited: PropTypes.func,\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n type: PropTypes.oneOf(objectValues(TYPE)),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n bodyClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n progressClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n progressStyle: PropTypes.object,\n progress: PropTypes.number,\n updateId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n ariaLabel: PropTypes.string,\n containerId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n role: PropTypes.string\n};\nToast.defaultProps = {\n type: TYPE.DEFAULT,\n in: true,\n onOpen: NOOP,\n onClose: NOOP,\n className: null,\n bodyClassName: null,\n progressClassName: null,\n updateId: null\n};\n\nfunction CloseButton(_ref) {\n var closeToast = _ref.closeToast,\n type = _ref.type,\n ariaLabel = _ref.ariaLabel;\n return React.createElement(\"button\", {\n className: RT_NAMESPACE + \"__close-button \" + RT_NAMESPACE + \"__close-button--\" + type,\n type: \"button\",\n onClick: function onClick(e) {\n e.stopPropagation();\n closeToast(e);\n },\n \"aria-label\": ariaLabel\n }, \"\\u2716\\uFE0E\");\n}\n\nCloseButton.propTypes = {\n closeToast: PropTypes.func,\n arialLabel: PropTypes.string\n};\nCloseButton.defaultProps = {\n ariaLabel: 'close'\n};\n\nvar Bounce = cssTransition({\n enter: RT_NAMESPACE + \"__bounce-enter\",\n exit: RT_NAMESPACE + \"__bounce-exit\",\n appendPosition: true\n});\nvar Slide = cssTransition({\n enter: RT_NAMESPACE + \"__slide-enter\",\n exit: RT_NAMESPACE + \"__slide-exit\",\n duration: [450, 750],\n appendPosition: true\n});\nvar Zoom = cssTransition({\n enter: RT_NAMESPACE + \"__zoom-enter\",\n exit: RT_NAMESPACE + \"__zoom-exit\"\n});\nvar Flip = cssTransition({\n enter: RT_NAMESPACE + \"__flip-enter\",\n exit: RT_NAMESPACE + \"__flip-exit\"\n});\n\nvar ToastContainer =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose(ToastContainer, _Component);\n\n function ToastContainer() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.state = {\n toast: []\n };\n _this.toastKey = 1;\n _this.collection = {};\n\n _this.isToastActive = function (id) {\n return _this.state.toast.indexOf(id) !== -1;\n };\n\n return _this;\n }\n\n var _proto = ToastContainer.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n eventManager.cancelEmit(ACTION.WILL_UNMOUNT).on(ACTION.SHOW, function (content, options) {\n return _this2.ref ? _this2.buildToast(content, options) : null;\n }).on(ACTION.CLEAR, function (id) {\n return !_this2.ref ? null : id == null ? _this2.clear() : _this2.removeToast(id);\n }).emit(ACTION.DID_MOUNT, this);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n eventManager.emit(ACTION.WILL_UNMOUNT, this);\n };\n\n _proto.removeToast = function removeToast(id) {\n this.setState({\n toast: this.state.toast.filter(function (v) {\n return v !== id;\n })\n }, this.dispatchChange);\n };\n\n _proto.dispatchChange = function dispatchChange() {\n eventManager.emit(ACTION.ON_CHANGE, this.state.toast.length, this.props.containerId);\n };\n\n _proto.makeCloseButton = function makeCloseButton(toastClose, toastId, type) {\n var _this3 = this;\n\n var closeButton = this.props.closeButton;\n\n if (isValidElement(toastClose) || toastClose === false) {\n closeButton = toastClose;\n } else if (toastClose === true) {\n closeButton = this.props.closeButton && typeof this.props.closeButton !== 'boolean' ? this.props.closeButton : React.createElement(CloseButton, null);\n }\n\n return closeButton === false ? false : cloneElement(closeButton, {\n closeToast: function closeToast() {\n return _this3.removeToast(toastId);\n },\n type: type\n });\n };\n\n _proto.getAutoCloseDelay = function getAutoCloseDelay(toastAutoClose) {\n return toastAutoClose === false || isValidDelay(toastAutoClose) ? toastAutoClose : this.props.autoClose;\n };\n\n _proto.canBeRendered = function canBeRendered(content) {\n return isValidElement(content) || typeof content === 'string' || typeof content === 'number' || typeof content === 'function';\n };\n\n _proto.parseClassName = function parseClassName(prop) {\n if (typeof prop === 'string') {\n return prop;\n } else if (prop !== null && typeof prop === 'object' && 'toString' in prop) {\n return prop.toString();\n }\n\n return null;\n };\n\n _proto.belongToContainer = function belongToContainer(_ref) {\n var containerId = _ref.containerId;\n return containerId === this.props.containerId;\n };\n\n _proto.buildToast = function buildToast(content, _ref2) {\n var _this4 = this;\n\n var delay = _ref2.delay,\n options = _objectWithoutPropertiesLoose(_ref2, [\"delay\"]);\n\n if (!this.canBeRendered(content)) {\n throw new Error(\"The element you provided cannot be rendered. You provided an element of type \" + typeof content);\n }\n\n var toastId = options.toastId,\n updateId = options.updateId; // Check for multi-container and also for duplicate toastId\n // Maybe it would be better to extract it\n\n if (this.props.enableMultiContainer && !this.belongToContainer(options) || this.isToastActive(toastId) && updateId == null) {\n return;\n }\n\n var closeToast = function closeToast() {\n return _this4.removeToast(toastId);\n };\n\n var toastOptions = {\n id: toastId,\n // ⚠️ if no options.key, this.toastKey - 1 is assigned\n key: options.key || this.toastKey++,\n type: options.type,\n closeToast: closeToast,\n updateId: options.updateId,\n rtl: this.props.rtl,\n position: options.position || this.props.position,\n transition: options.transition || this.props.transition,\n className: this.parseClassName(options.className || this.props.toastClassName),\n bodyClassName: this.parseClassName(options.bodyClassName || this.props.bodyClassName),\n onClick: options.onClick || this.props.onClick,\n closeButton: this.makeCloseButton(options.closeButton, toastId, options.type),\n pauseOnHover: typeof options.pauseOnHover === 'boolean' ? options.pauseOnHover : this.props.pauseOnHover,\n pauseOnFocusLoss: typeof options.pauseOnFocusLoss === 'boolean' ? options.pauseOnFocusLoss : this.props.pauseOnFocusLoss,\n draggable: typeof options.draggable === 'boolean' ? options.draggable : this.props.draggable,\n draggablePercent: typeof options.draggablePercent === 'number' && !isNaN(options.draggablePercent) ? options.draggablePercent : this.props.draggablePercent,\n closeOnClick: typeof options.closeOnClick === 'boolean' ? options.closeOnClick : this.props.closeOnClick,\n progressClassName: this.parseClassName(options.progressClassName || this.props.progressClassName),\n progressStyle: this.props.progressStyle,\n autoClose: this.getAutoCloseDelay(options.autoClose),\n hideProgressBar: typeof options.hideProgressBar === 'boolean' ? options.hideProgressBar : this.props.hideProgressBar,\n progress: parseFloat(options.progress),\n role: typeof options.role === 'string' ? options.role : this.props.role\n };\n typeof options.onOpen === 'function' && (toastOptions.onOpen = options.onOpen);\n typeof options.onClose === 'function' && (toastOptions.onClose = options.onClose); // add closeToast function to react component only\n\n if (isValidElement(content) && typeof content.type !== 'string' && typeof content.type !== 'number') {\n content = cloneElement(content, {\n closeToast: closeToast\n });\n } else if (typeof content === 'function') {\n content = content({\n closeToast: closeToast\n });\n }\n\n if (isValidDelay(delay)) {\n setTimeout(function () {\n _this4.appendToast(toastOptions, content, options.staleToastId);\n }, delay);\n } else {\n this.appendToast(toastOptions, content, options.staleToastId);\n }\n };\n\n _proto.appendToast = function appendToast(options, content, staleToastId) {\n var _extends2;\n\n var id = options.id,\n updateId = options.updateId;\n this.collection = _extends({}, this.collection, (_extends2 = {}, _extends2[id] = {\n options: options,\n content: content,\n position: options.position\n }, _extends2));\n this.setState({\n toast: (updateId ? [].concat(this.state.toast) : [].concat(this.state.toast, [id])).filter(function (id) {\n return id !== staleToastId;\n })\n }, this.dispatchChange);\n };\n\n _proto.clear = function clear() {\n this.setState({\n toast: []\n });\n };\n\n _proto.renderToast = function renderToast() {\n var _this5 = this;\n\n var toastToRender = {};\n var _this$props = this.props,\n className = _this$props.className,\n style = _this$props.style,\n newestOnTop = _this$props.newestOnTop;\n var collection = newestOnTop ? Object.keys(this.collection).reverse() : Object.keys(this.collection); // group toast by position\n\n collection.forEach(function (toastId) {\n var _this5$collection$toa = _this5.collection[toastId],\n position = _this5$collection$toa.position,\n options = _this5$collection$toa.options,\n content = _this5$collection$toa.content;\n toastToRender[position] || (toastToRender[position] = []);\n\n if (_this5.state.toast.indexOf(options.id) !== -1) {\n toastToRender[position].push(React.createElement(Toast, _extends({}, options, {\n isDocumentHidden: _this5.state.isDocumentHidden,\n key: \"toast-\" + options.key\n }), content));\n } else {\n toastToRender[position].push(null);\n delete _this5.collection[toastId];\n }\n });\n return Object.keys(toastToRender).map(function (position) {\n var _cx;\n\n var disablePointer = toastToRender[position].length === 1 && toastToRender[position][0] === null;\n var props = {\n className: cx(RT_NAMESPACE + \"__toast-container\", RT_NAMESPACE + \"__toast-container--\" + position, (_cx = {}, _cx[RT_NAMESPACE + \"__toast-container--rtl\"] = _this5.props.rtl, _cx), _this5.parseClassName(className)),\n style: disablePointer ? _extends({}, style, {\n pointerEvents: 'none'\n }) : _extends({}, style)\n };\n return React.createElement(TransitionGroup, _extends({}, props, {\n key: \"container-\" + position\n }), toastToRender[position]);\n });\n };\n\n _proto.render = function render() {\n var _this6 = this;\n\n return React.createElement(\"div\", {\n ref: function ref(node) {\n return _this6.ref = node;\n },\n className: \"\" + RT_NAMESPACE\n }, this.renderToast());\n };\n\n return ToastContainer;\n}(Component);\n\nToastContainer.propTypes = {\n /**\n * Set toast position\n */\n position: PropTypes.oneOf(objectValues(POSITION)),\n\n /**\n * Disable or set autoClose delay\n */\n autoClose: falseOrDelay,\n\n /**\n * Disable or set a custom react element for the close button\n */\n closeButton: PropTypes.oneOfType([PropTypes.node, PropTypes.bool]),\n\n /**\n * Hide or not progress bar when autoClose is enabled\n */\n hideProgressBar: PropTypes.bool,\n\n /**\n * Pause toast duration on hover\n */\n pauseOnHover: PropTypes.bool,\n\n /**\n * Dismiss toast on click\n */\n closeOnClick: PropTypes.bool,\n\n /**\n * Newest on top\n */\n newestOnTop: PropTypes.bool,\n\n /**\n * An optional className\n */\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\n /**\n * An optional style\n */\n style: PropTypes.object,\n\n /**\n * An optional className for the toast\n */\n toastClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\n /**\n * An optional className for the toast body\n */\n bodyClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\n /**\n * An optional className for the toast progress bar\n */\n progressClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\n /**\n * An optional style for the toast progress bar\n */\n progressStyle: PropTypes.object,\n\n /**\n * Define enter and exit transition using react-transition-group\n */\n transition: PropTypes.func,\n\n /**\n * Support rtl display\n */\n rtl: PropTypes.bool,\n\n /**\n * Allow toast to be draggable\n */\n draggable: PropTypes.bool,\n\n /**\n * The percentage of the toast's width it takes for a drag to dismiss a toast\n */\n draggablePercent: PropTypes.number,\n\n /**\n * Pause the toast on focus loss\n */\n pauseOnFocusLoss: PropTypes.bool,\n\n /**\n * Show the toast only if it includes containerId and it's the same as containerId\n */\n enableMultiContainer: PropTypes.bool,\n\n /**\n * Set id to handle multiple container\n */\n containerId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n /**\n * Set role attribute for the toast body\n */\n role: PropTypes.string,\n\n /**\n * Fired when clicking inside toaster\n */\n onClick: PropTypes.func\n};\nToastContainer.defaultProps = {\n position: POSITION.TOP_RIGHT,\n transition: Bounce,\n rtl: false,\n autoClose: 5000,\n hideProgressBar: false,\n closeButton: React.createElement(CloseButton, null),\n pauseOnHover: true,\n pauseOnFocusLoss: true,\n closeOnClick: true,\n newestOnTop: false,\n draggable: true,\n draggablePercent: 80,\n className: null,\n style: null,\n toastClassName: null,\n bodyClassName: null,\n progressClassName: null,\n progressStyle: null,\n role: 'alert'\n};\n\nvar containers = new Map();\nvar latestInstance = null;\nvar containerDomNode = null;\nvar containerConfig = {};\nvar queue = [];\nvar lazy = false;\n/**\n * Check whether any container is currently mounted in the DOM\n */\n\nfunction isAnyContainerMounted() {\n return containers.size > 0;\n}\n/**\n * Get the container by id. Returns the last container declared when no id is given.\n */\n\n\nfunction getContainer(containerId) {\n if (!isAnyContainerMounted()) return null;\n if (!containerId) return containers.get(latestInstance);\n return containers.get(containerId);\n}\n/**\n * Get the toast by id, given it's in the DOM, otherwise returns null\n */\n\n\nfunction getToast(toastId, _ref) {\n var containerId = _ref.containerId;\n var container = getContainer(containerId);\n if (!container) return null;\n var toast = container.collection[toastId];\n if (typeof toast === 'undefined') return null;\n return toast;\n}\n/**\n * Merge provided options with the defaults settings and generate the toastId\n */\n\n\nfunction mergeOptions(options, type) {\n return _extends({}, options, {\n type: type,\n toastId: getToastId(options)\n });\n}\n/**\n * Generate a random toastId\n */\n\n\nfunction generateToastId() {\n return (Math.random().toString(36) + Date.now().toString(36)).substr(2, 10);\n}\n/**\n * Generate a toastId or use the one provided\n */\n\n\nfunction getToastId(options) {\n if (options && (typeof options.toastId === 'string' || typeof options.toastId === 'number' && !isNaN(options.toastId))) {\n return options.toastId;\n }\n\n return generateToastId();\n}\n/**\n * If the container is not mounted, the toast is enqueued and\n * the container lazy mounted\n */\n\n\nfunction dispatchToast(content, options) {\n if (isAnyContainerMounted()) {\n eventManager.emit(ACTION.SHOW, content, options);\n } else {\n queue.push({\n action: ACTION.SHOW,\n content: content,\n options: options\n });\n\n if (lazy && canUseDom) {\n lazy = false;\n containerDomNode = document.createElement('div');\n document.body.appendChild(containerDomNode);\n render(React.createElement(ToastContainer, containerConfig), containerDomNode);\n }\n }\n\n return options.toastId;\n}\n\nvar toast = function toast(content, options) {\n return dispatchToast(content, mergeOptions(options, options && options.type || TYPE.DEFAULT));\n};\n/**\n * For each available type create a shortcut\n */\n\n\nvar _loop = function _loop(t) {\n if (TYPE[t] !== TYPE.DEFAULT) {\n toast[TYPE[t].toLowerCase()] = function (content, options) {\n return dispatchToast(content, mergeOptions(options, options && options.type || TYPE[t]));\n };\n }\n};\n\nfor (var t in TYPE) {\n _loop(t);\n}\n/**\n * Maybe I should remove warning in favor of warn, I don't know\n */\n\n\ntoast.warn = toast.warning;\n/**\n * Remove toast programmaticaly\n */\n\ntoast.dismiss = function (id) {\n if (id === void 0) {\n id = null;\n }\n\n return isAnyContainerMounted() && eventManager.emit(ACTION.CLEAR, id);\n};\n/**\n * return true if one container is displaying the toast\n */\n\n\ntoast.isActive = function (id) {\n var isToastActive = false;\n\n if (containers.size > 0) {\n containers.forEach(function (container) {\n if (container.isToastActive(id)) {\n isToastActive = true;\n }\n });\n }\n\n return isToastActive;\n};\n\ntoast.update = function (toastId, options) {\n if (options === void 0) {\n options = {};\n }\n\n // if you call toast and toast.update directly nothing will be displayed\n // this is why I defered the update\n setTimeout(function () {\n var toast = getToast(toastId, options);\n\n if (toast) {\n var oldOptions = toast.options,\n oldContent = toast.content;\n\n var nextOptions = _extends({}, oldOptions, {}, options, {\n toastId: options.toastId || toastId\n });\n\n if (!options.toastId || options.toastId === toastId) {\n nextOptions.updateId = generateToastId();\n } else {\n nextOptions.staleToastId = toastId;\n }\n\n var content = typeof nextOptions.render !== 'undefined' ? nextOptions.render : oldContent;\n delete nextOptions.render;\n dispatchToast(content, nextOptions);\n }\n }, 0);\n};\n/**\n * Used for controlled progress bar.\n */\n\n\ntoast.done = function (id) {\n toast.update(id, {\n progress: 1\n });\n};\n/**\n * Track changes. The callback get the number of toast displayed\n */\n\n\ntoast.onChange = function (callback) {\n if (typeof callback === 'function') {\n eventManager.on(ACTION.ON_CHANGE, callback);\n }\n};\n/**\n * Configure the ToastContainer when lazy mounted\n */\n\n\ntoast.configure = function (config) {\n lazy = true;\n containerConfig = config;\n};\n\ntoast.POSITION = POSITION;\ntoast.TYPE = TYPE;\n/**\n * Wait until the ToastContainer is mounted to dispatch the toast\n * and attach isActive method\n */\n\neventManager.on(ACTION.DID_MOUNT, function (containerInstance) {\n latestInstance = containerInstance.props.containerId || containerInstance;\n containers.set(latestInstance, containerInstance);\n queue.forEach(function (item) {\n eventManager.emit(item.action, item.content, item.options);\n });\n queue = [];\n}).on(ACTION.WILL_UNMOUNT, function (containerInstance) {\n if (containerInstance) containers.delete(containerInstance.props.containerId || containerInstance);else containers.clear();\n\n if (containers.size === 0) {\n eventManager.off(ACTION.SHOW).off(ACTION.CLEAR);\n }\n\n if (canUseDom && containerDomNode) {\n document.body.removeChild(containerDomNode);\n }\n});\n\nexport { Bounce, Flip, Slide, ToastContainer, POSITION as ToastPosition, TYPE as ToastType, Zoom, cssTransition, toast };\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'params', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy'];\n var defaultToConfig2Keys = [\n 'baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress',\n 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath'\n ];\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys);\n\n var otherKeys = Object\n .keys(config2)\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n return config;\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.getEventNodeFromPoint = getEventNodeFromPoint;\nexports.isEvent = isEvent;\nexports.objectsCollide = objectsCollide;\nexports.getBoundsForNode = getBoundsForNode;\nexports.default = void 0;\n\nvar _contains = _interopRequireDefault(require(\"dom-helpers/contains\"));\n\nvar _closest = _interopRequireDefault(require(\"dom-helpers/closest\"));\n\nvar _listen = _interopRequireDefault(require(\"dom-helpers/listen\"));\n\nfunction addEventListener(type, handler, target) {\n if (target === void 0) {\n target = document;\n }\n\n return (0, _listen.default)(target, type, handler, {\n passive: false\n });\n}\n\nfunction isOverContainer(container, x, y) {\n return !container || (0, _contains.default)(container, document.elementFromPoint(x, y));\n}\n\nfunction getEventNodeFromPoint(node, _ref) {\n var clientX = _ref.clientX,\n clientY = _ref.clientY;\n var target = document.elementFromPoint(clientX, clientY);\n return (0, _closest.default)(target, '.rbc-event', node);\n}\n\nfunction isEvent(node, bounds) {\n return !!getEventNodeFromPoint(node, bounds);\n}\n\nfunction getEventCoordinates(e) {\n var target = e;\n\n if (e.touches && e.touches.length) {\n target = e.touches[0];\n }\n\n return {\n clientX: target.clientX,\n clientY: target.clientY,\n pageX: target.pageX,\n pageY: target.pageY\n };\n}\n\nvar clickTolerance = 5;\nvar clickInterval = 250;\n\nvar Selection =\n/*#__PURE__*/\nfunction () {\n function Selection(node, _temp) {\n var _ref2 = _temp === void 0 ? {} : _temp,\n _ref2$global = _ref2.global,\n global = _ref2$global === void 0 ? false : _ref2$global,\n _ref2$longPressThresh = _ref2.longPressThreshold,\n longPressThreshold = _ref2$longPressThresh === void 0 ? 250 : _ref2$longPressThresh;\n\n this.isDetached = false;\n this.container = node;\n this.globalMouse = !node || global;\n this.longPressThreshold = longPressThreshold;\n this._listeners = Object.create(null);\n this._handleInitialEvent = this._handleInitialEvent.bind(this);\n this._handleMoveEvent = this._handleMoveEvent.bind(this);\n this._handleTerminatingEvent = this._handleTerminatingEvent.bind(this);\n this._keyListener = this._keyListener.bind(this);\n this._dropFromOutsideListener = this._dropFromOutsideListener.bind(this);\n this._dragOverFromOutsideListener = this._dragOverFromOutsideListener.bind(this); // Fixes an iOS 10 bug where scrolling could not be prevented on the window.\n // https://github.com/metafizzy/flickity/issues/457#issuecomment-254501356\n\n this._removeTouchMoveWindowListener = addEventListener('touchmove', function () {}, window);\n this._removeKeyDownListener = addEventListener('keydown', this._keyListener);\n this._removeKeyUpListener = addEventListener('keyup', this._keyListener);\n this._removeDropFromOutsideListener = addEventListener('drop', this._dropFromOutsideListener);\n this._onDragOverfromOutisde = addEventListener('dragover', this._dragOverFromOutsideListener);\n\n this._addInitialEventListener();\n }\n\n var _proto = Selection.prototype;\n\n _proto.on = function on(type, handler) {\n var handlers = this._listeners[type] || (this._listeners[type] = []);\n handlers.push(handler);\n return {\n remove: function remove() {\n var idx = handlers.indexOf(handler);\n if (idx !== -1) handlers.splice(idx, 1);\n }\n };\n };\n\n _proto.emit = function emit(type) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var result;\n var handlers = this._listeners[type] || [];\n handlers.forEach(function (fn) {\n if (result === undefined) result = fn.apply(void 0, args);\n });\n return result;\n };\n\n _proto.teardown = function teardown() {\n this.isDetached = true;\n this.listeners = Object.create(null);\n this._removeTouchMoveWindowListener && this._removeTouchMoveWindowListener();\n this._removeInitialEventListener && this._removeInitialEventListener();\n this._removeEndListener && this._removeEndListener();\n this._onEscListener && this._onEscListener();\n this._removeMoveListener && this._removeMoveListener();\n this._removeKeyUpListener && this._removeKeyUpListener();\n this._removeKeyDownListener && this._removeKeyDownListener();\n this._removeDropFromOutsideListener && this._removeDropFromOutsideListener();\n };\n\n _proto.isSelected = function isSelected(node) {\n var box = this._selectRect;\n if (!box || !this.selecting) return false;\n return objectsCollide(box, getBoundsForNode(node));\n };\n\n _proto.filter = function filter(items) {\n var box = this._selectRect; //not selecting\n\n if (!box || !this.selecting) return [];\n return items.filter(this.isSelected, this);\n } // Adds a listener that will call the handler only after the user has pressed on the screen\n // without moving their finger for 250ms.\n ;\n\n _proto._addLongPressListener = function _addLongPressListener(handler, initialEvent) {\n var _this = this;\n\n var timer = null;\n var removeTouchMoveListener = null;\n var removeTouchEndListener = null;\n\n var handleTouchStart = function handleTouchStart(initialEvent) {\n timer = setTimeout(function () {\n cleanup();\n handler(initialEvent);\n }, _this.longPressThreshold);\n removeTouchMoveListener = addEventListener('touchmove', function () {\n return cleanup();\n });\n removeTouchEndListener = addEventListener('touchend', function () {\n return cleanup();\n });\n };\n\n var removeTouchStartListener = addEventListener('touchstart', handleTouchStart);\n\n var cleanup = function cleanup() {\n if (timer) {\n clearTimeout(timer);\n }\n\n if (removeTouchMoveListener) {\n removeTouchMoveListener();\n }\n\n if (removeTouchEndListener) {\n removeTouchEndListener();\n }\n\n timer = null;\n removeTouchMoveListener = null;\n removeTouchEndListener = null;\n };\n\n if (initialEvent) {\n handleTouchStart(initialEvent);\n }\n\n return function () {\n cleanup();\n removeTouchStartListener();\n };\n } // Listen for mousedown and touchstart events. When one is received, disable the other and setup\n // future event handling based on the type of event.\n ;\n\n _proto._addInitialEventListener = function _addInitialEventListener() {\n var _this2 = this;\n\n var removeMouseDownListener = addEventListener('mousedown', function (e) {\n _this2._removeInitialEventListener();\n\n _this2._handleInitialEvent(e);\n\n _this2._removeInitialEventListener = addEventListener('mousedown', _this2._handleInitialEvent);\n });\n var removeTouchStartListener = addEventListener('touchstart', function (e) {\n _this2._removeInitialEventListener();\n\n _this2._removeInitialEventListener = _this2._addLongPressListener(_this2._handleInitialEvent, e);\n });\n\n this._removeInitialEventListener = function () {\n removeMouseDownListener();\n removeTouchStartListener();\n };\n };\n\n _proto._dropFromOutsideListener = function _dropFromOutsideListener(e) {\n var _getEventCoordinates = getEventCoordinates(e),\n pageX = _getEventCoordinates.pageX,\n pageY = _getEventCoordinates.pageY,\n clientX = _getEventCoordinates.clientX,\n clientY = _getEventCoordinates.clientY;\n\n this.emit('dropFromOutside', {\n x: pageX,\n y: pageY,\n clientX: clientX,\n clientY: clientY\n });\n e.preventDefault();\n };\n\n _proto._dragOverFromOutsideListener = function _dragOverFromOutsideListener(e) {\n var _getEventCoordinates2 = getEventCoordinates(e),\n pageX = _getEventCoordinates2.pageX,\n pageY = _getEventCoordinates2.pageY,\n clientX = _getEventCoordinates2.clientX,\n clientY = _getEventCoordinates2.clientY;\n\n this.emit('dragOverFromOutside', {\n x: pageX,\n y: pageY,\n clientX: clientX,\n clientY: clientY\n });\n e.preventDefault();\n };\n\n _proto._handleInitialEvent = function _handleInitialEvent(e) {\n if (this.isDetached) {\n return;\n }\n\n var _getEventCoordinates3 = getEventCoordinates(e),\n clientX = _getEventCoordinates3.clientX,\n clientY = _getEventCoordinates3.clientY,\n pageX = _getEventCoordinates3.pageX,\n pageY = _getEventCoordinates3.pageY;\n\n var node = this.container(),\n collides,\n offsetData; // Right clicks\n\n if (e.which === 3 || e.button === 2 || !isOverContainer(node, clientX, clientY)) return;\n\n if (!this.globalMouse && node && !(0, _contains.default)(node, e.target)) {\n var _normalizeDistance = normalizeDistance(0),\n top = _normalizeDistance.top,\n left = _normalizeDistance.left,\n bottom = _normalizeDistance.bottom,\n right = _normalizeDistance.right;\n\n offsetData = getBoundsForNode(node);\n collides = objectsCollide({\n top: offsetData.top - top,\n left: offsetData.left - left,\n bottom: offsetData.bottom + bottom,\n right: offsetData.right + right\n }, {\n top: pageY,\n left: pageX\n });\n if (!collides) return;\n }\n\n var result = this.emit('beforeSelect', this._initialEventData = {\n isTouch: /^touch/.test(e.type),\n x: pageX,\n y: pageY,\n clientX: clientX,\n clientY: clientY\n });\n if (result === false) return;\n\n switch (e.type) {\n case 'mousedown':\n this._removeEndListener = addEventListener('mouseup', this._handleTerminatingEvent);\n this._onEscListener = addEventListener('keydown', this._handleTerminatingEvent);\n this._removeMoveListener = addEventListener('mousemove', this._handleMoveEvent);\n break;\n\n case 'touchstart':\n this._handleMoveEvent(e);\n\n this._removeEndListener = addEventListener('touchend', this._handleTerminatingEvent);\n this._removeMoveListener = addEventListener('touchmove', this._handleMoveEvent);\n break;\n\n default:\n break;\n }\n };\n\n _proto._handleTerminatingEvent = function _handleTerminatingEvent(e) {\n var _getEventCoordinates4 = getEventCoordinates(e),\n pageX = _getEventCoordinates4.pageX,\n pageY = _getEventCoordinates4.pageY;\n\n this.selecting = false;\n this._removeEndListener && this._removeEndListener();\n this._removeMoveListener && this._removeMoveListener();\n if (!this._initialEventData) return;\n var inRoot = !this.container || (0, _contains.default)(this.container(), e.target);\n var bounds = this._selectRect;\n var click = this.isClick(pageX, pageY);\n this._initialEventData = null;\n\n if (e.key === 'Escape') {\n return this.emit('reset');\n }\n\n if (!inRoot) {\n return this.emit('reset');\n }\n\n if (click && inRoot) {\n return this._handleClickEvent(e);\n } // User drag-clicked in the Selectable area\n\n\n if (!click) return this.emit('select', bounds);\n };\n\n _proto._handleClickEvent = function _handleClickEvent(e) {\n var _getEventCoordinates5 = getEventCoordinates(e),\n pageX = _getEventCoordinates5.pageX,\n pageY = _getEventCoordinates5.pageY,\n clientX = _getEventCoordinates5.clientX,\n clientY = _getEventCoordinates5.clientY;\n\n var now = new Date().getTime();\n\n if (this._lastClickData && now - this._lastClickData.timestamp < clickInterval) {\n // Double click event\n this._lastClickData = null;\n return this.emit('doubleClick', {\n x: pageX,\n y: pageY,\n clientX: clientX,\n clientY: clientY\n });\n } // Click event\n\n\n this._lastClickData = {\n timestamp: now\n };\n return this.emit('click', {\n x: pageX,\n y: pageY,\n clientX: clientX,\n clientY: clientY\n });\n };\n\n _proto._handleMoveEvent = function _handleMoveEvent(e) {\n if (this._initialEventData === null || this.isDetached) {\n return;\n }\n\n var _this$_initialEventDa = this._initialEventData,\n x = _this$_initialEventDa.x,\n y = _this$_initialEventDa.y;\n\n var _getEventCoordinates6 = getEventCoordinates(e),\n pageX = _getEventCoordinates6.pageX,\n pageY = _getEventCoordinates6.pageY;\n\n var w = Math.abs(x - pageX);\n var h = Math.abs(y - pageY);\n var left = Math.min(pageX, x),\n top = Math.min(pageY, y),\n old = this.selecting; // Prevent emitting selectStart event until mouse is moved.\n // in Chrome on Windows, mouseMove event may be fired just after mouseDown event.\n\n if (this.isClick(pageX, pageY) && !old && !(w || h)) {\n return;\n }\n\n this.selecting = true;\n this._selectRect = {\n top: top,\n left: left,\n x: pageX,\n y: pageY,\n right: left + w,\n bottom: top + h\n };\n\n if (!old) {\n this.emit('selectStart', this._initialEventData);\n }\n\n if (!this.isClick(pageX, pageY)) this.emit('selecting', this._selectRect);\n e.preventDefault();\n };\n\n _proto._keyListener = function _keyListener(e) {\n this.ctrl = e.metaKey || e.ctrlKey;\n };\n\n _proto.isClick = function isClick(pageX, pageY) {\n var _this$_initialEventDa2 = this._initialEventData,\n x = _this$_initialEventDa2.x,\n y = _this$_initialEventDa2.y,\n isTouch = _this$_initialEventDa2.isTouch;\n return !isTouch && Math.abs(pageX - x) <= clickTolerance && Math.abs(pageY - y) <= clickTolerance;\n };\n\n return Selection;\n}();\n/**\n * Resolve the disance prop from either an Int or an Object\n * @return {Object}\n */\n\n\nfunction normalizeDistance(distance) {\n if (distance === void 0) {\n distance = 0;\n }\n\n if (typeof distance !== 'object') distance = {\n top: distance,\n left: distance,\n right: distance,\n bottom: distance\n };\n return distance;\n}\n/**\n * Given two objects containing \"top\", \"left\", \"offsetWidth\" and \"offsetHeight\"\n * properties, determine if they collide.\n * @param {Object|HTMLElement} a\n * @param {Object|HTMLElement} b\n * @return {bool}\n */\n\n\nfunction objectsCollide(nodeA, nodeB, tolerance) {\n if (tolerance === void 0) {\n tolerance = 0;\n }\n\n var _getBoundsForNode = getBoundsForNode(nodeA),\n aTop = _getBoundsForNode.top,\n aLeft = _getBoundsForNode.left,\n _getBoundsForNode$rig = _getBoundsForNode.right,\n aRight = _getBoundsForNode$rig === void 0 ? aLeft : _getBoundsForNode$rig,\n _getBoundsForNode$bot = _getBoundsForNode.bottom,\n aBottom = _getBoundsForNode$bot === void 0 ? aTop : _getBoundsForNode$bot;\n\n var _getBoundsForNode2 = getBoundsForNode(nodeB),\n bTop = _getBoundsForNode2.top,\n bLeft = _getBoundsForNode2.left,\n _getBoundsForNode2$ri = _getBoundsForNode2.right,\n bRight = _getBoundsForNode2$ri === void 0 ? bLeft : _getBoundsForNode2$ri,\n _getBoundsForNode2$bo = _getBoundsForNode2.bottom,\n bBottom = _getBoundsForNode2$bo === void 0 ? bTop : _getBoundsForNode2$bo;\n\n return !( // 'a' bottom doesn't touch 'b' top\n aBottom - tolerance < bTop || // 'a' top doesn't touch 'b' bottom\n aTop + tolerance > bBottom || // 'a' right doesn't touch 'b' left\n aRight - tolerance < bLeft || // 'a' left doesn't touch 'b' right\n aLeft + tolerance > bRight);\n}\n/**\n * Given a node, get everything needed to calculate its boundaries\n * @param {HTMLElement} node\n * @return {Object}\n */\n\n\nfunction getBoundsForNode(node) {\n if (!node.getBoundingClientRect) return node;\n var rect = node.getBoundingClientRect(),\n left = rect.left + pageOffset('left'),\n top = rect.top + pageOffset('top');\n return {\n top: top,\n left: left,\n right: (node.offsetWidth || 0) + left,\n bottom: (node.offsetHeight || 0) + top\n };\n}\n\nfunction pageOffset(dir) {\n if (dir === 'left') return window.pageXOffset || document.body.scrollLeft || 0;\n if (dir === 'top') return window.pageYOffset || document.body.scrollTop || 0;\n}\n\nvar _default = Selection;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.getSlotMetrics = getSlotMetrics;\n\nvar dates = _interopRequireWildcard(require(\"./dates\"));\n\nvar getDstOffset = function getDstOffset(start, end) {\n return start.getTimezoneOffset() - end.getTimezoneOffset();\n};\n\nvar getKey = function getKey(min, max, step, slots) {\n return \"\" + +dates.startOf(min, 'minutes') + (\"\" + +dates.startOf(max, 'minutes')) + (step + \"-\" + slots);\n};\n\nfunction getSlotMetrics(_ref) {\n var start = _ref.min,\n end = _ref.max,\n step = _ref.step,\n timeslots = _ref.timeslots;\n var key = getKey(start, end, step, timeslots); // if the start is on a DST-changing day but *after* the moment of DST\n // transition we need to add those extra minutes to our minutesFromMidnight\n\n var daystart = dates.startOf(start, 'day');\n var daystartdstoffset = getDstOffset(daystart, start);\n var totalMin = 1 + dates.diff(start, end, 'minutes') + getDstOffset(start, end);\n var minutesFromMidnight = dates.diff(daystart, start, 'minutes') + daystartdstoffset;\n var numGroups = Math.ceil(totalMin / (step * timeslots));\n var numSlots = numGroups * timeslots;\n var groups = new Array(numGroups);\n var slots = new Array(numSlots); // Each slot date is created from \"zero\", instead of adding `step` to\n // the previous one, in order to avoid DST oddities\n\n for (var grp = 0; grp < numGroups; grp++) {\n groups[grp] = new Array(timeslots);\n\n for (var slot = 0; slot < timeslots; slot++) {\n var slotIdx = grp * timeslots + slot;\n var minFromStart = slotIdx * step; // A date with total minutes calculated from the start of the day\n\n slots[slotIdx] = groups[grp][slot] = new Date(start.getFullYear(), start.getMonth(), start.getDate(), 0, minutesFromMidnight + minFromStart, 0, 0);\n }\n } // Necessary to be able to select up until the last timeslot in a day\n\n\n var lastSlotMinFromStart = slots.length * step;\n slots.push(new Date(start.getFullYear(), start.getMonth(), start.getDate(), 0, minutesFromMidnight + lastSlotMinFromStart, 0, 0));\n\n function positionFromDate(date) {\n var diff = dates.diff(start, date, 'minutes') + getDstOffset(start, date);\n return Math.min(diff, totalMin);\n }\n\n return {\n groups: groups,\n update: function update(args) {\n if (getKey(args) !== key) return getSlotMetrics(args);\n return this;\n },\n dateIsInGroup: function dateIsInGroup(date, groupIndex) {\n var nextGroup = groups[groupIndex + 1];\n return dates.inRange(date, groups[groupIndex][0], nextGroup ? nextGroup[0] : end, 'minutes');\n },\n nextSlot: function nextSlot(slot) {\n var next = slots[Math.min(slots.indexOf(slot) + 1, slots.length - 1)]; // in the case of the last slot we won't a long enough range so manually get it\n\n if (next === slot) next = dates.add(slot, step, 'minutes');\n return next;\n },\n closestSlotToPosition: function closestSlotToPosition(percent) {\n var slot = Math.min(slots.length - 1, Math.max(0, Math.floor(percent * numSlots)));\n return slots[slot];\n },\n closestSlotFromPoint: function closestSlotFromPoint(point, boundaryRect) {\n var range = Math.abs(boundaryRect.top - boundaryRect.bottom);\n return this.closestSlotToPosition((point.y - boundaryRect.top) / range);\n },\n closestSlotFromDate: function closestSlotFromDate(date, offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n if (dates.lt(date, start, 'minutes')) return slots[0];\n var diffMins = dates.diff(start, date, 'minutes');\n return slots[(diffMins - diffMins % step) / step + offset];\n },\n startsBeforeDay: function startsBeforeDay(date) {\n return dates.lt(date, start, 'day');\n },\n startsAfterDay: function startsAfterDay(date) {\n return dates.gt(date, end, 'day');\n },\n startsBefore: function startsBefore(date) {\n return dates.lt(dates.merge(start, date), start, 'minutes');\n },\n startsAfter: function startsAfter(date) {\n return dates.gt(dates.merge(end, date), end, 'minutes');\n },\n getRange: function getRange(rangeStart, rangeEnd, ignoreMin, ignoreMax) {\n if (!ignoreMin) rangeStart = dates.min(end, dates.max(start, rangeStart));\n if (!ignoreMax) rangeEnd = dates.min(end, dates.max(start, rangeEnd));\n var rangeStartMin = positionFromDate(rangeStart);\n var rangeEndMin = positionFromDate(rangeEnd);\n var top = rangeEndMin - rangeStartMin < step && !dates.eq(end, rangeEnd) ? (rangeStartMin - step) / (step * numSlots) * 100 : rangeStartMin / (step * numSlots) * 100;\n return {\n top: top,\n height: rangeEndMin / (step * numSlots) * 100 - top,\n start: positionFromDate(rangeStart),\n startDate: rangeStart,\n end: positionFromDate(rangeEnd),\n endDate: rangeEnd\n };\n },\n getCurrentTimePosition: function getCurrentTimePosition(rangeStart) {\n var rangeStartMin = positionFromDate(rangeStart);\n var top = rangeStartMin / (step * numSlots) * 100;\n return top;\n }\n };\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = getStyledEvents;\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _sortBy = _interopRequireDefault(require(\"lodash/sortBy\"));\n\nvar Event =\n/*#__PURE__*/\nfunction () {\n function Event(data, _ref) {\n var accessors = _ref.accessors,\n slotMetrics = _ref.slotMetrics;\n\n var _slotMetrics$getRange = slotMetrics.getRange(accessors.start(data), accessors.end(data)),\n start = _slotMetrics$getRange.start,\n startDate = _slotMetrics$getRange.startDate,\n end = _slotMetrics$getRange.end,\n endDate = _slotMetrics$getRange.endDate,\n top = _slotMetrics$getRange.top,\n height = _slotMetrics$getRange.height;\n\n this.start = start;\n this.end = end;\n this.startMs = +startDate;\n this.endMs = +endDate;\n this.top = top;\n this.height = height;\n this.data = data;\n }\n /**\n * The event's width without any overlap.\n */\n\n\n (0, _createClass2.default)(Event, [{\n key: \"_width\",\n get: function get() {\n // The container event's width is determined by the maximum number of\n // events in any of its rows.\n if (this.rows) {\n var columns = this.rows.reduce(function (max, row) {\n return Math.max(max, row.leaves.length + 1);\n }, // add itself\n 0) + 1; // add the container\n\n return 100 / columns;\n }\n\n var availableWidth = 100 - this.container._width; // The row event's width is the space left by the container, divided\n // among itself and its leaves.\n\n if (this.leaves) {\n return availableWidth / (this.leaves.length + 1);\n } // The leaf event's width is determined by its row's width\n\n\n return this.row._width;\n }\n /**\n * The event's calculated width, possibly with extra width added for\n * overlapping effect.\n */\n\n }, {\n key: \"width\",\n get: function get() {\n var noOverlap = this._width;\n var overlap = Math.min(100, this._width * 1.7); // Containers can always grow.\n\n if (this.rows) {\n return overlap;\n } // Rows can grow if they have leaves.\n\n\n if (this.leaves) {\n return this.leaves.length > 0 ? overlap : noOverlap;\n } // Leaves can grow unless they're the last item in a row.\n\n\n var leaves = this.row.leaves;\n var index = leaves.indexOf(this);\n return index === leaves.length - 1 ? noOverlap : overlap;\n }\n }, {\n key: \"xOffset\",\n get: function get() {\n // Containers have no offset.\n if (this.rows) return 0; // Rows always start where their container ends.\n\n if (this.leaves) return this.container._width; // Leaves are spread out evenly on the space left by its row.\n\n var _this$row = this.row,\n leaves = _this$row.leaves,\n xOffset = _this$row.xOffset,\n _width = _this$row._width;\n var index = leaves.indexOf(this) + 1;\n return xOffset + index * _width;\n }\n }]);\n return Event;\n}();\n/**\n * Return true if event a and b is considered to be on the same row.\n */\n\n\nfunction onSameRow(a, b, minimumStartDifference) {\n return (// Occupies the same start slot.\n Math.abs(b.start - a.start) < minimumStartDifference || // A's start slot overlaps with b's end slot.\n b.start > a.start && b.start < a.end\n );\n}\n\nfunction sortByRender(events) {\n var sortedByTime = (0, _sortBy.default)(events, ['startMs', function (e) {\n return -e.endMs;\n }]);\n var sorted = [];\n\n while (sortedByTime.length > 0) {\n var event = sortedByTime.shift();\n sorted.push(event);\n\n for (var i = 0; i < sortedByTime.length; i++) {\n var test = sortedByTime[i]; // Still inside this event, look for next.\n\n if (event.endMs > test.startMs) continue; // We've found the first event of the next event group.\n // If that event is not right next to our current event, we have to\n // move it here.\n\n if (i > 0) {\n var _event = sortedByTime.splice(i, 1)[0];\n sorted.push(_event);\n } // We've already found the next event group, so stop looking.\n\n\n break;\n }\n }\n\n return sorted;\n}\n\nfunction getStyledEvents(_ref2) {\n var events = _ref2.events,\n minimumStartDifference = _ref2.minimumStartDifference,\n slotMetrics = _ref2.slotMetrics,\n accessors = _ref2.accessors;\n // Create proxy events and order them so that we don't have\n // to fiddle with z-indexes.\n var proxies = events.map(function (event) {\n return new Event(event, {\n slotMetrics: slotMetrics,\n accessors: accessors\n });\n });\n var eventsInRenderOrder = sortByRender(proxies); // Group overlapping events, while keeping order.\n // Every event is always one of: container, row or leaf.\n // Containers can contain rows, and rows can contain leaves.\n\n var containerEvents = [];\n\n var _loop = function _loop(i) {\n var event = eventsInRenderOrder[i]; // Check if this event can go into a container event.\n\n var container = containerEvents.find(function (c) {\n return c.end > event.start || Math.abs(event.start - c.start) < minimumStartDifference;\n }); // Couldn't find a container — that means this event is a container.\n\n if (!container) {\n event.rows = [];\n containerEvents.push(event);\n return \"continue\";\n } // Found a container for the event.\n\n\n event.container = container; // Check if the event can be placed in an existing row.\n // Start looking from behind.\n\n var row = null;\n\n for (var j = container.rows.length - 1; !row && j >= 0; j--) {\n if (onSameRow(container.rows[j], event, minimumStartDifference)) {\n row = container.rows[j];\n }\n }\n\n if (row) {\n // Found a row, so add it.\n row.leaves.push(event);\n event.row = row;\n } else {\n // Couldn't find a row – that means this event is a row.\n event.leaves = [];\n container.rows.push(event);\n }\n };\n\n for (var i = 0; i < eventsInRenderOrder.length; i++) {\n var _ret = _loop(i);\n\n if (_ret === \"continue\") continue;\n } // Return the original events, along with their styles.\n\n\n return eventsInRenderOrder.map(function (event) {\n return {\n event: event.data,\n style: {\n top: event.top,\n height: event.height,\n width: event.width,\n xOffset: Math.max(0, event.xOffset)\n }\n };\n });\n}\n\nmodule.exports = exports[\"default\"];","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _BackgroundWrapper = _interopRequireDefault(require(\"./BackgroundWrapper\"));\n\nvar TimeSlotGroup =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inheritsLoose2.default)(TimeSlotGroup, _Component);\n\n function TimeSlotGroup() {\n return _Component.apply(this, arguments) || this;\n }\n\n var _proto = TimeSlotGroup.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n renderSlot = _this$props.renderSlot,\n resource = _this$props.resource,\n group = _this$props.group,\n getters = _this$props.getters,\n _this$props$component = _this$props.components;\n _this$props$component = _this$props$component === void 0 ? {} : _this$props$component;\n var _this$props$component2 = _this$props$component.timeSlotWrapper,\n Wrapper = _this$props$component2 === void 0 ? _BackgroundWrapper.default : _this$props$component2;\n return _react.default.createElement(\"div\", {\n className: \"rbc-timeslot-group\"\n }, group.map(function (value, idx) {\n var slotProps = getters ? getters.slotProp(value, resource) : {};\n return _react.default.createElement(Wrapper, {\n key: idx,\n value: value,\n resource: resource\n }, _react.default.createElement(\"div\", (0, _extends2.default)({}, slotProps, {\n className: (0, _clsx.default)('rbc-time-slot', slotProps.className)\n }), renderSlot && renderSlot(value, idx)));\n }));\n };\n\n return TimeSlotGroup;\n}(_react.Component);\n\nexports.default = TimeSlotGroup;\nTimeSlotGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n renderSlot: _propTypes.default.func,\n group: _propTypes.default.array.isRequired,\n resource: _propTypes.default.any,\n components: _propTypes.default.object,\n getters: _propTypes.default.object\n} : {};\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.DayLayoutAlgorithmPropType = exports.views = exports.dateRangeFormat = exports.dateFormat = exports.accessor = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _constants = require(\"./constants\");\n\nvar viewNames = Object.keys(_constants.views).map(function (k) {\n return _constants.views[k];\n});\n\nvar accessor = _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func]);\n\nexports.accessor = accessor;\nvar dateFormat = _propTypes.default.any;\nexports.dateFormat = dateFormat;\nvar dateRangeFormat = _propTypes.default.func;\n/**\n * accepts either an array of builtin view names:\n *\n * ```\n * views={['month', 'day', 'agenda']}\n * ```\n *\n * or an object hash of the view name and the component (or boolean for builtin)\n *\n * ```\n * views={{\n * month: true,\n * week: false,\n * workweek: WorkWeekViewComponent,\n * }}\n * ```\n */\n\nexports.dateRangeFormat = dateRangeFormat;\n\nvar views = _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOf(viewNames)), _propTypes.default.objectOf(function (prop, key) {\n var isBuiltinView = viewNames.indexOf(key) !== -1 && typeof prop[key] === 'boolean';\n\n if (isBuiltinView) {\n return null;\n } else {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n return _propTypes.default.elementType.apply(_propTypes.default, [prop, key].concat(args));\n }\n})]);\n\nexports.views = views;\n\nvar DayLayoutAlgorithmPropType = _propTypes.default.oneOfType([_propTypes.default.oneOf(['overlap', 'no-overlap']), _propTypes.default.func]);\n\nexports.DayLayoutAlgorithmPropType = DayLayoutAlgorithmPropType;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _EventCell = _interopRequireDefault(require(\"./EventCell\"));\n\nvar _selection = require(\"./utils/selection\");\n\n/* eslint-disable react/prop-types */\nvar _default = {\n propTypes: {\n slotMetrics: _propTypes.default.object.isRequired,\n selected: _propTypes.default.object,\n isAllDay: _propTypes.default.bool,\n accessors: _propTypes.default.object.isRequired,\n localizer: _propTypes.default.object.isRequired,\n components: _propTypes.default.object.isRequired,\n getters: _propTypes.default.object.isRequired,\n onSelect: _propTypes.default.func,\n onDoubleClick: _propTypes.default.func\n },\n defaultProps: {\n segments: [],\n selected: {}\n },\n renderEvent: function renderEvent(props, event) {\n var selected = props.selected,\n _ = props.isAllDay,\n accessors = props.accessors,\n getters = props.getters,\n onSelect = props.onSelect,\n onDoubleClick = props.onDoubleClick,\n localizer = props.localizer,\n slotMetrics = props.slotMetrics,\n components = props.components;\n var continuesPrior = slotMetrics.continuesPrior(event);\n var continuesAfter = slotMetrics.continuesAfter(event);\n return _react.default.createElement(_EventCell.default, {\n event: event,\n getters: getters,\n localizer: localizer,\n accessors: accessors,\n components: components,\n onSelect: onSelect,\n onDoubleClick: onDoubleClick,\n continuesPrior: continuesPrior,\n continuesAfter: continuesAfter,\n slotStart: slotMetrics.first,\n slotEnd: slotMetrics.last,\n selected: (0, _selection.isSelected)(event, selected)\n });\n },\n renderSpan: function renderSpan(slots, len, key, content) {\n if (content === void 0) {\n content = ' ';\n }\n\n var per = Math.abs(len) / slots * 100 + '%';\n return _react.default.createElement(\"div\", {\n key: key,\n className: \"rbc-row-segment\" // IE10/11 need max-width. flex-basis doesn't respect box-sizing\n ,\n style: {\n WebkitFlexBasis: per,\n flexBasis: per,\n maxWidth: per\n }\n }, content);\n }\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\nvar $Object = Object;\nvar $TypeError = TypeError;\n\nmodule.exports = function flags() {\n\tif (this != null && this !== $Object(this)) {\n\t\tthrow new $TypeError('RegExp.prototype.flags getter called on non-object');\n\t}\n\tvar result = '';\n\tif (this.global) {\n\t\tresult += 'g';\n\t}\n\tif (this.ignoreCase) {\n\t\tresult += 'i';\n\t}\n\tif (this.multiline) {\n\t\tresult += 'm';\n\t}\n\tif (this.dotAll) {\n\t\tresult += 's';\n\t}\n\tif (this.unicode) {\n\t\tresult += 'u';\n\t}\n\tif (this.sticky) {\n\t\tresult += 'y';\n\t}\n\treturn result;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar $gOPD = Object.getOwnPropertyDescriptor;\nvar $TypeError = TypeError;\n\nmodule.exports = function getPolyfill() {\n\tif (!supportsDescriptors) {\n\t\tthrow new $TypeError('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tif ((/a/mig).flags === 'gim') {\n\t\tvar descriptor = $gOPD(RegExp.prototype, 'flags');\n\t\tif (descriptor && typeof descriptor.get === 'function' && typeof (/a/).dotAll === 'boolean') {\n\t\t\treturn descriptor.get;\n\t\t}\n\t}\n\treturn implementation;\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.composeEvents = composeEvents;\n\nfunction composeEvents() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n event.preventDefault();\n fns.forEach(function (fn) {\n return fn && fn.apply(void 0, [event].concat(args));\n });\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getParentPosition = getParentPosition;\nexports.getSumScroll = getSumScroll;\nexports.getSumOffset = getSumOffset;\n\n// TODO: can we use getBoundingClientRect instead??\n// last place this is used is in \"handleWheel\" in ScrollElement\nfunction getParentPosition(element) {\n var xPosition = 0;\n var yPosition = 0;\n var first = true;\n\n while (element) {\n if (!element.offsetParent && element.tagName === 'BODY' && element.scrollLeft === 0 && element.scrollTop === 0) {\n element = document.scrollingElement || element;\n }\n\n xPosition += element.offsetLeft - (first ? 0 : element.scrollLeft) + element.clientLeft;\n yPosition += element.offsetTop - (first ? 0 : element.scrollTop) + element.clientTop;\n element = element.offsetParent;\n first = false;\n }\n\n return {\n x: xPosition,\n y: yPosition\n };\n}\n\nfunction getSumScroll(node) {\n if (node === document.body) {\n return {\n scrollLeft: 0,\n scrollTop: 0\n };\n } else {\n var parent = getSumScroll(node.parentNode);\n return {\n scrollLeft: node.scrollLeft + parent.scrollLeft,\n scrollTop: node.scrollTop + parent.scrollTop\n };\n }\n}\n\nfunction getSumOffset(node) {\n if (node === document.body) {\n return {\n offsetLeft: 0,\n offsetTop: 0\n };\n } else {\n var parent = getSumOffset(node.offsetParent);\n return {\n offsetLeft: node.offsetLeft + parent.offsetLeft,\n offsetTop: node.offsetTop + parent.offsetTop\n };\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MarkerCanvasConsumer = exports.MarkerCanvasProvider = void 0;\n\nvar _createReactContext2 = _interopRequireDefault(require(\"create-react-context\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable no-console */\nvar defaultContextState = {\n subscribeToMouseOver: function subscribeToMouseOver() {\n console.warn('\"subscribeToMouseOver\" default func is being used');\n }\n /* eslint-enable */\n\n};\n\nvar _createReactContext = (0, _createReactContext2[\"default\"])(defaultContextState),\n Consumer = _createReactContext.Consumer,\n Provider = _createReactContext.Provider;\n\nvar MarkerCanvasProvider = Provider;\nexports.MarkerCanvasProvider = MarkerCanvasProvider;\nvar MarkerCanvasConsumer = Consumer;\nexports.MarkerCanvasConsumer = MarkerCanvasConsumer;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.defaultSubHeaderLabelFormats = exports.defaultHeaderLabelFormats = exports.defaultHeaderFormats = exports.defaultTimeSteps = exports.defaultKeys = void 0;\nvar defaultKeys = {\n groupIdKey: 'id',\n groupTitleKey: 'title',\n groupRightTitleKey: 'rightTitle',\n groupLabelKey: 'title',\n itemIdKey: 'id',\n itemTitleKey: 'title',\n itemDivTitleKey: 'title',\n itemGroupKey: 'group',\n itemTimeStartKey: 'start_time',\n itemTimeEndKey: 'end_time'\n};\nexports.defaultKeys = defaultKeys;\nvar defaultTimeSteps = {\n second: 1,\n minute: 1,\n hour: 1,\n day: 1,\n month: 1,\n year: 1\n};\nexports.defaultTimeSteps = defaultTimeSteps;\nvar defaultHeaderFormats = {\n year: {\n \"long\": 'YYYY',\n mediumLong: 'YYYY',\n medium: 'YYYY',\n \"short\": 'YY'\n },\n month: {\n \"long\": 'MMMM YYYY',\n mediumLong: 'MMMM',\n medium: 'MMMM',\n \"short\": 'MM/YY'\n },\n week: {\n \"long\": 'w',\n mediumLong: 'w',\n medium: 'w',\n \"short\": 'w'\n },\n day: {\n \"long\": 'dddd, LL',\n mediumLong: 'dddd, LL',\n medium: 'dd D',\n \"short\": 'D'\n },\n hour: {\n \"long\": 'dddd, LL, HH:00',\n mediumLong: 'L, HH:00',\n medium: 'HH:00',\n \"short\": 'HH'\n },\n minute: {\n \"long\": 'HH:mm',\n mediumLong: 'HH:mm',\n medium: 'HH:mm',\n \"short\": 'mm'\n } //TODO: delete this\n\n};\nexports.defaultHeaderFormats = defaultHeaderFormats;\nvar defaultHeaderLabelFormats = {\n yearShort: 'YY',\n yearLong: 'YYYY',\n monthShort: 'MM/YY',\n monthMedium: 'MM/YYYY',\n monthMediumLong: 'MMM YYYY',\n monthLong: 'MMMM YYYY',\n dayShort: 'L',\n dayLong: 'dddd, LL',\n hourShort: 'HH',\n hourMedium: 'HH:00',\n hourMediumLong: 'L, HH:00',\n hourLong: 'dddd, LL, HH:00',\n time: 'LLL' //TODO: delete this\n\n};\nexports.defaultHeaderLabelFormats = defaultHeaderLabelFormats;\nvar defaultSubHeaderLabelFormats = {\n yearShort: 'YY',\n yearLong: 'YYYY',\n monthShort: 'MM',\n monthMedium: 'MMM',\n monthLong: 'MMMM',\n dayShort: 'D',\n dayMedium: 'dd D',\n dayMediumLong: 'ddd, Do',\n dayLong: 'dddd, Do',\n hourShort: 'HH',\n hourLong: 'HH:00',\n minuteShort: 'mm',\n minuteLong: 'HH:mm'\n};\nexports.defaultSubHeaderLabelFormats = defaultSubHeaderLabelFormats;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _HeadersContext = require(\"./HeadersContext\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _SidebarHeader = _interopRequireDefault(require(\"./SidebarHeader\"));\n\nvar _constants = require(\"./constants\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } 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 _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 _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 TimelineHeaders =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(TimelineHeaders, _React$Component);\n\n function TimelineHeaders(props) {\n var _this;\n\n _classCallCheck(this, TimelineHeaders);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(TimelineHeaders).call(this, props));\n\n _defineProperty(_assertThisInitialized(_this), \"getRootStyle\", function () {\n return _objectSpread({}, _this.props.style, {\n display: 'flex',\n width: '100%'\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getCalendarHeaderStyle\", function () {\n var _this$props = _this.props,\n leftSidebarWidth = _this$props.leftSidebarWidth,\n rightSidebarWidth = _this$props.rightSidebarWidth,\n calendarHeaderStyle = _this$props.calendarHeaderStyle;\n return _objectSpread({}, calendarHeaderStyle, {\n overflow: 'hidden',\n width: \"calc(100% - \".concat(leftSidebarWidth + rightSidebarWidth, \"px)\")\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleRootRef\", function (element) {\n if (_this.props.headerRef) {\n _this.props.headerRef(element);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"isSidebarHeader\", function (child) {\n if (child.type === undefined) return false;\n return child.type.secretKey === _SidebarHeader[\"default\"].secretKey;\n });\n\n return _this;\n }\n\n _createClass(TimelineHeaders, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var rightSidebarHeader;\n var leftSidebarHeader;\n var calendarHeaders = [];\n var children = Array.isArray(this.props.children) ? this.props.children.filter(function (c) {\n return c;\n }) : [this.props.children];\n\n _react[\"default\"].Children.map(children, function (child) {\n if (_this2.isSidebarHeader(child)) {\n if (child.props.variant === _constants.RIGHT_VARIANT) {\n rightSidebarHeader = child;\n } else {\n leftSidebarHeader = child;\n }\n } else {\n calendarHeaders.push(child);\n }\n });\n\n if (!leftSidebarHeader) {\n leftSidebarHeader = _react[\"default\"].createElement(_SidebarHeader[\"default\"], null);\n }\n\n if (!rightSidebarHeader && this.props.rightSidebarWidth) {\n rightSidebarHeader = _react[\"default\"].createElement(_SidebarHeader[\"default\"], {\n variant: \"right\"\n });\n }\n\n return _react[\"default\"].createElement(\"div\", {\n ref: this.handleRootRef,\n style: this.getRootStyle(),\n className: (0, _classnames[\"default\"])('rct-header-root', this.props.className)\n }, leftSidebarHeader, _react[\"default\"].createElement(\"div\", {\n ref: this.props.registerScroll,\n style: this.getCalendarHeaderStyle(),\n className: (0, _classnames[\"default\"])('rct-calendar-header', this.props.calendarHeaderClassName)\n }, calendarHeaders), rightSidebarHeader);\n }\n }]);\n\n return TimelineHeaders;\n}(_react[\"default\"].Component);\n\n_defineProperty(TimelineHeaders, \"propTypes\", {\n registerScroll: _propTypes[\"default\"].func.isRequired,\n leftSidebarWidth: _propTypes[\"default\"].number.isRequired,\n rightSidebarWidth: _propTypes[\"default\"].number.isRequired,\n style: _propTypes[\"default\"].object,\n children: _propTypes[\"default\"].node,\n className: _propTypes[\"default\"].string,\n calendarHeaderStyle: _propTypes[\"default\"].object,\n calendarHeaderClassName: _propTypes[\"default\"].string,\n headerRef: _propTypes[\"default\"].func\n});\n\nvar TimelineHeadersWrapper = function TimelineHeadersWrapper(_ref) {\n var children = _ref.children,\n style = _ref.style,\n className = _ref.className,\n calendarHeaderStyle = _ref.calendarHeaderStyle,\n calendarHeaderClassName = _ref.calendarHeaderClassName;\n return _react[\"default\"].createElement(_HeadersContext.TimelineHeadersConsumer, null, function (_ref2) {\n var leftSidebarWidth = _ref2.leftSidebarWidth,\n rightSidebarWidth = _ref2.rightSidebarWidth,\n registerScroll = _ref2.registerScroll;\n return _react[\"default\"].createElement(TimelineHeaders, {\n leftSidebarWidth: leftSidebarWidth,\n rightSidebarWidth: rightSidebarWidth,\n registerScroll: registerScroll,\n style: style,\n className: className,\n calendarHeaderStyle: calendarHeaderStyle,\n calendarHeaderClassName: calendarHeaderClassName\n }, children);\n });\n};\n\nTimelineHeadersWrapper.propTypes = {\n style: _propTypes[\"default\"].object,\n children: _propTypes[\"default\"].node,\n className: _propTypes[\"default\"].string,\n calendarHeaderStyle: _propTypes[\"default\"].object,\n calendarHeaderClassName: _propTypes[\"default\"].string\n};\nTimelineHeadersWrapper.secretKey = \"TimelineHeaders\";\nvar _default = TimelineHeadersWrapper;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.RIGHT_VARIANT = exports.LEFT_VARIANT = void 0;\nvar LEFT_VARIANT = 'left';\nexports.LEFT_VARIANT = LEFT_VARIANT;\nvar RIGHT_VARIANT = 'right';\nexports.RIGHT_VARIANT = RIGHT_VARIANT;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _TimelineStateContext = require(\"../timeline/TimelineStateContext\");\n\nvar _CustomHeader = _interopRequireDefault(require(\"./CustomHeader\"));\n\nvar _calendar = require(\"../utility/calendar\");\n\nvar _defaultConfig = require(\"../default-config\");\n\nvar _memoizeOne = _interopRequireDefault(require(\"memoize-one\"));\n\nvar _CustomDateHeader = require(\"./CustomDateHeader\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } 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 _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 _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 DateHeader =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(DateHeader, _React$Component);\n\n function DateHeader() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, DateHeader);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(DateHeader)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"getHeaderUnit\", function () {\n if (_this.props.unit === 'primaryHeader') {\n return (0, _calendar.getNextUnit)(_this.props.timelineUnit);\n } else if (_this.props.unit) {\n return _this.props.unit;\n }\n\n return _this.props.timelineUnit;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getRootStyle\", (0, _memoizeOne[\"default\"])(function (style) {\n return _objectSpread({\n height: 30\n }, style);\n }));\n\n _defineProperty(_assertThisInitialized(_this), \"getLabelFormat\", function (interval, unit, labelWidth) {\n var labelFormat = _this.props.labelFormat;\n\n if (typeof labelFormat === 'string') {\n var startTime = interval[0];\n return startTime.format(labelFormat);\n } else if (typeof labelFormat === 'function') {\n return labelFormat(interval, unit, labelWidth);\n } else {\n throw new Error('labelFormat should be function or string');\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getHeaderData\", (0, _memoizeOne[\"default\"])(function (intervalRenderer, style, className, getLabelFormat, unitProp, headerData) {\n return {\n intervalRenderer: intervalRenderer,\n style: style,\n className: className,\n getLabelFormat: getLabelFormat,\n unitProp: unitProp,\n headerData: headerData\n };\n }));\n\n return _this;\n }\n\n _createClass(DateHeader, [{\n key: \"render\",\n value: function render() {\n var unit = this.getHeaderUnit();\n var _this$props = this.props,\n headerData = _this$props.headerData,\n height = _this$props.height;\n return _react[\"default\"].createElement(_CustomHeader[\"default\"], {\n unit: unit,\n height: height,\n headerData: this.getHeaderData(this.props.intervalRenderer, this.getRootStyle(this.props.style), this.props.className, this.getLabelFormat, this.props.unit, this.props.headerData),\n children: _CustomDateHeader.CustomDateHeader\n });\n }\n }]);\n\n return DateHeader;\n}(_react[\"default\"].Component);\n\n_defineProperty(DateHeader, \"propTypes\", {\n unit: _propTypes[\"default\"].string,\n style: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string,\n timelineUnit: _propTypes[\"default\"].string,\n labelFormat: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].func, _propTypes[\"default\"].objectOf(_propTypes[\"default\"].objectOf(_propTypes[\"default\"].string)), _propTypes[\"default\"].string]).isRequired,\n intervalRenderer: _propTypes[\"default\"].func,\n headerData: _propTypes[\"default\"].object,\n height: _propTypes[\"default\"].number\n});\n\nvar DateHeaderWrapper = function DateHeaderWrapper(_ref) {\n var unit = _ref.unit,\n labelFormat = _ref.labelFormat,\n style = _ref.style,\n className = _ref.className,\n intervalRenderer = _ref.intervalRenderer,\n headerData = _ref.headerData,\n height = _ref.height;\n return _react[\"default\"].createElement(_TimelineStateContext.TimelineStateConsumer, null, function (_ref2) {\n var getTimelineState = _ref2.getTimelineState;\n var timelineState = getTimelineState();\n return _react[\"default\"].createElement(DateHeader, {\n timelineUnit: timelineState.timelineUnit,\n unit: unit,\n labelFormat: labelFormat,\n style: style,\n className: className,\n intervalRenderer: intervalRenderer,\n headerData: headerData,\n height: height\n });\n });\n};\n\nDateHeaderWrapper.propTypes = {\n style: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string,\n unit: _propTypes[\"default\"].string,\n labelFormat: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].func, _propTypes[\"default\"].objectOf(_propTypes[\"default\"].objectOf(_propTypes[\"default\"].string)), _propTypes[\"default\"].string]),\n intervalRenderer: _propTypes[\"default\"].func,\n headerData: _propTypes[\"default\"].object,\n height: _propTypes[\"default\"].number\n};\nDateHeaderWrapper.defaultProps = {\n labelFormat: formatLabel\n};\n\nfunction formatLabel(_ref3, unit, labelWidth) {\n var _ref4 = _slicedToArray(_ref3, 2),\n timeStart = _ref4[0],\n timeEnd = _ref4[1];\n\n var formatOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _defaultConfig.defaultHeaderFormats;\n var format;\n\n if (labelWidth >= 150) {\n format = formatOptions[unit]['long'];\n } else if (labelWidth >= 100) {\n format = formatOptions[unit]['mediumLong'];\n } else if (labelWidth >= 50) {\n format = formatOptions[unit]['medium'];\n } else {\n format = formatOptions[unit]['short'];\n }\n\n return timeStart.format(format);\n}\n\nvar _default = DateHeaderWrapper;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.CustomHeader = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _HeadersContext = require(\"./HeadersContext\");\n\nvar _TimelineStateContext = require(\"../timeline/TimelineStateContext\");\n\nvar _calendar = require(\"../utility/calendar\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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 _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } 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 _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 _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 CustomHeader =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(CustomHeader, _React$Component);\n\n function CustomHeader(_props) {\n var _this;\n\n _classCallCheck(this, CustomHeader);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(CustomHeader).call(this, _props));\n\n _defineProperty(_assertThisInitialized(_this), \"getHeaderIntervals\", function (_ref) {\n var canvasTimeStart = _ref.canvasTimeStart,\n canvasTimeEnd = _ref.canvasTimeEnd,\n unit = _ref.unit,\n timeSteps = _ref.timeSteps,\n getLeftOffsetFromDate = _ref.getLeftOffsetFromDate;\n var intervals = [];\n (0, _calendar.iterateTimes)(canvasTimeStart, canvasTimeEnd, unit, timeSteps, function (startTime, endTime) {\n var left = getLeftOffsetFromDate(startTime.valueOf());\n var right = getLeftOffsetFromDate(endTime.valueOf());\n var width = right - left;\n intervals.push({\n startTime: startTime,\n endTime: endTime,\n labelWidth: width,\n left: left\n });\n });\n return intervals;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getRootProps\", function () {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var style = props.style;\n return {\n style: Object.assign({}, style ? style : {}, {\n position: 'relative',\n width: _this.props.canvasWidth,\n height: _this.props.height\n })\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getIntervalProps\", function () {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var interval = props.interval,\n style = props.style;\n if (!interval) throw new Error('you should provide interval to the prop getter');\n var startTime = interval.startTime,\n labelWidth = interval.labelWidth,\n left = interval.left;\n return {\n style: _this.getIntervalStyle({\n style: style,\n startTime: startTime,\n labelWidth: labelWidth,\n canvasTimeStart: _this.props.canvasTimeStart,\n unit: _this.props.unit,\n left: left\n }),\n key: \"label-\".concat(startTime.valueOf())\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getIntervalStyle\", function (_ref2) {\n var left = _ref2.left,\n labelWidth = _ref2.labelWidth,\n style = _ref2.style;\n return _objectSpread({}, style, {\n left: left,\n width: labelWidth,\n position: 'absolute'\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getStateAndHelpers\", function () {\n var _this$props = _this.props,\n canvasTimeStart = _this$props.canvasTimeStart,\n canvasTimeEnd = _this$props.canvasTimeEnd,\n unit = _this$props.unit,\n showPeriod = _this$props.showPeriod,\n timelineWidth = _this$props.timelineWidth,\n visibleTimeStart = _this$props.visibleTimeStart,\n visibleTimeEnd = _this$props.visibleTimeEnd,\n headerData = _this$props.headerData; //TODO: only evaluate on changing params\n\n return {\n timelineContext: {\n timelineWidth: timelineWidth,\n visibleTimeStart: visibleTimeStart,\n visibleTimeEnd: visibleTimeEnd,\n canvasTimeStart: canvasTimeStart,\n canvasTimeEnd: canvasTimeEnd\n },\n headerContext: {\n unit: unit,\n intervals: _this.state.intervals\n },\n getRootProps: _this.getRootProps,\n getIntervalProps: _this.getIntervalProps,\n showPeriod: showPeriod,\n data: headerData\n };\n });\n\n var _canvasTimeStart = _props.canvasTimeStart,\n _canvasTimeEnd = _props.canvasTimeEnd,\n canvasWidth = _props.canvasWidth,\n _unit = _props.unit,\n _timeSteps = _props.timeSteps,\n _showPeriod = _props.showPeriod,\n _getLeftOffsetFromDate = _props.getLeftOffsetFromDate;\n\n var _intervals = _this.getHeaderIntervals({\n canvasTimeStart: _canvasTimeStart,\n canvasTimeEnd: _canvasTimeEnd,\n canvasWidth: canvasWidth,\n unit: _unit,\n timeSteps: _timeSteps,\n showPeriod: _showPeriod,\n getLeftOffsetFromDate: _getLeftOffsetFromDate\n });\n\n _this.state = {\n intervals: _intervals\n };\n return _this;\n }\n\n _createClass(CustomHeader, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n if (nextProps.canvasTimeStart !== this.props.canvasTimeStart || nextProps.canvasTimeEnd !== this.props.canvasTimeEnd || nextProps.canvasWidth !== this.props.canvasWidth || nextProps.unit !== this.props.unit || nextProps.timeSteps !== this.props.timeSteps || nextProps.showPeriod !== this.props.showPeriod || nextProps.children !== this.props.children || nextProps.headerData !== this.props.headerData) {\n return true;\n }\n\n return false;\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n if (nextProps.canvasTimeStart !== this.props.canvasTimeStart || nextProps.canvasTimeEnd !== this.props.canvasTimeEnd || nextProps.canvasWidth !== this.props.canvasWidth || nextProps.unit !== this.props.unit || nextProps.timeSteps !== this.props.timeSteps || nextProps.showPeriod !== this.props.showPeriod) {\n var canvasTimeStart = nextProps.canvasTimeStart,\n canvasTimeEnd = nextProps.canvasTimeEnd,\n canvasWidth = nextProps.canvasWidth,\n unit = nextProps.unit,\n timeSteps = nextProps.timeSteps,\n showPeriod = nextProps.showPeriod,\n getLeftOffsetFromDate = nextProps.getLeftOffsetFromDate;\n var intervals = this.getHeaderIntervals({\n canvasTimeStart: canvasTimeStart,\n canvasTimeEnd: canvasTimeEnd,\n canvasWidth: canvasWidth,\n unit: unit,\n timeSteps: timeSteps,\n showPeriod: showPeriod,\n getLeftOffsetFromDate: getLeftOffsetFromDate\n });\n this.setState({\n intervals: intervals\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var props = this.getStateAndHelpers();\n var Renderer = this.props.children;\n return _react[\"default\"].createElement(Renderer, props);\n }\n }]);\n\n return CustomHeader;\n}(_react[\"default\"].Component);\n\nexports.CustomHeader = CustomHeader;\n\n_defineProperty(CustomHeader, \"propTypes\", {\n //component props\n children: _propTypes[\"default\"].func.isRequired,\n unit: _propTypes[\"default\"].string.isRequired,\n //Timeline context\n timeSteps: _propTypes[\"default\"].object.isRequired,\n visibleTimeStart: _propTypes[\"default\"].number.isRequired,\n visibleTimeEnd: _propTypes[\"default\"].number.isRequired,\n canvasTimeStart: _propTypes[\"default\"].number.isRequired,\n canvasTimeEnd: _propTypes[\"default\"].number.isRequired,\n canvasWidth: _propTypes[\"default\"].number.isRequired,\n showPeriod: _propTypes[\"default\"].func.isRequired,\n headerData: _propTypes[\"default\"].object,\n getLeftOffsetFromDate: _propTypes[\"default\"].func.isRequired,\n height: _propTypes[\"default\"].number.isRequired\n});\n\nvar CustomHeaderWrapper = function CustomHeaderWrapper(_ref3) {\n var children = _ref3.children,\n unit = _ref3.unit,\n headerData = _ref3.headerData,\n height = _ref3.height;\n return _react[\"default\"].createElement(_TimelineStateContext.TimelineStateConsumer, null, function (_ref4) {\n var getTimelineState = _ref4.getTimelineState,\n showPeriod = _ref4.showPeriod,\n getLeftOffsetFromDate = _ref4.getLeftOffsetFromDate;\n var timelineState = getTimelineState();\n return _react[\"default\"].createElement(_HeadersContext.TimelineHeadersConsumer, null, function (_ref5) {\n var timeSteps = _ref5.timeSteps;\n return _react[\"default\"].createElement(CustomHeader, _extends({\n children: children,\n timeSteps: timeSteps,\n showPeriod: showPeriod,\n unit: unit ? unit : timelineState.timelineUnit\n }, timelineState, {\n headerData: headerData,\n getLeftOffsetFromDate: getLeftOffsetFromDate,\n height: height\n }));\n });\n });\n};\n\nCustomHeaderWrapper.propTypes = {\n children: _propTypes[\"default\"].func.isRequired,\n unit: _propTypes[\"default\"].string,\n headerData: _propTypes[\"default\"].object,\n height: _propTypes[\"default\"].number\n};\nCustomHeaderWrapper.defaultProps = {\n height: 30\n};\nvar _default = CustomHeaderWrapper;\nexports[\"default\"] = _default;","'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","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","module.exports = require('./lib/axios');","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nvar animationFrame = _interopRequireWildcard(require(\"dom-helpers/animationFrame\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar _memoizeOne = _interopRequireDefault(require(\"memoize-one\"));\n\nvar dates = _interopRequireWildcard(require(\"./utils/dates\"));\n\nvar _DayColumn = _interopRequireDefault(require(\"./DayColumn\"));\n\nvar _TimeGutter = _interopRequireDefault(require(\"./TimeGutter\"));\n\nvar _width = _interopRequireDefault(require(\"dom-helpers/width\"));\n\nvar _TimeGridHeader = _interopRequireDefault(require(\"./TimeGridHeader\"));\n\nvar _helpers = require(\"./utils/helpers\");\n\nvar _eventLevels = require(\"./utils/eventLevels\");\n\nvar _Resources = _interopRequireDefault(require(\"./utils/Resources\"));\n\nvar _propTypes2 = require(\"./utils/propTypes\");\n\nvar TimeGrid =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inheritsLoose2.default)(TimeGrid, _Component);\n\n function TimeGrid(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n\n _this.handleScroll = function (e) {\n if (_this.scrollRef.current) {\n _this.scrollRef.current.scrollLeft = e.target.scrollLeft;\n }\n };\n\n _this.handleResize = function () {\n animationFrame.cancel(_this.rafHandle);\n _this.rafHandle = animationFrame.request(_this.checkOverflow);\n };\n\n _this.gutterRef = function (ref) {\n _this.gutter = ref && (0, _reactDom.findDOMNode)(ref);\n };\n\n _this.handleSelectAlldayEvent = function () {\n //cancel any pending selections so only the event click goes through.\n _this.clearSelection();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n (0, _helpers.notify)(_this.props.onSelectEvent, args);\n };\n\n _this.handleSelectAllDaySlot = function (slots, slotInfo) {\n var onSelectSlot = _this.props.onSelectSlot;\n (0, _helpers.notify)(onSelectSlot, {\n slots: slots,\n start: slots[0],\n end: slots[slots.length - 1],\n action: slotInfo.action\n });\n };\n\n _this.checkOverflow = function () {\n if (_this._updatingOverflow) return;\n var content = _this.contentRef.current;\n var isOverflowing = content.scrollHeight > content.clientHeight;\n\n if (_this.state.isOverflowing !== isOverflowing) {\n _this._updatingOverflow = true;\n\n _this.setState({\n isOverflowing: isOverflowing\n }, function () {\n _this._updatingOverflow = false;\n });\n }\n };\n\n _this.memoizedResources = (0, _memoizeOne.default)(function (resources, accessors) {\n return (0, _Resources.default)(resources, accessors);\n });\n _this.state = {\n gutterWidth: undefined,\n isOverflowing: null\n };\n _this.scrollRef = _react.default.createRef();\n _this.contentRef = _react.default.createRef();\n _this._scrollRatio = null;\n return _this;\n }\n\n var _proto = TimeGrid.prototype;\n\n _proto.componentWillMount = function componentWillMount() {\n this.calculateScroll();\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.checkOverflow();\n\n if (this.props.width == null) {\n this.measureGutter();\n }\n\n this.applyScroll();\n window.addEventListener('resize', this.handleResize);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener('resize', this.handleResize);\n animationFrame.cancel(this.rafHandle);\n\n if (this.measureGutterAnimationFrameRequest) {\n window.cancelAnimationFrame(this.measureGutterAnimationFrameRequest);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n if (this.props.width == null) {\n this.measureGutter();\n }\n\n this.applyScroll(); //this.checkOverflow()\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var _this$props = this.props,\n range = _this$props.range,\n scrollToTime = _this$props.scrollToTime; // When paginating, reset scroll\n\n if (!dates.eq(nextProps.range[0], range[0], 'minute') || !dates.eq(nextProps.scrollToTime, scrollToTime, 'minute')) {\n this.calculateScroll(nextProps);\n }\n };\n\n _proto.renderEvents = function renderEvents(range, events, now) {\n var _this2 = this;\n\n var _this$props2 = this.props,\n min = _this$props2.min,\n max = _this$props2.max,\n components = _this$props2.components,\n accessors = _this$props2.accessors,\n localizer = _this$props2.localizer,\n dayLayoutAlgorithm = _this$props2.dayLayoutAlgorithm;\n var resources = this.memoizedResources(this.props.resources, accessors);\n var groupedEvents = resources.groupEvents(events);\n return resources.map(function (_ref, i) {\n var id = _ref[0],\n resource = _ref[1];\n return range.map(function (date, jj) {\n var daysEvents = (groupedEvents.get(id) || []).filter(function (event) {\n return dates.inRange(date, accessors.start(event), accessors.end(event), 'day');\n });\n return _react.default.createElement(_DayColumn.default, (0, _extends2.default)({}, _this2.props, {\n localizer: localizer,\n min: dates.merge(date, min),\n max: dates.merge(date, max),\n resource: resource && id,\n components: components,\n isNow: dates.eq(date, now, 'day'),\n key: i + '-' + jj,\n date: date,\n events: daysEvents,\n dayLayoutAlgorithm: dayLayoutAlgorithm\n }));\n });\n });\n };\n\n _proto.render = function render() {\n var _this$props3 = this.props,\n events = _this$props3.events,\n range = _this$props3.range,\n width = _this$props3.width,\n rtl = _this$props3.rtl,\n selected = _this$props3.selected,\n getNow = _this$props3.getNow,\n resources = _this$props3.resources,\n components = _this$props3.components,\n accessors = _this$props3.accessors,\n getters = _this$props3.getters,\n localizer = _this$props3.localizer,\n min = _this$props3.min,\n max = _this$props3.max,\n showMultiDayTimes = _this$props3.showMultiDayTimes,\n longPressThreshold = _this$props3.longPressThreshold;\n width = width || this.state.gutterWidth;\n var start = range[0],\n end = range[range.length - 1];\n this.slots = range.length;\n var allDayEvents = [],\n rangeEvents = [];\n events.forEach(function (event) {\n if ((0, _eventLevels.inRange)(event, start, end, accessors)) {\n var eStart = accessors.start(event),\n eEnd = accessors.end(event);\n\n if (accessors.allDay(event) || dates.isJustDate(eStart) && dates.isJustDate(eEnd) || !showMultiDayTimes && !dates.eq(eStart, eEnd, 'day')) {\n allDayEvents.push(event);\n } else {\n rangeEvents.push(event);\n }\n }\n });\n allDayEvents.sort(function (a, b) {\n return (0, _eventLevels.sortEvents)(a, b, accessors);\n });\n return _react.default.createElement(\"div\", {\n className: (0, _clsx.default)('rbc-time-view', resources && 'rbc-time-view-resources')\n }, _react.default.createElement(_TimeGridHeader.default, {\n range: range,\n events: allDayEvents,\n width: width,\n rtl: rtl,\n getNow: getNow,\n localizer: localizer,\n selected: selected,\n resources: this.memoizedResources(resources, accessors),\n selectable: this.props.selectable,\n accessors: accessors,\n getters: getters,\n components: components,\n scrollRef: this.scrollRef,\n isOverflowing: this.state.isOverflowing,\n longPressThreshold: longPressThreshold,\n onSelectSlot: this.handleSelectAllDaySlot,\n onSelectEvent: this.handleSelectAlldayEvent,\n onDoubleClickEvent: this.props.onDoubleClickEvent,\n onDrillDown: this.props.onDrillDown,\n getDrilldownView: this.props.getDrilldownView\n }), _react.default.createElement(\"div\", {\n ref: this.contentRef,\n className: \"rbc-time-content\",\n onScroll: this.handleScroll\n }, _react.default.createElement(_TimeGutter.default, {\n date: start,\n ref: this.gutterRef,\n localizer: localizer,\n min: dates.merge(start, min),\n max: dates.merge(start, max),\n step: this.props.step,\n getNow: this.props.getNow,\n timeslots: this.props.timeslots,\n components: components,\n className: \"rbc-time-gutter\"\n }), this.renderEvents(range, rangeEvents, getNow())));\n };\n\n _proto.clearSelection = function clearSelection() {\n clearTimeout(this._selectTimer);\n this._pendingSelection = [];\n };\n\n _proto.measureGutter = function measureGutter() {\n var _this3 = this;\n\n if (this.measureGutterAnimationFrameRequest) {\n window.cancelAnimationFrame(this.measureGutterAnimationFrameRequest);\n }\n\n this.measureGutterAnimationFrameRequest = window.requestAnimationFrame(function () {\n var width = (0, _width.default)(_this3.gutter);\n\n if (width && _this3.state.gutterWidth !== width) {\n _this3.setState({\n gutterWidth: width\n });\n }\n });\n };\n\n _proto.applyScroll = function applyScroll() {\n if (this._scrollRatio != null) {\n var content = this.contentRef.current;\n content.scrollTop = content.scrollHeight * this._scrollRatio; // Only do this once\n\n this._scrollRatio = null;\n }\n };\n\n _proto.calculateScroll = function calculateScroll(props) {\n if (props === void 0) {\n props = this.props;\n }\n\n var _props = props,\n min = _props.min,\n max = _props.max,\n scrollToTime = _props.scrollToTime;\n var diffMillis = scrollToTime - dates.startOf(scrollToTime, 'day');\n var totalMillis = dates.diff(max, min);\n this._scrollRatio = diffMillis / totalMillis;\n };\n\n return TimeGrid;\n}(_react.Component);\n\nexports.default = TimeGrid;\nTimeGrid.propTypes = process.env.NODE_ENV !== \"production\" ? {\n events: _propTypes.default.array.isRequired,\n resources: _propTypes.default.array,\n step: _propTypes.default.number,\n timeslots: _propTypes.default.number,\n range: _propTypes.default.arrayOf(_propTypes.default.instanceOf(Date)),\n min: _propTypes.default.instanceOf(Date),\n max: _propTypes.default.instanceOf(Date),\n getNow: _propTypes.default.func.isRequired,\n scrollToTime: _propTypes.default.instanceOf(Date),\n showMultiDayTimes: _propTypes.default.bool,\n rtl: _propTypes.default.bool,\n width: _propTypes.default.number,\n accessors: _propTypes.default.object.isRequired,\n components: _propTypes.default.object.isRequired,\n getters: _propTypes.default.object.isRequired,\n localizer: _propTypes.default.object.isRequired,\n selected: _propTypes.default.object,\n selectable: _propTypes.default.oneOf([true, false, 'ignoreEvents']),\n longPressThreshold: _propTypes.default.number,\n onNavigate: _propTypes.default.func,\n onSelectSlot: _propTypes.default.func,\n onSelectEnd: _propTypes.default.func,\n onSelectStart: _propTypes.default.func,\n onSelectEvent: _propTypes.default.func,\n onDoubleClickEvent: _propTypes.default.func,\n onDrillDown: _propTypes.default.func,\n getDrilldownView: _propTypes.default.func.isRequired,\n dayLayoutAlgorithm: _propTypes2.DayLayoutAlgorithmPropType\n} : {};\nTimeGrid.defaultProps = {\n step: 30,\n timeslots: 2,\n min: dates.startOf(new Date(), 'day'),\n max: dates.endOf(new Date(), 'day'),\n scrollToTime: dates.startOf(new Date(), 'day')\n};\nmodule.exports = exports[\"default\"];","var objectKeys = require('object-keys');\nvar isArguments = require('is-arguments');\nvar is = require('object-is');\nvar isRegex = require('is-regex');\nvar flags = require('regexp.prototype.flags');\nvar isDate = require('is-date-object');\n\nvar getTime = Date.prototype.getTime;\n\nfunction deepEqual(actual, expected, options) {\n var opts = options || {};\n\n // 7.1. All identical values are equivalent, as determined by ===.\n if (opts.strict ? is(actual, expected) : actual === expected) {\n return true;\n }\n\n // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n if (!actual || !expected || (typeof actual !== 'object' && typeof expected !== 'object')) {\n return opts.strict ? is(actual, expected) : actual == expected;\n }\n\n /*\n * 7.4. For all other Object pairs, including Array objects, equivalence is\n * determined by having the same number of owned properties (as verified\n * with Object.prototype.hasOwnProperty.call), the same set of keys\n * (although not necessarily the same order), equivalent values for every\n * corresponding key, and an identical 'prototype' property. Note: this\n * accounts for both named and indexed properties on Arrays.\n */\n // eslint-disable-next-line no-use-before-define\n return objEquiv(actual, expected, opts);\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer(x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\n return false;\n }\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') {\n return false;\n }\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n /* eslint max-statements: [2, 50] */\n var i, key;\n if (typeof a !== typeof b) { return false; }\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) { return false; }\n\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) { return false; }\n\n if (isArguments(a) !== isArguments(b)) { return false; }\n\n var aIsRegex = isRegex(a);\n var bIsRegex = isRegex(b);\n if (aIsRegex !== bIsRegex) { return false; }\n if (aIsRegex || bIsRegex) {\n return a.source === b.source && flags(a) === flags(b);\n }\n\n if (isDate(a) && isDate(b)) {\n return getTime.call(a) === getTime.call(b);\n }\n\n var aIsBuffer = isBuffer(a);\n var bIsBuffer = isBuffer(b);\n if (aIsBuffer !== bIsBuffer) { return false; }\n if (aIsBuffer || bIsBuffer) { // && would work too, because both are true or both false here\n if (a.length !== b.length) { return false; }\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) { return false; }\n }\n return true;\n }\n\n if (typeof a !== typeof b) { return false; }\n\n try {\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n } catch (e) { // happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates hasOwnProperty)\n if (ka.length !== kb.length) { return false; }\n\n // the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n // ~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) { return false; }\n }\n // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) { return false; }\n }\n\n return true;\n}\n\nmodule.exports = deepEqual;\n","\n'use strict'\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./react-async-hook.cjs.production.min.js')\n} else {\n module.exports = require('./react-async-hook.cjs.development.js')\n}\n","/* global setTimeout, clearTimeout */\n\nmodule.exports = function debounce (fn, wait = 0, options = {}) {\n let lastCallAt\n let deferred\n let timer\n let pendingArgs = []\n return function debounced (...args) {\n const currentWait = getWait(wait)\n const currentTime = new Date().getTime()\n\n const isCold = !lastCallAt || (currentTime - lastCallAt) > currentWait\n\n lastCallAt = currentTime\n\n if (isCold && options.leading) {\n return options.accumulate\n ? Promise.resolve(fn.call(this, [args])).then(result => result[0])\n : Promise.resolve(fn.call(this, ...args))\n }\n\n if (deferred) {\n clearTimeout(timer)\n } else {\n deferred = defer()\n }\n\n pendingArgs.push(args)\n timer = setTimeout(flush.bind(this), currentWait)\n\n if (options.accumulate) {\n const argsIndex = pendingArgs.length - 1\n return deferred.promise.then(results => results[argsIndex])\n }\n\n return deferred.promise\n }\n\n function flush () {\n const thisDeferred = deferred\n clearTimeout(timer)\n\n Promise.resolve(\n options.accumulate\n ? fn.call(this, pendingArgs)\n : fn.apply(this, pendingArgs[pendingArgs.length - 1])\n )\n .then(thisDeferred.resolve, thisDeferred.reject)\n\n pendingArgs = []\n deferred = null\n }\n}\n\nfunction getWait (wait) {\n return (typeof wait === 'function') ? wait() : wait\n}\n\nfunction defer () {\n const deferred = {}\n deferred.promise = new Promise((resolve, reject) => {\n deferred.resolve = resolve\n deferred.reject = reject\n })\n return deferred\n}\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","import {\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\n\n// See https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useIsomorphicLayoutEffect =\n typeof window !== 'undefined' &&\n typeof window.document !== 'undefined' &&\n typeof window.document.createElement !== 'undefined'\n ? useLayoutEffect\n : useEffect;\n\n// assign current value to a ref and providing a getter.\n// This way we are sure to always get latest value provided to hook and\n// avoid weird issues due to closures capturing stale values...\n// See https://overreacted.io/making-setinterval-declarative-with-react-hooks/\nconst useGetter = (t: T) => {\n const ref = useRef(t);\n useIsomorphicLayoutEffect(() => {\n ref.current = t;\n });\n return () => ref.current;\n};\n\ntype UnknownResult = unknown;\n\n// Convenient to avoid declaring the type of args, which may help reduce type boilerplate\n//type UnknownArgs = unknown[];\n// TODO unfortunately it seems required for now if we want default param to work...\n// See https://twitter.com/sebastienlorber/status/1170003594894106624\ntype UnknownArgs = any[];\n\nexport type AsyncStateStatus =\n | 'not-requested'\n | 'loading'\n | 'success'\n | 'error';\n\nexport type AsyncState = {\n status: AsyncStateStatus;\n loading: boolean;\n error: Error | undefined;\n result: R | undefined;\n};\ntype SetLoading = (asyncState: AsyncState) => AsyncState;\ntype SetResult = (result: R, asyncState: AsyncState) => AsyncState;\ntype SetError = (error: Error, asyncState: AsyncState) => AsyncState;\n\ntype MaybePromise = Promise | T;\n\ntype PromiseCallbackOptions = {\n // Permit to know if the success/error belongs to the last async call\n isCurrent: () => boolean;\n\n // TODO this can be convenient but need some refactor\n // params: Args;\n};\n\nexport type UseAsyncOptionsNormalized = {\n initialState: (options?: UseAsyncOptionsNormalized) => AsyncState;\n executeOnMount: boolean;\n executeOnUpdate: boolean;\n setLoading: SetLoading;\n setResult: SetResult;\n setError: SetError;\n onSuccess: (r: R, options: PromiseCallbackOptions) => void;\n onError: (e: Error, options: PromiseCallbackOptions) => void;\n};\nexport type UseAsyncOptions =\n | Partial>\n | undefined\n | null;\n\nconst InitialAsyncState: AsyncState = {\n status: 'not-requested',\n loading: false,\n result: undefined,\n error: undefined,\n};\n\nconst InitialAsyncLoadingState: AsyncState = {\n status: 'loading',\n loading: true,\n result: undefined,\n error: undefined,\n};\n\nconst defaultSetLoading: SetLoading = _asyncState =>\n InitialAsyncLoadingState;\n\nconst defaultSetResult: SetResult = (result, _asyncState) => ({\n status: 'success',\n loading: false,\n result: result,\n error: undefined,\n});\n\nconst defaultSetError: SetError = (error, _asyncState) => ({\n status: 'error',\n loading: false,\n result: undefined,\n error: error,\n});\n\nconst noop = () => {};\n\nconst DefaultOptions: UseAsyncOptionsNormalized = {\n initialState: options =>\n options && options.executeOnMount\n ? InitialAsyncLoadingState\n : InitialAsyncState,\n executeOnMount: true,\n executeOnUpdate: true,\n setLoading: defaultSetLoading,\n setResult: defaultSetResult,\n setError: defaultSetError,\n onSuccess: noop,\n onError: noop,\n};\n\nconst normalizeOptions = (\n options: UseAsyncOptions\n): UseAsyncOptionsNormalized => ({\n ...DefaultOptions,\n ...options,\n});\n\ntype UseAsyncStateResult = {\n value: AsyncState;\n set: (value: AsyncState) => void;\n merge: (value: Partial>) => void;\n reset: () => void;\n setLoading: () => void;\n setResult: (r: R) => void;\n setError: (e: Error) => void;\n};\nconst useAsyncState = (\n options: UseAsyncOptionsNormalized\n): UseAsyncStateResult => {\n const [value, setValue] = useState>(() =>\n options.initialState(options)\n );\n\n const reset = useCallback(() => setValue(options.initialState(options)), [\n setValue,\n options,\n ]);\n\n const setLoading = useCallback(() => setValue(options.setLoading(value)), [\n value,\n setValue,\n ]);\n const setResult = useCallback(\n (result: R) => setValue(options.setResult(result, value)),\n [value, setValue]\n );\n\n const setError = useCallback(\n (error: Error) => setValue(options.setError(error, value)),\n [value, setValue]\n );\n\n const set = setValue;\n\n const merge = useCallback(\n (state: Partial>) =>\n set({\n ...value,\n ...state,\n }),\n [value, set]\n );\n return {\n value,\n set,\n merge,\n reset,\n setLoading,\n setResult,\n setError,\n };\n};\n\nconst useIsMounted = (): (() => boolean) => {\n const ref = useRef(false);\n useEffect(() => {\n ref.current = true;\n return () => {\n ref.current = false;\n };\n }, []);\n return () => ref.current;\n};\n\ntype UseCurrentPromiseReturn = {\n set: (promise: Promise) => void;\n get: () => Promise | null;\n is: (promise: Promise) => boolean;\n};\nconst useCurrentPromise = (): UseCurrentPromiseReturn => {\n const ref = useRef | null>(null);\n return {\n set: promise => (ref.current = promise),\n get: () => ref.current,\n is: promise => ref.current === promise,\n };\n};\n\nexport type UseAsyncReturn<\n R = UnknownResult,\n Args extends any[] = UnknownArgs\n> = AsyncState & {\n set: (value: AsyncState) => void;\n merge: (value: Partial>) => void;\n reset: () => void;\n execute: (...args: Args) => Promise;\n currentPromise: Promise | null;\n currentParams: Args | null;\n};\n\n// Relaxed interface which accept both async and sync functions\n// Accepting sync function is convenient for useAsyncCallback\nconst useAsyncInternal = (\n asyncFunction: (...args: Args) => MaybePromise,\n params: Args,\n options?: UseAsyncOptions\n): UseAsyncReturn => {\n const normalizedOptions = normalizeOptions(options);\n\n const [currentParams, setCurrentParams] = useState(null);\n\n const AsyncState = useAsyncState(normalizedOptions);\n\n const isMounted = useIsMounted();\n const CurrentPromise = useCurrentPromise();\n\n // We only want to handle the promise result/error\n // if it is the last operation and the comp is still mounted\n const shouldHandlePromise = (p: Promise) =>\n isMounted() && CurrentPromise.is(p);\n\n const executeAsyncOperation = (...args: Args): Promise => {\n const promise: MaybePromise = asyncFunction(...args);\n setCurrentParams(args);\n if (promise instanceof Promise) {\n CurrentPromise.set(promise);\n AsyncState.setLoading();\n promise.then(\n result => {\n if (shouldHandlePromise(promise)) {\n AsyncState.setResult(result);\n }\n normalizedOptions.onSuccess(result, {\n isCurrent: () => CurrentPromise.is(promise),\n });\n },\n error => {\n if (shouldHandlePromise(promise)) {\n AsyncState.setError(error);\n }\n normalizedOptions.onError(error, {\n isCurrent: () => CurrentPromise.is(promise),\n });\n }\n );\n return promise;\n } else {\n // We allow passing a non-async function (mostly for useAsyncCallback conveniency)\n const syncResult: R = promise;\n AsyncState.setResult(syncResult);\n return Promise.resolve(syncResult);\n }\n };\n\n // Keep this outside useEffect, because inside isMounted()\n // will be true as the component is already mounted when it's run\n const isMounting = !isMounted();\n useEffect(() => {\n if (isMounting) {\n normalizedOptions.executeOnMount && executeAsyncOperation(...params);\n } else {\n normalizedOptions.executeOnUpdate && executeAsyncOperation(...params);\n }\n }, params);\n\n return {\n ...AsyncState.value,\n set: AsyncState.set,\n merge: AsyncState.merge,\n reset: AsyncState.reset,\n execute: executeAsyncOperation,\n currentPromise: CurrentPromise.get(),\n currentParams,\n };\n};\n\n// override to allow passing an async function with no args:\n// gives more user-freedom to create an inline async function\nexport function useAsync(\n asyncFunction: () => Promise,\n params: Args,\n options?: UseAsyncOptions\n): UseAsyncReturn;\nexport function useAsync(\n asyncFunction: (...args: Args) => Promise,\n params: Args,\n options?: UseAsyncOptions\n): UseAsyncReturn;\n\nexport function useAsync(\n asyncFunction: (...args: Args) => Promise,\n params: Args,\n options?: UseAsyncOptions\n): UseAsyncReturn {\n return useAsyncInternal(asyncFunction, params, options);\n}\n\ntype AddArg = ((h: H, ...t: T) => void) extends ((\n ...r: infer R\n) => void)\n ? R\n : never;\n\nexport const useAsyncAbortable = <\n R = UnknownResult,\n Args extends any[] = UnknownArgs\n>(\n asyncFunction: (...args: AddArg) => Promise,\n params: Args,\n options?: UseAsyncOptions\n): UseAsyncReturn => {\n const abortControllerRef = useRef();\n\n // Wrap the original async function and enhance it with abortion login\n const asyncFunctionWrapper: (...args: Args) => Promise = async (\n ...p: Args\n ) => {\n // Cancel previous async call\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n // Create/store new abort controller for next async call\n const abortController = new AbortController();\n abortControllerRef.current = abortController;\n\n try {\n // @ts-ignore // TODO how to type this?\n return await asyncFunction(abortController.signal, ...p);\n } finally {\n // Unset abortController ref if response is already there,\n // as it's not needed anymore to try to abort it (would it be no-op?)\n if (abortControllerRef.current === abortController) {\n abortControllerRef.current = undefined;\n }\n }\n };\n\n return useAsync(asyncFunctionWrapper, params, options);\n};\n\n// keep compat with TS < 3.5\ntype LegacyOmit = Pick>;\n\n// Some options are not allowed for useAsyncCallback\nexport type UseAsyncCallbackOptions =\n | LegacyOmit<\n Partial>,\n 'executeOnMount' | 'executeOnUpdate' | 'initialState'\n >\n | undefined\n | null;\n\nexport const useAsyncCallback = <\n R = UnknownResult,\n Args extends any[] = UnknownArgs\n>(\n asyncFunction: (...args: Args) => MaybePromise,\n options?: UseAsyncCallbackOptions\n): UseAsyncReturn => {\n return useAsyncInternal(\n asyncFunction,\n // Hacky but in such case we don't need the params,\n // because async function is only executed manually\n [] as any,\n {\n ...options,\n executeOnMount: false,\n executeOnUpdate: false,\n }\n );\n};\n\nexport const useAsyncFetchMore = ({\n value,\n fetchMore,\n merge,\n isEnd: isEndFn,\n}: {\n value: UseAsyncReturn;\n fetchMore: (result: R) => Promise;\n merge: (result: R, moreResult: R) => R;\n isEnd: (moreResult: R) => boolean;\n}) => {\n const getAsyncValue = useGetter(value);\n const [isEnd, setIsEnd] = useState(false);\n\n // TODO not really fan of this id thing, we should find a way to support cancellation!\n const fetchMoreId = useRef(0);\n\n const fetchMoreAsync = useAsyncCallback(async () => {\n const freshAsyncValue = getAsyncValue();\n if (freshAsyncValue.status !== 'success') {\n throw new Error(\n \"Can't fetch more if the original fetch is not a success\"\n );\n }\n if (fetchMoreAsync.status === 'loading') {\n throw new Error(\n \"Can't fetch more, because we are already fetching more!\"\n );\n }\n\n fetchMoreId.current = fetchMoreId.current + 1;\n const currentId = fetchMoreId.current;\n const moreResult = await fetchMore(freshAsyncValue.result!);\n\n // TODO not satisfied with this, we should just use \"freshAsyncValue === getAsyncValue()\" but asyncValue is not \"stable\"\n const isStillSameValue =\n freshAsyncValue.status === getAsyncValue().status &&\n freshAsyncValue.result === getAsyncValue().result;\n\n const isStillSameId = fetchMoreId.current === currentId;\n\n // Handle race conditions: we only merge the fetchMore result if the initial async value is the same\n const canMerge = isStillSameValue && isStillSameId;\n if (canMerge) {\n value.merge({\n result: merge(value.result!, moreResult),\n });\n if (isEndFn(moreResult)) {\n setIsEnd(true);\n }\n }\n\n // return is useful for chaining, like fetchMore().then(result => {});\n return moreResult;\n });\n\n const reset = () => {\n fetchMoreAsync.reset();\n setIsEnd(false);\n };\n\n // We only allow to fetch more on a stable async value\n // If that value change for whatever reason, we reset the fetchmore too (which will make current pending requests to be ignored)\n // TODO value is not stable, we could just reset on value change otherwise\n const shouldReset = value.status !== 'success';\n useEffect(() => {\n if (shouldReset) {\n reset();\n }\n }, [shouldReset]);\n\n return {\n canFetchMore:\n value.status === 'success' && fetchMoreAsync.status !== 'loading',\n loading: fetchMoreAsync.loading,\n status: fetchMoreAsync.status,\n fetchMore: fetchMoreAsync.execute,\n isEnd,\n };\n};\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","/** @license React v16.12.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var h=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113;n&&Symbol.for(\"react.suspense_list\");\nvar z=n?Symbol.for(\"react.memo\"):60115,aa=n?Symbol.for(\"react.lazy\"):60116;n&&Symbol.for(\"react.fundamental\");n&&Symbol.for(\"react.responder\");n&&Symbol.for(\"react.scope\");var A=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction B(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cP.length&&P.push(a)}\nfunction S(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+T(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var l=0;lb}return!1}function B(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1)});var sb=/[\\-:]([a-z])/g;function tb(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(sb,\ntb);D[b]=new B(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(sb,tb);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(sb,tb);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0)});function ub(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}\nfunction vb(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2=b.length))throw Error(u(93));b=b[0]}c=b}null==c&&(c=\"\")}a._wrapperState={initialValue:ub(c)}}\nfunction Mb(a,b){var c=ub(b.value),d=ub(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Nb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Ob={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Pb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Qb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Pb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Rb,Sb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Ob.svg||\"innerHTML\"in a)a.innerHTML=b;else{Rb=Rb||document.createElement(\"div\");Rb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Rb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Tb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Ub(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Vb={animationend:Ub(\"Animation\",\"AnimationEnd\"),animationiteration:Ub(\"Animation\",\"AnimationIteration\"),animationstart:Ub(\"Animation\",\"AnimationStart\"),transitionend:Ub(\"Transition\",\"TransitionEnd\")},Wb={},Xb={};\nYa&&(Xb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Vb.animationend.animation,delete Vb.animationiteration.animation,delete Vb.animationstart.animation),\"TransitionEvent\"in window||delete Vb.transitionend.transition);function Yb(a){if(Wb[a])return Wb[a];if(!Vb[a])return a;var b=Vb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Xb)return Wb[a]=b[c];return a}var Zb=Yb(\"animationend\"),$b=Yb(\"animationiteration\"),ac=Yb(\"animationstart\"),bc=Yb(\"transitionend\"),cc=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \");\nfunction ec(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function fc(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function gc(a){if(ec(a)!==a)throw Error(u(188));}\nfunction hc(a){var b=a.alternate;if(!b){b=ec(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return gc(e),a;if(f===d)return gc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function ic(a){a=hc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nvar jc,kc,lc,mc=!1,nc=[],oc=null,pc=null,qc=null,rc=new Map,sc=new Map,tc=[],uc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit\".split(\" \"),vc=\"focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture\".split(\" \");\nfunction wc(a){var b=xc(a);uc.forEach(function(c){yc(c,a,b)});vc.forEach(function(c){yc(c,a,b)})}function zc(a,b,c,d){return{blockedOn:a,topLevelType:b,eventSystemFlags:c|32,nativeEvent:d}}function Ac(a,b){switch(a){case \"focus\":case \"blur\":oc=null;break;case \"dragenter\":case \"dragleave\":pc=null;break;case \"mouseover\":case \"mouseout\":qc=null;break;case \"pointerover\":case \"pointerout\":rc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":sc.delete(b.pointerId)}}\nfunction Bc(a,b,c,d,e){if(null===a||a.nativeEvent!==e)return a=zc(b,c,d,e),null!==b&&(b=Cc(b),null!==b&&kc(b)),a;a.eventSystemFlags|=d;return a}function Dc(a,b,c,d){switch(b){case \"focus\":return oc=Bc(oc,a,b,c,d),!0;case \"dragenter\":return pc=Bc(pc,a,b,c,d),!0;case \"mouseover\":return qc=Bc(qc,a,b,c,d),!0;case \"pointerover\":var e=d.pointerId;rc.set(e,Bc(rc.get(e)||null,a,b,c,d));return!0;case \"gotpointercapture\":return e=d.pointerId,sc.set(e,Bc(sc.get(e)||null,a,b,c,d)),!0}return!1}\nfunction Ec(a){var b=Fc(a.target);if(null!==b){var c=ec(b);if(null!==c)if(b=c.tag,13===b){if(b=fc(c),null!==b){a.blockedOn=b;q.unstable_runWithPriority(a.priority,function(){lc(c)});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}function Gc(a){if(null!==a.blockedOn)return!1;var b=Hc(a.topLevelType,a.eventSystemFlags,a.nativeEvent);if(null!==b){var c=Cc(b);null!==c&&kc(c);a.blockedOn=b;return!1}return!0}\nfunction Ic(a,b,c){Gc(a)&&c.delete(b)}function Jc(){for(mc=!1;0this.eventPool.length&&this.eventPool.push(a)}function Vc(a){a.eventPool=[];a.getPooled=Wc;a.release=Xc}var Yc=E.extend({animationName:null,elapsedTime:null,pseudoElement:null}),Zc=E.extend({clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),$c=E.extend({view:null,detail:null}),ad=$c.extend({relatedTarget:null});\nfunction bd(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}\nvar cd={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},dd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",\n116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},ed={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function gd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=ed[a])?!!b[a]:!1}function hd(){return gd}\nvar id=$c.extend({key:function(a){if(a.key){var b=cd[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=bd(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?dd[a.keyCode]||\"Unidentified\":\"\"},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:hd,charCode:function(a){return\"keypress\"===a.type?bd(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?bd(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),jd=0,kd=0,ld=!1,md=!1,nd=$c.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:hd,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)},movementX:function(a){if(\"movementX\"in a)return a.movementX;var b=jd;jd=a.screenX;return ld?\"mousemove\"===a.type?a.screenX-\nb:0:(ld=!0,0)},movementY:function(a){if(\"movementY\"in a)return a.movementY;var b=kd;kd=a.screenY;return md?\"mousemove\"===a.type?a.screenY-b:0:(md=!0,0)}}),od=nd.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),pd=nd.extend({dataTransfer:null}),qd=$c.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:hd}),rd=E.extend({propertyName:null,\nelapsedTime:null,pseudoElement:null}),sd=nd.extend({deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},deltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:null,deltaMode:null}),td=[[\"blur\",\"blur\",0],[\"cancel\",\"cancel\",0],[\"click\",\"click\",0],[\"close\",\"close\",0],[\"contextmenu\",\"contextMenu\",0],[\"copy\",\"copy\",0],[\"cut\",\"cut\",0],[\"auxclick\",\"auxClick\",0],[\"dblclick\",\"doubleClick\",0],[\"dragend\",\"dragEnd\",\n0],[\"dragstart\",\"dragStart\",0],[\"drop\",\"drop\",0],[\"focus\",\"focus\",0],[\"input\",\"input\",0],[\"invalid\",\"invalid\",0],[\"keydown\",\"keyDown\",0],[\"keypress\",\"keyPress\",0],[\"keyup\",\"keyUp\",0],[\"mousedown\",\"mouseDown\",0],[\"mouseup\",\"mouseUp\",0],[\"paste\",\"paste\",0],[\"pause\",\"pause\",0],[\"play\",\"play\",0],[\"pointercancel\",\"pointerCancel\",0],[\"pointerdown\",\"pointerDown\",0],[\"pointerup\",\"pointerUp\",0],[\"ratechange\",\"rateChange\",0],[\"reset\",\"reset\",0],[\"seeked\",\"seeked\",0],[\"submit\",\"submit\",0],[\"touchcancel\",\"touchCancel\",\n0],[\"touchend\",\"touchEnd\",0],[\"touchstart\",\"touchStart\",0],[\"volumechange\",\"volumeChange\",0],[\"drag\",\"drag\",1],[\"dragenter\",\"dragEnter\",1],[\"dragexit\",\"dragExit\",1],[\"dragleave\",\"dragLeave\",1],[\"dragover\",\"dragOver\",1],[\"mousemove\",\"mouseMove\",1],[\"mouseout\",\"mouseOut\",1],[\"mouseover\",\"mouseOver\",1],[\"pointermove\",\"pointerMove\",1],[\"pointerout\",\"pointerOut\",1],[\"pointerover\",\"pointerOver\",1],[\"scroll\",\"scroll\",1],[\"toggle\",\"toggle\",1],[\"touchmove\",\"touchMove\",1],[\"wheel\",\"wheel\",1],[\"abort\",\"abort\",\n2],[Zb,\"animationEnd\",2],[$b,\"animationIteration\",2],[ac,\"animationStart\",2],[\"canplay\",\"canPlay\",2],[\"canplaythrough\",\"canPlayThrough\",2],[\"durationchange\",\"durationChange\",2],[\"emptied\",\"emptied\",2],[\"encrypted\",\"encrypted\",2],[\"ended\",\"ended\",2],[\"error\",\"error\",2],[\"gotpointercapture\",\"gotPointerCapture\",2],[\"load\",\"load\",2],[\"loadeddata\",\"loadedData\",2],[\"loadedmetadata\",\"loadedMetadata\",2],[\"loadstart\",\"loadStart\",2],[\"lostpointercapture\",\"lostPointerCapture\",2],[\"playing\",\"playing\",2],[\"progress\",\n\"progress\",2],[\"seeking\",\"seeking\",2],[\"stalled\",\"stalled\",2],[\"suspend\",\"suspend\",2],[\"timeupdate\",\"timeUpdate\",2],[bc,\"transitionEnd\",2],[\"waiting\",\"waiting\",2]],ud={},vd={},wd=0;for(;wd=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=ce(c)}}\nfunction ee(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?ee(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function fe(){for(var a=window,b=be();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=be(a.document)}return b}\nfunction ge(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var he=\"$\",ie=\"/$\",je=\"$?\",ke=\"$!\",le=null,me=null;function ne(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction oe(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var pe=\"function\"===typeof setTimeout?setTimeout:void 0,qe=\"function\"===typeof clearTimeout?clearTimeout:void 0;function re(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction se(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===he||c===ke||c===je){if(0===b)return a;b--}else c===ie&&b++}a=a.previousSibling}return null}var te=Math.random().toString(36).slice(2),ue=\"__reactInternalInstance$\"+te,ve=\"__reactEventHandlers$\"+te,we=\"__reactContainere$\"+te;\nfunction Fc(a){var b=a[ue];if(b)return b;for(var c=a.parentNode;c;){if(b=c[we]||c[ue]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=se(a);null!==a;){if(c=a[ue])return c;a=se(a)}return b}a=c;c=a.parentNode}return null}function Cc(a){a=a[ue]||a[we];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function xe(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function ye(a){return a[ve]||null}var ze=null,Ae=null,Be=null;\nfunction Ce(){if(Be)return Be;var a,b=Ae,c=b.length,d,e=\"value\"in ze?ze.value:ze.textContent,f=e.length;for(a=0;a=He),Ke=String.fromCharCode(32),Le={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},Me=!1;\nfunction Ne(a,b){switch(a){case \"keyup\":return-1!==Fe.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function Oe(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var Pe=!1;function Qe(a,b){switch(a){case \"compositionend\":return Oe(b);case \"keypress\":if(32!==b.which)return null;Me=!0;return Ke;case \"textInput\":return a=b.data,a===Ke&&Me?null:a;default:return null}}\nfunction Re(a,b){if(Pe)return\"compositionend\"===a||!Ge&&Ne(a,b)?(a=Ce(),Be=Ae=ze=null,Pe=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=document.documentMode,sf={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},tf=null,uf=null,vf=null,wf=!1;\nfunction xf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(wf||null==tf||tf!==be(c))return null;c=tf;\"selectionStart\"in c&&ge(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return vf&&qf(vf,c)?null:(vf=c,a=E.getPooled(sf.select,uf,a,b),a.type=\"select\",a.target=tf,Sc(a),a)}\nvar yf={eventTypes:sf,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=xc(e);f=ja.onSelect;for(var g=0;gBf||(a.current=Af[Bf],Af[Bf]=null,Bf--)}\nfunction I(a,b){Bf++;Af[Bf]=a.current;a.current=b}var Cf={},J={current:Cf},K={current:!1},Df=Cf;function Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Ff(a){G(K,a);G(J,a)}function Gf(a){G(K,a);G(J,a)}function Hf(a,b,c){if(J.current!==Cf)throw Error(u(168));I(J,b,a);I(K,c,a)}function If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,Wa(b)||\"Unknown\",e));return n({},c,{},d)}function Jf(a){var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||Cf;Df=J.current;I(J,b,a);I(K,K.current,a);return!0}\nfunction Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(b=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=b,G(K,a),G(J,a),I(J,b,a)):G(K,a);I(K,c,a)}\nvar Lf=q.unstable_runWithPriority,Mf=q.unstable_scheduleCallback,Nf=q.unstable_cancelCallback,Of=q.unstable_shouldYield,Pf=q.unstable_requestPaint,Qf=q.unstable_now,Rf=q.unstable_getCurrentPriorityLevel,Sf=q.unstable_ImmediatePriority,Tf=q.unstable_UserBlockingPriority,Uf=q.unstable_NormalPriority,Vf=q.unstable_LowPriority,Wf=q.unstable_IdlePriority,Xf={},Yf=void 0!==Pf?Pf:function(){},Zf=null,$f=null,ag=!1,bg=Qf(),cg=1E4>bg?Qf:function(){return Qf()-bg};\nfunction dg(){switch(Rf()){case Sf:return 99;case Tf:return 98;case Uf:return 97;case Vf:return 96;case Wf:return 95;default:throw Error(u(332));}}function eg(a){switch(a){case 99:return Sf;case 98:return Tf;case 97:return Uf;case 96:return Vf;case 95:return Wf;default:throw Error(u(332));}}function fg(a,b){a=eg(a);return Lf(a,b)}function gg(a,b,c){a=eg(a);return Mf(a,b,c)}function hg(a){null===Zf?(Zf=[a],$f=Mf(Sf,ig)):Zf.push(a);return Xf}function jg(){if(null!==$f){var a=$f;$f=null;Nf(a)}ig()}\nfunction ig(){if(!ag&&null!==Zf){ag=!0;var a=0;try{var b=Zf;fg(99,function(){for(;a=b&&(wg=!0),a.firstContext=null)}function xg(a,b){if(qg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)qg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===pg){if(null===og)throw Error(u(308));pg=b;og.dependencies={expirationTime:0,firstContext:b,responders:null}}else pg=pg.next=b}return a._currentValue}var yg=!1;\nfunction zg(a){return{baseState:a,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Ag(a){return{baseState:a.baseState,firstUpdate:a.firstUpdate,lastUpdate:a.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}\nfunction Bg(a,b){return{expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function Cg(a,b){null===a.lastUpdate?a.firstUpdate=a.lastUpdate=b:(a.lastUpdate.next=b,a.lastUpdate=b)}\nfunction Dg(a,b){var c=a.alternate;if(null===c){var d=a.updateQueue;var e=null;null===d&&(d=a.updateQueue=zg(a.memoizedState))}else d=a.updateQueue,e=c.updateQueue,null===d?null===e?(d=a.updateQueue=zg(a.memoizedState),e=c.updateQueue=zg(c.memoizedState)):d=a.updateQueue=Ag(e):null===e&&(e=c.updateQueue=Ag(d));null===e||d===e?Cg(d,b):null===d.lastUpdate||null===e.lastUpdate?(Cg(d,b),Cg(e,b)):(Cg(d,b),e.lastUpdate=b)}\nfunction Eg(a,b){var c=a.updateQueue;c=null===c?a.updateQueue=zg(a.memoizedState):Fg(a,c);null===c.lastCapturedUpdate?c.firstCapturedUpdate=c.lastCapturedUpdate=b:(c.lastCapturedUpdate.next=b,c.lastCapturedUpdate=b)}function Fg(a,b){var c=a.alternate;null!==c&&b===c.updateQueue&&(b=a.updateQueue=Ag(b));return b}\nfunction Gg(a,b,c,d,e,f){switch(c.tag){case 1:return a=c.payload,\"function\"===typeof a?a.call(f,d,e):a;case 3:a.effectTag=a.effectTag&-4097|64;case 0:a=c.payload;e=\"function\"===typeof a?a.call(f,d,e):a;if(null===e||void 0===e)break;return n({},d,e);case 2:yg=!0}return d}\nfunction Hg(a,b,c,d,e){yg=!1;b=Fg(a,b);for(var f=b.baseState,g=null,h=0,k=b.firstUpdate,l=f;null!==k;){var m=k.expirationTime;mx?(A=r,r=null):A=r.sibling;var p=y(e,r,h[x],k);if(null===p){null===r&&(r=A);break}a&&\nr&&null===p.alternate&&b(e,r);g=f(p,g,x);null===m?l=p:m.sibling=p;m=p;r=A}if(x===h.length)return c(e,r),l;if(null===r){for(;xx?(A=r,r=null):A=r.sibling;var z=y(e,r,p.value,k);if(null===z){null===r&&(r=A);break}a&&r&&null===z.alternate&&b(e,r);g=f(z,g,x);null===m?l=z:m.sibling=z;m=z;r=A}if(p.done)return c(e,r),l;if(null===r){for(;!p.done;x++,p=h.next())p=C(e,p.value,k),null!==p&&(g=f(p,g,x),null===m?l=p:m.sibling=p,m=p);return l}for(r=d(e,r);!p.done;x++,p=h.next())p=H(r,e,x,p.value,k),null!==p&&(a&&null!==\np.alternate&&r.delete(null===p.key?x:p.key),g=f(p,g,x),null===m?l=p:m.sibling=p,m=p);a&&r.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===Ia&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Ga:a:{l=f.key;for(k=d;null!==k;){if(k.key===l)if(7===k.tag?f.type===Ia:k.elementType===f.type){c(a,k.sibling);d=e(k,f.type===Ia?f.props.children:f.props,h);d.ref=Yg(a,k,f);d.return=a;a=d;break a}else{c(a,\nk);break}else b(a,k);k=k.sibling}f.type===Ia?(d=eh(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=ch(f.type,f.key,f.props,null,a.mode,h),h.ref=Yg(a,d,f),h.return=a,a=h)}return g(a);case Ha:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=dh(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===\ntypeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h),d.return=a,a=d):(c(a,d),d=bh(f,a.mode,h),d.return=a,a=d),g(a);if(Xg(f))return z(a,d,f,h);if(Ua(f))return ta(a,d,f,h);l&&Zg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var fh=$g(!0),gh=$g(!1),hh={},ih={current:hh},jh={current:hh},kh={current:hh};function lh(a){if(a===hh)throw Error(u(174));return a}\nfunction mh(a,b){I(kh,b,a);I(jh,a,a);I(ih,hh,a);var c=b.nodeType;switch(c){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Qb(null,\"\");break;default:c=8===c?b.parentNode:b,b=c.namespaceURI||null,c=c.tagName,b=Qb(b,c)}G(ih,a);I(ih,b,a)}function nh(a){G(ih,a);G(jh,a);G(kh,a)}function oh(a){lh(kh.current);var b=lh(ih.current);var c=Qb(b,a.type);b!==c&&(I(jh,a,a),I(ih,c,a))}function ph(a){jh.current===a&&(G(ih,a),G(jh,a))}var M={current:0};\nfunction qh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===je||c.data===ke))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function rh(a,b){return{responder:a,props:b}}\nvar sh=Ea.ReactCurrentDispatcher,N=Ea.ReactCurrentBatchConfig,th=0,uh=null,O=null,vh=null,wh=null,P=null,xh=null,yh=0,zh=null,Ah=0,Bh=!1,Ch=null,Gh=0;function Q(){throw Error(u(321));}function Hh(a,b){if(null===b)return!1;for(var c=0;cyh&&(yh=m,Jg(yh))):(Ig(m,k.suspenseConfig),f=k.eagerReducer===a?k.eagerState:a(f,k.action));g=k;k=k.next}while(null!==k&&k!==d);l||(h=g,e=f);of(f,b.memoizedState)||(wg=!0);b.memoizedState=f;b.baseUpdate=h;b.baseState=e;c.lastRenderedState=f}return[b.memoizedState,c.dispatch]}\nfunction Rh(a){var b=Nh();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={last:null,dispatch:null,lastRenderedReducer:Ph,lastRenderedState:a};a=a.dispatch=Sh.bind(null,uh,a);return[b.memoizedState,a]}function Th(a){return Qh(Ph,a)}function Uh(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};null===zh?(zh={lastEffect:null},zh.lastEffect=a.next=a):(b=zh.lastEffect,null===b?zh.lastEffect=a.next=a:(c=b.next,b.next=a,a.next=c,zh.lastEffect=a));return a}\nfunction Vh(a,b,c,d){var e=Nh();Ah|=a;e.memoizedState=Uh(b,c,void 0,void 0===d?null:d)}function Wh(a,b,c,d){var e=Oh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&Hh(d,g.deps)){Uh(0,c,f,d);return}}Ah|=a;e.memoizedState=Uh(b,c,f,d)}function Xh(a,b){return Vh(516,192,a,b)}function Yh(a,b){return Wh(516,192,a,b)}\nfunction Zh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function $h(){}function ai(a,b){Nh().memoizedState=[a,void 0===b?null:b];return a}function bi(a,b){var c=Oh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Hh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Sh(a,b,c){if(!(25>Gh))throw Error(u(301));var d=a.alternate;if(a===uh||null!==d&&d===uh)if(Bh=!0,a={expirationTime:th,suspenseConfig:null,action:c,eagerReducer:null,eagerState:null,next:null},null===Ch&&(Ch=new Map),c=Ch.get(b),void 0===c)Ch.set(b,a);else{for(b=c;null!==b.next;)b=b.next;b.next=a}else{var e=Pg(),f=Mg.suspense;e=Qg(e,a,f);f={expirationTime:e,suspenseConfig:f,action:c,eagerReducer:null,eagerState:null,next:null};var g=b.last;if(null===g)f.next=f;else{var h=g.next;null!==h&&\n(f.next=h);g.next=f}b.last=f;if(0===a.expirationTime&&(null===d||0===d.expirationTime)&&(d=b.lastRenderedReducer,null!==d))try{var k=b.lastRenderedState,l=d(k,c);f.eagerReducer=d;f.eagerState=l;if(of(l,k))return}catch(m){}finally{}Rg(a,e)}}\nvar Lh={readContext:xg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useResponder:Q,useDeferredValue:Q,useTransition:Q},Jh={readContext:xg,useCallback:ai,useContext:xg,useEffect:Xh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Vh(4,36,Zh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Vh(4,36,a,b)},useMemo:function(a,b){var c=Nh();b=void 0===b?null:b;a=a();c.memoizedState=\n[a,b];return a},useReducer:function(a,b,c){var d=Nh();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={last:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=Sh.bind(null,uh,a);return[d.memoizedState,a]},useRef:function(a){var b=Nh();a={current:a};return b.memoizedState=a},useState:Rh,useDebugValue:$h,useResponder:rh,useDeferredValue:function(a,b){var c=Rh(a),d=c[0],e=c[1];Xh(function(){q.unstable_next(function(){var c=N.suspense;N.suspense=void 0===b?null:b;try{e(a)}finally{N.suspense=\nc}})},[a,b]);return d},useTransition:function(a){var b=Rh(!1),c=b[0],d=b[1];return[ai(function(b){d(!0);q.unstable_next(function(){var c=N.suspense;N.suspense=void 0===a?null:a;try{d(!1),b()}finally{N.suspense=c}})},[a,c]),c]}},Kh={readContext:xg,useCallback:bi,useContext:xg,useEffect:Yh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Wh(4,36,Zh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Wh(4,36,a,b)},useMemo:function(a,b){var c=Oh();b=void 0===b?\nnull:b;var d=c.memoizedState;if(null!==d&&null!==b&&Hh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a},useReducer:Qh,useRef:function(){return Oh().memoizedState},useState:Th,useDebugValue:$h,useResponder:rh,useDeferredValue:function(a,b){var c=Th(a),d=c[0],e=c[1];Yh(function(){q.unstable_next(function(){var c=N.suspense;N.suspense=void 0===b?null:b;try{e(a)}finally{N.suspense=c}})},[a,b]);return d},useTransition:function(a){var b=Th(!1),c=b[0],d=b[1];return[bi(function(b){d(!0);q.unstable_next(function(){var c=\nN.suspense;N.suspense=void 0===a?null:a;try{d(!1),b()}finally{N.suspense=c}})},[a,c]),c]}},ci=null,di=null,ei=!1;function fi(a,b){var c=gi(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}\nfunction hi(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ii(a){if(ei){var b=di;if(b){var c=b;if(!hi(a,b)){b=re(c.nextSibling);if(!b||!hi(a,b)){a.effectTag=a.effectTag&-1025|2;ei=!1;ci=a;return}fi(ci,c)}ci=a;di=re(b.firstChild)}else a.effectTag=a.effectTag&-1025|2,ei=!1,ci=a}}function ji(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;ci=a}\nfunction ki(a){if(a!==ci)return!1;if(!ei)return ji(a),ei=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!oe(b,a.memoizedProps))for(b=di;b;)fi(a,b),b=re(b.nextSibling);ji(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(u(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(c===ie){if(0===b){di=re(a.nextSibling);break a}b--}else c!==he&&c!==ke&&c!==je||b++}a=a.nextSibling}di=null}}else di=ci?re(a.stateNode.nextSibling):null;return!0}\nfunction li(){di=ci=null;ei=!1}var mi=Ea.ReactCurrentOwner,wg=!1;function R(a,b,c,d){b.child=null===a?gh(b,null,c,d):fh(b,a.child,c,d)}function ni(a,b,c,d,e){c=c.render;var f=b.ref;vg(b,e);d=Ih(a,b,c,d,f,e);if(null!==a&&!wg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),oi(a,b,e);b.effectTag|=1;R(a,b,d,e);return b.child}\nfunction pi(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!qi(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ri(a,b,g,d,e,f);a=ch(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(eb)&&Gj.set(a,b)))}}\nfunction Kj(a,b){a.expirationTimea?b:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=hg(Lj.bind(null,a));else{var b=Oj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Pg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Xf&&Nf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?hg(Lj.bind(null,a)):gg(d,Qj.bind(null,a),{timeout:10*(1073741821-b)-cg()});a.callbackNode=b}}}\nfunction Qj(a,b){Jj=0;if(b)return b=Pg(),Rj(a,b),Z(a),null;var c=Oj(a);if(0!==c){b=a.callbackNode;if((T&(oj|pj))!==S)throw Error(u(327));Sj();a===U&&c===W||Tj(a,c);if(null!==V){var d=T;T|=oj;var e=Uj(a);do try{Vj();break}catch(h){Wj(a,h)}while(1);rg();T=d;lj.current=e;if(X===rj)throw b=wj,Tj(a,c),Mj(a,c),Z(a),b;if(null===V)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=X,U=null,d){case qj:case rj:throw Error(u(345));case sj:Rj(a,2=c){a.lastPingedTime=c;Tj(a,c);break}}f=Oj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=pe(Yj.bind(null,a),e);break}Yj(a);break;case uj:Mj(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Xj(e));if(Bj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Tj(a,c);break}e=Oj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==yj?d=10*(1073741821-yj)-cg():1073741823===xj?d=0:(d=10*(1073741821-xj)-5E3,e=cg(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*kj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=cg()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+Xa(e))}X!==vj&&(X=sj);f=Ni(f,e);k=d;do{switch(k.tag){case 3:g=f;k.effectTag|=4096;k.expirationTime=b;var x=fj(k,g,b);Eg(k,x);break a;case 1:g=f;var A=k.type,p=k.stateNode;if(0===(k.effectTag&64)&&(\"function\"===typeof A.getDerivedStateFromError||null!==p&&\"function\"===typeof p.componentDidCatch&&\n(null===jj||!jj.has(p)))){k.effectTag|=4096;k.expirationTime=b;var t=ij(k,g,b);Eg(k,t);break a}}k=k.return}while(null!==k)}V=ek(V)}catch(v){b=v;continue}break}while(1)}function Uj(){var a=lj.current;lj.current=Lh;return null===a?Lh:a}function Ig(a,b){aAj&&(Aj=a)}function Zj(){for(;null!==V;)V=fk(V)}function Vj(){for(;null!==V&&!Of();)V=fk(V)}\nfunction fk(a){var b=gk(a.alternate,a,W);a.memoizedProps=a.pendingProps;null===b&&(b=ek(a));mj.current=null;return b}\nfunction ek(a){V=a;do{var b=V.alternate;a=V.return;if(0===(V.effectTag&2048)){a:{var c=b;b=V;var d=W;var e=b.pendingProps;switch(b.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:L(b.type)&&Ff(b);break;case 3:nh(b);Gf(b);e=b.stateNode;e.pendingContext&&(e.context=e.pendingContext,e.pendingContext=null);(null===c||null===c.child)&&ki(b)&&Ci(b);Ii(b);break;case 5:ph(b);d=lh(kh.current);var f=b.type;if(null!==c&&null!=b.stateNode)Ji(c,b,f,e,d),c.ref!==b.ref&&(b.effectTag|=128);else if(e){var g=\nlh(ih.current);if(ki(b)){e=b;var h=e.stateNode;c=e.type;var k=e.memoizedProps,l=d;h[ue]=e;h[ve]=k;f=void 0;d=h;switch(c){case \"iframe\":case \"object\":case \"embed\":F(\"load\",d);break;case \"video\":case \"audio\":for(h=0;h\\x3c/script>\",h=k.removeChild(k.firstChild)):\"string\"===typeof k.is?h=h.createElement(l,{is:k.is}):(h=h.createElement(l),\"select\"===l&&(l=h,k.multiple?l.multiple=!0:k.size&&(l.size=k.size))):h=h.createElementNS(g,l);k=h;k[ue]=c;k[ve]=e;Hi(k,b,!1,!1);b.stateNode=k;l=f;c=e;var m=d,C=Zd(l,c);switch(l){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\nk);d=c;break;case \"video\":case \"audio\":for(d=0;de.tailExpiration&&1f&&(f=c),k>f&&(f=k),d=d.sibling;e.childExpirationTime=f}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=V.firstEffect),null!==V.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=\nV.firstEffect),a.lastEffect=V.lastEffect),1a?b:a}function Yj(a){var b=dg();fg(99,ik.bind(null,a,b));return null}\nfunction ik(a,b){do Sj();while(null!==Ej);if((T&(oj|pj))!==S)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Xj(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===U&&(V=U=null,W=0);1h&&(l=h,h=g,g=l),l=de(p,g),m=de(p,h),l&&m&&(1!==v.rangeCount||v.anchorNode!==l.node||v.anchorOffset!==l.offset||v.focusNode!==m.node||v.focusOffset!==m.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),v.removeAllRanges(),g>h?(v.addRange(t),v.extend(m.node,m.offset)):(t.setEnd(m.node,m.offset),v.addRange(t))))));t=[];for(v=p;v=v.parentNode;)1===v.nodeType&&t.push({element:v,left:v.scrollLeft,top:v.scrollTop});\n\"function\"===typeof p.focus&&p.focus();for(p=0;p=c)return yi(a,b,c);I(M,M.current&\n1,b);b=oi(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1,b);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return Bi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current,b);if(!d)return null}return oi(a,b,c)}wg=!1}}else wg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Ef(b,J.current);vg(b,c);e=Ih(null,b,d,a,e,c);b.effectTag|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;Mh();if(L(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Og(b,d,g,a);e.updater=Sg;b.stateNode=e;e._reactInternalFiber=b;Wg(b,d,a,c);b=vi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;Va(e);if(1!==e._status)throw e._result;\ne=e._result;b.type=e;f=b.tag=nk(e);a=mg(e,a);switch(f){case 0:b=si(null,b,e,a,c);break;case 1:b=ui(null,b,e,a,c);break;case 11:b=ni(null,b,e,a,c);break;case 14:b=pi(null,b,e,mg(e.type,a),d,c);break;default:throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:mg(d,e),si(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:mg(d,e),ui(a,b,d,e,c);case 3:wi(b);d=b.updateQueue;if(null===d)throw Error(u(282));e=b.memoizedState;e=null!==e?e.element:\nnull;Hg(b,d,b.pendingProps,null,c);d=b.memoizedState.element;if(d===e)li(),b=oi(a,b,c);else{if(e=b.stateNode.hydrate)di=re(b.stateNode.containerInfo.firstChild),ci=b,e=ei=!0;if(e)for(c=gh(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),li();b=b.child}return b;case 5:return oh(b),null===a&&ii(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,oe(d,e)?g=null:null!==f&&oe(d,f)&&(b.effectTag|=16),ti(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=\nb.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&ii(b),null;case 13:return yi(a,b,c);case 4:return mh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=fh(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:mg(d,e),ni(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,b,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;\ne=b.pendingProps;g=b.memoizedProps;f=e.value;sg(b,f);if(null!==g){var h=g.value;f=of(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0;if(0===f){if(g.children===e.children&&!K.current){b=oi(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==k){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=Bg(c,null),l.tag=2,Dg(h,l));h.expirationTime=b&&a<=b}function Mj(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction Nj(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Rj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction rk(a,b,c,d){var e=b.current,f=Pg(),g=Mg.suspense;f=Qg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(ec(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=If(c,k,h);break a}}c=h}else c=Cf;null===b.context?b.context=c:b.pendingContext=c;b=Bg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);Dg(e,b);Rg(e,f);return f}function sk(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function tk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_ImmediatePriority=1;exports.unstable_UserBlockingPriority=2;exports.unstable_NormalPriority=3;exports.unstable_IdlePriority=5;exports.unstable_LowPriority=4;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};exports.unstable_cancelCallback=function(a){a.callback=null};\nexports.unstable_wrapCallback=function(a){var b=R;return function(){var c=R;R=b;try{return a.apply(this,arguments)}finally{R=c}}};exports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\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 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\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nvar _Selection = _interopRequireWildcard(require(\"./Selection\"));\n\nvar dates = _interopRequireWildcard(require(\"./utils/dates\"));\n\nvar TimeSlotUtils = _interopRequireWildcard(require(\"./utils/TimeSlots\"));\n\nvar _selection = require(\"./utils/selection\");\n\nvar _helpers = require(\"./utils/helpers\");\n\nvar DayEventLayout = _interopRequireWildcard(require(\"./utils/DayEventLayout\"));\n\nvar _TimeSlotGroup = _interopRequireDefault(require(\"./TimeSlotGroup\"));\n\nvar _TimeGridEvent = _interopRequireDefault(require(\"./TimeGridEvent\"));\n\nvar _propTypes2 = require(\"./utils/propTypes\");\n\nvar DayColumn =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inheritsLoose2.default)(DayColumn, _React$Component);\n\n function DayColumn() {\n var _this;\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n _this.state = {\n selecting: false,\n timeIndicatorPosition: null\n };\n _this.intervalTriggered = false;\n\n _this.renderEvents = function () {\n var _this$props = _this.props,\n events = _this$props.events,\n rtl = _this$props.rtl,\n selected = _this$props.selected,\n accessors = _this$props.accessors,\n localizer = _this$props.localizer,\n getters = _this$props.getters,\n components = _this$props.components,\n step = _this$props.step,\n timeslots = _this$props.timeslots,\n dayLayoutAlgorithm = _this$props.dayLayoutAlgorithm;\n\n var _assertThisInitialize = (0, _assertThisInitialized2.default)(_this),\n slotMetrics = _assertThisInitialize.slotMetrics;\n\n var messages = localizer.messages;\n var styledEvents = DayEventLayout.getStyledEvents({\n events: events,\n accessors: accessors,\n slotMetrics: slotMetrics,\n minimumStartDifference: Math.ceil(step * timeslots / 2),\n dayLayoutAlgorithm: dayLayoutAlgorithm\n });\n return styledEvents.map(function (_ref, idx) {\n var event = _ref.event,\n style = _ref.style;\n var end = accessors.end(event);\n var start = accessors.start(event);\n var format = 'eventTimeRangeFormat';\n var label;\n var startsBeforeDay = slotMetrics.startsBeforeDay(start);\n var startsAfterDay = slotMetrics.startsAfterDay(end);\n if (startsBeforeDay) format = 'eventTimeRangeEndFormat';else if (startsAfterDay) format = 'eventTimeRangeStartFormat';\n if (startsBeforeDay && startsAfterDay) label = messages.allDay;else label = localizer.format({\n start: start,\n end: end\n }, format);\n var continuesEarlier = startsBeforeDay || slotMetrics.startsBefore(start);\n var continuesLater = startsAfterDay || slotMetrics.startsAfter(end);\n return _react.default.createElement(_TimeGridEvent.default, {\n style: style,\n event: event,\n label: label,\n key: 'evt_' + idx,\n getters: getters,\n rtl: rtl,\n components: components,\n continuesEarlier: continuesEarlier,\n continuesLater: continuesLater,\n accessors: accessors,\n selected: (0, _selection.isSelected)(event, selected),\n onClick: function onClick(e) {\n return _this._select(event, e);\n },\n onDoubleClick: function onDoubleClick(e) {\n return _this._doubleClick(event, e);\n }\n });\n });\n };\n\n _this._selectable = function () {\n var node = (0, _reactDom.findDOMNode)((0, _assertThisInitialized2.default)(_this));\n var selector = _this._selector = new _Selection.default(function () {\n return (0, _reactDom.findDOMNode)((0, _assertThisInitialized2.default)(_this));\n }, {\n longPressThreshold: _this.props.longPressThreshold\n });\n\n var maybeSelect = function maybeSelect(box) {\n var onSelecting = _this.props.onSelecting;\n var current = _this.state || {};\n var state = selectionState(box);\n var start = state.startDate,\n end = state.endDate;\n\n if (onSelecting) {\n if (dates.eq(current.startDate, start, 'minutes') && dates.eq(current.endDate, end, 'minutes') || onSelecting({\n start: start,\n end: end,\n resourceId: _this.props.resource\n }) === false) return;\n }\n\n if (_this.state.start !== state.start || _this.state.end !== state.end || _this.state.selecting !== state.selecting) {\n _this.setState(state);\n }\n };\n\n var selectionState = function selectionState(point) {\n var currentSlot = _this.slotMetrics.closestSlotFromPoint(point, (0, _Selection.getBoundsForNode)(node));\n\n if (!_this.state.selecting) {\n _this._initialSlot = currentSlot;\n }\n\n var initialSlot = _this._initialSlot;\n\n if (dates.lte(initialSlot, currentSlot)) {\n currentSlot = _this.slotMetrics.nextSlot(currentSlot);\n } else if (dates.gt(initialSlot, currentSlot)) {\n initialSlot = _this.slotMetrics.nextSlot(initialSlot);\n }\n\n var selectRange = _this.slotMetrics.getRange(dates.min(initialSlot, currentSlot), dates.max(initialSlot, currentSlot));\n\n return (0, _extends2.default)({}, selectRange, {\n selecting: true,\n top: selectRange.top + \"%\",\n height: selectRange.height + \"%\"\n });\n };\n\n var selectorClicksHandler = function selectorClicksHandler(box, actionType) {\n if (!(0, _Selection.isEvent)((0, _reactDom.findDOMNode)((0, _assertThisInitialized2.default)(_this)), box)) {\n var _selectionState = selectionState(box),\n startDate = _selectionState.startDate,\n endDate = _selectionState.endDate;\n\n _this._selectSlot({\n startDate: startDate,\n endDate: endDate,\n action: actionType,\n box: box\n });\n }\n\n _this.setState({\n selecting: false\n });\n };\n\n selector.on('selecting', maybeSelect);\n selector.on('selectStart', maybeSelect);\n selector.on('beforeSelect', function (box) {\n if (_this.props.selectable !== 'ignoreEvents') return;\n return !(0, _Selection.isEvent)((0, _reactDom.findDOMNode)((0, _assertThisInitialized2.default)(_this)), box);\n });\n selector.on('click', function (box) {\n return selectorClicksHandler(box, 'click');\n });\n selector.on('doubleClick', function (box) {\n return selectorClicksHandler(box, 'doubleClick');\n });\n selector.on('select', function (bounds) {\n if (_this.state.selecting) {\n _this._selectSlot((0, _extends2.default)({}, _this.state, {\n action: 'select',\n bounds: bounds\n }));\n\n _this.setState({\n selecting: false\n });\n }\n });\n selector.on('reset', function () {\n if (_this.state.selecting) {\n _this.setState({\n selecting: false\n });\n }\n });\n };\n\n _this._teardownSelectable = function () {\n if (!_this._selector) return;\n\n _this._selector.teardown();\n\n _this._selector = null;\n };\n\n _this._selectSlot = function (_ref2) {\n var startDate = _ref2.startDate,\n endDate = _ref2.endDate,\n action = _ref2.action,\n bounds = _ref2.bounds,\n box = _ref2.box;\n var current = startDate,\n slots = [];\n\n while (dates.lte(current, endDate)) {\n slots.push(current);\n current = dates.add(current, _this.props.step, 'minutes');\n }\n\n (0, _helpers.notify)(_this.props.onSelectSlot, {\n slots: slots,\n start: startDate,\n end: endDate,\n resourceId: _this.props.resource,\n action: action,\n bounds: bounds,\n box: box\n });\n };\n\n _this._select = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n (0, _helpers.notify)(_this.props.onSelectEvent, args);\n };\n\n _this._doubleClick = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n (0, _helpers.notify)(_this.props.onDoubleClickEvent, args);\n };\n\n _this.slotMetrics = TimeSlotUtils.getSlotMetrics(_this.props);\n return _this;\n }\n\n var _proto = DayColumn.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.props.selectable && this._selectable();\n\n if (this.props.isNow) {\n this.setTimeIndicatorPositionUpdateInterval();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this._teardownSelectable();\n\n this.clearTimeIndicatorInterval();\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (nextProps.selectable && !this.props.selectable) this._selectable();\n if (!nextProps.selectable && this.props.selectable) this._teardownSelectable();\n this.slotMetrics = this.slotMetrics.update(nextProps);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n var getNowChanged = !dates.eq(prevProps.getNow(), this.props.getNow(), 'minutes');\n\n if (prevProps.isNow !== this.props.isNow || getNowChanged) {\n this.clearTimeIndicatorInterval();\n\n if (this.props.isNow) {\n var tail = !getNowChanged && dates.eq(prevProps.date, this.props.date, 'minutes') && prevState.timeIndicatorPosition === this.state.timeIndicatorPosition;\n this.setTimeIndicatorPositionUpdateInterval(tail);\n }\n } else if (this.props.isNow && (!dates.eq(prevProps.min, this.props.min, 'minutes') || !dates.eq(prevProps.max, this.props.max, 'minutes'))) {\n this.positionTimeIndicator();\n }\n }\n /**\n * @param tail {Boolean} - whether `positionTimeIndicator` call should be\n * deferred or called upon setting interval (`true` - if deferred);\n */\n ;\n\n _proto.setTimeIndicatorPositionUpdateInterval = function setTimeIndicatorPositionUpdateInterval(tail) {\n var _this2 = this;\n\n if (tail === void 0) {\n tail = false;\n }\n\n if (!this.intervalTriggered && !tail) {\n this.positionTimeIndicator();\n }\n\n this._timeIndicatorTimeout = window.setTimeout(function () {\n _this2.intervalTriggered = true;\n\n _this2.positionTimeIndicator();\n\n _this2.setTimeIndicatorPositionUpdateInterval();\n }, 60000);\n };\n\n _proto.clearTimeIndicatorInterval = function clearTimeIndicatorInterval() {\n this.intervalTriggered = false;\n window.clearTimeout(this._timeIndicatorTimeout);\n };\n\n _proto.positionTimeIndicator = function positionTimeIndicator() {\n var _this$props2 = this.props,\n min = _this$props2.min,\n max = _this$props2.max,\n getNow = _this$props2.getNow;\n var current = getNow();\n\n if (current >= min && current <= max) {\n var top = this.slotMetrics.getCurrentTimePosition(current);\n this.setState({\n timeIndicatorPosition: top\n });\n } else {\n this.clearTimeIndicatorInterval();\n }\n };\n\n _proto.render = function render() {\n var _this$props3 = this.props,\n max = _this$props3.max,\n rtl = _this$props3.rtl,\n isNow = _this$props3.isNow,\n resource = _this$props3.resource,\n accessors = _this$props3.accessors,\n localizer = _this$props3.localizer,\n _this$props3$getters = _this$props3.getters,\n dayProp = _this$props3$getters.dayProp,\n getters = (0, _objectWithoutPropertiesLoose2.default)(_this$props3$getters, [\"dayProp\"]),\n _this$props3$componen = _this$props3.components,\n EventContainer = _this$props3$componen.eventContainerWrapper,\n components = (0, _objectWithoutPropertiesLoose2.default)(_this$props3$componen, [\"eventContainerWrapper\"]);\n var slotMetrics = this.slotMetrics;\n var _this$state = this.state,\n selecting = _this$state.selecting,\n top = _this$state.top,\n height = _this$state.height,\n startDate = _this$state.startDate,\n endDate = _this$state.endDate;\n var selectDates = {\n start: startDate,\n end: endDate\n };\n\n var _dayProp = dayProp(max),\n className = _dayProp.className,\n style = _dayProp.style;\n\n return _react.default.createElement(\"div\", {\n style: style,\n className: (0, _clsx.default)(className, 'rbc-day-slot', 'rbc-time-column', isNow && 'rbc-now', isNow && 'rbc-today', // WHY\n selecting && 'rbc-slot-selecting')\n }, slotMetrics.groups.map(function (grp, idx) {\n return _react.default.createElement(_TimeSlotGroup.default, {\n key: idx,\n group: grp,\n resource: resource,\n getters: getters,\n components: components\n });\n }), _react.default.createElement(EventContainer, {\n localizer: localizer,\n resource: resource,\n accessors: accessors,\n getters: getters,\n components: components,\n slotMetrics: slotMetrics\n }, _react.default.createElement(\"div\", {\n className: (0, _clsx.default)('rbc-events-container', rtl && 'rtl')\n }, this.renderEvents())), selecting && _react.default.createElement(\"div\", {\n className: \"rbc-slot-selection\",\n style: {\n top: top,\n height: height\n }\n }, _react.default.createElement(\"span\", null, localizer.format(selectDates, 'selectRangeFormat'))), isNow && _react.default.createElement(\"div\", {\n className: \"rbc-current-time-indicator\",\n style: {\n top: this.state.timeIndicatorPosition + \"%\"\n }\n }));\n };\n\n return DayColumn;\n}(_react.default.Component);\n\nDayColumn.propTypes = process.env.NODE_ENV !== \"production\" ? {\n events: _propTypes.default.array.isRequired,\n step: _propTypes.default.number.isRequired,\n date: _propTypes.default.instanceOf(Date).isRequired,\n min: _propTypes.default.instanceOf(Date).isRequired,\n max: _propTypes.default.instanceOf(Date).isRequired,\n getNow: _propTypes.default.func.isRequired,\n isNow: _propTypes.default.bool,\n rtl: _propTypes.default.bool,\n accessors: _propTypes.default.object.isRequired,\n components: _propTypes.default.object.isRequired,\n getters: _propTypes.default.object.isRequired,\n localizer: _propTypes.default.object.isRequired,\n showMultiDayTimes: _propTypes.default.bool,\n culture: _propTypes.default.string,\n timeslots: _propTypes.default.number,\n selected: _propTypes.default.object,\n selectable: _propTypes.default.oneOf([true, false, 'ignoreEvents']),\n eventOffset: _propTypes.default.number,\n longPressThreshold: _propTypes.default.number,\n onSelecting: _propTypes.default.func,\n onSelectSlot: _propTypes.default.func.isRequired,\n onSelectEvent: _propTypes.default.func.isRequired,\n onDoubleClickEvent: _propTypes.default.func.isRequired,\n className: _propTypes.default.string,\n dragThroughEvents: _propTypes.default.bool,\n resource: _propTypes.default.any,\n dayLayoutAlgorithm: _propTypes2.DayLayoutAlgorithmPropType\n} : {};\nDayColumn.defaultProps = {\n dragThroughEvents: true,\n timeslots: 2\n};\nvar _default = DayColumn;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.getStyledEvents = getStyledEvents;\n\nvar _overlap = _interopRequireDefault(require(\"./layout-algorithms/overlap\"));\n\nvar _noOverlap = _interopRequireDefault(require(\"./layout-algorithms/no-overlap\"));\n\n/*eslint no-unused-vars: \"off\"*/\nvar DefaultAlgorithms = {\n overlap: _overlap.default,\n 'no-overlap': _noOverlap.default\n};\n\nfunction isFunction(a) {\n return !!(a && a.constructor && a.call && a.apply);\n} //\n\n\nfunction getStyledEvents(_ref) {\n var events = _ref.events,\n minimumStartDifference = _ref.minimumStartDifference,\n slotMetrics = _ref.slotMetrics,\n accessors = _ref.accessors,\n dayLayoutAlgorithm = _ref.dayLayoutAlgorithm;\n var algorithm = null;\n if (dayLayoutAlgorithm in DefaultAlgorithms) algorithm = DefaultAlgorithms[dayLayoutAlgorithm];\n\n if (!isFunction(algorithm)) {\n // invalid algorithm\n return [];\n }\n\n return algorithm.apply(this, arguments);\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n var index = -1;\n iteratees = arrayMap(iteratees.length ? iteratees : [identity], baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = _default;\n\nvar _overlap = _interopRequireDefault(require(\"./overlap\"));\n\nfunction getMaxIdxDFS(node, maxIdx, visited) {\n for (var i = 0; i < node.friends.length; ++i) {\n if (visited.indexOf(node.friends[i]) > -1) continue;\n maxIdx = maxIdx > node.friends[i].idx ? maxIdx : node.friends[i].idx; // TODO : trace it by not object but kinda index or something for performance\n\n visited.push(node.friends[i]);\n var newIdx = getMaxIdxDFS(node.friends[i], maxIdx, visited);\n maxIdx = maxIdx > newIdx ? maxIdx : newIdx;\n }\n\n return maxIdx;\n}\n\nfunction _default(_ref) {\n var events = _ref.events,\n minimumStartDifference = _ref.minimumStartDifference,\n slotMetrics = _ref.slotMetrics,\n accessors = _ref.accessors;\n var styledEvents = (0, _overlap.default)({\n events: events,\n minimumStartDifference: minimumStartDifference,\n slotMetrics: slotMetrics,\n accessors: accessors\n });\n styledEvents.sort(function (a, b) {\n a = a.style;\n b = b.style;\n if (a.top !== b.top) return a.top > b.top ? 1 : -1;else return a.top + a.height < b.top + b.height ? 1 : -1;\n });\n\n for (var i = 0; i < styledEvents.length; ++i) {\n styledEvents[i].friends = [];\n delete styledEvents[i].style.left;\n delete styledEvents[i].style.left;\n delete styledEvents[i].idx;\n delete styledEvents[i].size;\n }\n\n for (var _i = 0; _i < styledEvents.length - 1; ++_i) {\n var se1 = styledEvents[_i];\n var y1 = se1.style.top;\n var y2 = se1.style.top + se1.style.height;\n\n for (var j = _i + 1; j < styledEvents.length; ++j) {\n var se2 = styledEvents[j];\n var y3 = se2.style.top;\n var y4 = se2.style.top + se2.style.height; // be friends when overlapped\n\n if (y3 <= y1 && y1 < y4 || y1 <= y3 && y3 < y2) {\n // TODO : hashmap would be effective for performance\n se1.friends.push(se2);\n se2.friends.push(se1);\n }\n }\n }\n\n for (var _i2 = 0; _i2 < styledEvents.length; ++_i2) {\n var se = styledEvents[_i2];\n var bitmap = [];\n\n for (var _j = 0; _j < 100; ++_j) {\n bitmap.push(1);\n } // 1 means available\n\n\n for (var _j2 = 0; _j2 < se.friends.length; ++_j2) {\n if (se.friends[_j2].idx !== undefined) bitmap[se.friends[_j2].idx] = 0;\n } // 0 means reserved\n\n\n se.idx = bitmap.indexOf(1);\n }\n\n for (var _i3 = 0; _i3 < styledEvents.length; ++_i3) {\n var size = 0;\n if (styledEvents[_i3].size) continue;\n var allFriends = [];\n var maxIdx = getMaxIdxDFS(styledEvents[_i3], 0, allFriends);\n size = 100 / (maxIdx + 1);\n styledEvents[_i3].size = size;\n\n for (var _j3 = 0; _j3 < allFriends.length; ++_j3) {\n allFriends[_j3].size = size;\n }\n }\n\n for (var _i4 = 0; _i4 < styledEvents.length; ++_i4) {\n var e = styledEvents[_i4];\n e.style.left = e.idx * e.size; // stretch to maximum\n\n var _maxIdx = 0;\n\n for (var _j4 = 0; _j4 < e.friends.length; ++_j4) {\n var idx = e.friends[_j4];\n _maxIdx = _maxIdx > idx ? _maxIdx : idx;\n }\n\n if (_maxIdx <= e.idx) e.size = 100 - e.idx * e.size; // padding between events\n // for this feature, `width` is not percentage based unit anymore\n // it will be used with calc()\n\n var padding = e.idx === 0 ? 0 : 3;\n e.style.width = \"calc(\" + e.size + \"% - \" + padding + \"px)\";\n e.style.height = \"calc(\" + e.style.height + \"% - 2px)\";\n e.style.xOffset = \"calc(\" + e.style.left + \"% + \" + padding + \"px)\";\n }\n\n return styledEvents;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _NoopWrapper = _interopRequireDefault(require(\"./NoopWrapper\"));\n\nvar _default = _NoopWrapper.default;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nfunction NoopWrapper(props) {\n return props.children;\n}\n\nvar _default = NoopWrapper;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends3 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction stringifyPercent(v) {\n return typeof v === 'string' ? v : v + '%';\n}\n/* eslint-disable react/prop-types */\n\n\nfunction TimeGridEvent(props) {\n var _extends2;\n\n var style = props.style,\n className = props.className,\n event = props.event,\n accessors = props.accessors,\n rtl = props.rtl,\n selected = props.selected,\n label = props.label,\n continuesEarlier = props.continuesEarlier,\n continuesLater = props.continuesLater,\n getters = props.getters,\n onClick = props.onClick,\n onDoubleClick = props.onDoubleClick,\n _props$components = props.components,\n Event = _props$components.event,\n EventWrapper = _props$components.eventWrapper;\n var title = accessors.title(event);\n var tooltip = accessors.tooltip(event);\n var end = accessors.end(event);\n var start = accessors.start(event);\n var userProps = getters.eventProp(event, start, end, selected);\n var height = style.height,\n top = style.top,\n width = style.width,\n xOffset = style.xOffset;\n var inner = [_react.default.createElement(\"div\", {\n key: \"1\",\n className: \"rbc-event-label\"\n }, label), _react.default.createElement(\"div\", {\n key: \"2\",\n className: \"rbc-event-content\"\n }, Event ? _react.default.createElement(Event, {\n event: event,\n title: title\n }) : title)];\n return _react.default.createElement(EventWrapper, (0, _extends3.default)({\n type: \"time\"\n }, props), _react.default.createElement(\"div\", {\n onClick: onClick,\n onDoubleClick: onDoubleClick,\n style: (0, _extends3.default)({}, userProps.style, (_extends2 = {\n top: stringifyPercent(top)\n }, _extends2[rtl ? 'right' : 'left'] = stringifyPercent(xOffset), _extends2.width = stringifyPercent(width), _extends2.height = stringifyPercent(height), _extends2)),\n title: tooltip ? (typeof label === 'string' ? label + ': ' : '') + tooltip : undefined,\n className: (0, _clsx.default)('rbc-event', className, userProps.className, {\n 'rbc-selected': selected,\n 'rbc-event-continues-earlier': continuesEarlier,\n 'rbc-event-continues-later': continuesLater\n })\n }, inner));\n}\n\nvar _default = TimeGridEvent;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.views = exports.navigate = void 0;\nvar navigate = {\n PREVIOUS: 'PREV',\n NEXT: 'NEXT',\n TODAY: 'TODAY',\n DATE: 'DATE'\n};\nexports.navigate = navigate;\nvar views = {\n MONTH: 'month',\n WEEK: 'week',\n WORK_WEEK: 'work_week',\n DAY: 'day',\n AGENDA: 'agenda'\n};\nexports.views = views;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar TimeSlotUtils = _interopRequireWildcard(require(\"./utils/TimeSlots\"));\n\nvar _TimeSlotGroup = _interopRequireDefault(require(\"./TimeSlotGroup\"));\n\nvar TimeGutter =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inheritsLoose2.default)(TimeGutter, _Component);\n\n function TimeGutter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n\n _this.renderSlot = function (value, idx) {\n if (idx !== 0) return null;\n var _this$props = _this.props,\n localizer = _this$props.localizer,\n getNow = _this$props.getNow;\n\n var isNow = _this.slotMetrics.dateIsInGroup(getNow(), idx);\n\n return _react.default.createElement(\"span\", {\n className: (0, _clsx.default)('rbc-label', isNow && 'rbc-now')\n }, localizer.format(value, 'timeGutterFormat'));\n };\n\n var _this$props2 = _this.props,\n min = _this$props2.min,\n max = _this$props2.max,\n timeslots = _this$props2.timeslots,\n step = _this$props2.step;\n _this.slotMetrics = TimeSlotUtils.getSlotMetrics({\n min: min,\n max: max,\n timeslots: timeslots,\n step: step\n });\n return _this;\n }\n\n var _proto = TimeGutter.prototype;\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var min = nextProps.min,\n max = nextProps.max,\n timeslots = nextProps.timeslots,\n step = nextProps.step;\n this.slotMetrics = this.slotMetrics.update({\n min: min,\n max: max,\n timeslots: timeslots,\n step: step\n });\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var _this$props3 = this.props,\n resource = _this$props3.resource,\n components = _this$props3.components;\n return _react.default.createElement(\"div\", {\n className: \"rbc-time-gutter rbc-time-column\"\n }, this.slotMetrics.groups.map(function (grp, idx) {\n return _react.default.createElement(_TimeSlotGroup.default, {\n key: idx,\n group: grp,\n resource: resource,\n components: components,\n renderSlot: _this2.renderSlot\n });\n }));\n };\n\n return TimeGutter;\n}(_react.Component);\n\nexports.default = TimeGutter;\nTimeGutter.propTypes = process.env.NODE_ENV !== \"production\" ? {\n min: _propTypes.default.instanceOf(Date).isRequired,\n max: _propTypes.default.instanceOf(Date).isRequired,\n timeslots: _propTypes.default.number.isRequired,\n step: _propTypes.default.number.isRequired,\n getNow: _propTypes.default.func.isRequired,\n components: _propTypes.default.object.isRequired,\n localizer: _propTypes.default.object.isRequired,\n resource: _propTypes.default.string\n} : {};\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nvar _scrollbarSize = _interopRequireDefault(require(\"dom-helpers/scrollbarSize\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar dates = _interopRequireWildcard(require(\"./utils/dates\"));\n\nvar _DateContentRow = _interopRequireDefault(require(\"./DateContentRow\"));\n\nvar _Header = _interopRequireDefault(require(\"./Header\"));\n\nvar _ResourceHeader = _interopRequireDefault(require(\"./ResourceHeader\"));\n\nvar _helpers = require(\"./utils/helpers\");\n\nvar TimeGridHeader =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inheritsLoose2.default)(TimeGridHeader, _React$Component);\n\n function TimeGridHeader() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.handleHeaderClick = function (date, view, e) {\n e.preventDefault();\n (0, _helpers.notify)(_this.props.onDrillDown, [date, view]);\n };\n\n _this.renderRow = function (resource) {\n var _this$props = _this.props,\n events = _this$props.events,\n rtl = _this$props.rtl,\n selectable = _this$props.selectable,\n getNow = _this$props.getNow,\n range = _this$props.range,\n getters = _this$props.getters,\n localizer = _this$props.localizer,\n accessors = _this$props.accessors,\n components = _this$props.components;\n var resourceId = accessors.resourceId(resource);\n var eventsToDisplay = resource ? events.filter(function (event) {\n return accessors.resource(event) === resourceId;\n }) : events;\n return _react.default.createElement(_DateContentRow.default, {\n isAllDay: true,\n rtl: rtl,\n getNow: getNow,\n minRows: 2,\n range: range,\n events: eventsToDisplay,\n resourceId: resourceId,\n className: \"rbc-allday-cell\",\n selectable: selectable,\n selected: _this.props.selected,\n components: components,\n accessors: accessors,\n getters: getters,\n localizer: localizer,\n onSelect: _this.props.onSelectEvent,\n onDoubleClick: _this.props.onDoubleClickEvent,\n onSelectSlot: _this.props.onSelectSlot,\n longPressThreshold: _this.props.longPressThreshold\n });\n };\n\n return _this;\n }\n\n var _proto = TimeGridHeader.prototype;\n\n _proto.renderHeaderCells = function renderHeaderCells(range) {\n var _this2 = this;\n\n var _this$props2 = this.props,\n localizer = _this$props2.localizer,\n getDrilldownView = _this$props2.getDrilldownView,\n getNow = _this$props2.getNow,\n dayProp = _this$props2.getters.dayProp,\n _this$props2$componen = _this$props2.components.header,\n HeaderComponent = _this$props2$componen === void 0 ? _Header.default : _this$props2$componen;\n var today = getNow();\n return range.map(function (date, i) {\n var drilldownView = getDrilldownView(date);\n var label = localizer.format(date, 'dayFormat');\n\n var _dayProp = dayProp(date),\n className = _dayProp.className,\n style = _dayProp.style;\n\n var header = _react.default.createElement(HeaderComponent, {\n date: date,\n label: label,\n localizer: localizer\n });\n\n return _react.default.createElement(\"div\", {\n key: i,\n style: style,\n className: (0, _clsx.default)('rbc-header', className, dates.eq(date, today, 'day') && 'rbc-today')\n }, drilldownView ? _react.default.createElement(\"a\", {\n href: \"#\",\n onClick: function onClick(e) {\n return _this2.handleHeaderClick(date, drilldownView, e);\n }\n }, header) : _react.default.createElement(\"span\", null, header));\n });\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props3 = this.props,\n width = _this$props3.width,\n rtl = _this$props3.rtl,\n resources = _this$props3.resources,\n range = _this$props3.range,\n events = _this$props3.events,\n getNow = _this$props3.getNow,\n accessors = _this$props3.accessors,\n selectable = _this$props3.selectable,\n components = _this$props3.components,\n getters = _this$props3.getters,\n scrollRef = _this$props3.scrollRef,\n localizer = _this$props3.localizer,\n isOverflowing = _this$props3.isOverflowing,\n _this$props3$componen = _this$props3.components,\n TimeGutterHeader = _this$props3$componen.timeGutterHeader,\n _this$props3$componen2 = _this$props3$componen.resourceHeader,\n ResourceHeaderComponent = _this$props3$componen2 === void 0 ? _ResourceHeader.default : _this$props3$componen2;\n var style = {};\n\n if (isOverflowing) {\n style[rtl ? 'marginLeft' : 'marginRight'] = (0, _scrollbarSize.default)() + \"px\";\n }\n\n var groupedEvents = resources.groupEvents(events);\n return _react.default.createElement(\"div\", {\n style: style,\n ref: scrollRef,\n className: (0, _clsx.default)('rbc-time-header', isOverflowing && 'rbc-overflowing')\n }, _react.default.createElement(\"div\", {\n className: \"rbc-label rbc-time-header-gutter\",\n style: {\n width: width,\n minWidth: width,\n maxWidth: width\n }\n }, TimeGutterHeader && _react.default.createElement(TimeGutterHeader, null)), resources.map(function (_ref, idx) {\n var id = _ref[0],\n resource = _ref[1];\n return _react.default.createElement(\"div\", {\n className: \"rbc-time-header-content\",\n key: id || idx\n }, resource && _react.default.createElement(\"div\", {\n className: \"rbc-row rbc-row-resource\",\n key: \"resource_\" + idx\n }, _react.default.createElement(\"div\", {\n className: \"rbc-header\"\n }, _react.default.createElement(ResourceHeaderComponent, {\n index: idx,\n label: accessors.resourceTitle(resource),\n resource: resource\n }))), _react.default.createElement(\"div\", {\n className: \"rbc-row rbc-time-header-cell\" + (range.length <= 1 ? ' rbc-time-header-cell-single-day' : '')\n }, _this3.renderHeaderCells(range)), _react.default.createElement(_DateContentRow.default, {\n isAllDay: true,\n rtl: rtl,\n getNow: getNow,\n minRows: 2,\n range: range,\n events: groupedEvents.get(id) || [],\n resourceId: resource && id,\n className: \"rbc-allday-cell\",\n selectable: selectable,\n selected: _this3.props.selected,\n components: components,\n accessors: accessors,\n getters: getters,\n localizer: localizer,\n onSelect: _this3.props.onSelectEvent,\n onDoubleClick: _this3.props.onDoubleClickEvent,\n onSelectSlot: _this3.props.onSelectSlot,\n longPressThreshold: _this3.props.longPressThreshold\n }));\n }));\n };\n\n return TimeGridHeader;\n}(_react.default.Component);\n\nTimeGridHeader.propTypes = process.env.NODE_ENV !== \"production\" ? {\n range: _propTypes.default.array.isRequired,\n events: _propTypes.default.array.isRequired,\n resources: _propTypes.default.object,\n getNow: _propTypes.default.func.isRequired,\n isOverflowing: _propTypes.default.bool,\n rtl: _propTypes.default.bool,\n width: _propTypes.default.number,\n localizer: _propTypes.default.object.isRequired,\n accessors: _propTypes.default.object.isRequired,\n components: _propTypes.default.object.isRequired,\n getters: _propTypes.default.object.isRequired,\n selected: _propTypes.default.object,\n selectable: _propTypes.default.oneOf([true, false, 'ignoreEvents']),\n longPressThreshold: _propTypes.default.number,\n onSelectSlot: _propTypes.default.func,\n onSelectEvent: _propTypes.default.func,\n onDoubleClickEvent: _propTypes.default.func,\n onDrillDown: _propTypes.default.func,\n getDrilldownView: _propTypes.default.func.isRequired,\n scrollRef: _propTypes.default.any\n} : {};\nvar _default = TimeGridHeader;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nvar _height = _interopRequireDefault(require(\"dom-helpers/height\"));\n\nvar _querySelectorAll = _interopRequireDefault(require(\"dom-helpers/querySelectorAll\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar dates = _interopRequireWildcard(require(\"./utils/dates\"));\n\nvar _BackgroundCells = _interopRequireDefault(require(\"./BackgroundCells\"));\n\nvar _EventRow = _interopRequireDefault(require(\"./EventRow\"));\n\nvar _EventEndingRow = _interopRequireDefault(require(\"./EventEndingRow\"));\n\nvar DateSlotMetrics = _interopRequireWildcard(require(\"./utils/DateSlotMetrics\"));\n\nvar DateContentRow =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inheritsLoose2.default)(DateContentRow, _React$Component);\n\n function DateContentRow() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.handleSelectSlot = function (slot) {\n var _this$props = _this.props,\n range = _this$props.range,\n onSelectSlot = _this$props.onSelectSlot;\n onSelectSlot(range.slice(slot.start, slot.end + 1), slot);\n };\n\n _this.handleShowMore = function (slot, target) {\n var _this$props2 = _this.props,\n range = _this$props2.range,\n onShowMore = _this$props2.onShowMore;\n\n var metrics = _this.slotMetrics(_this.props);\n\n var row = (0, _querySelectorAll.default)((0, _reactDom.findDOMNode)((0, _assertThisInitialized2.default)(_this)), '.rbc-row-bg')[0];\n var cell;\n if (row) cell = row.children[slot - 1];\n var events = metrics.getEventsForSlot(slot);\n onShowMore(events, range[slot - 1], cell, slot, target);\n };\n\n _this.createHeadingRef = function (r) {\n _this.headingRow = r;\n };\n\n _this.createEventRef = function (r) {\n _this.eventRow = r;\n };\n\n _this.getContainer = function () {\n var container = _this.props.container;\n return container ? container() : (0, _reactDom.findDOMNode)((0, _assertThisInitialized2.default)(_this));\n };\n\n _this.renderHeadingCell = function (date, index) {\n var _this$props3 = _this.props,\n renderHeader = _this$props3.renderHeader,\n getNow = _this$props3.getNow;\n return renderHeader({\n date: date,\n key: \"header_\" + index,\n className: (0, _clsx.default)('rbc-date-cell', dates.eq(date, getNow(), 'day') && 'rbc-now')\n });\n };\n\n _this.renderDummy = function () {\n var _this$props4 = _this.props,\n className = _this$props4.className,\n range = _this$props4.range,\n renderHeader = _this$props4.renderHeader;\n return _react.default.createElement(\"div\", {\n className: className\n }, _react.default.createElement(\"div\", {\n className: \"rbc-row-content\"\n }, renderHeader && _react.default.createElement(\"div\", {\n className: \"rbc-row\",\n ref: _this.createHeadingRef\n }, range.map(_this.renderHeadingCell)), _react.default.createElement(\"div\", {\n className: \"rbc-row\",\n ref: _this.createEventRef\n }, _react.default.createElement(\"div\", {\n className: \"rbc-row-segment\"\n }, _react.default.createElement(\"div\", {\n className: \"rbc-event\"\n }, _react.default.createElement(\"div\", {\n className: \"rbc-event-content\"\n }, \"\\xA0\"))))));\n };\n\n _this.slotMetrics = DateSlotMetrics.getSlotMetrics();\n return _this;\n }\n\n var _proto = DateContentRow.prototype;\n\n _proto.getRowLimit = function getRowLimit() {\n var eventHeight = (0, _height.default)(this.eventRow);\n var headingHeight = this.headingRow ? (0, _height.default)(this.headingRow) : 0;\n var eventSpace = (0, _height.default)((0, _reactDom.findDOMNode)(this)) - headingHeight;\n return Math.max(Math.floor(eventSpace / eventHeight), 1);\n };\n\n _proto.render = function render() {\n var _this$props5 = this.props,\n date = _this$props5.date,\n rtl = _this$props5.rtl,\n range = _this$props5.range,\n className = _this$props5.className,\n selected = _this$props5.selected,\n selectable = _this$props5.selectable,\n renderForMeasure = _this$props5.renderForMeasure,\n accessors = _this$props5.accessors,\n getters = _this$props5.getters,\n components = _this$props5.components,\n getNow = _this$props5.getNow,\n renderHeader = _this$props5.renderHeader,\n onSelect = _this$props5.onSelect,\n localizer = _this$props5.localizer,\n onSelectStart = _this$props5.onSelectStart,\n onSelectEnd = _this$props5.onSelectEnd,\n onDoubleClick = _this$props5.onDoubleClick,\n resourceId = _this$props5.resourceId,\n longPressThreshold = _this$props5.longPressThreshold,\n isAllDay = _this$props5.isAllDay;\n if (renderForMeasure) return this.renderDummy();\n var metrics = this.slotMetrics(this.props);\n var levels = metrics.levels,\n extra = metrics.extra;\n var WeekWrapper = components.weekWrapper;\n var eventRowProps = {\n selected: selected,\n accessors: accessors,\n getters: getters,\n localizer: localizer,\n components: components,\n onSelect: onSelect,\n onDoubleClick: onDoubleClick,\n resourceId: resourceId,\n slotMetrics: metrics\n };\n return _react.default.createElement(\"div\", {\n className: className\n }, _react.default.createElement(_BackgroundCells.default, {\n date: date,\n getNow: getNow,\n rtl: rtl,\n range: range,\n selectable: selectable,\n container: this.getContainer,\n getters: getters,\n onSelectStart: onSelectStart,\n onSelectEnd: onSelectEnd,\n onSelectSlot: this.handleSelectSlot,\n components: components,\n longPressThreshold: longPressThreshold\n }), _react.default.createElement(\"div\", {\n className: \"rbc-row-content\"\n }, renderHeader && _react.default.createElement(\"div\", {\n className: \"rbc-row \",\n ref: this.createHeadingRef\n }, range.map(this.renderHeadingCell)), _react.default.createElement(WeekWrapper, (0, _extends2.default)({\n isAllDay: isAllDay\n }, eventRowProps), levels.map(function (segs, idx) {\n return _react.default.createElement(_EventRow.default, (0, _extends2.default)({\n key: idx,\n segments: segs\n }, eventRowProps));\n }), !!extra.length && _react.default.createElement(_EventEndingRow.default, (0, _extends2.default)({\n segments: extra,\n onShowMore: this.handleShowMore\n }, eventRowProps)))));\n };\n\n return DateContentRow;\n}(_react.default.Component);\n\nDateContentRow.propTypes = process.env.NODE_ENV !== \"production\" ? {\n date: _propTypes.default.instanceOf(Date),\n events: _propTypes.default.array.isRequired,\n range: _propTypes.default.array.isRequired,\n rtl: _propTypes.default.bool,\n resourceId: _propTypes.default.any,\n renderForMeasure: _propTypes.default.bool,\n renderHeader: _propTypes.default.func,\n container: _propTypes.default.func,\n selected: _propTypes.default.object,\n selectable: _propTypes.default.oneOf([true, false, 'ignoreEvents']),\n longPressThreshold: _propTypes.default.number,\n onShowMore: _propTypes.default.func,\n onSelectSlot: _propTypes.default.func,\n onSelect: _propTypes.default.func,\n onSelectEnd: _propTypes.default.func,\n onSelectStart: _propTypes.default.func,\n onDoubleClick: _propTypes.default.func,\n dayPropGetter: _propTypes.default.func,\n getNow: _propTypes.default.func.isRequired,\n isAllDay: _propTypes.default.bool,\n accessors: _propTypes.default.object.isRequired,\n components: _propTypes.default.object.isRequired,\n getters: _propTypes.default.object.isRequired,\n localizer: _propTypes.default.object.isRequired,\n minRows: _propTypes.default.number.isRequired,\n maxRows: _propTypes.default.number.isRequired\n} : {};\nDateContentRow.defaultProps = {\n minRows: 0,\n maxRows: Infinity\n};\nvar _default = DateContentRow;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nvar dates = _interopRequireWildcard(require(\"./utils/dates\"));\n\nvar _helpers = require(\"./utils/helpers\");\n\nvar _selection = require(\"./utils/selection\");\n\nvar _Selection = _interopRequireWildcard(require(\"./Selection\"));\n\nvar BackgroundCells =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inheritsLoose2.default)(BackgroundCells, _React$Component);\n\n function BackgroundCells(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n _this.state = {\n selecting: false\n };\n return _this;\n }\n\n var _proto = BackgroundCells.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.props.selectable && this._selectable();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this._teardownSelectable();\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (nextProps.selectable && !this.props.selectable) this._selectable();\n if (!nextProps.selectable && this.props.selectable) this._teardownSelectable();\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n range = _this$props.range,\n getNow = _this$props.getNow,\n getters = _this$props.getters,\n currentDate = _this$props.date,\n Wrapper = _this$props.components.dateCellWrapper;\n var _this$state = this.state,\n selecting = _this$state.selecting,\n startIdx = _this$state.startIdx,\n endIdx = _this$state.endIdx;\n var current = getNow();\n return _react.default.createElement(\"div\", {\n className: \"rbc-row-bg\"\n }, range.map(function (date, index) {\n var selected = selecting && index >= startIdx && index <= endIdx;\n\n var _getters$dayProp = getters.dayProp(date),\n className = _getters$dayProp.className,\n style = _getters$dayProp.style;\n\n return _react.default.createElement(Wrapper, {\n key: index,\n value: date,\n range: range\n }, _react.default.createElement(\"div\", {\n style: style,\n className: (0, _clsx.default)('rbc-day-bg', className, selected && 'rbc-selected-cell', dates.eq(date, current, 'day') && 'rbc-today', currentDate && dates.month(currentDate) !== dates.month(date) && 'rbc-off-range-bg')\n }));\n }));\n };\n\n _proto._selectable = function _selectable() {\n var _this2 = this;\n\n var node = (0, _reactDom.findDOMNode)(this);\n var selector = this._selector = new _Selection.default(this.props.container, {\n longPressThreshold: this.props.longPressThreshold\n });\n\n var selectorClicksHandler = function selectorClicksHandler(point, actionType) {\n if (!(0, _Selection.isEvent)((0, _reactDom.findDOMNode)(_this2), point)) {\n var rowBox = (0, _Selection.getBoundsForNode)(node);\n var _this2$props = _this2.props,\n range = _this2$props.range,\n rtl = _this2$props.rtl;\n\n if ((0, _selection.pointInBox)(rowBox, point)) {\n var currentCell = (0, _selection.getSlotAtX)(rowBox, point.x, rtl, range.length);\n\n _this2._selectSlot({\n startIdx: currentCell,\n endIdx: currentCell,\n action: actionType,\n box: point\n });\n }\n }\n\n _this2._initial = {};\n\n _this2.setState({\n selecting: false\n });\n };\n\n selector.on('selecting', function (box) {\n var _this2$props2 = _this2.props,\n range = _this2$props2.range,\n rtl = _this2$props2.rtl;\n var startIdx = -1;\n var endIdx = -1;\n\n if (!_this2.state.selecting) {\n (0, _helpers.notify)(_this2.props.onSelectStart, [box]);\n _this2._initial = {\n x: box.x,\n y: box.y\n };\n }\n\n if (selector.isSelected(node)) {\n var nodeBox = (0, _Selection.getBoundsForNode)(node);\n\n var _dateCellSelection = (0, _selection.dateCellSelection)(_this2._initial, nodeBox, box, range.length, rtl);\n\n startIdx = _dateCellSelection.startIdx;\n endIdx = _dateCellSelection.endIdx;\n }\n\n _this2.setState({\n selecting: true,\n startIdx: startIdx,\n endIdx: endIdx\n });\n });\n selector.on('beforeSelect', function (box) {\n if (_this2.props.selectable !== 'ignoreEvents') return;\n return !(0, _Selection.isEvent)((0, _reactDom.findDOMNode)(_this2), box);\n });\n selector.on('click', function (point) {\n return selectorClicksHandler(point, 'click');\n });\n selector.on('doubleClick', function (point) {\n return selectorClicksHandler(point, 'doubleClick');\n });\n selector.on('select', function (bounds) {\n _this2._selectSlot((0, _extends2.default)({}, _this2.state, {\n action: 'select',\n bounds: bounds\n }));\n\n _this2._initial = {};\n\n _this2.setState({\n selecting: false\n });\n\n (0, _helpers.notify)(_this2.props.onSelectEnd, [_this2.state]);\n });\n };\n\n _proto._teardownSelectable = function _teardownSelectable() {\n if (!this._selector) return;\n\n this._selector.teardown();\n\n this._selector = null;\n };\n\n _proto._selectSlot = function _selectSlot(_ref) {\n var endIdx = _ref.endIdx,\n startIdx = _ref.startIdx,\n action = _ref.action,\n bounds = _ref.bounds,\n box = _ref.box;\n if (endIdx !== -1 && startIdx !== -1) this.props.onSelectSlot && this.props.onSelectSlot({\n start: startIdx,\n end: endIdx,\n action: action,\n bounds: bounds,\n box: box\n });\n };\n\n return BackgroundCells;\n}(_react.default.Component);\n\nBackgroundCells.propTypes = process.env.NODE_ENV !== \"production\" ? {\n date: _propTypes.default.instanceOf(Date),\n getNow: _propTypes.default.func.isRequired,\n getters: _propTypes.default.object.isRequired,\n components: _propTypes.default.object.isRequired,\n container: _propTypes.default.func,\n dayPropGetter: _propTypes.default.func,\n selectable: _propTypes.default.oneOf([true, false, 'ignoreEvents']),\n longPressThreshold: _propTypes.default.number,\n onSelectSlot: _propTypes.default.func.isRequired,\n onSelectEnd: _propTypes.default.func,\n onSelectStart: _propTypes.default.func,\n range: _propTypes.default.arrayOf(_propTypes.default.instanceOf(Date)),\n rtl: _propTypes.default.bool,\n type: _propTypes.default.string\n} : {};\nvar _default = BackgroundCells;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _EventRowMixin = _interopRequireDefault(require(\"./EventRowMixin\"));\n\nvar EventRow =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inheritsLoose2.default)(EventRow, _React$Component);\n\n function EventRow() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = EventRow.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n var _this$props = this.props,\n segments = _this$props.segments,\n slots = _this$props.slotMetrics.slots,\n className = _this$props.className;\n var lastEnd = 1;\n return _react.default.createElement(\"div\", {\n className: (0, _clsx.default)(className, 'rbc-row')\n }, segments.reduce(function (row, _ref, li) {\n var event = _ref.event,\n left = _ref.left,\n right = _ref.right,\n span = _ref.span;\n var key = '_lvl_' + li;\n var gap = left - lastEnd;\n\n var content = _EventRowMixin.default.renderEvent(_this.props, event);\n\n if (gap) row.push(_EventRowMixin.default.renderSpan(slots, gap, key + \"_gap\"));\n row.push(_EventRowMixin.default.renderSpan(slots, span, key, content));\n lastEnd = right + 1;\n return row;\n }, []));\n };\n\n return EventRow;\n}(_react.default.Component);\n\nEventRow.propTypes = process.env.NODE_ENV !== \"production\" ? (0, _extends2.default)({\n segments: _propTypes.default.array\n}, _EventRowMixin.default.propTypes) : {};\nEventRow.defaultProps = (0, _extends2.default)({}, _EventRowMixin.default.defaultProps);\nvar _default = EventRow;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nvar dates = _interopRequireWildcard(require(\"./utils/dates\"));\n\nvar EventCell =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inheritsLoose2.default)(EventCell, _React$Component);\n\n function EventCell() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = EventCell.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n style = _this$props.style,\n className = _this$props.className,\n event = _this$props.event,\n selected = _this$props.selected,\n isAllDay = _this$props.isAllDay,\n onSelect = _this$props.onSelect,\n _onDoubleClick = _this$props.onDoubleClick,\n localizer = _this$props.localizer,\n continuesPrior = _this$props.continuesPrior,\n continuesAfter = _this$props.continuesAfter,\n accessors = _this$props.accessors,\n getters = _this$props.getters,\n children = _this$props.children,\n _this$props$component = _this$props.components,\n Event = _this$props$component.event,\n EventWrapper = _this$props$component.eventWrapper,\n slotStart = _this$props.slotStart,\n slotEnd = _this$props.slotEnd,\n props = (0, _objectWithoutPropertiesLoose2.default)(_this$props, [\"style\", \"className\", \"event\", \"selected\", \"isAllDay\", \"onSelect\", \"onDoubleClick\", \"localizer\", \"continuesPrior\", \"continuesAfter\", \"accessors\", \"getters\", \"children\", \"components\", \"slotStart\", \"slotEnd\"]);\n var title = accessors.title(event);\n var tooltip = accessors.tooltip(event);\n var end = accessors.end(event);\n var start = accessors.start(event);\n var allDay = accessors.allDay(event);\n var showAsAllDay = isAllDay || allDay || dates.diff(start, dates.ceil(end, 'day'), 'day') > 1;\n var userProps = getters.eventProp(event, start, end, selected);\n\n var content = _react.default.createElement(\"div\", {\n className: \"rbc-event-content\",\n title: tooltip || undefined\n }, Event ? _react.default.createElement(Event, {\n event: event,\n continuesPrior: continuesPrior,\n continuesAfter: continuesAfter,\n title: title,\n isAllDay: allDay,\n localizer: localizer,\n slotStart: slotStart,\n slotEnd: slotEnd\n }) : title);\n\n return _react.default.createElement(EventWrapper, (0, _extends2.default)({}, this.props, {\n type: \"date\"\n }), _react.default.createElement(\"div\", (0, _extends2.default)({}, props, {\n tabIndex: 0,\n style: (0, _extends2.default)({}, userProps.style, style),\n className: (0, _clsx.default)('rbc-event', className, userProps.className, {\n 'rbc-selected': selected,\n 'rbc-event-allday': showAsAllDay,\n 'rbc-event-continues-prior': continuesPrior,\n 'rbc-event-continues-after': continuesAfter\n }),\n onClick: function onClick(e) {\n return onSelect && onSelect(event, e);\n },\n onDoubleClick: function onDoubleClick(e) {\n return _onDoubleClick && _onDoubleClick(event, e);\n }\n }), typeof children === 'function' ? children(content) : content));\n };\n\n return EventCell;\n}(_react.default.Component);\n\nEventCell.propTypes = process.env.NODE_ENV !== \"production\" ? {\n event: _propTypes.default.object.isRequired,\n slotStart: _propTypes.default.instanceOf(Date),\n slotEnd: _propTypes.default.instanceOf(Date),\n selected: _propTypes.default.bool,\n isAllDay: _propTypes.default.bool,\n continuesPrior: _propTypes.default.bool,\n continuesAfter: _propTypes.default.bool,\n accessors: _propTypes.default.object.isRequired,\n components: _propTypes.default.object.isRequired,\n getters: _propTypes.default.object.isRequired,\n localizer: _propTypes.default.object,\n onSelect: _propTypes.default.func,\n onDoubleClick: _propTypes.default.func\n} : {};\nvar _default = EventCell;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _EventRowMixin = _interopRequireDefault(require(\"./EventRowMixin\"));\n\nvar _eventLevels = require(\"./utils/eventLevels\");\n\nvar _range = _interopRequireDefault(require(\"lodash/range\"));\n\nvar isSegmentInSlot = function isSegmentInSlot(seg, slot) {\n return seg.left <= slot && seg.right >= slot;\n};\n\nvar eventsInSlot = function eventsInSlot(segments, slot) {\n return segments.filter(function (seg) {\n return isSegmentInSlot(seg, slot);\n }).length;\n};\n\nvar EventEndingRow =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inheritsLoose2.default)(EventEndingRow, _React$Component);\n\n function EventEndingRow() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = EventEndingRow.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n segments = _this$props.segments,\n slots = _this$props.slotMetrics.slots;\n var rowSegments = (0, _eventLevels.eventLevels)(segments).levels[0];\n var current = 1,\n lastEnd = 1,\n row = [];\n\n while (current <= slots) {\n var key = '_lvl_' + current;\n\n var _ref = rowSegments.filter(function (seg) {\n return isSegmentInSlot(seg, current);\n })[0] || {},\n event = _ref.event,\n left = _ref.left,\n right = _ref.right,\n span = _ref.span; //eslint-disable-line\n\n\n if (!event) {\n current++;\n continue;\n }\n\n var gap = Math.max(0, left - lastEnd);\n\n if (this.canRenderSlotEvent(left, span)) {\n var content = _EventRowMixin.default.renderEvent(this.props, event);\n\n if (gap) {\n row.push(_EventRowMixin.default.renderSpan(slots, gap, key + '_gap'));\n }\n\n row.push(_EventRowMixin.default.renderSpan(slots, span, key, content));\n lastEnd = current = right + 1;\n } else {\n if (gap) {\n row.push(_EventRowMixin.default.renderSpan(slots, gap, key + '_gap'));\n }\n\n row.push(_EventRowMixin.default.renderSpan(slots, 1, key, this.renderShowMore(segments, current)));\n lastEnd = current = current + 1;\n }\n }\n\n return _react.default.createElement(\"div\", {\n className: \"rbc-row\"\n }, row);\n };\n\n _proto.canRenderSlotEvent = function canRenderSlotEvent(slot, span) {\n var segments = this.props.segments;\n return (0, _range.default)(slot, slot + span).every(function (s) {\n var count = eventsInSlot(segments, s);\n return count === 1;\n });\n };\n\n _proto.renderShowMore = function renderShowMore(segments, slot) {\n var _this = this;\n\n var localizer = this.props.localizer;\n var count = eventsInSlot(segments, slot);\n return count ? _react.default.createElement(\"a\", {\n key: 'sm_' + slot,\n href: \"#\",\n className: 'rbc-show-more',\n onClick: function onClick(e) {\n return _this.showMore(slot, e);\n }\n }, localizer.messages.showMore(count)) : false;\n };\n\n _proto.showMore = function showMore(slot, e) {\n e.preventDefault();\n this.props.onShowMore(slot, e.target);\n };\n\n return EventEndingRow;\n}(_react.default.Component);\n\nEventEndingRow.propTypes = process.env.NODE_ENV !== \"production\" ? (0, _extends2.default)({\n segments: _propTypes.default.array,\n slots: _propTypes.default.number,\n onShowMore: _propTypes.default.func\n}, _EventRowMixin.default.propTypes) : {};\nEventEndingRow.defaultProps = (0, _extends2.default)({}, _EventRowMixin.default.defaultProps);\nvar _default = EventEndingRow;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\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/**\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 = toNumber;\n","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n","var baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nmodule.exports = baseRange;\n","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.getSlotMetrics = getSlotMetrics;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _memoizeOne = _interopRequireDefault(require(\"memoize-one\"));\n\nvar dates = _interopRequireWildcard(require(\"./dates\"));\n\nvar _eventLevels2 = require(\"./eventLevels\");\n\nvar isSegmentInSlot = function isSegmentInSlot(seg, slot) {\n return seg.left <= slot && seg.right >= slot;\n};\n\nvar isEqual = function isEqual(a, b) {\n return a.range === b.range && a.events === b.events;\n};\n\nfunction getSlotMetrics() {\n return (0, _memoizeOne.default)(function (options) {\n var range = options.range,\n events = options.events,\n maxRows = options.maxRows,\n minRows = options.minRows,\n accessors = options.accessors;\n\n var _endOfRange = (0, _eventLevels2.endOfRange)(range),\n first = _endOfRange.first,\n last = _endOfRange.last;\n\n var segments = events.map(function (evt) {\n return (0, _eventLevels2.eventSegments)(evt, range, accessors);\n });\n\n var _eventLevels = (0, _eventLevels2.eventLevels)(segments, Math.max(maxRows - 1, 1)),\n levels = _eventLevels.levels,\n extra = _eventLevels.extra;\n\n while (levels.length < minRows) {\n levels.push([]);\n }\n\n return {\n first: first,\n last: last,\n levels: levels,\n extra: extra,\n range: range,\n slots: range.length,\n clone: function clone(args) {\n var metrics = getSlotMetrics();\n return metrics((0, _extends2.default)({}, options, args));\n },\n getDateForSlot: function getDateForSlot(slotNumber) {\n return range[slotNumber];\n },\n getSlotForDate: function getSlotForDate(date) {\n return range.find(function (r) {\n return dates.eq(r, date, 'day');\n });\n },\n getEventsForSlot: function getEventsForSlot(slot) {\n return segments.filter(function (seg) {\n return isSegmentInSlot(seg, slot);\n }).map(function (seg) {\n return seg.event;\n });\n },\n continuesPrior: function continuesPrior(event) {\n return dates.lt(accessors.start(event), first, 'day');\n },\n continuesAfter: function continuesAfter(event) {\n var eventEnd = accessors.end(event);\n var singleDayDuration = dates.eq(accessors.start(event), eventEnd, 'minutes');\n return singleDayDuration ? dates.gte(eventEnd, last, 'minutes') : dates.gt(eventEnd, last, 'minutes');\n }\n };\n }, isEqual);\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar Header = function Header(_ref) {\n var label = _ref.label;\n return _react.default.createElement(\"span\", null, label);\n};\n\nHeader.propTypes = process.env.NODE_ENV !== \"production\" ? {\n label: _propTypes.default.node\n} : {};\nvar _default = Header;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar ResourceHeader = function ResourceHeader(_ref) {\n var label = _ref.label;\n return _react.default.createElement(_react.default.Fragment, null, label);\n};\n\nResourceHeader.propTypes = process.env.NODE_ENV !== \"production\" ? {\n label: _propTypes.default.node,\n index: _propTypes.default.number,\n resource: _propTypes.default.object\n} : {};\nvar _default = ResourceHeader;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = Resources;\nexports.NONE = void 0;\nvar NONE = {};\nexports.NONE = NONE;\n\nfunction Resources(resources, accessors) {\n return {\n map: function map(fn) {\n if (!resources) return [fn([NONE, null], 0)];\n return resources.map(function (resource, idx) {\n return fn([accessors.resourceId(resource), resource], idx);\n });\n },\n groupEvents: function groupEvents(events) {\n var eventsByResource = new Map();\n\n if (!resources) {\n // Return all events if resources are not provided\n eventsByResource.set(NONE, events);\n return eventsByResource;\n }\n\n events.forEach(function (event) {\n var id = accessors.resource(event) || NONE;\n var resourceEvents = eventsByResource.get(id) || [];\n resourceEvents.push(event);\n eventsByResource.set(id, resourceEvents);\n });\n return eventsByResource;\n }\n };\n}","import 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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 * var result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * var result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * var result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * var result = isDate({})\n * //=> false\n */\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 toInteger from '../_lib/toInteger/index.js';\nimport addMinutes from '../addMinutes/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subMinutes\n * @category Minute Helpers\n * @summary Subtract the specified number of minutes from the given date.\n *\n * @description\n * Subtract the specified number of minutes from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be subtracted\n * @returns {Date} the new date with the minutes subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 30 minutes from 10 July 2014 12:00:00:\n * var result = subMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 11:30:00\n */\n\nexport default function subMinutes(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMinutes(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addHours from '../addHours/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subHours\n * @category Hour Helpers\n * @summary Subtract the specified number of hours from the given date.\n *\n * @description\n * Subtract the specified number of hours from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be subtracted\n * @returns {Date} the new date with the hours subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 2 hours from 11 July 2014 01:00:00:\n * var result = subHours(new Date(2014, 6, 11, 1, 0), 2)\n * //=> Thu Jul 10 2014 23:00:00\n */\n\nexport default function subHours(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addHours(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addDays from '../addDays/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted\n * @returns {Date} the new date with the days subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * var result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\n\nexport default function subDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addDays(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addWeeks from '../addWeeks/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subWeeks\n * @category Week Helpers\n * @summary Subtract the specified number of weeks from the given date.\n *\n * @description\n * Subtract the specified number of weeks from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be subtracted\n * @returns {Date} the new date with the weeks subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 4 weeks from 1 September 2014:\n * var result = subWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Aug 04 2014 00:00:00\n */\n\nexport default function subWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addWeeks(dirtyDate, -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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be subtracted\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 * var result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function subMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addYears from '../addYears/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subYears\n * @category Year Helpers\n * @summary Subtract the specified number of years from the given date.\n *\n * @description\n * Subtract the specified number of years from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be subtracted\n * @returns {Date} the new date with the years subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 years from 1 September 2014:\n * var result = subYears(new Date(2014, 8, 1), 5)\n * //=> Tue Sep 01 2009 00:00:00\n */\n\nexport default function subYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addYears(dirtyDate, -amount);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getSeconds\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the seconds\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * var result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\n\nexport default function getSeconds(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var seconds = date.getSeconds();\n return seconds;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getMinutes\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the minutes\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * var result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\n\nexport default function getMinutes(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var minutes = date.getMinutes();\n return minutes;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getHours\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the hours\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * var result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\n\nexport default function getHours(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var hours = date.getHours();\n return hours;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the day of week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * var result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\n\nexport default function getDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var day = date.getDay();\n return day;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getDate\n * @category Day Helpers\n * @summary Get the day of the month of the given date.\n *\n * @description\n * Get the day of the month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the day of month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the month is 29 February 2012?\n * var result = getDate(new Date(2012, 1, 29))\n * //=> 29\n */\n\nexport default function getDate(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var dayOfMonth = date.getDate();\n return dayOfMonth;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which month is 29 February 2012?\n * var result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\n\nexport default function getMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n return month;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getQuarter\n * @category Quarter Helpers\n * @summary Get the year quarter of the given date.\n *\n * @description\n * Get the year quarter of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which quarter is 2 July 2014?\n * var result = getQuarter(new Date(2014, 6, 2))\n * //=> 3\n */\n\nexport default function getQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var quarter = Math.floor(date.getMonth() / 3) + 1;\n return quarter;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which year is 2 July 2014?\n * var result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\n\nexport default function getYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n return year;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getTime\n * @category Timestamp Helpers\n * @summary Get the milliseconds timestamp of the given date.\n *\n * @description\n * Get the milliseconds timestamp of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the timestamp\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05.123:\n * var result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 1330515905123\n */\n\nexport default function getTime(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n return timestamp;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setSeconds\n * @category Second Helpers\n * @summary Set the seconds to the given date.\n *\n * @description\n * Set the seconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} seconds - the seconds of the new date\n * @returns {Date} the new date with the seconds set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * var result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\n\nexport default function setSeconds(dirtyDate, dirtySeconds) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var seconds = toInteger(dirtySeconds);\n date.setSeconds(seconds);\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 setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} minutes - the minutes of the new date\n * @returns {Date} the new date with the minutes set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * var result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\n\nexport default function setMinutes(dirtyDate, dirtyMinutes) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var minutes = toInteger(dirtyMinutes);\n date.setMinutes(minutes);\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 setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} hours - the hours of the new date\n * @returns {Date} the new date with the hours set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * var result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\n\nexport default function setHours(dirtyDate, dirtyHours) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var hours = toInteger(dirtyHours);\n date.setHours(hours);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport setMonth from '../setMonth/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setQuarter\n * @category Quarter Helpers\n * @summary Set the year quarter to the given date.\n *\n * @description\n * Set the year quarter to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} quarter - the quarter of the new date\n * @returns {Date} the new date with the quarter set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set the 2nd quarter to 2 July 2014:\n * var result = setQuarter(new Date(2014, 6, 2), 2)\n * //=> Wed Apr 02 2014 00:00:00\n */\n\nexport default function setQuarter(dirtyDate, dirtyQuarter) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var quarter = toInteger(dirtyQuarter);\n var oldQuarter = Math.floor(date.getMonth() / 3) + 1;\n var diff = quarter - oldQuarter;\n return setMonth(date, date.getMonth() + diff * 3);\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 * var result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\n\nexport default function setYear(dirtyDate, dirtyYear) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var year = toInteger(dirtyYear); // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n\n if (isNaN(date)) {\n return new Date(NaN);\n }\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 min\n * @category Common Helpers\n * @summary Return the earliest of the given dates.\n *\n * @description\n * Return the earliest of the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - `min` function now accepts an array of dates rather than spread arguments.\n *\n * ```javascript\n * // Before v2.0.0\n * var date1 = new Date(1989, 6, 10)\n * var date2 = new Date(1987, 1, 11)\n * var minDate = min(date1, date2)\n *\n * // v2.0.0 onward:\n * var dates = [new Date(1989, 6, 10), new Date(1987, 1, 11)]\n * var minDate = min(dates)\n * ```\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 * var 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 */\n\nexport default function min(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray; // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray; // 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\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n\n if (result === undefined || result > currentDate || isNaN(currentDate)) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","import 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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - `max` function now accepts an array of dates rather than spread arguments.\n *\n * ```javascript\n * // Before v2.0.0\n * var date1 = new Date(1989, 6, 10)\n * var date2 = new Date(1987, 1, 11)\n * var maxDate = max(date1, date2)\n *\n * // v2.0.0 onward:\n * var dates = [new Date(1989, 6, 10), new Date(1987, 1, 11)]\n * var maxDate = max(dates)\n * ```\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 * var 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 */\n\nexport default function max(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray; // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray; // 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\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n\n if (result === undefined || result < currentDate || isNaN(currentDate)) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\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 * @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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 * var 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 * var result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\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); // 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\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 * var result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\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 startOfWeek from '../startOfWeek/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000;\n/**\n * @name differenceInCalendarWeeks\n * @category Week Helpers\n * @summary Get the number of calendar weeks between the given dates.\n *\n * @description\n * Get the number of calendar weeks between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier 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 {Number} the number of calendar weeks\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // How many calendar weeks are between 5 July 2014 and 20 July 2014?\n * var result = differenceInCalendarWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5)\n * )\n * //=> 3\n *\n * @example\n * // If the week starts on Monday,\n * // how many calendar weeks are between 5 July 2014 and 20 July 2014?\n * var result = differenceInCalendarWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5),\n * { weekStartsOn: 1 }\n * )\n * //=> 2\n */\n\nexport default function differenceInCalendarWeeks(dirtyDateLeft, dirtyDateRight, dirtyOptions) {\n requiredArgs(2, arguments);\n var startOfWeekLeft = startOfWeek(dirtyDateLeft, dirtyOptions);\n var startOfWeekRight = startOfWeek(dirtyDateRight, dirtyOptions);\n var timestampLeft = startOfWeekLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekLeft);\n var timestampRight = startOfWeekRight.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekRight); // 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\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_WEEK);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * var result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\n\nexport default function differenceInCalendarYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() - dateRight.getFullYear();\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 * var result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\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 requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * var result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\n\nexport default function startOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var cleanDate = toDate(dirtyDate);\n var date = new Date(0);\n date.setFullYear(cleanDate.getFullYear(), 0, 1);\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 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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 * var result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\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 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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 * var 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 * var result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\n\nexport default function endOfWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\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}","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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 * var result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\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 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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 * var 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 */\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?\n *\n * @description\n * Are the given dates in the same day?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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\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 * var result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n */\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?\n *\n * @description\n * Are the given dates in the same month?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * var result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\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 toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameYear\n * @category Year Helpers\n * @summary Are the given dates in the same year?\n *\n * @description\n * Are the given dates in the same year?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 year\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same year?\n * var result = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\n\nexport default function isSameYear(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear();\n}","import startOfQuarter from '../startOfQuarter/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameQuarter\n * @category Quarter Helpers\n * @summary Are the given dates in the same year quarter?\n *\n * @description\n * Are the given dates in the same year quarter?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 quarter\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 1 January 2014 and 8 March 2014 in the same quarter?\n * var result = isSameQuarter(new Date(2014, 0, 1), new Date(2014, 2, 8))\n * //=> true\n */\n\nexport default function isSameQuarter(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfQuarter = startOfQuarter(dirtyDateLeft);\n var dateRightStartOfQuarter = startOfQuarter(dirtyDateRight);\n return dateLeftStartOfQuarter.getTime() === dateRightStartOfQuarter.getTime();\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 * var result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 * var result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\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 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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `isWithinRange` to `isWithinInterval`.\n * This change was made to mirror the use of the word \"interval\" in standard ISO 8601:2004 terminology:\n *\n * ```\n * 2.1.3\n * time interval\n * part of the time axis limited by two instants\n * ```\n *\n * Also, this function now accepts an object with `start` and `end` properties\n * instead of two arguments as an interval.\n * This function now throws `RangeError` if the start of the interval is after its end\n * or if any date in the interval is `Invalid Date`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * isWithinRange(\n * new Date(2014, 0, 3),\n * new Date(2014, 0, 1), new Date(2014, 0, 7)\n * )\n *\n * // v2.0.0 onward\n *\n * isWithinInterval(\n * new Date(2014, 0, 3),\n * { start: new Date(2014, 0, 1), end: new Date(2014, 0, 7) }\n * )\n * ```\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 */\n\nexport default function isWithinInterval(dirtyDate, dirtyInterval) {\n requiredArgs(2, arguments);\n var interval = dirtyInterval || {};\n var time = toDate(dirtyDate).getTime();\n var startTime = toDate(interval.start).getTime();\n var endTime = toDate(interval.end).getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n if (!(startTime <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n\n return time >= startTime && time <= endTime;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar DEFAULT_ADDITIONAL_DIGITS = 2;\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The previous `parse` implementation was renamed to `parseISO`.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward\n * parseISO('2016-01-01')\n * ```\n *\n * - `parseISO` now validates separate date and time values in ISO-8601 strings\n * and returns `Invalid Date` if the date is invalid.\n *\n * ```javascript\n * parseISO('2018-13-32')\n * //=> Invalid Date\n * ```\n *\n * - `parseISO` now doesn't fall back to `new Date` constructor\n * if it fails to parse a string argument. Instead, it returns `Invalid Date`.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * var result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * var result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\n\nexport default function parseISO(argument, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var additionalDigits = options.additionalDigits == null ? DEFAULT_ADDITIONAL_DIGITS : toInteger(options.additionalDigits);\n\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n\n var dateStrings = splitDateString(argument);\n var date;\n\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (isNaN(date) || !date) {\n return new Date(NaN);\n }\n\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n\n if (isNaN(time) || time === null) {\n return new Date(NaN);\n }\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var fullTime = timestamp + time;\n var fullTimeDate = new Date(fullTime);\n offset = getTimezoneOffsetInMilliseconds(fullTimeDate); // Adjust time when it's coming from DST\n\n var fullTimeDateDiffDay = new Date(fullTime);\n\n if (offset > 0) {\n fullTimeDateDiffDay.setDate(fullTimeDate.getDate() + 1);\n } else {\n fullTimeDateDiffDay.setDate(fullTimeDate.getDate() - 1);\n }\n\n var offsetDiff = getTimezoneOffsetInMilliseconds(fullTimeDateDiffDay) - offset;\n\n if (offsetDiff > 0) {\n offset += offsetDiff;\n }\n }\n\n return new Date(timestamp + time + offset);\n}\n\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString;\n\n if (/:/.test(array[0])) {\n dateStrings.date = null;\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex); // Invalid ISO-formatted year\n\n if (!captures) return {\n year: null\n };\n var year = captures[1] && parseInt(captures[1]);\n var century = captures[2] && parseInt(captures[2]);\n return {\n year: century == null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return null;\n var captures = dateString.match(dateRegex); // Invalid ISO-formatted string\n\n if (!captures) return null;\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return null; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * 1000;\n}\n\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n} // Validation functions\n// February is null to handle the leap year (using ||)\n\n\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100;\n}\n\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","import { Component, createElement } from 'react';\nimport { findDOMNode } from 'react-dom';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n/**\n * Check whether some DOM node is our Component's node.\n */\nfunction isNodeFound(current, componentNode, ignoreClass) {\n if (current === componentNode) {\n return true;\n } // SVG elements do not technically reside in the rendered DOM, so\n // they do not have classList directly, but they offer a link to their\n // corresponding element, which can have classList. This extra check is for\n // that case.\n // See: http://www.w3.org/TR/SVG11/struct.html#InterfaceSVGUseElement\n // Discussion: https://github.com/Pomax/react-onclickoutside/pull/17\n\n\n if (current.correspondingElement) {\n return current.correspondingElement.classList.contains(ignoreClass);\n }\n\n return current.classList.contains(ignoreClass);\n}\n/**\n * Try to find our node in a hierarchy of nodes, returning the document\n * node as highest node if our node is not found in the path up.\n */\n\nfunction findHighest(current, componentNode, ignoreClass) {\n if (current === componentNode) {\n return true;\n } // If source=local then this event came from 'somewhere'\n // inside and should be ignored. We could handle this with\n // a layered approach, too, but that requires going back to\n // thinking in terms of Dom node nesting, running counter\n // to React's 'you shouldn't care about the DOM' philosophy.\n\n\n while (current.parentNode) {\n if (isNodeFound(current, componentNode, ignoreClass)) {\n return true;\n }\n\n current = current.parentNode;\n }\n\n return current;\n}\n/**\n * Check if the browser scrollbar was clicked\n */\n\nfunction clickedScrollbar(evt) {\n return document.documentElement.clientWidth <= evt.clientX || document.documentElement.clientHeight <= evt.clientY;\n}\n\n// ideally will get replaced with external dep\n// when rafrex/detect-passive-events#4 and rafrex/detect-passive-events#5 get merged in\nvar testPassiveEventSupport = function testPassiveEventSupport() {\n if (typeof window === 'undefined' || typeof window.addEventListener !== 'function') {\n return;\n }\n\n var passive = false;\n var options = Object.defineProperty({}, 'passive', {\n get: function get() {\n passive = true;\n }\n });\n\n var noop = function noop() {};\n\n window.addEventListener('testPassiveEventSupport', noop, options);\n window.removeEventListener('testPassiveEventSupport', noop, options);\n return passive;\n};\n\nfunction autoInc(seed) {\n if (seed === void 0) {\n seed = 0;\n }\n\n return function () {\n return ++seed;\n };\n}\n\nvar uid = autoInc();\n\nvar passiveEventSupport;\nvar handlersMap = {};\nvar enabledInstances = {};\nvar touchEvents = ['touchstart', 'touchmove'];\nvar IGNORE_CLASS_NAME = 'ignore-react-onclickoutside';\n/**\n * Options for addEventHandler and removeEventHandler\n */\n\nfunction getEventHandlerOptions(instance, eventName) {\n var handlerOptions = null;\n var isTouchEvent = touchEvents.indexOf(eventName) !== -1;\n\n if (isTouchEvent && passiveEventSupport) {\n handlerOptions = {\n passive: !instance.props.preventDefault\n };\n }\n\n return handlerOptions;\n}\n/**\n * This function generates the HOC function that you'll use\n * in order to impart onOutsideClick listening to an\n * arbitrary component. It gets called at the end of the\n * bootstrapping code to yield an instance of the\n * onClickOutsideHOC function defined inside setupHOC().\n */\n\n\nfunction onClickOutsideHOC(WrappedComponent, config) {\n var _class, _temp;\n\n var componentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n return _temp = _class =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(onClickOutside, _Component);\n\n function onClickOutside(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n\n _this.__outsideClickHandler = function (event) {\n if (typeof _this.__clickOutsideHandlerProp === 'function') {\n _this.__clickOutsideHandlerProp(event);\n\n return;\n }\n\n var instance = _this.getInstance();\n\n if (typeof instance.props.handleClickOutside === 'function') {\n instance.props.handleClickOutside(event);\n return;\n }\n\n if (typeof instance.handleClickOutside === 'function') {\n instance.handleClickOutside(event);\n return;\n }\n\n throw new Error(\"WrappedComponent: \" + componentName + \" lacks a handleClickOutside(event) function for processing outside click events.\");\n };\n\n _this.__getComponentNode = function () {\n var instance = _this.getInstance();\n\n if (config && typeof config.setClickOutsideRef === 'function') {\n return config.setClickOutsideRef()(instance);\n }\n\n if (typeof instance.setClickOutsideRef === 'function') {\n return instance.setClickOutsideRef();\n }\n\n return findDOMNode(instance);\n };\n\n _this.enableOnClickOutside = function () {\n if (typeof document === 'undefined' || enabledInstances[_this._uid]) {\n return;\n }\n\n if (typeof passiveEventSupport === 'undefined') {\n passiveEventSupport = testPassiveEventSupport();\n }\n\n enabledInstances[_this._uid] = true;\n var events = _this.props.eventTypes;\n\n if (!events.forEach) {\n events = [events];\n }\n\n handlersMap[_this._uid] = function (event) {\n if (_this.componentNode === null) return;\n\n if (_this.props.preventDefault) {\n event.preventDefault();\n }\n\n if (_this.props.stopPropagation) {\n event.stopPropagation();\n }\n\n if (_this.props.excludeScrollbar && clickedScrollbar(event)) return;\n var current = event.target;\n\n if (findHighest(current, _this.componentNode, _this.props.outsideClickIgnoreClass) !== document) {\n return;\n }\n\n _this.__outsideClickHandler(event);\n };\n\n events.forEach(function (eventName) {\n document.addEventListener(eventName, handlersMap[_this._uid], getEventHandlerOptions(_this, eventName));\n });\n };\n\n _this.disableOnClickOutside = function () {\n delete enabledInstances[_this._uid];\n var fn = handlersMap[_this._uid];\n\n if (fn && typeof document !== 'undefined') {\n var events = _this.props.eventTypes;\n\n if (!events.forEach) {\n events = [events];\n }\n\n events.forEach(function (eventName) {\n return document.removeEventListener(eventName, fn, getEventHandlerOptions(_this, eventName));\n });\n delete handlersMap[_this._uid];\n }\n };\n\n _this.getRef = function (ref) {\n return _this.instanceRef = ref;\n };\n\n _this._uid = uid();\n return _this;\n }\n /**\n * Access the WrappedComponent's instance.\n */\n\n\n var _proto = onClickOutside.prototype;\n\n _proto.getInstance = function getInstance() {\n if (!WrappedComponent.prototype.isReactComponent) {\n return this;\n }\n\n var ref = this.instanceRef;\n return ref.getInstance ? ref.getInstance() : ref;\n };\n\n /**\n * Add click listeners to the current document,\n * linked to this component's state.\n */\n _proto.componentDidMount = function componentDidMount() {\n // If we are in an environment without a DOM such\n // as shallow rendering or snapshots then we exit\n // early to prevent any unhandled errors being thrown.\n if (typeof document === 'undefined' || !document.createElement) {\n return;\n }\n\n var instance = this.getInstance();\n\n if (config && typeof config.handleClickOutside === 'function') {\n this.__clickOutsideHandlerProp = config.handleClickOutside(instance);\n\n if (typeof this.__clickOutsideHandlerProp !== 'function') {\n throw new Error(\"WrappedComponent: \" + componentName + \" lacks a function for processing outside click events specified by the handleClickOutside config option.\");\n }\n }\n\n this.componentNode = this.__getComponentNode(); // return early so we dont initiate onClickOutside\n\n if (this.props.disableOnClickOutside) return;\n this.enableOnClickOutside();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.componentNode = this.__getComponentNode();\n };\n /**\n * Remove all document's event listeners for this component\n */\n\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.disableOnClickOutside();\n };\n /**\n * Can be called to explicitly enable event listening\n * for clicks and touches outside of this element.\n */\n\n\n /**\n * Pass-through render\n */\n _proto.render = function render() {\n // eslint-disable-next-line no-unused-vars\n var _props = this.props,\n excludeScrollbar = _props.excludeScrollbar,\n props = _objectWithoutProperties(_props, [\"excludeScrollbar\"]);\n\n if (WrappedComponent.prototype.isReactComponent) {\n props.ref = this.getRef;\n } else {\n props.wrappedRef = this.getRef;\n }\n\n props.disableOnClickOutside = this.disableOnClickOutside;\n props.enableOnClickOutside = this.enableOnClickOutside;\n return createElement(WrappedComponent, props);\n };\n\n return onClickOutside;\n }(Component), _class.displayName = \"OnClickOutside(\" + componentName + \")\", _class.defaultProps = {\n eventTypes: ['mousedown', 'touchstart'],\n excludeScrollbar: config && config.excludeScrollbar || false,\n outsideClickIgnoreClass: IGNORE_CLASS_NAME,\n preventDefault: false,\n stopPropagation: false\n }, _class.getClass = function () {\n return WrappedComponent.getClass ? WrappedComponent.getClass() : WrappedComponent;\n }, _temp;\n}\n\nexport { IGNORE_CLASS_NAME };\nexport default onClickOutsideHOC;\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\nvar toStr = Object.prototype.toString;\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn toStr.call(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\ttoStr.call(value) !== '[object Array]' &&\n\t\ttoStr.call(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\n// http://www.ecma-international.org/ecma-262/6.0/#sec-object.is\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","'use strict';\n\nvar has = require('has');\nvar regexExec = RegExp.prototype.exec;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar tryRegexExecCall = function tryRegexExec(value) {\n\ttry {\n\t\tvar lastIndex = value.lastIndex;\n\t\tvalue.lastIndex = 0; // eslint-disable-line no-param-reassign\n\n\t\tregexExec.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\tvalue.lastIndex = lastIndex; // eslint-disable-line no-param-reassign\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar regexClass = '[object RegExp]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isRegex(value) {\n\tif (!value || typeof value !== 'object') {\n\t\treturn false;\n\t}\n\tif (!hasToStringTag) {\n\t\treturn toStr.call(value) === regexClass;\n\t}\n\n\tvar descriptor = gOPD(value, 'lastIndex');\n\tvar hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\tif (!hasLastIndexDataProperty) {\n\t\treturn false;\n\t}\n\n\treturn tryRegexExecCall(value);\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('es-abstract/helpers/callBind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar flagsBound = callBind(implementation);\n\ndefine(flagsBound, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = flagsBound;\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar GetIntrinsic = require('../GetIntrinsic');\n\nvar $Function = GetIntrinsic('%Function%');\nvar $apply = $Function.apply;\nvar $call = $Function.call;\n\nmodule.exports = function callBind() {\n\treturn bind.apply($call, arguments);\n};\n\nmodule.exports.apply = function applyBind() {\n\treturn bind.apply($apply, arguments);\n};\n","'use strict';\n\n/* globals\n\tAtomics,\n\tSharedArrayBuffer,\n*/\n\nvar undefined;\n\nvar $TypeError = TypeError;\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () { throw new $TypeError(); };\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar generator; // = function * () {};\nvar generatorFunction = generator ? getProto(generator) : undefined;\nvar asyncFn; // async function() {};\nvar asyncFunction = asyncFn ? asyncFn.constructor : undefined;\nvar asyncGen; // async function * () {};\nvar asyncGenFunction = asyncGen ? getProto(asyncGen) : undefined;\nvar asyncGenIterator = asyncGen ? asyncGen() : undefined;\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayBufferPrototype%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer.prototype,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%ArrayPrototype%': Array.prototype,\n\t'%ArrayProto_entries%': Array.prototype.entries,\n\t'%ArrayProto_forEach%': Array.prototype.forEach,\n\t'%ArrayProto_keys%': Array.prototype.keys,\n\t'%ArrayProto_values%': Array.prototype.values,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': asyncFunction,\n\t'%AsyncFunctionPrototype%': asyncFunction ? asyncFunction.prototype : undefined,\n\t'%AsyncGenerator%': asyncGen ? getProto(asyncGenIterator) : undefined,\n\t'%AsyncGeneratorFunction%': asyncGenFunction,\n\t'%AsyncGeneratorPrototype%': asyncGenFunction ? asyncGenFunction.prototype : undefined,\n\t'%AsyncIteratorPrototype%': asyncGenIterator && hasSymbols && Symbol.asyncIterator ? asyncGenIterator[Symbol.asyncIterator]() : undefined,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%Boolean%': Boolean,\n\t'%BooleanPrototype%': Boolean.prototype,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%DataViewPrototype%': typeof DataView === 'undefined' ? undefined : DataView.prototype,\n\t'%Date%': Date,\n\t'%DatePrototype%': Date.prototype,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%ErrorPrototype%': Error.prototype,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%EvalErrorPrototype%': EvalError.prototype,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float32ArrayPrototype%': typeof Float32Array === 'undefined' ? undefined : Float32Array.prototype,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%Float64ArrayPrototype%': typeof Float64Array === 'undefined' ? undefined : Float64Array.prototype,\n\t'%Function%': Function,\n\t'%FunctionPrototype%': Function.prototype,\n\t'%Generator%': generator ? getProto(generator()) : undefined,\n\t'%GeneratorFunction%': generatorFunction,\n\t'%GeneratorPrototype%': generatorFunction ? generatorFunction.prototype : undefined,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int8ArrayPrototype%': typeof Int8Array === 'undefined' ? undefined : Int8Array.prototype,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int16ArrayPrototype%': typeof Int16Array === 'undefined' ? undefined : Int8Array.prototype,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%Int32ArrayPrototype%': typeof Int32Array === 'undefined' ? undefined : Int32Array.prototype,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%JSONParse%': typeof JSON === 'object' ? JSON.parse : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%MapPrototype%': typeof Map === 'undefined' ? undefined : Map.prototype,\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%NumberPrototype%': Number.prototype,\n\t'%Object%': Object,\n\t'%ObjectPrototype%': Object.prototype,\n\t'%ObjProto_toString%': Object.prototype.toString,\n\t'%ObjProto_valueOf%': Object.prototype.valueOf,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%PromisePrototype%': typeof Promise === 'undefined' ? undefined : Promise.prototype,\n\t'%PromiseProto_then%': typeof Promise === 'undefined' ? undefined : Promise.prototype.then,\n\t'%Promise_all%': typeof Promise === 'undefined' ? undefined : Promise.all,\n\t'%Promise_reject%': typeof Promise === 'undefined' ? undefined : Promise.reject,\n\t'%Promise_resolve%': typeof Promise === 'undefined' ? undefined : Promise.resolve,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%RangeErrorPrototype%': RangeError.prototype,\n\t'%ReferenceError%': ReferenceError,\n\t'%ReferenceErrorPrototype%': ReferenceError.prototype,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%RegExpPrototype%': RegExp.prototype,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SetPrototype%': typeof Set === 'undefined' ? undefined : Set.prototype,\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%SharedArrayBufferPrototype%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer.prototype,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%StringPrototype%': String.prototype,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SymbolPrototype%': hasSymbols ? Symbol.prototype : undefined,\n\t'%SyntaxError%': SyntaxError,\n\t'%SyntaxErrorPrototype%': SyntaxError.prototype,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypedArrayPrototype%': TypedArray ? TypedArray.prototype : undefined,\n\t'%TypeError%': $TypeError,\n\t'%TypeErrorPrototype%': $TypeError.prototype,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ArrayPrototype%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array.prototype,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint8ClampedArrayPrototype%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray.prototype,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint16ArrayPrototype%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array.prototype,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%Uint32ArrayPrototype%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array.prototype,\n\t'%URIError%': URIError,\n\t'%URIErrorPrototype%': URIError.prototype,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakMapPrototype%': typeof WeakMap === 'undefined' ? undefined : WeakMap.prototype,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\t'%WeakSetPrototype%': typeof WeakSet === 'undefined' ? undefined : WeakSet.prototype\n};\n\nvar bind = require('function-bind');\nvar $replace = bind.call(Function.call, String.prototype.replace);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : (number || match);\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tif (!(name in INTRINSICS)) {\n\t\tthrow new SyntaxError('intrinsic ' + name + ' does not exist!');\n\t}\n\n\t// istanbul ignore if // hopefully this is impossible to test :-)\n\tif (typeof INTRINSICS[name] === 'undefined' && !allowMissing) {\n\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t}\n\n\treturn INTRINSICS[name];\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\n\tvar value = getBaseIntrinsic('%' + (parts.length > 0 ? parts[0] : '') + '%', allowMissing);\n\tfor (var i = 1; i < parts.length; i += 1) {\n\t\tif (value != null) {\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, parts[i]);\n\t\t\t\tif (!allowMissing && !(parts[i] in value)) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\tvalue = desc ? (desc.get || desc.value) : value[parts[i]];\n\t\t\t} else {\n\t\t\t\tvalue = value[parts[i]];\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar origSymbol = global.Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar getPolyfill = require('./polyfill');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar TypeErr = TypeError;\nvar getProto = Object.getPrototypeOf;\nvar regex = /a/;\n\nmodule.exports = function shimFlags() {\n\tif (!supportsDescriptors || !getProto) {\n\t\tthrow new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tvar polyfill = getPolyfill();\n\tvar proto = getProto(regex);\n\tvar descriptor = gOPD(proto, 'flags');\n\tif (!descriptor || descriptor.get !== polyfill) {\n\t\tdefineProperty(proto, 'flags', {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tget: polyfill\n\t\t});\n\t}\n\treturn polyfill;\n};\n","'use strict';\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateGetDayCall(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _gud = require('gud');\n\nvar _gud2 = _interopRequireDefault(_gud);\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\n\n// Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + (0, _gud2.default)() + '__';\n\n var Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n function Provider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Provider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.emitter = createEventEmitter(_this.props.value), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Provider.prototype.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n Provider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits = void 0;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n if (process.env.NODE_ENV !== 'production') {\n (0, _warning2.default)((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n Provider.prototype.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(_react.Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = _propTypes2.default.object.isRequired, _Provider$childContex);\n\n var Consumer = function (_Component2) {\n _inherits(Consumer, _Component2);\n\n function Consumer() {\n var _temp2, _this2, _ret2;\n\n _classCallCheck(this, Consumer);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this2 = _possibleConstructorReturn(this, _Component2.call.apply(_Component2, [this].concat(args))), _this2), _this2.state = {\n value: _this2.getValue()\n }, _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({ value: _this2.getValue() });\n }\n }, _temp2), _possibleConstructorReturn(_this2, _ret2);\n }\n\n Consumer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n var observedBits = this.props.observedBits;\n\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n Consumer.prototype.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n Consumer.prototype.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(_react.Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = _propTypes2.default.object, _Consumer$contextType);\n\n\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nexports.default = createReactContext;\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _moment = _interopRequireDefault(require(\"moment\"));\n\nvar _Items = _interopRequireDefault(require(\"./items/Items\"));\n\nvar _Sidebar = _interopRequireDefault(require(\"./layout/Sidebar\"));\n\nvar _Columns = _interopRequireDefault(require(\"./columns/Columns\"));\n\nvar _GroupRows = _interopRequireDefault(require(\"./row/GroupRows\"));\n\nvar _ScrollElement = _interopRequireDefault(require(\"./scroll/ScrollElement\"));\n\nvar _MarkerCanvas = _interopRequireDefault(require(\"./markers/MarkerCanvas\"));\n\nvar _window = _interopRequireDefault(require(\"../resize-detector/window\"));\n\nvar _calendar = require(\"./utility/calendar\");\n\nvar _generic = require(\"./utility/generic\");\n\nvar _defaultConfig = require(\"./default-config\");\n\nvar _TimelineStateContext = require(\"./timeline/TimelineStateContext\");\n\nvar _TimelineMarkersContext = require(\"./markers/TimelineMarkersContext\");\n\nvar _HeadersContext = require(\"./headers/HeadersContext\");\n\nvar _TimelineHeaders = _interopRequireDefault(require(\"./headers/TimelineHeaders\"));\n\nvar _DateHeader = _interopRequireDefault(require(\"./headers/DateHeader\"));\n\nvar _SidebarHeader = _interopRequireDefault(require(\"./headers/SidebarHeader\"));\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj[\"default\"] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 _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 ReactCalendarTimeline =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ReactCalendarTimeline, _Component);\n\n _createClass(ReactCalendarTimeline, [{\n key: \"getChildContext\",\n value: function getChildContext() {\n var _this2 = this;\n\n return {\n getTimelineContext: function getTimelineContext() {\n return _this2.getTimelineContext();\n }\n };\n }\n }]);\n\n function ReactCalendarTimeline(_props) {\n var _this;\n\n _classCallCheck(this, ReactCalendarTimeline);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ReactCalendarTimeline).call(this, _props));\n\n _defineProperty(_assertThisInitialized(_this), \"getTimelineContext\", function () {\n var _this$state = _this.state,\n width = _this$state.width,\n visibleTimeStart = _this$state.visibleTimeStart,\n visibleTimeEnd = _this$state.visibleTimeEnd,\n canvasTimeStart = _this$state.canvasTimeStart,\n canvasTimeEnd = _this$state.canvasTimeEnd;\n return {\n timelineWidth: width,\n visibleTimeStart: visibleTimeStart,\n visibleTimeEnd: visibleTimeEnd,\n canvasTimeStart: canvasTimeStart,\n canvasTimeEnd: canvasTimeEnd\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resize\", function () {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this.props;\n\n var _this$container$getBo = _this.container.getBoundingClientRect(),\n containerWidth = _this$container$getBo.width;\n\n var width = containerWidth - props.sidebarWidth - props.rightSidebarWidth;\n var canvasWidth = (0, _calendar.getCanvasWidth)(width);\n\n var _stackTimelineItems = (0, _calendar.stackTimelineItems)(props.items, props.groups, canvasWidth, _this.state.canvasTimeStart, _this.state.canvasTimeEnd, props.keys, props.lineHeight, props.itemHeightRatio, props.stackItems, _this.state.draggingItem, _this.state.resizingItem, _this.state.dragTime, _this.state.resizingEdge, _this.state.resizeTime, _this.state.newGroupOrder),\n dimensionItems = _stackTimelineItems.dimensionItems,\n height = _stackTimelineItems.height,\n groupHeights = _stackTimelineItems.groupHeights,\n groupTops = _stackTimelineItems.groupTops; // this is needed by dragItem since it uses pageY from the drag events\n // if this was in the context of the scrollElement, this would not be necessary\n\n\n _this.setState({\n width: width,\n dimensionItems: dimensionItems,\n height: height,\n groupHeights: groupHeights,\n groupTops: groupTops\n });\n\n _this.scrollComponent.scrollLeft = width;\n _this.scrollHeaderRef.scrollLeft = width;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onScroll\", function (scrollX) {\n var width = _this.state.width;\n var canvasTimeStart = _this.state.canvasTimeStart;\n var zoom = _this.state.visibleTimeEnd - _this.state.visibleTimeStart;\n var visibleTimeStart = canvasTimeStart + zoom * scrollX / width;\n\n if (_this.state.visibleTimeStart !== visibleTimeStart || _this.state.visibleTimeEnd !== visibleTimeStart + zoom) {\n _this.props.onTimeChange(visibleTimeStart, visibleTimeStart + zoom, _this.updateScrollCanvas);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateScrollCanvas\", function (visibleTimeStart, visibleTimeEnd, forceUpdateDimensions) {\n var items = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _this.props.items;\n var groups = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _this.props.groups;\n\n _this.setState((0, _calendar.calculateScrollCanvas)(visibleTimeStart, visibleTimeEnd, forceUpdateDimensions, items, groups, _this.props, _this.state));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleWheelZoom\", function (speed, xPosition, deltaY) {\n _this.changeZoom(1.0 + speed * deltaY / 500, xPosition / _this.state.width);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"changeZoom\", function (scale) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.5;\n var _this$props = _this.props,\n minZoom = _this$props.minZoom,\n maxZoom = _this$props.maxZoom;\n var oldZoom = _this.state.visibleTimeEnd - _this.state.visibleTimeStart;\n var newZoom = Math.min(Math.max(Math.round(oldZoom * scale), minZoom), maxZoom); // min 1 min, max 20 years\n\n var newVisibleTimeStart = Math.round(_this.state.visibleTimeStart + (oldZoom - newZoom) * offset);\n\n _this.props.onTimeChange(newVisibleTimeStart, newVisibleTimeStart + newZoom, _this.updateScrollCanvas);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"showPeriod\", function (from, to) {\n var visibleTimeStart = from.valueOf();\n var visibleTimeEnd = to.valueOf();\n var zoom = visibleTimeEnd - visibleTimeStart; // can't zoom in more than to show one hour\n\n if (zoom < 360000) {\n return;\n }\n\n _this.props.onTimeChange(visibleTimeStart, visibleTimeStart + zoom, _this.updateScrollCanvas);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"selectItem\", function (item, clickType, e) {\n if (_this.isItemSelected(item) || _this.props.itemTouchSendsClick && clickType === 'touch') {\n if (item && _this.props.onItemClick) {\n var time = _this.timeFromItemEvent(e);\n\n _this.props.onItemClick(item, e, time);\n }\n } else {\n _this.setState({\n selectedItem: item\n });\n\n if (item && _this.props.onItemSelect) {\n var _time = _this.timeFromItemEvent(e);\n\n _this.props.onItemSelect(item, e, _time);\n } else if (item === null && _this.props.onItemDeselect) {\n _this.props.onItemDeselect(e); // this isnt in the docs. Is this function even used?\n\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"doubleClickItem\", function (item, e) {\n if (_this.props.onItemDoubleClick) {\n var time = _this.timeFromItemEvent(e);\n\n _this.props.onItemDoubleClick(item, e, time);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"contextMenuClickItem\", function (item, e) {\n if (_this.props.onItemContextMenu) {\n var time = _this.timeFromItemEvent(e);\n\n _this.props.onItemContextMenu(item, e, time);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getTimeFromRowClickEvent\", function (e) {\n var dragSnap = _this.props.dragSnap;\n var _this$state2 = _this.state,\n width = _this$state2.width,\n canvasTimeStart = _this$state2.canvasTimeStart,\n canvasTimeEnd = _this$state2.canvasTimeEnd; // this gives us distance from left of row element, so event is in\n // context of the row element, not client or page\n\n var offsetX = e.nativeEvent.offsetX;\n var time = (0, _calendar.calculateTimeForXPosition)(canvasTimeStart, canvasTimeEnd, (0, _calendar.getCanvasWidth)(width), offsetX);\n time = Math.floor(time / dragSnap) * dragSnap;\n return time;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"timeFromItemEvent\", function (e) {\n var _this$state3 = _this.state,\n width = _this$state3.width,\n visibleTimeStart = _this$state3.visibleTimeStart,\n visibleTimeEnd = _this$state3.visibleTimeEnd;\n var dragSnap = _this.props.dragSnap;\n var scrollComponent = _this.scrollComponent;\n\n var _scrollComponent$getB = scrollComponent.getBoundingClientRect(),\n scrollX = _scrollComponent$getB.left;\n\n var xRelativeToTimeline = e.clientX - scrollX;\n var relativeItemPosition = xRelativeToTimeline / width;\n var zoom = visibleTimeEnd - visibleTimeStart;\n var timeOffset = relativeItemPosition * zoom;\n var time = Math.round(visibleTimeStart + timeOffset);\n time = Math.floor(time / dragSnap) * dragSnap;\n return time;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"dragItem\", function (item, dragTime, newGroupOrder) {\n var newGroup = _this.props.groups[newGroupOrder];\n var keys = _this.props.keys;\n\n _this.setState({\n draggingItem: item,\n dragTime: dragTime,\n newGroupOrder: newGroupOrder,\n dragGroupTitle: newGroup ? (0, _generic._get)(newGroup, keys.groupLabelKey) : ''\n });\n\n _this.updatingItem({\n eventType: 'move',\n itemId: item,\n time: dragTime,\n newGroupOrder: newGroupOrder\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"dropItem\", function (item, dragTime, newGroupOrder) {\n _this.setState({\n draggingItem: null,\n dragTime: null,\n dragGroupTitle: null\n });\n\n if (_this.props.onItemMove) {\n _this.props.onItemMove(item, dragTime, newGroupOrder);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resizingItem\", function (item, resizeTime, edge) {\n _this.setState({\n resizingItem: item,\n resizingEdge: edge,\n resizeTime: resizeTime\n });\n\n _this.updatingItem({\n eventType: 'resize',\n itemId: item,\n time: resizeTime,\n edge: edge\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resizedItem\", function (item, resizeTime, edge, timeDelta) {\n _this.setState({\n resizingItem: null,\n resizingEdge: null,\n resizeTime: null\n });\n\n if (_this.props.onItemResize && timeDelta !== 0) {\n _this.props.onItemResize(item, resizeTime, edge);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updatingItem\", function (_ref) {\n var eventType = _ref.eventType,\n itemId = _ref.itemId,\n time = _ref.time,\n edge = _ref.edge,\n newGroupOrder = _ref.newGroupOrder;\n\n if (_this.props.onItemDrag) {\n _this.props.onItemDrag({\n eventType: eventType,\n itemId: itemId,\n time: time,\n edge: edge,\n newGroupOrder: newGroupOrder\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleRowClick\", function (e, rowIndex) {\n // shouldnt this be handled by the user, as far as when to deselect an item?\n if (_this.hasSelectedItem()) {\n _this.selectItem(null);\n }\n\n if (_this.props.onCanvasClick == null) return;\n\n var time = _this.getTimeFromRowClickEvent(e);\n\n var groupId = (0, _generic._get)(_this.props.groups[rowIndex], _this.props.keys.groupIdKey);\n\n _this.props.onCanvasClick(groupId, time, e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleRowDoubleClick\", function (e, rowIndex) {\n if (_this.props.onCanvasDoubleClick == null) return;\n\n var time = _this.getTimeFromRowClickEvent(e);\n\n var groupId = (0, _generic._get)(_this.props.groups[rowIndex], _this.props.keys.groupIdKey);\n\n _this.props.onCanvasDoubleClick(groupId, time, e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleScrollContextMenu\", function (e, rowIndex) {\n if (_this.props.onCanvasContextMenu == null) return;\n\n var timePosition = _this.getTimeFromRowClickEvent(e);\n\n var groupId = (0, _generic._get)(_this.props.groups[rowIndex], _this.props.keys.groupIdKey);\n\n if (_this.props.onCanvasContextMenu) {\n e.preventDefault();\n\n _this.props.onCanvasContextMenu(groupId, timePosition, e);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleHeaderRef\", function (el) {\n _this.scrollHeaderRef = el;\n\n _this.props.headerRef(el);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"isTimelineHeader\", function (child) {\n if (child.type === undefined) return false;\n return child.type.secretKey === _TimelineHeaders[\"default\"].secretKey;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderHeaders\", function () {\n if (_this.props.children) {\n var headerRenderer;\n\n _react[\"default\"].Children.map(_this.props.children, function (child) {\n if (_this.isTimelineHeader(child)) {\n headerRenderer = child;\n }\n });\n\n if (headerRenderer) {\n return headerRenderer;\n }\n }\n\n return _react[\"default\"].createElement(_TimelineHeaders[\"default\"], null, _react[\"default\"].createElement(_DateHeader[\"default\"], {\n unit: \"primaryHeader\"\n }), _react[\"default\"].createElement(_DateHeader[\"default\"], null));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getScrollElementRef\", function (el) {\n _this.props.scrollRef(el);\n\n _this.scrollComponent = el;\n });\n\n _this.getSelected = _this.getSelected.bind(_assertThisInitialized(_this));\n _this.hasSelectedItem = _this.hasSelectedItem.bind(_assertThisInitialized(_this));\n _this.isItemSelected = _this.isItemSelected.bind(_assertThisInitialized(_this));\n var _visibleTimeStart = null;\n var _visibleTimeEnd = null;\n\n if (_this.props.defaultTimeStart && _this.props.defaultTimeEnd) {\n _visibleTimeStart = _this.props.defaultTimeStart.valueOf();\n _visibleTimeEnd = _this.props.defaultTimeEnd.valueOf();\n } else if (_this.props.visibleTimeStart && _this.props.visibleTimeEnd) {\n _visibleTimeStart = _this.props.visibleTimeStart;\n _visibleTimeEnd = _this.props.visibleTimeEnd;\n } else {\n //throwing an error because neither default or visible time props provided\n throw new Error('You must provide either \"defaultTimeStart\" and \"defaultTimeEnd\" or \"visibleTimeStart\" and \"visibleTimeEnd\" to initialize the Timeline');\n }\n\n var _getCanvasBoundariesF = (0, _calendar.getCanvasBoundariesFromVisibleTime)(_visibleTimeStart, _visibleTimeEnd),\n _getCanvasBoundariesF2 = _slicedToArray(_getCanvasBoundariesF, 2),\n _canvasTimeStart = _getCanvasBoundariesF2[0],\n _canvasTimeEnd = _getCanvasBoundariesF2[1];\n\n _this.state = {\n width: 1000,\n visibleTimeStart: _visibleTimeStart,\n visibleTimeEnd: _visibleTimeEnd,\n canvasTimeStart: _canvasTimeStart,\n canvasTimeEnd: _canvasTimeEnd,\n selectedItem: null,\n dragTime: null,\n dragGroupTitle: null,\n resizeTime: null,\n resizingItem: null,\n resizingEdge: null\n };\n\n var _canvasWidth = (0, _calendar.getCanvasWidth)(_this.state.width);\n\n var _stackTimelineItems2 = (0, _calendar.stackTimelineItems)(_props.items, _props.groups, _canvasWidth, _this.state.canvasTimeStart, _this.state.canvasTimeEnd, _props.keys, _props.lineHeight, _props.itemHeightRatio, _props.stackItems, _this.state.draggingItem, _this.state.resizingItem, _this.state.dragTime, _this.state.resizingEdge, _this.state.resizeTime, _this.state.newGroupOrder),\n _dimensionItems = _stackTimelineItems2.dimensionItems,\n _height = _stackTimelineItems2.height,\n _groupHeights = _stackTimelineItems2.groupHeights,\n _groupTops = _stackTimelineItems2.groupTops;\n /* eslint-disable react/no-direct-mutation-state */\n\n\n _this.state.dimensionItems = _dimensionItems;\n _this.state.height = _height;\n _this.state.groupHeights = _groupHeights;\n _this.state.groupTops = _groupTops;\n /* eslint-enable */\n\n return _this;\n }\n\n _createClass(ReactCalendarTimeline, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.resize(this.props);\n\n if (this.props.resizeDetector && this.props.resizeDetector.addListener) {\n this.props.resizeDetector.addListener(this);\n }\n\n _window[\"default\"].addListener(this);\n\n this.lastTouchDistance = null;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.props.resizeDetector && this.props.resizeDetector.addListener) {\n this.props.resizeDetector.removeListener(this);\n }\n\n _window[\"default\"].removeListener(this);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var newZoom = this.state.visibleTimeEnd - this.state.visibleTimeStart;\n var oldZoom = prevState.visibleTimeEnd - prevState.visibleTimeStart; // are we changing zoom? Report it!\n\n if (this.props.onZoom && newZoom !== oldZoom) {\n this.props.onZoom(this.getTimelineContext());\n } // The bounds have changed? Report it!\n\n\n if (this.props.onBoundsChange && this.state.canvasTimeStart !== prevState.canvasTimeStart) {\n this.props.onBoundsChange(this.state.canvasTimeStart, this.state.canvasTimeStart + newZoom * 3);\n } // Check the scroll is correct\n\n\n var scrollLeft = Math.round(this.state.width * (this.state.visibleTimeStart - this.state.canvasTimeStart) / newZoom);\n var componentScrollLeft = Math.round(prevState.width * (prevState.visibleTimeStart - prevState.canvasTimeStart) / oldZoom);\n\n if (componentScrollLeft !== scrollLeft) {\n this.scrollComponent.scrollLeft = scrollLeft;\n this.scrollHeaderRef.scrollLeft = scrollLeft;\n }\n }\n }, {\n key: \"columns\",\n value: function columns(canvasTimeStart, canvasTimeEnd, canvasWidth, minUnit, timeSteps, height) {\n return _react[\"default\"].createElement(_Columns[\"default\"], {\n canvasTimeStart: canvasTimeStart,\n canvasTimeEnd: canvasTimeEnd,\n canvasWidth: canvasWidth,\n lineCount: (0, _generic._length)(this.props.groups),\n minUnit: minUnit,\n timeSteps: timeSteps,\n height: height,\n verticalLineClassNamesForTime: this.props.verticalLineClassNamesForTime\n });\n }\n }, {\n key: \"rows\",\n value: function rows(canvasWidth, groupHeights, groups) {\n return _react[\"default\"].createElement(_GroupRows[\"default\"], {\n groups: groups,\n canvasWidth: canvasWidth,\n lineCount: (0, _generic._length)(this.props.groups),\n groupHeights: groupHeights,\n clickTolerance: this.props.clickTolerance,\n onRowClick: this.handleRowClick,\n onRowDoubleClick: this.handleRowDoubleClick,\n horizontalLineClassNamesForGroup: this.props.horizontalLineClassNamesForGroup,\n onRowContextClick: this.handleScrollContextMenu\n });\n }\n }, {\n key: \"items\",\n value: function items(canvasTimeStart, zoom, canvasTimeEnd, canvasWidth, minUnit, dimensionItems, groupHeights, groupTops) {\n return _react[\"default\"].createElement(_Items[\"default\"], {\n canvasTimeStart: canvasTimeStart,\n canvasTimeEnd: canvasTimeEnd,\n canvasWidth: canvasWidth,\n dimensionItems: dimensionItems,\n groupTops: groupTops,\n items: this.props.items,\n groups: this.props.groups,\n keys: this.props.keys,\n selectedItem: this.state.selectedItem,\n dragSnap: this.props.dragSnap,\n minResizeWidth: this.props.minResizeWidth,\n canChangeGroup: this.props.canChangeGroup,\n canMove: this.props.canMove,\n canResize: this.props.canResize,\n useResizeHandle: this.props.useResizeHandle,\n canSelect: this.props.canSelect,\n moveResizeValidator: this.props.moveResizeValidator,\n itemSelect: this.selectItem,\n itemDrag: this.dragItem,\n itemDrop: this.dropItem,\n onItemDoubleClick: this.doubleClickItem,\n onItemContextMenu: this.contextMenuClickItem,\n itemResizing: this.resizingItem,\n itemResized: this.resizedItem,\n itemRenderer: this.props.itemRenderer,\n selected: this.props.selected,\n scrollRef: this.scrollComponent\n });\n }\n }, {\n key: \"sidebar\",\n value: function sidebar(height, groupHeights) {\n var sidebarWidth = this.props.sidebarWidth;\n return sidebarWidth && _react[\"default\"].createElement(_Sidebar[\"default\"], {\n groups: this.props.groups,\n groupRenderer: this.props.groupRenderer,\n keys: this.props.keys,\n width: sidebarWidth,\n groupHeights: groupHeights,\n height: height\n });\n }\n }, {\n key: \"rightSidebar\",\n value: function rightSidebar(height, groupHeights) {\n var rightSidebarWidth = this.props.rightSidebarWidth;\n return rightSidebarWidth && _react[\"default\"].createElement(_Sidebar[\"default\"], {\n groups: this.props.groups,\n keys: this.props.keys,\n groupRenderer: this.props.groupRenderer,\n isRightSidebar: true,\n width: rightSidebarWidth,\n groupHeights: groupHeights,\n height: height\n });\n }\n /**\n * check if child of type TimelineHeader\n * refer to for explanation https://github.com/gaearon/react-hot-loader#checking-element-types \n */\n\n }, {\n key: \"childrenWithProps\",\n value: function childrenWithProps(canvasTimeStart, canvasTimeEnd, canvasWidth, dimensionItems, groupHeights, groupTops, height, visibleTimeStart, visibleTimeEnd, minUnit, timeSteps) {\n var _this3 = this;\n\n if (!this.props.children) {\n return null;\n } // convert to an array and remove the nulls\n\n\n var childArray = Array.isArray(this.props.children) ? this.props.children.filter(function (c) {\n return c;\n }) : [this.props.children];\n var childProps = {\n canvasTimeStart: canvasTimeStart,\n canvasTimeEnd: canvasTimeEnd,\n canvasWidth: canvasWidth,\n visibleTimeStart: visibleTimeStart,\n visibleTimeEnd: visibleTimeEnd,\n dimensionItems: dimensionItems,\n items: this.props.items,\n groups: this.props.groups,\n keys: this.props.keys,\n groupHeights: groupHeights,\n groupTops: groupTops,\n selected: this.getSelected(),\n height: height,\n minUnit: minUnit,\n timeSteps: timeSteps\n };\n return _react[\"default\"].Children.map(childArray, function (child) {\n if (!_this3.isTimelineHeader(child)) {\n return _react[\"default\"].cloneElement(child, childProps);\n } else {\n return null;\n }\n });\n }\n }, {\n key: \"getSelected\",\n value: function getSelected() {\n return this.state.selectedItem && !this.props.selected ? [this.state.selectedItem] : this.props.selected || [];\n }\n }, {\n key: \"hasSelectedItem\",\n value: function hasSelectedItem() {\n if (!Array.isArray(this.props.selected)) return !!this.state.selectedItem;\n return this.props.selected.length > 0;\n }\n }, {\n key: \"isItemSelected\",\n value: function isItemSelected(itemId) {\n var selectedItems = this.getSelected();\n return selectedItems.some(function (i) {\n return i === itemId;\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var _this$props2 = this.props,\n items = _this$props2.items,\n groups = _this$props2.groups,\n sidebarWidth = _this$props2.sidebarWidth,\n rightSidebarWidth = _this$props2.rightSidebarWidth,\n timeSteps = _this$props2.timeSteps,\n traditionalZoom = _this$props2.traditionalZoom;\n var _this$state4 = this.state,\n draggingItem = _this$state4.draggingItem,\n resizingItem = _this$state4.resizingItem,\n width = _this$state4.width,\n visibleTimeStart = _this$state4.visibleTimeStart,\n visibleTimeEnd = _this$state4.visibleTimeEnd,\n canvasTimeStart = _this$state4.canvasTimeStart,\n canvasTimeEnd = _this$state4.canvasTimeEnd;\n var _this$state5 = this.state,\n dimensionItems = _this$state5.dimensionItems,\n height = _this$state5.height,\n groupHeights = _this$state5.groupHeights,\n groupTops = _this$state5.groupTops;\n var zoom = visibleTimeEnd - visibleTimeStart;\n var canvasWidth = (0, _calendar.getCanvasWidth)(width);\n var minUnit = (0, _calendar.getMinUnit)(zoom, width, timeSteps);\n var isInteractingWithItem = !!draggingItem || !!resizingItem;\n\n if (isInteractingWithItem) {\n var stackResults = (0, _calendar.stackTimelineItems)(items, groups, canvasWidth, this.state.canvasTimeStart, this.state.canvasTimeEnd, this.props.keys, this.props.lineHeight, this.props.itemHeightRatio, this.props.stackItems, this.state.draggingItem, this.state.resizingItem, this.state.dragTime, this.state.resizingEdge, this.state.resizeTime, this.state.newGroupOrder);\n dimensionItems = stackResults.dimensionItems;\n height = stackResults.height;\n groupHeights = stackResults.groupHeights;\n groupTops = stackResults.groupTops;\n }\n\n var outerComponentStyle = {\n height: \"\".concat(height, \"px\")\n };\n return _react[\"default\"].createElement(_TimelineStateContext.TimelineStateProvider, {\n visibleTimeStart: visibleTimeStart,\n visibleTimeEnd: visibleTimeEnd,\n canvasTimeStart: canvasTimeStart,\n canvasTimeEnd: canvasTimeEnd,\n canvasWidth: canvasWidth,\n showPeriod: this.showPeriod,\n timelineUnit: minUnit,\n timelineWidth: this.state.width\n }, _react[\"default\"].createElement(_TimelineMarkersContext.TimelineMarkersProvider, null, _react[\"default\"].createElement(_HeadersContext.TimelineHeadersProvider, {\n registerScroll: this.handleHeaderRef,\n timeSteps: timeSteps,\n leftSidebarWidth: this.props.sidebarWidth,\n rightSidebarWidth: this.props.rightSidebarWidth\n }, _react[\"default\"].createElement(\"div\", {\n style: this.props.style,\n ref: function ref(el) {\n return _this4.container = el;\n },\n className: \"react-calendar-timeline\"\n }, this.renderHeaders(), _react[\"default\"].createElement(\"div\", {\n style: outerComponentStyle,\n className: \"rct-outer\"\n }, sidebarWidth > 0 ? this.sidebar(height, groupHeights) : null, _react[\"default\"].createElement(_ScrollElement[\"default\"], {\n scrollRef: this.getScrollElementRef,\n width: width,\n height: height,\n onZoom: this.changeZoom,\n onWheelZoom: this.handleWheelZoom,\n traditionalZoom: traditionalZoom,\n onScroll: this.onScroll,\n isInteractingWithItem: isInteractingWithItem\n }, _react[\"default\"].createElement(_MarkerCanvas[\"default\"], null, this.columns(canvasTimeStart, canvasTimeEnd, canvasWidth, minUnit, timeSteps, height), this.rows(canvasWidth, groupHeights, groups), this.items(canvasTimeStart, zoom, canvasTimeEnd, canvasWidth, minUnit, dimensionItems, groupHeights, groupTops), this.childrenWithProps(canvasTimeStart, canvasTimeEnd, canvasWidth, dimensionItems, groupHeights, groupTops, height, visibleTimeStart, visibleTimeEnd, minUnit, timeSteps))), rightSidebarWidth > 0 ? this.rightSidebar(height, groupHeights) : null)))));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var visibleTimeStart = nextProps.visibleTimeStart,\n visibleTimeEnd = nextProps.visibleTimeEnd,\n items = nextProps.items,\n groups = nextProps.groups; // This is a gross hack pushing items and groups in to state only to allow\n // For the forceUpdate check\n\n var derivedState = {\n items: items,\n groups: groups // if the items or groups have changed we must re-render\n\n };\n var forceUpdate = items !== prevState.items || groups !== prevState.groups; // We are a controlled component\n\n if (visibleTimeStart && visibleTimeEnd) {\n // Get the new canvas position\n Object.assign(derivedState, (0, _calendar.calculateScrollCanvas)(visibleTimeStart, visibleTimeEnd, forceUpdate, items, groups, nextProps, prevState));\n } else if (forceUpdate) {\n // Calculate new item stack position as canvas may have changed\n var canvasWidth = (0, _calendar.getCanvasWidth)(prevState.width);\n Object.assign(derivedState, (0, _calendar.stackTimelineItems)(items, groups, canvasWidth, prevState.canvasTimeStart, prevState.canvasTimeEnd, nextProps.keys, nextProps.lineHeight, nextProps.itemHeightRatio, nextProps.stackItems, prevState.draggingItem, prevState.resizingItem, prevState.dragTime, prevState.resizingEdge, prevState.resizeTime, prevState.newGroupOrder));\n }\n\n return derivedState;\n }\n }]);\n\n return ReactCalendarTimeline;\n}(_react.Component);\n\nexports[\"default\"] = ReactCalendarTimeline;\n\n_defineProperty(ReactCalendarTimeline, \"propTypes\", {\n groups: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].array, _propTypes[\"default\"].object]).isRequired,\n items: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].array, _propTypes[\"default\"].object]).isRequired,\n sidebarWidth: _propTypes[\"default\"].number,\n rightSidebarWidth: _propTypes[\"default\"].number,\n dragSnap: _propTypes[\"default\"].number,\n minResizeWidth: _propTypes[\"default\"].number,\n stickyHeader: _propTypes[\"default\"].bool,\n lineHeight: _propTypes[\"default\"].number,\n itemHeightRatio: _propTypes[\"default\"].number,\n minZoom: _propTypes[\"default\"].number,\n maxZoom: _propTypes[\"default\"].number,\n clickTolerance: _propTypes[\"default\"].number,\n canChangeGroup: _propTypes[\"default\"].bool,\n canMove: _propTypes[\"default\"].bool,\n canResize: _propTypes[\"default\"].oneOf([true, false, 'left', 'right', 'both']),\n useResizeHandle: _propTypes[\"default\"].bool,\n canSelect: _propTypes[\"default\"].bool,\n stackItems: _propTypes[\"default\"].bool,\n traditionalZoom: _propTypes[\"default\"].bool,\n itemTouchSendsClick: _propTypes[\"default\"].bool,\n horizontalLineClassNamesForGroup: _propTypes[\"default\"].func,\n onItemMove: _propTypes[\"default\"].func,\n onItemResize: _propTypes[\"default\"].func,\n onItemClick: _propTypes[\"default\"].func,\n onItemSelect: _propTypes[\"default\"].func,\n onItemDeselect: _propTypes[\"default\"].func,\n onCanvasClick: _propTypes[\"default\"].func,\n onItemDoubleClick: _propTypes[\"default\"].func,\n onItemContextMenu: _propTypes[\"default\"].func,\n onCanvasDoubleClick: _propTypes[\"default\"].func,\n onCanvasContextMenu: _propTypes[\"default\"].func,\n onZoom: _propTypes[\"default\"].func,\n onItemDrag: _propTypes[\"default\"].func,\n moveResizeValidator: _propTypes[\"default\"].func,\n itemRenderer: _propTypes[\"default\"].func,\n groupRenderer: _propTypes[\"default\"].func,\n style: _propTypes[\"default\"].object,\n keys: _propTypes[\"default\"].shape({\n groupIdKey: _propTypes[\"default\"].string,\n groupTitleKey: _propTypes[\"default\"].string,\n groupLabelKey: _propTypes[\"default\"].string,\n groupRightTitleKey: _propTypes[\"default\"].string,\n itemIdKey: _propTypes[\"default\"].string,\n itemTitleKey: _propTypes[\"default\"].string,\n itemDivTitleKey: _propTypes[\"default\"].string,\n itemGroupKey: _propTypes[\"default\"].string,\n itemTimeStartKey: _propTypes[\"default\"].string,\n itemTimeEndKey: _propTypes[\"default\"].string\n }),\n headerRef: _propTypes[\"default\"].func,\n scrollRef: _propTypes[\"default\"].func,\n timeSteps: _propTypes[\"default\"].shape({\n second: _propTypes[\"default\"].number,\n minute: _propTypes[\"default\"].number,\n hour: _propTypes[\"default\"].number,\n day: _propTypes[\"default\"].number,\n month: _propTypes[\"default\"].number,\n year: _propTypes[\"default\"].number\n }),\n defaultTimeStart: _propTypes[\"default\"].object,\n defaultTimeEnd: _propTypes[\"default\"].object,\n visibleTimeStart: _propTypes[\"default\"].number,\n visibleTimeEnd: _propTypes[\"default\"].number,\n onTimeChange: _propTypes[\"default\"].func,\n onBoundsChange: _propTypes[\"default\"].func,\n selected: _propTypes[\"default\"].array,\n headerLabelFormats: _propTypes[\"default\"].shape({\n yearShort: _propTypes[\"default\"].string,\n yearLong: _propTypes[\"default\"].string,\n monthShort: _propTypes[\"default\"].string,\n monthMedium: _propTypes[\"default\"].string,\n monthMediumLong: _propTypes[\"default\"].string,\n monthLong: _propTypes[\"default\"].string,\n dayShort: _propTypes[\"default\"].string,\n dayLong: _propTypes[\"default\"].string,\n hourShort: _propTypes[\"default\"].string,\n hourMedium: _propTypes[\"default\"].string,\n hourMediumLong: _propTypes[\"default\"].string,\n hourLong: _propTypes[\"default\"].string\n }),\n subHeaderLabelFormats: _propTypes[\"default\"].shape({\n yearShort: _propTypes[\"default\"].string,\n yearLong: _propTypes[\"default\"].string,\n monthShort: _propTypes[\"default\"].string,\n monthMedium: _propTypes[\"default\"].string,\n monthLong: _propTypes[\"default\"].string,\n dayShort: _propTypes[\"default\"].string,\n dayMedium: _propTypes[\"default\"].string,\n dayMediumLong: _propTypes[\"default\"].string,\n dayLong: _propTypes[\"default\"].string,\n hourShort: _propTypes[\"default\"].string,\n hourLong: _propTypes[\"default\"].string,\n minuteShort: _propTypes[\"default\"].string,\n minuteLong: _propTypes[\"default\"].string\n }),\n resizeDetector: _propTypes[\"default\"].shape({\n addListener: _propTypes[\"default\"].func,\n removeListener: _propTypes[\"default\"].func\n }),\n verticalLineClassNamesForTime: _propTypes[\"default\"].func,\n children: _propTypes[\"default\"].node\n});\n\n_defineProperty(ReactCalendarTimeline, \"defaultProps\", {\n sidebarWidth: 150,\n rightSidebarWidth: 0,\n dragSnap: 1000 * 60 * 15,\n // 15min\n minResizeWidth: 20,\n stickyHeader: true,\n lineHeight: 30,\n itemHeightRatio: 0.65,\n minZoom: 60 * 60 * 1000,\n // 1 hour\n maxZoom: 5 * 365.24 * 86400 * 1000,\n // 5 years\n clickTolerance: 3,\n // how many pixels can we drag for it to be still considered a click?\n canChangeGroup: true,\n canMove: true,\n canResize: 'right',\n useResizeHandle: false,\n canSelect: true,\n stackItems: false,\n traditionalZoom: false,\n horizontalLineClassNamesForGroup: null,\n onItemMove: null,\n onItemResize: null,\n onItemClick: null,\n onItemSelect: null,\n onItemDeselect: null,\n onItemDrag: null,\n onCanvasClick: null,\n onItemDoubleClick: null,\n onItemContextMenu: null,\n onZoom: null,\n verticalLineClassNamesForTime: null,\n moveResizeValidator: null,\n dayBackground: null,\n defaultTimeStart: null,\n defaultTimeEnd: null,\n itemTouchSendsClick: false,\n style: {},\n keys: _defaultConfig.defaultKeys,\n timeSteps: _defaultConfig.defaultTimeSteps,\n headerRef: function headerRef() {},\n scrollRef: function scrollRef() {},\n // if you pass in visibleTimeStart and visibleTimeEnd, you must also pass onTimeChange(visibleTimeStart, visibleTimeEnd),\n // which needs to update the props visibleTimeStart and visibleTimeEnd to the ones passed\n visibleTimeStart: null,\n visibleTimeEnd: null,\n onTimeChange: function onTimeChange(visibleTimeStart, visibleTimeEnd, updateScrollCanvas) {\n updateScrollCanvas(visibleTimeStart, visibleTimeEnd);\n },\n // called when the canvas area of the calendar changes\n onBoundsChange: null,\n children: null,\n headerLabelFormats: _defaultConfig.defaultHeaderLabelFormats,\n subHeaderLabelFormats: _defaultConfig.defaultSubHeaderLabelFormats,\n selected: null\n});\n\n_defineProperty(ReactCalendarTimeline, \"childContextTypes\", {\n getTimelineContext: _propTypes[\"default\"].func\n});\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _Item = _interopRequireDefault(require(\"./Item\"));\n\nvar _generic = require(\"../utility/generic\");\n\nvar _calendar = require(\"../utility/calendar\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj[\"default\"] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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 canResizeLeft = function canResizeLeft(item, canResize) {\n var value = (0, _generic._get)(item, 'canResize') !== undefined ? (0, _generic._get)(item, 'canResize') : canResize;\n return value === 'left' || value === 'both';\n};\n\nvar canResizeRight = function canResizeRight(item, canResize) {\n var value = (0, _generic._get)(item, 'canResize') !== undefined ? (0, _generic._get)(item, 'canResize') : canResize;\n return value === 'right' || value === 'both' || value === true;\n};\n\nvar Items =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Items, _Component);\n\n function Items() {\n _classCallCheck(this, Items);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Items).apply(this, arguments));\n }\n\n _createClass(Items, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return !((0, _generic.arraysEqual)(nextProps.groups, this.props.groups) && (0, _generic.arraysEqual)(nextProps.items, this.props.items) && (0, _generic.arraysEqual)(nextProps.dimensionItems, this.props.dimensionItems) && nextProps.keys === this.props.keys && nextProps.canvasTimeStart === this.props.canvasTimeStart && nextProps.canvasTimeEnd === this.props.canvasTimeEnd && nextProps.canvasWidth === this.props.canvasWidth && nextProps.selectedItem === this.props.selectedItem && nextProps.selected === this.props.selected && nextProps.dragSnap === this.props.dragSnap && nextProps.minResizeWidth === this.props.minResizeWidth && nextProps.canChangeGroup === this.props.canChangeGroup && nextProps.canMove === this.props.canMove && nextProps.canResize === this.props.canResize && nextProps.canSelect === this.props.canSelect);\n }\n }, {\n key: \"isSelected\",\n value: function isSelected(item, itemIdKey) {\n if (!this.props.selected) {\n return this.props.selectedItem === (0, _generic._get)(item, itemIdKey);\n } else {\n var target = (0, _generic._get)(item, itemIdKey);\n return this.props.selected.includes(target);\n }\n }\n }, {\n key: \"getVisibleItems\",\n value: function getVisibleItems(canvasTimeStart, canvasTimeEnd) {\n var _this$props = this.props,\n keys = _this$props.keys,\n items = _this$props.items;\n return (0, _calendar.getVisibleItems)(items, canvasTimeStart, canvasTimeEnd, keys);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this = this;\n\n var _this$props2 = this.props,\n canvasTimeStart = _this$props2.canvasTimeStart,\n canvasTimeEnd = _this$props2.canvasTimeEnd,\n dimensionItems = _this$props2.dimensionItems,\n keys = _this$props2.keys,\n groups = _this$props2.groups;\n var itemIdKey = keys.itemIdKey,\n itemGroupKey = keys.itemGroupKey;\n var groupOrders = (0, _calendar.getGroupOrders)(groups, keys);\n var visibleItems = this.getVisibleItems(canvasTimeStart, canvasTimeEnd, groupOrders);\n var sortedDimensionItems = (0, _generic.keyBy)(dimensionItems, 'id');\n return _react[\"default\"].createElement(\"div\", {\n className: \"rct-items\"\n }, visibleItems.filter(function (item) {\n return sortedDimensionItems[(0, _generic._get)(item, itemIdKey)];\n }).map(function (item) {\n return _react[\"default\"].createElement(_Item[\"default\"], {\n key: (0, _generic._get)(item, itemIdKey),\n item: item,\n keys: _this.props.keys,\n order: groupOrders[(0, _generic._get)(item, itemGroupKey)],\n dimensions: sortedDimensionItems[(0, _generic._get)(item, itemIdKey)].dimensions,\n selected: _this.isSelected(item, itemIdKey),\n canChangeGroup: (0, _generic._get)(item, 'canChangeGroup') !== undefined ? (0, _generic._get)(item, 'canChangeGroup') : _this.props.canChangeGroup,\n canMove: (0, _generic._get)(item, 'canMove') !== undefined ? (0, _generic._get)(item, 'canMove') : _this.props.canMove,\n canResizeLeft: canResizeLeft(item, _this.props.canResize),\n canResizeRight: canResizeRight(item, _this.props.canResize),\n canSelect: (0, _generic._get)(item, 'canSelect') !== undefined ? (0, _generic._get)(item, 'canSelect') : _this.props.canSelect,\n useResizeHandle: _this.props.useResizeHandle,\n groupTops: _this.props.groupTops,\n canvasTimeStart: _this.props.canvasTimeStart,\n canvasTimeEnd: _this.props.canvasTimeEnd,\n canvasWidth: _this.props.canvasWidth,\n dragSnap: _this.props.dragSnap,\n minResizeWidth: _this.props.minResizeWidth,\n onResizing: _this.props.itemResizing,\n onResized: _this.props.itemResized,\n moveResizeValidator: _this.props.moveResizeValidator,\n onDrag: _this.props.itemDrag,\n onDrop: _this.props.itemDrop,\n onItemDoubleClick: _this.props.onItemDoubleClick,\n onContextMenu: _this.props.onItemContextMenu,\n onSelect: _this.props.itemSelect,\n itemRenderer: _this.props.itemRenderer,\n scrollRef: _this.props.scrollRef\n });\n }));\n }\n }]);\n\n return Items;\n}(_react.Component);\n\nexports[\"default\"] = Items;\n\n_defineProperty(Items, \"propTypes\", {\n groups: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].array, _propTypes[\"default\"].object]).isRequired,\n items: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].array, _propTypes[\"default\"].object]).isRequired,\n canvasTimeStart: _propTypes[\"default\"].number.isRequired,\n canvasTimeEnd: _propTypes[\"default\"].number.isRequired,\n canvasWidth: _propTypes[\"default\"].number.isRequired,\n dragSnap: _propTypes[\"default\"].number,\n minResizeWidth: _propTypes[\"default\"].number,\n selectedItem: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n canChangeGroup: _propTypes[\"default\"].bool.isRequired,\n canMove: _propTypes[\"default\"].bool.isRequired,\n canResize: _propTypes[\"default\"].oneOf([true, false, 'left', 'right', 'both']),\n canSelect: _propTypes[\"default\"].bool,\n keys: _propTypes[\"default\"].object.isRequired,\n moveResizeValidator: _propTypes[\"default\"].func,\n itemSelect: _propTypes[\"default\"].func,\n itemDrag: _propTypes[\"default\"].func,\n itemDrop: _propTypes[\"default\"].func,\n itemResizing: _propTypes[\"default\"].func,\n itemResized: _propTypes[\"default\"].func,\n onItemDoubleClick: _propTypes[\"default\"].func,\n onItemContextMenu: _propTypes[\"default\"].func,\n itemRenderer: _propTypes[\"default\"].func,\n selected: _propTypes[\"default\"].array,\n dimensionItems: _propTypes[\"default\"].array,\n groupTops: _propTypes[\"default\"].array,\n useResizeHandle: _propTypes[\"default\"].bool,\n scrollRef: _propTypes[\"default\"].object\n});\n\n_defineProperty(Items, \"defaultProps\", {\n selected: []\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = require(\"react\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _interactjs = _interopRequireDefault(require(\"interactjs\"));\n\nvar _moment = _interopRequireDefault(require(\"moment\"));\n\nvar _generic = require(\"../utility/generic\");\n\nvar _events = require(\"../utility/events\");\n\nvar _defaultItemRenderer = require(\"./defaultItemRenderer\");\n\nvar _calendar = require(\"../utility/calendar\");\n\nvar _domHelpers = require(\"../utility/dom-helpers\");\n\nvar _styles = require(\"./styles\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 _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 Item =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Item, _Component);\n\n // removed prop type check for SPEED!\n // they are coming from a trusted component anyway\n // (this complicates performance debugging otherwise)\n function Item(_props) {\n var _this;\n\n _classCallCheck(this, Item);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Item).call(this, _props));\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseDown\", function (e) {\n if (!_this.state.interactMounted) {\n e.preventDefault();\n _this.startedClicking = true;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseUp\", function (e) {\n if (!_this.state.interactMounted && _this.startedClicking) {\n _this.startedClicking = false;\n\n _this.actualClick(e, 'click');\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTouchStart\", function (e) {\n if (!_this.state.interactMounted) {\n e.preventDefault();\n _this.startedTouching = true;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTouchEnd\", function (e) {\n if (!_this.state.interactMounted && _this.startedTouching) {\n _this.startedTouching = false;\n\n _this.actualClick(e, 'touch');\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleDoubleClick\", function (e) {\n e.stopPropagation();\n\n if (_this.props.onItemDoubleClick) {\n _this.props.onItemDoubleClick(_this.itemId, e);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleContextMenu\", function (e) {\n if (_this.props.onContextMenu) {\n e.preventDefault();\n e.stopPropagation();\n\n _this.props.onContextMenu(_this.itemId, e);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getItemRef\", function (el) {\n return _this.item = el;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getDragLeftRef\", function (el) {\n return _this.dragLeft = el;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getDragRightRef\", function (el) {\n return _this.dragRight = el;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getItemProps\", function () {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n //TODO: maybe shouldnt include all of these classes\n var classNames = 'rct-item' + (_this.props.item.className ? \" \".concat(_this.props.item.className) : '');\n return {\n key: _this.itemId,\n ref: _this.getItemRef,\n title: _this.itemDivTitle,\n className: classNames + \" \".concat(props.className ? props.className : ''),\n onMouseDown: (0, _events.composeEvents)(_this.onMouseDown, props.onMouseDown),\n onMouseUp: (0, _events.composeEvents)(_this.onMouseUp, props.onMouseUp),\n onTouchStart: (0, _events.composeEvents)(_this.onTouchStart, props.onTouchStart),\n onTouchEnd: (0, _events.composeEvents)(_this.onTouchEnd, props.onTouchEnd),\n onDoubleClick: (0, _events.composeEvents)(_this.handleDoubleClick, props.onDoubleClick),\n onContextMenu: (0, _events.composeEvents)(_this.handleContextMenu, props.onContextMenu),\n style: Object.assign({}, _this.getItemStyle(props))\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getResizeProps\", function () {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var leftName = \"rct-item-handler rct-item-handler-left rct-item-handler-resize-left\";\n\n if (props.leftClassName) {\n leftName += \" \".concat(props.leftClassName);\n }\n\n var rightName = \"rct-item-handler rct-item-handler-right rct-item-handler-resize-right\";\n\n if (props.rightClassName) {\n rightName += \" \".concat(props.rightClassName);\n }\n\n return {\n left: {\n ref: _this.getDragLeftRef,\n className: leftName,\n style: Object.assign({}, _styles.leftResizeStyle, props.leftStyle)\n },\n right: {\n ref: _this.getDragRightRef,\n className: rightName,\n style: Object.assign({}, _styles.rightResizeStyle, props.rightStyle)\n }\n };\n });\n\n _this.cacheDataFromProps(_props);\n\n _this.state = {\n interactMounted: false,\n dragging: null,\n dragStart: null,\n preDragPosition: null,\n dragTime: null,\n dragGroupDelta: null,\n resizing: null,\n resizeEdge: null,\n resizeStart: null,\n resizeTime: null\n };\n return _this;\n }\n\n _createClass(Item, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps, nextState) {\n var shouldUpdate = nextState.dragging !== this.state.dragging || nextState.dragTime !== this.state.dragTime || nextState.dragGroupDelta !== this.state.dragGroupDelta || nextState.resizing !== this.state.resizing || nextState.resizeTime !== this.state.resizeTime || nextProps.keys !== this.props.keys || !(0, _generic.deepObjectCompare)(nextProps.itemProps, this.props.itemProps) || nextProps.selected !== this.props.selected || nextProps.item !== this.props.item || nextProps.canvasTimeStart !== this.props.canvasTimeStart || nextProps.canvasTimeEnd !== this.props.canvasTimeEnd || nextProps.canvasWidth !== this.props.canvasWidth || (nextProps.order ? nextProps.order.index : undefined) !== (this.props.order ? this.props.order.index : undefined) || nextProps.dragSnap !== this.props.dragSnap || nextProps.minResizeWidth !== this.props.minResizeWidth || nextProps.canChangeGroup !== this.props.canChangeGroup || nextProps.canSelect !== this.props.canSelect || nextProps.canMove !== this.props.canMove || nextProps.canResizeLeft !== this.props.canResizeLeft || nextProps.canResizeRight !== this.props.canResizeRight || nextProps.dimensions !== this.props.dimensions;\n return shouldUpdate;\n }\n }, {\n key: \"cacheDataFromProps\",\n value: function cacheDataFromProps(props) {\n this.itemId = (0, _generic._get)(props.item, props.keys.itemIdKey);\n this.itemTitle = (0, _generic._get)(props.item, props.keys.itemTitleKey);\n this.itemDivTitle = props.keys.itemDivTitleKey ? (0, _generic._get)(props.item, props.keys.itemDivTitleKey) : this.itemTitle;\n this.itemTimeStart = (0, _generic._get)(props.item, props.keys.itemTimeStartKey);\n this.itemTimeEnd = (0, _generic._get)(props.item, props.keys.itemTimeEndKey);\n }\n }, {\n key: \"getTimeRatio\",\n value: function getTimeRatio() {\n var _this$props = this.props,\n canvasTimeStart = _this$props.canvasTimeStart,\n canvasTimeEnd = _this$props.canvasTimeEnd,\n canvasWidth = _this$props.canvasWidth;\n return (0, _calendar.coordinateToTimeRatio)(canvasTimeStart, canvasTimeEnd, canvasWidth);\n }\n }, {\n key: \"dragTimeSnap\",\n value: function dragTimeSnap(dragTime, considerOffset) {\n var dragSnap = this.props.dragSnap;\n\n if (dragSnap) {\n var offset = considerOffset ? (0, _moment[\"default\"])().utcOffset() * 60 * 1000 : 0;\n return Math.round(dragTime / dragSnap) * dragSnap - offset % dragSnap;\n } else {\n return dragTime;\n }\n }\n }, {\n key: \"resizeTimeSnap\",\n value: function resizeTimeSnap(dragTime) {\n var dragSnap = this.props.dragSnap;\n\n if (dragSnap) {\n var endTime = this.itemTimeEnd % dragSnap;\n return Math.round((dragTime - endTime) / dragSnap) * dragSnap + endTime;\n } else {\n return dragTime;\n }\n }\n }, {\n key: \"dragTime\",\n value: function dragTime(e) {\n var startTime = (0, _moment[\"default\"])(this.itemTimeStart);\n\n if (this.state.dragging) {\n return this.dragTimeSnap(this.timeFor(e) + this.state.dragStart.offset, true);\n } else {\n return startTime;\n }\n }\n }, {\n key: \"timeFor\",\n value: function timeFor(e) {\n var ratio = (0, _calendar.coordinateToTimeRatio)(this.props.canvasTimeStart, this.props.canvasTimeEnd, this.props.canvasWidth);\n var offset = (0, _domHelpers.getSumOffset)(this.props.scrollRef).offsetLeft;\n var scrolls = (0, _domHelpers.getSumScroll)(this.props.scrollRef);\n return (e.pageX - offset + scrolls.scrollLeft) * ratio + this.props.canvasTimeStart;\n }\n }, {\n key: \"dragGroupDelta\",\n value: function dragGroupDelta(e) {\n var _this$props2 = this.props,\n groupTops = _this$props2.groupTops,\n order = _this$props2.order;\n\n if (this.state.dragging) {\n if (!this.props.canChangeGroup) {\n return 0;\n }\n\n var groupDelta = 0;\n var offset = (0, _domHelpers.getSumOffset)(this.props.scrollRef).offsetTop;\n var scrolls = (0, _domHelpers.getSumScroll)(this.props.scrollRef);\n\n for (var _i = 0, _Object$keys = Object.keys(groupTops); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n var groupTop = groupTops[key];\n\n if (e.pageY - offset + scrolls.scrollTop > groupTop) {\n groupDelta = parseInt(key, 10) - order.index;\n } else {\n break;\n }\n }\n\n if (this.props.order.index + groupDelta < 0) {\n return 0 - this.props.order.index;\n } else {\n return groupDelta;\n }\n } else {\n return 0;\n }\n }\n }, {\n key: \"resizeTimeDelta\",\n value: function resizeTimeDelta(e, resizeEdge) {\n var length = this.itemTimeEnd - this.itemTimeStart;\n var timeDelta = this.dragTimeSnap((e.pageX - this.state.resizeStart) * this.getTimeRatio());\n\n if (length + (resizeEdge === 'left' ? -timeDelta : timeDelta) < (this.props.dragSnap || 1000)) {\n if (resizeEdge === 'left') {\n return length - (this.props.dragSnap || 1000);\n } else {\n return (this.props.dragSnap || 1000) - length;\n }\n } else {\n return timeDelta;\n }\n }\n }, {\n key: \"mountInteract\",\n value: function mountInteract() {\n var _this2 = this;\n\n var leftResize = this.props.useResizeHandle ? \".rct-item-handler-resize-left\" : true;\n var rightResize = this.props.useResizeHandle ? \".rct-item-handler-resize-right\" : true;\n (0, _interactjs[\"default\"])(this.item).resizable({\n edges: {\n left: this.canResizeLeft() && leftResize,\n right: this.canResizeRight() && rightResize,\n top: false,\n bottom: false\n },\n enabled: this.props.selected && (this.canResizeLeft() || this.canResizeRight())\n }).draggable({\n enabled: this.props.selected && this.canMove()\n }).styleCursor(false).on('dragstart', function (e) {\n if (_this2.props.selected) {\n var clickTime = _this2.timeFor(e);\n\n _this2.setState({\n dragging: true,\n dragStart: {\n x: e.pageX,\n y: e.pageY,\n offset: _this2.itemTimeStart - clickTime\n },\n preDragPosition: {\n x: e.target.offsetLeft,\n y: e.target.offsetTop\n },\n dragTime: _this2.itemTimeStart,\n dragGroupDelta: 0\n });\n } else {\n return false;\n }\n }).on('dragmove', function (e) {\n if (_this2.state.dragging) {\n var dragTime = _this2.dragTime(e);\n\n var dragGroupDelta = _this2.dragGroupDelta(e);\n\n if (_this2.props.moveResizeValidator) {\n dragTime = _this2.props.moveResizeValidator('move', _this2.props.item, dragTime);\n }\n\n if (_this2.props.onDrag) {\n _this2.props.onDrag(_this2.itemId, dragTime, _this2.props.order.index + dragGroupDelta);\n }\n\n _this2.setState({\n dragTime: dragTime,\n dragGroupDelta: dragGroupDelta\n });\n }\n }).on('dragend', function (e) {\n if (_this2.state.dragging) {\n if (_this2.props.onDrop) {\n var dragTime = _this2.dragTime(e);\n\n if (_this2.props.moveResizeValidator) {\n dragTime = _this2.props.moveResizeValidator('move', _this2.props.item, dragTime);\n }\n\n _this2.props.onDrop(_this2.itemId, dragTime, _this2.props.order.index + _this2.dragGroupDelta(e));\n }\n\n _this2.setState({\n dragging: false,\n dragStart: null,\n preDragPosition: null,\n dragTime: null,\n dragGroupDelta: null\n });\n }\n }).on('resizestart', function (e) {\n if (_this2.props.selected) {\n _this2.setState({\n resizing: true,\n resizeEdge: null,\n // we don't know yet\n resizeStart: e.pageX,\n resizeTime: 0\n });\n } else {\n return false;\n }\n }).on('resizemove', function (e) {\n if (_this2.state.resizing) {\n var resizeEdge = _this2.state.resizeEdge;\n\n if (!resizeEdge) {\n resizeEdge = e.deltaRect.left !== 0 ? 'left' : 'right';\n\n _this2.setState({\n resizeEdge: resizeEdge\n });\n }\n\n var resizeTime = _this2.resizeTimeSnap(_this2.timeFor(e));\n\n if (_this2.props.moveResizeValidator) {\n resizeTime = _this2.props.moveResizeValidator('resize', _this2.props.item, resizeTime, resizeEdge);\n }\n\n if (_this2.props.onResizing) {\n _this2.props.onResizing(_this2.itemId, resizeTime, resizeEdge);\n }\n\n _this2.setState({\n resizeTime: resizeTime\n });\n }\n }).on('resizeend', function (e) {\n if (_this2.state.resizing) {\n var resizeEdge = _this2.state.resizeEdge;\n\n var resizeTime = _this2.resizeTimeSnap(_this2.timeFor(e));\n\n if (_this2.props.moveResizeValidator) {\n resizeTime = _this2.props.moveResizeValidator('resize', _this2.props.item, resizeTime, resizeEdge);\n }\n\n if (_this2.props.onResized) {\n _this2.props.onResized(_this2.itemId, resizeTime, resizeEdge, _this2.resizeTimeDelta(e, resizeEdge));\n }\n\n _this2.setState({\n resizing: null,\n resizeStart: null,\n resizeEdge: null,\n resizeTime: null\n });\n }\n }).on('tap', function (e) {\n _this2.actualClick(e, e.pointerType === 'mouse' ? 'click' : 'touch');\n });\n this.setState({\n interactMounted: true\n });\n }\n }, {\n key: \"canResizeLeft\",\n value: function canResizeLeft() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n\n if (!props.canResizeLeft) {\n return false;\n }\n\n var width = parseInt(props.dimensions.width, 10);\n return width >= props.minResizeWidth;\n }\n }, {\n key: \"canResizeRight\",\n value: function canResizeRight() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n\n if (!props.canResizeRight) {\n return false;\n }\n\n var width = parseInt(props.dimensions.width, 10);\n return width >= props.minResizeWidth;\n }\n }, {\n key: \"canMove\",\n value: function canMove() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n return !!props.canMove;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n this.cacheDataFromProps(this.props);\n var interactMounted = this.state.interactMounted;\n var couldDrag = prevProps.selected && this.canMove(prevProps);\n var couldResizeLeft = prevProps.selected && this.canResizeLeft(prevProps);\n var couldResizeRight = prevProps.selected && this.canResizeRight(prevProps);\n var willBeAbleToDrag = this.props.selected && this.canMove(this.props);\n var willBeAbleToResizeLeft = this.props.selected && this.canResizeLeft(this.props);\n var willBeAbleToResizeRight = this.props.selected && this.canResizeRight(this.props);\n\n if (!!this.item) {\n if (this.props.selected && !interactMounted) {\n this.mountInteract();\n interactMounted = true;\n }\n\n if (interactMounted && (couldResizeLeft !== willBeAbleToResizeLeft || couldResizeRight !== willBeAbleToResizeRight)) {\n var leftResize = this.props.useResizeHandle ? this.dragLeft : true;\n var rightResize = this.props.useResizeHandle ? this.dragRight : true;\n (0, _interactjs[\"default\"])(this.item).resizable({\n enabled: willBeAbleToResizeLeft || willBeAbleToResizeRight,\n edges: {\n top: false,\n bottom: false,\n left: willBeAbleToResizeLeft && leftResize,\n right: willBeAbleToResizeRight && rightResize\n }\n });\n }\n\n if (interactMounted && couldDrag !== willBeAbleToDrag) {\n (0, _interactjs[\"default\"])(this.item).draggable({\n enabled: willBeAbleToDrag\n });\n }\n } else {\n interactMounted = false;\n }\n\n this.setState({\n interactMounted: interactMounted\n });\n }\n }, {\n key: \"actualClick\",\n value: function actualClick(e, clickType) {\n if (this.props.canSelect && this.props.onSelect) {\n this.props.onSelect(this.itemId, clickType, e);\n }\n }\n }, {\n key: \"getItemStyle\",\n value: function getItemStyle(props) {\n var dimensions = this.props.dimensions;\n var baseStyles = {\n position: 'absolute',\n boxSizing: 'border-box',\n left: \"\".concat(dimensions.left, \"px\"),\n top: \"\".concat(dimensions.top, \"px\"),\n width: \"\".concat(dimensions.width, \"px\"),\n height: \"\".concat(dimensions.height, \"px\"),\n lineHeight: \"\".concat(dimensions.height, \"px\")\n };\n var finalStyle = Object.assign({}, _styles.overridableStyles, this.props.selected ? _styles.selectedStyle : {}, this.props.selected & this.canMove(this.props) ? _styles.selectedAndCanMove : {}, this.props.selected & this.canResizeLeft(this.props) ? _styles.selectedAndCanResizeLeft : {}, this.props.selected & this.canResizeLeft(this.props) & this.state.dragging ? _styles.selectedAndCanResizeLeftAndDragLeft : {}, this.props.selected & this.canResizeRight(this.props) ? _styles.selectedAndCanResizeRight : {}, this.props.selected & this.canResizeRight(this.props) & this.state.dragging ? _styles.selectedAndCanResizeRightAndDragRight : {}, props.style, baseStyles);\n return finalStyle;\n }\n }, {\n key: \"render\",\n value: function render() {\n if (typeof this.props.order === 'undefined' || this.props.order === null) {\n return null;\n }\n\n var timelineContext = this.context.getTimelineContext();\n var itemContext = {\n dimensions: this.props.dimensions,\n useResizeHandle: this.props.useResizeHandle,\n title: this.itemTitle,\n canMove: this.canMove(this.props),\n canResizeLeft: this.canResizeLeft(this.props),\n canResizeRight: this.canResizeRight(this.props),\n selected: this.props.selected,\n dragging: this.state.dragging,\n dragStart: this.state.dragStart,\n dragTime: this.state.dragTime,\n dragGroupDelta: this.state.dragGroupDelta,\n resizing: this.state.resizing,\n resizeEdge: this.state.resizeEdge,\n resizeStart: this.state.resizeStart,\n resizeTime: this.state.resizeTime,\n width: this.props.dimensions.width\n };\n return this.props.itemRenderer({\n item: this.props.item,\n timelineContext: timelineContext,\n itemContext: itemContext,\n getItemProps: this.getItemProps,\n getResizeProps: this.getResizeProps\n });\n }\n }]);\n\n return Item;\n}(_react.Component);\n\nexports[\"default\"] = Item;\n\n_defineProperty(Item, \"propTypes\", {\n canvasTimeStart: _propTypes[\"default\"].number.isRequired,\n canvasTimeEnd: _propTypes[\"default\"].number.isRequired,\n canvasWidth: _propTypes[\"default\"].number.isRequired,\n order: _propTypes[\"default\"].object,\n dragSnap: _propTypes[\"default\"].number,\n minResizeWidth: _propTypes[\"default\"].number,\n selected: _propTypes[\"default\"].bool,\n canChangeGroup: _propTypes[\"default\"].bool.isRequired,\n canMove: _propTypes[\"default\"].bool.isRequired,\n canResizeLeft: _propTypes[\"default\"].bool.isRequired,\n canResizeRight: _propTypes[\"default\"].bool.isRequired,\n keys: _propTypes[\"default\"].object.isRequired,\n item: _propTypes[\"default\"].object.isRequired,\n onSelect: _propTypes[\"default\"].func,\n onDrag: _propTypes[\"default\"].func,\n onDrop: _propTypes[\"default\"].func,\n onResizing: _propTypes[\"default\"].func,\n onResized: _propTypes[\"default\"].func,\n onContextMenu: _propTypes[\"default\"].func,\n itemRenderer: _propTypes[\"default\"].func,\n itemProps: _propTypes[\"default\"].object,\n canSelect: _propTypes[\"default\"].bool,\n dimensions: _propTypes[\"default\"].object,\n groupTops: _propTypes[\"default\"].array,\n useResizeHandle: _propTypes[\"default\"].bool,\n moveResizeValidator: _propTypes[\"default\"].func,\n onItemDoubleClick: _propTypes[\"default\"].func,\n scrollRef: _propTypes[\"default\"].object\n});\n\n_defineProperty(Item, \"defaultProps\", {\n selected: false,\n itemRenderer: _defaultItemRenderer.defaultItemRenderer\n});\n\n_defineProperty(Item, \"contextTypes\", {\n getTimelineContext: _propTypes[\"default\"].func\n});","/**\n * interact.js 1.8.4\n *\n * Copyright (c) 2012-2020 Taye Adeyemi \n * Released under the MIT License.\n * https://raw.github.com/taye/interact.js/master/LICENSE\n */\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.interact = f()}})(function(){var define,module,exports;\nvar createModuleFactory = function createModuleFactory(t){var e;return function(r){return e||t(e={exports:{},parent:r},e.exports),e.exports}};\n","import domObjects from '@interactjs/utils/domObjects'\nimport * as utils from '@interactjs/utils/index'\nimport defaults from './defaultOptions'\nimport Eventable from './Eventable'\nimport InteractableBase from './Interactable'\nimport InteractableSet from './InteractableSet'\nimport InteractEvent from './InteractEvent'\nimport interactions from './interactions'\n\nexport interface SignalArgs {\n 'scope:add-document': DocSignalArg\n 'scope:remove-document': DocSignalArg\n 'interactable:unset': { interactable: InteractableBase }\n 'interactable:set': { interactable: InteractableBase, options: Interact.Options }\n 'interactions:destroy': { interaction: Interact.Interaction }\n}\n\nexport type ListenerName = keyof SignalArgs\n\nexport type ListenerMap = {\n [P in ListenerName]?: (arg: SignalArgs[P], scope: Scope, signalName: P) => void | boolean\n}\n\ninterface DocSignalArg {\n doc: Document\n window: Window\n scope: Scope\n options?: { [index: string]: any }\n}\n\nconst {\n win,\n browser,\n raf,\n events,\n} = utils\n\nexport enum ActionName {\n}\n\nexport interface Actions {\n names: ActionName[]\n methodDict: { [key: string]: string }\n eventTypes: string[]\n}\n\nexport function createScope () {\n return new Scope()\n}\n\nexport type Defaults = typeof defaults\n\nexport interface Plugin {\n [key: string]: any\n id?: string\n listeners?: ListenerMap\n before?: string[]\n install? (scope: Scope, options?: any): void\n}\n\nexport class Scope {\n id = `__interact_scope_${Math.floor(Math.random() * 100)}`\n listenerMaps: Array<{\n map: ListenerMap\n id: string\n }> = []\n\n browser = browser\n events = events\n utils = utils\n defaults: Defaults = utils.clone(defaults) as Defaults\n Eventable = Eventable\n actions: Actions = {\n names: [],\n methodDict: {},\n eventTypes: [],\n }\n\n InteractEvent = InteractEvent\n Interactable!: typeof InteractableBase\n interactables = new InteractableSet(this)\n\n // main window\n _win!: Window\n\n // main document\n document!: Document\n\n // main window\n window!: Window\n\n // all documents being listened to\n documents: Array<{ doc: Document, options: any }> = []\n\n _plugins: {\n list: Plugin[]\n map: { [id: string]: Plugin }\n } = {\n list: [],\n map: {},\n }\n\n constructor () {\n const scope = this as Scope\n\n ;(this as { Interactable: typeof InteractableBase }).Interactable = class Interactable extends InteractableBase implements InteractableBase {\n get _defaults () { return scope.defaults }\n\n set (options: Interact.Options) {\n super.set(options)\n\n scope.fire('interactable:set', {\n options,\n interactable: this,\n })\n\n return this\n }\n\n unset () {\n super.unset()\n for (let i = scope.interactions.list.length - 1; i >= 0; i--) {\n const interaction = scope.interactions.list[i]\n\n if (interaction.interactable === this) {\n interaction.stop()\n scope.fire('interactions:destroy', { interaction })\n interaction.destroy()\n\n if (scope.interactions.list.length > 2) {\n scope.interactions.list.splice(i, 1)\n }\n }\n }\n\n scope.fire('interactable:unset', { interactable: this })\n }\n }\n }\n\n addListeners (map: ListenerMap, id?: string) {\n this.listenerMaps.push({ id, map })\n }\n\n fire (name: T, arg: SignalArgs[T]): void | false {\n for (const { map: { [name]: listener } } of this.listenerMaps) {\n if (!!listener && listener(arg as any, this, name as never) === false) {\n return false\n }\n }\n }\n\n onWindowUnload = (event: BeforeUnloadEvent) => this.removeDocument(event.target as Document)\n\n init (window: Window) {\n return initScope(this, window)\n }\n\n pluginIsInstalled (plugin: Plugin) {\n return this._plugins.map[plugin.id] || this._plugins.list.indexOf(plugin) !== -1\n }\n\n usePlugin (plugin: Plugin, options?: { [key: string]: any }) {\n if (this.pluginIsInstalled(plugin)) {\n return this\n }\n\n if (plugin.id) { this._plugins.map[plugin.id] = plugin }\n this._plugins.list.push(plugin)\n\n if (plugin.install) {\n plugin.install(this, options)\n }\n\n if (plugin.listeners && plugin.before) {\n let index = 0\n const len = this.listenerMaps.length\n const before = plugin.before.reduce((acc, id) => {\n acc[id] = true\n return acc\n }, {})\n\n for (; index < len; index++) {\n const otherId = this.listenerMaps[index].id\n\n if (before[otherId]) { break }\n }\n\n this.listenerMaps.splice(index, 0, { id: plugin.id, map: plugin.listeners })\n }\n else if (plugin.listeners) {\n this.listenerMaps.push({ id: plugin.id, map: plugin.listeners })\n }\n\n return this\n }\n\n addDocument (doc: Document, options?: any): void | false {\n // do nothing if document is already known\n if (this.getDocIndex(doc) !== -1) { return false }\n\n const window = win.getWindow(doc)\n\n options = options ? utils.extend({}, options) : {}\n\n this.documents.push({ doc, options })\n events.documents.push(doc)\n\n // don't add an unload event for the main document\n // so that the page may be cached in browser history\n if (doc !== this.document) {\n events.add(window, 'unload', this.onWindowUnload)\n }\n\n this.fire('scope:add-document', { doc, window, scope: this, options })\n }\n\n removeDocument (doc: Document) {\n const index = this.getDocIndex(doc)\n\n const window = win.getWindow(doc)\n const options = this.documents[index].options\n\n events.remove(window, 'unload', this.onWindowUnload)\n\n this.documents.splice(index, 1)\n events.documents.splice(index, 1)\n\n this.fire('scope:remove-document', { doc, window, scope: this, options })\n }\n\n getDocIndex (doc: Document) {\n for (let i = 0; i < this.documents.length; i++) {\n if (this.documents[i].doc === doc) {\n return i\n }\n }\n\n return -1\n }\n\n getDocOptions (doc: Document) {\n const docIndex = this.getDocIndex(doc)\n\n return docIndex === -1 ? null : this.documents[docIndex].options\n }\n\n now () {\n return ((this.window as any).Date as typeof Date || Date).now()\n }\n}\n\nexport function initScope (scope: Scope, window: Window) {\n win.init(window)\n domObjects.init(window)\n browser.init(window)\n raf.init(window)\n events.init(window)\n\n scope.usePlugin(interactions)\n scope.document = window.document\n scope.window = window\n\n return scope\n}\n","import browser from '@interactjs/utils/browser'\nimport domObjects from '@interactjs/utils/domObjects'\nimport { nodeContains } from '@interactjs/utils/domUtils'\nimport events from '@interactjs/utils/events'\nimport * as pointerUtils from '@interactjs/utils/pointerUtils'\nimport InteractionBase from './Interaction'\nimport finder, { SearchDetails } from './interactionFinder'\nimport { Scope } from './scope'\n\ndeclare module '@interactjs/core/scope' {\n interface Scope {\n Interaction: typeof InteractionBase\n interactions: {\n new: (options: any) => InteractionBase\n list: InteractionBase[]\n listeners: { [type: string]: Interact.Listener }\n docEvents: Array<{ type: string, listener: Interact.Listener }>\n pointerMoveTolerance: number\n }\n prevTouchTime: number\n }\n}\n\ndeclare module '@interactjs/core/scope' {\n interface SignalArgs {\n 'interactions:find': {\n interaction: InteractionBase\n searchDetails: SearchDetails\n }\n }\n}\n\nconst methodNames = [\n 'pointerDown', 'pointerMove', 'pointerUp',\n 'updatePointer', 'removePointer', 'windowBlur',\n]\n\nfunction install (scope: Scope) {\n const listeners = {} as any\n\n for (const method of methodNames) {\n listeners[method] = doOnInteractions(method, scope)\n }\n\n const pEventTypes = browser.pEventTypes\n let docEvents: typeof scope.interactions.docEvents\n\n if (domObjects.PointerEvent) {\n docEvents = [\n { type: pEventTypes.down, listener: releasePointersOnRemovedEls },\n { type: pEventTypes.down, listener: listeners.pointerDown },\n { type: pEventTypes.move, listener: listeners.pointerMove },\n { type: pEventTypes.up, listener: listeners.pointerUp },\n { type: pEventTypes.cancel, listener: listeners.pointerUp },\n ]\n }\n else {\n docEvents = [\n { type: 'mousedown', listener: listeners.pointerDown },\n { type: 'mousemove', listener: listeners.pointerMove },\n { type: 'mouseup', listener: listeners.pointerUp },\n\n { type: 'touchstart', listener: releasePointersOnRemovedEls },\n { type: 'touchstart', listener: listeners.pointerDown },\n { type: 'touchmove', listener: listeners.pointerMove },\n { type: 'touchend', listener: listeners.pointerUp },\n { type: 'touchcancel', listener: listeners.pointerUp },\n ]\n }\n\n docEvents.push({\n type: 'blur',\n listener (event) {\n for (const interaction of scope.interactions.list) {\n interaction.documentBlur(event)\n }\n },\n })\n\n // for ignoring browser's simulated mouse events\n scope.prevTouchTime = 0\n\n scope.Interaction = class Interaction extends InteractionBase {\n get pointerMoveTolerance () {\n return scope.interactions.pointerMoveTolerance\n }\n\n set pointerMoveTolerance (value) {\n scope.interactions.pointerMoveTolerance = value\n }\n\n _now () { return scope.now() }\n }\n\n scope.interactions = {\n // all active and idle interactions\n list: [],\n new (options: { pointerType?: string, scopeFire?: Scope['fire'] }) {\n options.scopeFire = (name, arg) => scope.fire(name, arg)\n\n const interaction = new scope.Interaction(options as Required)\n\n scope.interactions.list.push(interaction)\n return interaction\n },\n listeners,\n docEvents,\n pointerMoveTolerance: 1,\n }\n\n function releasePointersOnRemovedEls () {\n // for all inactive touch interactions with pointers down\n for (const interaction of scope.interactions.list) {\n if (!interaction.pointerIsDown ||\n interaction.pointerType !== 'touch' ||\n interaction._interacting) {\n continue\n }\n\n // if a pointer is down on an element that is no longer in the DOM tree\n for (const pointer of interaction.pointers) {\n if (!scope.documents.some(({ doc }) => nodeContains(doc, pointer.downTarget))) {\n // remove the pointer from the interaction\n interaction.removePointer(pointer.pointer, pointer.event)\n }\n }\n }\n }\n}\n\nfunction doOnInteractions (method, scope) {\n return function (event) {\n const interactions = scope.interactions.list\n\n const pointerType = pointerUtils.getPointerType(event)\n const [eventTarget, curEventTarget] = pointerUtils.getEventTargets(event)\n const matches = [] // [ [pointer, interaction], ...]\n\n if (/^touch/.test(event.type)) {\n scope.prevTouchTime = scope.now()\n\n for (const changedTouch of event.changedTouches) {\n const pointer = changedTouch\n const pointerId = pointerUtils.getPointerId(pointer)\n const searchDetails: SearchDetails = {\n pointer,\n pointerId,\n pointerType,\n eventType: event.type,\n eventTarget,\n curEventTarget,\n scope,\n }\n const interaction = getInteraction(searchDetails)\n\n matches.push([\n searchDetails.pointer,\n searchDetails.eventTarget,\n searchDetails.curEventTarget,\n interaction,\n ])\n }\n }\n else {\n let invalidPointer = false\n\n if (!browser.supportsPointerEvent && /mouse/.test(event.type)) {\n // ignore mouse events while touch interactions are active\n for (let i = 0; i < interactions.length && !invalidPointer; i++) {\n invalidPointer = interactions[i].pointerType !== 'mouse' && interactions[i].pointerIsDown\n }\n\n // try to ignore mouse events that are simulated by the browser\n // after a touch event\n invalidPointer = invalidPointer ||\n (scope.now() - scope.prevTouchTime < 500) ||\n // on iOS and Firefox Mobile, MouseEvent.timeStamp is zero if simulated\n event.timeStamp === 0\n }\n\n if (!invalidPointer) {\n const searchDetails = {\n pointer: event,\n pointerId: pointerUtils.getPointerId(event),\n pointerType,\n eventType: event.type,\n curEventTarget,\n eventTarget,\n scope,\n }\n\n const interaction = getInteraction(searchDetails)\n\n matches.push([\n searchDetails.pointer,\n searchDetails.eventTarget,\n searchDetails.curEventTarget,\n interaction,\n ])\n }\n }\n\n // eslint-disable-next-line no-shadow\n for (const [pointer, eventTarget, curEventTarget, interaction] of matches) {\n interaction[method](pointer, event, eventTarget, curEventTarget)\n }\n }\n}\n\nfunction getInteraction (searchDetails: SearchDetails) {\n const { pointerType, scope } = searchDetails\n\n const foundInteraction = finder.search(searchDetails)\n const signalArg = { interaction: foundInteraction, searchDetails }\n\n scope.fire('interactions:find', signalArg)\n\n return signalArg.interaction || scope.interactions.new({ pointerType })\n}\n\nfunction onDocSignal ({ doc, scope, options }: Interact.SignalArgs[T], eventMethodName: 'add' | 'remove') {\n const { docEvents } = scope.interactions\n const eventMethod = events[eventMethodName]\n\n if (scope.browser.isIOS && !options.events) {\n options.events = { passive: false }\n }\n\n // delegate event listener\n for (const eventType in events.delegatedEvents) {\n eventMethod(doc, eventType, events.delegateListener)\n eventMethod(doc, eventType, events.delegateUseCapture, true)\n }\n\n const eventOptions = options && options.events\n\n for (const { type, listener } of docEvents) {\n eventMethod(doc, type, listener, eventOptions)\n }\n}\n\nexport default {\n id: 'core/interactions',\n install,\n listeners: {\n 'scope:add-document': arg => onDocSignal(arg, 'add'),\n 'scope:remove-document': arg => onDocSignal(arg, 'remove'),\n },\n onDocSignal,\n doOnInteractions,\n methodNames,\n}\n","import * as utils from '@interactjs/utils/index'\nimport Interactable from './Interactable'\nimport InteractEvent, { EventPhase } from './InteractEvent'\nimport PointerInfo from './PointerInfo'\nimport { ActionName } from './scope'\n\nexport interface ActionProps {\n name: T\n axis?: 'x' | 'y' | 'xy'\n edges?: Interact.EdgeOptions\n}\n\nexport interface StartAction extends ActionProps {\n name: ActionName | string\n}\n\nexport enum _ProxyValues {\n interactable = '',\n element = '',\n prepared = '',\n pointerIsDown = '',\n pointerWasMoved = '',\n _proxy = ''\n}\n\nexport enum _ProxyMethods {\n start = '',\n move = '',\n end = '',\n stop = '',\n interacting = ''\n}\n\nexport type PointerArgProps = {\n pointer: Interact.PointerType\n event: Interact.PointerEventType\n eventTarget: Interact.EventTarget\n pointerIndex: number\n interaction: Interaction\n} & T\n\nexport interface DoPhaseArg {\n event: Interact.PointerEventType\n phase: EventPhase\n interaction: Interaction\n iEvent: InteractEvent\n preEnd?: boolean\n type?: string\n}\n\ndeclare module '@interactjs/core/scope' {\n interface SignalArgs {\n 'interactions:new': { interaction: Interaction }\n 'interactions:down': PointerArgProps<{\n type: 'down'\n }>\n 'interactions:move': PointerArgProps<{\n type: 'move'\n dx: number\n dy: number\n duplicate: boolean\n }>\n 'interactions:up': PointerArgProps<{\n type: 'up'\n curEventTarget: EventTarget\n }>\n 'interactions:cancel': SignalArgs['interactions:up'] & {\n type: 'cancel'\n curEventTarget: EventTarget\n }\n 'interactions:update-pointer': PointerArgProps<{\n pointerInfo: PointerInfo\n down: boolean\n }>\n 'interactions:remove-pointer': PointerArgProps<{\n pointerInfo: PointerInfo\n }>\n 'interactions:blur'\n 'interactions:before-action-start': Omit\n 'interactions:action-start': DoPhaseArg\n 'interactions:after-action-start': DoPhaseArg\n 'interactions:before-action-move': Omit\n 'interactions:action-move': DoPhaseArg\n 'interactions:after-action-move': DoPhaseArg\n 'interactions:before-action-end': Omit\n 'interactions:action-end': DoPhaseArg\n 'interactions:after-action-end': DoPhaseArg\n 'interactions:stop': { interaction: Interaction }\n }\n}\n\nexport type _InteractionProxy = Pick<\nInteraction,\nkeyof typeof _ProxyValues | keyof typeof _ProxyMethods\n>\n\nlet idCounter = 0\n\nexport class Interaction {\n // current interactable being interacted with\n interactable: Interactable = null\n\n // the target element of the interactable\n element: Interact.Element = null\n rect: Interact.FullRect\n _rects?: {\n start: Interact.FullRect\n corrected: Interact.FullRect\n previous: Interact.FullRect\n delta: Interact.FullRect\n }\n edges: Interact.EdgeOptions\n\n _scopeFire: Interact.Scope['fire']\n\n // action that's ready to be fired on next move event\n prepared: ActionProps = {\n name : null,\n axis : null,\n edges: null,\n }\n\n pointerType: string\n\n // keep track of added pointers\n pointers: PointerInfo[] = []\n\n // pointerdown/mousedown/touchstart event\n downEvent: Interact.PointerEventType = null\n\n downPointer: Interact.PointerType = {} as Interact.PointerType\n\n _latestPointer: {\n pointer: Interact.EventTarget\n event: Interact.PointerEventType\n eventTarget: Node\n } = {\n pointer: null,\n event: null,\n eventTarget: null,\n }\n\n // previous action event\n prevEvent: InteractEvent = null\n\n pointerIsDown = false\n pointerWasMoved = false\n _interacting = false\n _ending = false\n _stopped = true\n _proxy: _InteractionProxy = null\n\n simulation = null\n\n get pointerMoveTolerance () {\n return 1\n }\n\n /**\n * @alias Interaction.prototype.move\n */\n doMove = utils.warnOnce(\n function (this: Interaction, signalArg: any) {\n this.move(signalArg)\n },\n 'The interaction.doMove() method has been renamed to interaction.move()')\n\n coords: Interact.CoordsSet = {\n // Starting InteractEvent pointer coordinates\n start: utils.pointer.newCoords(),\n // Previous native pointer move event coordinates\n prev: utils.pointer.newCoords(),\n // current native pointer move event coordinates\n cur: utils.pointer.newCoords(),\n // Change in coordinates and time of the pointer\n delta: utils.pointer.newCoords(),\n // pointer velocity\n velocity: utils.pointer.newCoords(),\n }\n\n readonly _id: number = idCounter++\n\n /** */\n constructor ({ pointerType, scopeFire }: {\n pointerType?: string\n scopeFire: Interact.Scope['fire']\n }) {\n this._scopeFire = scopeFire\n this.pointerType = pointerType\n\n const that = this\n\n this._proxy = {} as _InteractionProxy\n\n for (const key in _ProxyValues) {\n Object.defineProperty(this._proxy, key, {\n get () { return that[key] },\n })\n }\n\n for (const key in _ProxyMethods) {\n Object.defineProperty(this._proxy, key, {\n value: (...args) => that[key](...args),\n })\n }\n\n this._scopeFire('interactions:new', { interaction: this })\n }\n\n pointerDown (pointer: Interact.PointerType, event: Interact.PointerEventType, eventTarget: Interact.EventTarget) {\n const pointerIndex = this.updatePointer(pointer, event, eventTarget, true)\n\n this._scopeFire('interactions:down', {\n pointer,\n event,\n eventTarget,\n pointerIndex,\n type: 'down',\n interaction: this,\n })\n }\n\n /**\n * ```js\n * interact(target)\n * .draggable({\n * // disable the default drag start by down->move\n * manualStart: true\n * })\n * // start dragging after the user holds the pointer down\n * .on('hold', function (event) {\n * var interaction = event.interaction\n *\n * if (!interaction.interacting()) {\n * interaction.start({ name: 'drag' },\n * event.interactable,\n * event.currentTarget)\n * }\n * })\n * ```\n *\n * Start an action with the given Interactable and Element as tartgets. The\n * action must be enabled for the target Interactable and an appropriate\n * number of pointers must be held down - 1 for drag/resize, 2 for gesture.\n *\n * Use it with `interactable.able({ manualStart: false })` to always\n * [start actions manually](https://github.com/taye/interact.js/issues/114)\n *\n * @param {object} action The action to be performed - drag, resize, etc.\n * @param {Interactable} target The Interactable to target\n * @param {Element} element The DOM Element to target\n * @return {object} interact\n */\n start (action: StartAction, interactable: Interactable, element: Interact.Element) {\n if (this.interacting() ||\n !this.pointerIsDown ||\n this.pointers.length < (action.name === ActionName.Gesture ? 2 : 1) ||\n !interactable.options[action.name].enabled) {\n return false\n }\n\n utils.copyAction(this.prepared, action)\n\n this.interactable = interactable\n this.element = element\n this.rect = interactable.getRect(element)\n this.edges = utils.extend({}, this.prepared.edges)\n this._stopped = false\n this._interacting = this._doPhase({\n interaction: this,\n event: this.downEvent,\n phase: EventPhase.Start,\n }) && !this._stopped\n\n return this._interacting\n }\n\n pointerMove (pointer: Interact.PointerType, event: Interact.PointerEventType, eventTarget: Interact.EventTarget) {\n if (!this.simulation && !(this.modifiers && this.modifiers.endResult)) {\n this.updatePointer(pointer, event, eventTarget, false)\n utils.pointer.setCoords(this.coords.cur, this.pointers.map(p => p.pointer), this._now())\n }\n\n const duplicateMove = (this.coords.cur.page.x === this.coords.prev.page.x &&\n this.coords.cur.page.y === this.coords.prev.page.y &&\n this.coords.cur.client.x === this.coords.prev.client.x &&\n this.coords.cur.client.y === this.coords.prev.client.y)\n\n let dx\n let dy\n\n // register movement greater than pointerMoveTolerance\n if (this.pointerIsDown && !this.pointerWasMoved) {\n dx = this.coords.cur.client.x - this.coords.start.client.x\n dy = this.coords.cur.client.y - this.coords.start.client.y\n\n this.pointerWasMoved = utils.hypot(dx, dy) > this.pointerMoveTolerance\n }\n\n const signalArg = {\n pointer,\n pointerIndex: this.getPointerIndex(pointer),\n event,\n type: 'move' as const,\n eventTarget,\n dx,\n dy,\n duplicate: duplicateMove,\n interaction: this,\n }\n\n if (!duplicateMove) {\n // set pointer coordinate, time changes and velocity\n utils.pointer.setCoordDeltas(this.coords.delta, this.coords.prev, this.coords.cur)\n utils.pointer.setCoordVelocity(this.coords.velocity, this.coords.delta)\n }\n\n this._scopeFire('interactions:move', signalArg)\n\n if (!duplicateMove) {\n // if interacting, fire an 'action-move' signal etc\n if (this.interacting()) {\n signalArg.type = null\n this.move(signalArg)\n }\n\n if (this.pointerWasMoved) {\n utils.pointer.copyCoords(this.coords.prev, this.coords.cur)\n }\n }\n }\n\n /**\n * ```js\n * interact(target)\n * .draggable(true)\n * .on('dragmove', function (event) {\n * if (someCondition) {\n * // change the snap settings\n * event.interactable.draggable({ snap: { targets: [] }})\n * // fire another move event with re-calculated snap\n * event.interaction.move()\n * }\n * })\n * ```\n *\n * Force a move of the current action at the same coordinates. Useful if\n * snap/restrict has been changed and you want a movement with the new\n * settings.\n */\n move (signalArg?) {\n if (!signalArg || !signalArg.event) {\n utils.pointer.setZeroCoords(this.coords.delta)\n }\n\n signalArg = utils.extend({\n pointer: this._latestPointer.pointer,\n event: this._latestPointer.event,\n eventTarget: this._latestPointer.eventTarget,\n interaction: this,\n }, signalArg || {})\n\n signalArg.phase = EventPhase.Move\n\n this._doPhase(signalArg)\n }\n\n // End interact move events and stop auto-scroll unless simulation is running\n pointerUp (pointer: Interact.PointerType, event: Interact.PointerEventType, eventTarget: Interact.EventTarget, curEventTarget: Interact.EventTarget) {\n let pointerIndex = this.getPointerIndex(pointer)\n\n if (pointerIndex === -1) {\n pointerIndex = this.updatePointer(pointer, event, eventTarget, false)\n }\n\n const type = /cancel$/i.test(event.type) ? 'cancel' : 'up'\n\n this._scopeFire(`interactions:${type}` as 'interactions:up' | 'interactions:cancel', {\n pointer,\n pointerIndex,\n event,\n eventTarget,\n type: type as any,\n curEventTarget,\n interaction: this,\n })\n\n if (!this.simulation) {\n this.end(event)\n }\n\n this.pointerIsDown = false\n this.removePointer(pointer, event)\n }\n\n documentBlur (event) {\n this.end(event)\n this._scopeFire('interactions:blur', { event, type: 'blur', interaction: this })\n }\n\n /**\n * ```js\n * interact(target)\n * .draggable(true)\n * .on('move', function (event) {\n * if (event.pageX > 1000) {\n * // end the current action\n * event.interaction.end()\n * // stop all further listeners from being called\n * event.stopImmediatePropagation()\n * }\n * })\n * ```\n *\n * @param {PointerEvent} [event]\n */\n end (event?: Interact.PointerEventType) {\n this._ending = true\n event = event || this._latestPointer.event\n let endPhaseResult\n\n if (this.interacting()) {\n endPhaseResult = this._doPhase({\n event,\n interaction: this,\n phase: EventPhase.End,\n })\n }\n\n this._ending = false\n\n if (endPhaseResult === true) {\n this.stop()\n }\n }\n\n currentAction () {\n return this._interacting ? this.prepared.name : null\n }\n\n interacting () {\n return this._interacting\n }\n\n /** */\n stop () {\n this._scopeFire('interactions:stop', { interaction: this })\n\n this.interactable = this.element = null\n\n this._interacting = false\n this._stopped = true\n this.prepared.name = this.prevEvent = null\n }\n\n getPointerIndex (pointer) {\n const pointerId = utils.pointer.getPointerId(pointer)\n\n // mouse and pen interactions may have only one pointer\n return (this.pointerType === 'mouse' || this.pointerType === 'pen')\n ? this.pointers.length - 1\n : utils.arr.findIndex(this.pointers, curPointer => curPointer.id === pointerId)\n }\n\n getPointerInfo (pointer) {\n return this.pointers[this.getPointerIndex(pointer)]\n }\n\n updatePointer (pointer: Interact.PointerType, event: Interact.PointerEventType, eventTarget: Interact.EventTarget, down?: boolean) {\n const id = utils.pointer.getPointerId(pointer)\n let pointerIndex = this.getPointerIndex(pointer)\n let pointerInfo = this.pointers[pointerIndex]\n\n down = down === false\n ? false\n : down || /(down|start)$/i.test(event.type)\n\n if (!pointerInfo) {\n pointerInfo = new PointerInfo(\n id,\n pointer,\n event,\n null,\n null,\n )\n\n pointerIndex = this.pointers.length\n this.pointers.push(pointerInfo)\n }\n else {\n pointerInfo.pointer = pointer\n }\n\n if (down) {\n this.pointerIsDown = true\n\n if (!this.interacting()) {\n utils.pointer.setCoords(this.coords.start, this.pointers.map(p => p.pointer), this._now())\n\n utils.pointer.copyCoords(this.coords.cur, this.coords.start)\n utils.pointer.copyCoords(this.coords.prev, this.coords.start)\n utils.pointer.pointerExtend(this.downPointer, pointer)\n\n this.downEvent = event\n pointerInfo.downTime = this.coords.cur.timeStamp\n pointerInfo.downTarget = eventTarget\n\n this.pointerWasMoved = false\n }\n }\n\n this._updateLatestPointer(pointer, event, eventTarget)\n\n this._scopeFire('interactions:update-pointer', {\n pointer,\n event,\n eventTarget,\n down,\n pointerInfo,\n pointerIndex,\n interaction: this,\n })\n\n return pointerIndex\n }\n\n removePointer (pointer: Interact.PointerType, event: Interact.PointerEventType) {\n const pointerIndex = this.getPointerIndex(pointer)\n\n if (pointerIndex === -1) { return }\n\n const pointerInfo = this.pointers[pointerIndex]\n\n this._scopeFire('interactions:remove-pointer', {\n pointer,\n event,\n eventTarget: null,\n pointerIndex,\n pointerInfo,\n interaction: this,\n })\n\n this.pointers.splice(pointerIndex, 1)\n }\n\n _updateLatestPointer (pointer, event, eventTarget) {\n this._latestPointer.pointer = pointer\n this._latestPointer.event = event\n this._latestPointer.eventTarget = eventTarget\n }\n\n destroy () {\n this._latestPointer.pointer = null\n this._latestPointer.event = null\n this._latestPointer.eventTarget = null\n }\n\n _createPreparedEvent (event: Interact.PointerEventType, phase: EventPhase, preEnd?: boolean, type?: string) {\n const actionName = this.prepared.name\n\n return new InteractEvent(this, event, actionName, phase, this.element, null, preEnd, type)\n }\n\n _fireEvent (iEvent: InteractEvent) {\n this.interactable.fire(iEvent)\n\n if (!this.prevEvent || iEvent.timeStamp >= this.prevEvent.timeStamp) {\n this.prevEvent = iEvent\n }\n }\n\n _doPhase (signalArg: Omit & { iEvent?: InteractEvent }) {\n const { event, phase, preEnd, type } = signalArg\n const { rect, coords: { delta } } = this\n\n if (rect && phase === EventPhase.Move) {\n // update the rect modifications\n const edges = this.edges || this.prepared.edges || { left: true, right: true, top: true, bottom: true }\n utils.rect.addEdges(edges, rect, delta[this.interactable.options.deltaSource])\n\n rect.width = rect.right - rect.left\n rect.height = rect.bottom - rect.top\n }\n\n const beforeResult = this._scopeFire(`interactions:before-action-${phase}` as any, signalArg)\n\n if (beforeResult === false) {\n return false\n }\n\n const iEvent = signalArg.iEvent = this._createPreparedEvent(event, phase, preEnd, type)\n\n this._scopeFire(`interactions:action-${phase}` as any, signalArg)\n\n if (phase === 'start') { this.prevEvent = iEvent }\n\n this._fireEvent(iEvent)\n\n this._scopeFire(`interactions:after-action-${phase}` as any, signalArg)\n\n return true\n }\n\n _now () { return Date.now() }\n}\n\nexport default Interaction\nexport { PointerInfo }\n","const domObjects: {\n init: any\n document: Document\n DocumentFragment: typeof DocumentFragment\n SVGElement: typeof SVGElement\n SVGSVGElement: typeof SVGSVGElement\n SVGElementInstance: any\n Element: typeof Element\n HTMLElement: typeof HTMLElement\n Event: typeof Event\n Touch: typeof Touch\n PointerEvent: typeof PointerEvent\n} =\n{\n init,\n document: null,\n DocumentFragment: null,\n SVGElement: null,\n SVGSVGElement: null,\n SVGElementInstance: null,\n Element: null,\n HTMLElement: null,\n Event: null,\n Touch: null,\n PointerEvent: null,\n}\n\nfunction blank () {}\n\nexport default domObjects\n\nfunction init (window: Window) {\n const win = window as any\n\n domObjects.document = win.document\n domObjects.DocumentFragment = win.DocumentFragment || blank\n domObjects.SVGElement = win.SVGElement || blank\n domObjects.SVGSVGElement = win.SVGSVGElement || blank\n domObjects.SVGElementInstance = win.SVGElementInstance || blank\n domObjects.Element = win.Element || blank\n domObjects.HTMLElement = win.HTMLElement || domObjects.Element\n\n domObjects.Event = win.Event\n domObjects.Touch = win.Touch || blank\n domObjects.PointerEvent = (win.PointerEvent || win.MSPointerEvent)\n}\n","type Filter = (element: T, index: number, array: T[]) => boolean\n\nexport function contains (array: T[], target: T) {\n return array.indexOf(target) !== -1\n}\n\nexport function remove (array: T[], target: T) {\n return array.splice(array.indexOf(target), 1)\n}\n\nexport function merge (target: Array, source: U[]) {\n for (const item of source) {\n target.push(item)\n }\n\n return target\n}\n\nexport function from (source: ArrayLike) {\n return merge([] as T[], source as T[])\n}\n\nexport function findIndex (array: T[], func: Filter) {\n for (let i = 0; i < array.length; i++) {\n if (func(array[i], i, array)) {\n return i\n }\n }\n\n return -1\n}\n\nexport function find (array: T[], func: Filter) {\n return array[findIndex(array, func)]\n}\n","export default (thing: any) => !!(thing && thing.Window) && (thing instanceof thing.Window)\n","import isWindow from './isWindow'\n\nconst win = {\n realWindow: undefined as Window,\n window: undefined as Window,\n getWindow,\n init,\n}\n\nexport function init (window: Window & { wrap?: (...args: any[]) => any }) {\n // get wrapped window if using Shadow DOM polyfill\n\n win.realWindow = window\n\n // create a TextNode\n const el = window.document.createTextNode('')\n\n // check if it's wrapped by a polyfill\n if (el.ownerDocument !== window.document &&\n typeof window.wrap === 'function' &&\n window.wrap(el) === el) {\n // use wrapped window\n window = window.wrap(window)\n }\n\n win.window = window\n}\n\nif (typeof window === 'undefined') {\n win.window = undefined\n win.realWindow = undefined\n}\nelse {\n init(window)\n}\n\nexport function getWindow (node: any) {\n if (isWindow(node)) {\n return node\n }\n\n const rootNode = (node.ownerDocument || node)\n\n return rootNode.defaultView || win.window\n}\n\nwin.init = init\n\nexport default win\n","// tslint:disable variable-name\n\nimport isWindow from './isWindow'\nimport win from './window'\n\nexport const window = (thing: any): thing is Window =>\n thing === win.window || isWindow(thing)\n\nexport const docFrag = (thing: any): thing is DocumentFragment =>\n object(thing) && thing.nodeType === 11\n\nexport const object = (thing: any): thing is { [index: string]: any } =>\n !!thing && (typeof thing === 'object')\n\nexport const func = (thing: any): thing is (...args: any[]) => any =>\n typeof thing === 'function'\n\nexport const number = (thing: any): thing is number =>\n typeof thing === 'number'\n\nexport const bool = (thing: any): thing is boolean =>\n typeof thing === 'boolean'\n\nexport const string = (thing: any): thing is string =>\n typeof thing === 'string'\n\nexport const element = (thing: any): thing is Interact.Element => {\n if (!thing || (typeof thing !== 'object')) { return false }\n\n const _window = win.getWindow(thing) || win.window\n\n return (/object|function/.test(typeof _window.Element)\n ? thing instanceof _window.Element // DOM2\n : thing.nodeType === 1 && typeof thing.nodeName === 'string')\n}\n\nexport const plainObject: typeof object = (thing: any): thing is { [index: string]: any } =>\n object(thing) &&\n !!thing.constructor &&\n /function Object\\b/.test(thing.constructor.toString())\n\nexport const array = (thing: any): thing is T[] =>\n (object(thing) &&\n (typeof thing.length !== 'undefined') &&\n func(thing.splice))\n","import domObjects from './domObjects'\nimport * as is from './is'\nimport win from './window'\n\nconst browser = {\n init,\n supportsTouch: null as boolean,\n supportsPointerEvent: null as boolean,\n isIOS7: null as boolean,\n isIOS: null as boolean,\n isIe9: null as boolean,\n isOperaMobile: null as boolean,\n prefixedMatchesSelector: null as string,\n pEventTypes: null as {\n up: string\n down: string\n over: string\n out: string\n move: string\n cancel: string\n },\n wheelEvent: null as string,\n}\n\nfunction init (window: any) {\n const Element = domObjects.Element\n const navigator = win.window.navigator\n\n // Does the browser support touch input?\n browser.supportsTouch = ('ontouchstart' in window) ||\n (is.func(window.DocumentTouch) && domObjects.document instanceof window.DocumentTouch)\n\n // Does the browser support PointerEvents\n browser.supportsPointerEvent = navigator.pointerEnabled !== false && !!domObjects.PointerEvent\n\n browser.isIOS = (/iP(hone|od|ad)/.test(navigator.platform))\n\n // scrolling doesn't change the result of getClientRects on iOS 7\n browser.isIOS7 = (/iP(hone|od|ad)/.test(navigator.platform) &&\n /OS 7[^\\d]/.test(navigator.appVersion))\n\n browser.isIe9 = /MSIE 9/.test(navigator.userAgent)\n\n // Opera Mobile must be handled differently\n browser.isOperaMobile = (navigator.appName === 'Opera' &&\n browser.supportsTouch &&\n /Presto/.test(navigator.userAgent))\n\n // prefix matchesSelector\n browser.prefixedMatchesSelector = 'matches' in Element.prototype\n ? 'matches'\n : 'webkitMatchesSelector' in Element.prototype\n ? 'webkitMatchesSelector'\n : 'mozMatchesSelector' in Element.prototype\n ? 'mozMatchesSelector'\n : 'oMatchesSelector' in Element.prototype\n ? 'oMatchesSelector'\n : 'msMatchesSelector'\n\n browser.pEventTypes = (browser.supportsPointerEvent\n ? (domObjects.PointerEvent === window.MSPointerEvent\n ? {\n up: 'MSPointerUp',\n down: 'MSPointerDown',\n over: 'mouseover',\n out: 'mouseout',\n move: 'MSPointerMove',\n cancel: 'MSPointerCancel',\n }\n : {\n up: 'pointerup',\n down: 'pointerdown',\n over: 'pointerover',\n out: 'pointerout',\n move: 'pointermove',\n cancel: 'pointercancel',\n })\n : null)\n\n // because Webkit and Opera still use 'mousewheel' event type\n browser.wheelEvent = 'onmousewheel' in domObjects.document ? 'mousewheel' : 'wheel'\n}\n\nexport default browser\n","import browser from './browser'\nimport domObjects from './domObjects'\nimport * as is from './is'\nimport win, { getWindow } from './window'\n\nexport function nodeContains (parent: Node | Interact.EventTarget, child: Node | Interact.EventTarget) {\n while (child) {\n if (child === parent) {\n return true\n }\n\n child = (child as Node).parentNode\n }\n\n return false\n}\n\nexport function closest (element: Node, selector: string) {\n while (is.element(element)) {\n if (matchesSelector(element, selector)) { return element }\n\n element = parentNode(element)\n }\n\n return null\n}\n\nexport function parentNode (node: Node | Document) {\n let parent = node.parentNode\n\n if (is.docFrag(parent)) {\n // skip past #shado-root fragments\n // tslint:disable-next-line\n while ((parent = (parent as any).host) && is.docFrag(parent)) {\n continue\n }\n\n return parent\n }\n\n return parent\n}\n\nexport function matchesSelector (element: Interact.Element, selector: string) {\n // remove /deep/ from selectors if shadowDOM polyfill is used\n if (win.window !== win.realWindow) {\n selector = selector.replace(/\\/deep\\//g, ' ')\n }\n\n return element[browser.prefixedMatchesSelector](selector)\n}\n\nconst getParent = el => el.parentNode ? el.parentNode : el.host\n\n// Test for the element that's \"above\" all other qualifiers\nexport function indexOfDeepestElement (elements: Interact.Element[] | NodeListOf) {\n let deepestZoneParents = []\n let deepestZone = elements[0]\n let index = deepestZone ? 0 : -1\n let i\n let n\n\n for (i = 1; i < elements.length; i++) {\n const dropzone = elements[i]\n\n // an element might belong to multiple selector dropzones\n if (!dropzone || dropzone === deepestZone) {\n continue\n }\n\n if (!deepestZone) {\n deepestZone = dropzone\n index = i\n continue\n }\n\n // check if the deepest or current are document.documentElement or document.rootElement\n // - if the current dropzone is, do nothing and continue\n if (dropzone.parentNode === dropzone.ownerDocument) {\n continue\n }\n // - if deepest is, update with the current dropzone and continue to next\n else if (deepestZone.parentNode === dropzone.ownerDocument) {\n deepestZone = dropzone\n index = i\n continue\n }\n\n // compare zIndex of siblings\n if (dropzone.parentNode === deepestZone.parentNode) {\n const deepestZIndex = parseInt(getWindow(deepestZone).getComputedStyle(deepestZone).zIndex, 10) || 0\n const dropzoneZIndex = parseInt(getWindow(dropzone).getComputedStyle(dropzone).zIndex, 10) || 0\n\n if (dropzoneZIndex >= deepestZIndex) {\n deepestZone = dropzone\n index = i\n }\n\n continue\n }\n\n // populate the ancestry array for the latest deepest dropzone\n if (!deepestZoneParents.length) {\n let parent = deepestZone\n let parentParent\n\n while ((parentParent = getParent(parent)) && parentParent !== parent.ownerDocument) {\n deepestZoneParents.unshift(parent)\n parent = parentParent\n }\n }\n\n let parent\n\n // if this element is an svg element and the current deepest is an\n // HTMLElement\n if (deepestZone instanceof domObjects.HTMLElement &&\n dropzone instanceof domObjects.SVGElement &&\n !(dropzone instanceof domObjects.SVGSVGElement)) {\n if (dropzone === deepestZone.parentNode) {\n continue\n }\n\n parent = dropzone.ownerSVGElement\n }\n else {\n parent = dropzone\n }\n\n const dropzoneParents = []\n\n while (parent.parentNode !== parent.ownerDocument) {\n dropzoneParents.unshift(parent)\n parent = getParent(parent)\n }\n\n n = 0\n\n // get (position of last common ancestor) + 1\n while (dropzoneParents[n] && dropzoneParents[n] === deepestZoneParents[n]) {\n n++\n }\n\n const parents = [\n dropzoneParents[n - 1],\n dropzoneParents[n],\n deepestZoneParents[n],\n ]\n\n let child = parents[0].lastChild\n\n while (child) {\n if (child === parents[1]) {\n deepestZone = dropzone\n index = i\n deepestZoneParents = dropzoneParents\n\n break\n }\n else if (child === parents[2]) {\n break\n }\n\n child = child.previousSibling\n }\n }\n\n return index\n}\n\nexport function matchesUpTo (element: Interact.Element, selector: string, limit: Node) {\n while (is.element(element)) {\n if (matchesSelector(element, selector)) {\n return true\n }\n\n element = parentNode(element) as Interact.Element\n\n if (element === limit) {\n return matchesSelector(element, selector)\n }\n }\n\n return false\n}\n\nexport function getActualElement (element: Interact.Element) {\n return (element instanceof domObjects.SVGElementInstance\n ? (element as SVGElement).correspondingUseElement\n : element)\n}\n\nexport function getScrollXY (relevantWindow) {\n relevantWindow = relevantWindow || win.window\n return {\n x: relevantWindow.scrollX || relevantWindow.document.documentElement.scrollLeft,\n y: relevantWindow.scrollY || relevantWindow.document.documentElement.scrollTop,\n }\n}\n\nexport function getElementClientRect (element: Interact.Element) {\n const clientRect = (element instanceof domObjects.SVGElement\n ? element.getBoundingClientRect()\n : element.getClientRects()[0])\n\n return clientRect && {\n left : clientRect.left,\n right : clientRect.right,\n top : clientRect.top,\n bottom: clientRect.bottom,\n width : clientRect.width || clientRect.right - clientRect.left,\n height: clientRect.height || clientRect.bottom - clientRect.top,\n }\n}\n\nexport function getElementRect (element: Interact.Element) {\n const clientRect = getElementClientRect(element)\n\n if (!browser.isIOS7 && clientRect) {\n const scroll = getScrollXY(win.getWindow(element))\n\n clientRect.left += scroll.x\n clientRect.right += scroll.x\n clientRect.top += scroll.y\n clientRect.bottom += scroll.y\n }\n\n return clientRect\n}\n\nexport function getPath (node: Node | Document) {\n const path = []\n\n while (node) {\n path.push(node)\n node = parentNode(node)\n }\n\n return path\n}\n\nexport function trySelector (value) {\n if (!is.string(value)) { return false }\n\n // an exception will be raised if it is invalid\n domObjects.document.querySelector(value)\n return true\n}\n","export default (x: number, y: number) => Math.sqrt(x * x + y * y)\n","export interface PointerExtend {\n webkit: RegExp\n [prefix: string]: RegExp\n}\n\nfunction pointerExtend (dest, source) {\n for (const prop in source) {\n const prefixedPropREs = pointerExtend.prefixedPropREs\n let deprecated = false\n\n // skip deprecated prefixed properties\n for (const vendor in prefixedPropREs) {\n if (prop.indexOf(vendor) === 0 && prefixedPropREs[vendor].test(prop)) {\n deprecated = true\n break\n }\n }\n\n if (!deprecated && typeof source[prop] !== 'function') {\n dest[prop] = source[prop]\n }\n }\n return dest\n}\n\npointerExtend.prefixedPropREs = {\n webkit: /(Movement[XY]|Radius[XY]|RotationAngle|Force)$/,\n moz: /(Pressure)$/,\n}\n\nexport default pointerExtend\n","import browser from './browser'\nimport dom from './domObjects'\nimport * as domUtils from './domUtils'\nimport hypot from './hypot'\nimport * as is from './is'\nimport pointerExtend from './pointerExtend'\n\nexport function copyCoords (dest: Interact.CoordsSetMember, src: Interact.CoordsSetMember) {\n dest.page = dest.page || {} as any\n dest.page.x = src.page.x\n dest.page.y = src.page.y\n\n dest.client = dest.client || {} as any\n dest.client.x = src.client.x\n dest.client.y = src.client.y\n\n dest.timeStamp = src.timeStamp\n}\n\nexport function setCoordDeltas (targetObj: Interact.CoordsSetMember, prev: Interact.CoordsSetMember, cur: Interact.CoordsSetMember) {\n targetObj.page.x = cur.page.x - prev.page.x\n targetObj.page.y = cur.page.y - prev.page.y\n targetObj.client.x = cur.client.x - prev.client.x\n targetObj.client.y = cur.client.y - prev.client.y\n targetObj.timeStamp = cur.timeStamp - prev.timeStamp\n}\n\nexport function setCoordVelocity (targetObj: Interact.CoordsSetMember, delta: Interact.CoordsSetMember) {\n const dt = Math.max(delta.timeStamp / 1000, 0.001)\n\n targetObj.page.x = delta.page.x / dt\n targetObj.page.y = delta.page.y / dt\n targetObj.client.x = delta.client.x / dt\n targetObj.client.y = delta.client.y / dt\n targetObj.timeStamp = dt\n}\n\nexport function setZeroCoords (targetObj: Interact.CoordsSetMember) {\n targetObj.page.x = 0\n targetObj.page.y = 0\n targetObj.client.x = 0\n targetObj.client.y = 0\n}\n\nexport function isNativePointer (pointer: any) {\n return (pointer instanceof dom.Event || pointer instanceof dom.Touch)\n}\n\n// Get specified X/Y coords for mouse or event.touches[0]\nexport function getXY (type, pointer, xy) {\n xy = xy || {}\n type = type || 'page'\n\n xy.x = pointer[type + 'X']\n xy.y = pointer[type + 'Y']\n\n return xy\n}\n\nexport function getPageXY (pointer: Interact.PointerType | Interact.InteractEvent, page?: Interact.Point) {\n page = page || { x: 0, y: 0 }\n\n // Opera Mobile handles the viewport and scrolling oddly\n if (browser.isOperaMobile && isNativePointer(pointer)) {\n getXY('screen', pointer, page)\n\n page.x += window.scrollX\n page.y += window.scrollY\n }\n else {\n getXY('page', pointer, page)\n }\n\n return page\n}\n\nexport function getClientXY (pointer, client) {\n client = client || {}\n\n if (browser.isOperaMobile && isNativePointer(pointer)) {\n // Opera Mobile handles the viewport and scrolling oddly\n getXY('screen', pointer, client)\n }\n else {\n getXY('client', pointer, client)\n }\n\n return client\n}\n\nexport function getPointerId (pointer) {\n return is.number(pointer.pointerId) ? pointer.pointerId : pointer.identifier\n}\n\nexport function setCoords (targetObj, pointers: any[], timeStamp: number) {\n const pointer = (pointers.length > 1\n ? pointerAverage(pointers)\n : pointers[0])\n\n const tmpXY = {} as { x: number, y: number }\n\n getPageXY(pointer, tmpXY)\n targetObj.page.x = tmpXY.x\n targetObj.page.y = tmpXY.y\n\n getClientXY(pointer, tmpXY)\n targetObj.client.x = tmpXY.x\n targetObj.client.y = tmpXY.y\n\n targetObj.timeStamp = timeStamp\n}\n\nexport function getTouchPair (event) {\n const touches = []\n\n // array of touches is supplied\n if (is.array(event)) {\n touches[0] = event[0]\n touches[1] = event[1]\n }\n // an event\n else {\n if (event.type === 'touchend') {\n if (event.touches.length === 1) {\n touches[0] = event.touches[0]\n touches[1] = event.changedTouches[0]\n }\n else if (event.touches.length === 0) {\n touches[0] = event.changedTouches[0]\n touches[1] = event.changedTouches[1]\n }\n }\n else {\n touches[0] = event.touches[0]\n touches[1] = event.touches[1]\n }\n }\n\n return touches\n}\n\nexport function pointerAverage (pointers: PointerEvent[] | Event[]) {\n const average = {\n pageX : 0,\n pageY : 0,\n clientX: 0,\n clientY: 0,\n screenX: 0,\n screenY: 0,\n }\n\n for (const pointer of pointers) {\n for (const prop in average) {\n average[prop] += pointer[prop]\n }\n }\n for (const prop in average) {\n average[prop] /= pointers.length\n }\n\n return average\n}\n\nexport function touchBBox (event: Event | Array<(Interact.PointerType) | TouchEvent>) {\n if (!(event as any).length &&\n !((event as TouchEvent).touches &&\n (event as TouchEvent).touches.length > 1)) {\n return null\n }\n\n const touches = getTouchPair(event)\n const minX = Math.min(touches[0].pageX, touches[1].pageX)\n const minY = Math.min(touches[0].pageY, touches[1].pageY)\n const maxX = Math.max(touches[0].pageX, touches[1].pageX)\n const maxY = Math.max(touches[0].pageY, touches[1].pageY)\n\n return {\n x: minX,\n y: minY,\n left: minX,\n top: minY,\n right: maxX,\n bottom: maxY,\n width: maxX - minX,\n height: maxY - minY,\n }\n}\n\nexport function touchDistance (event, deltaSource) {\n const sourceX = deltaSource + 'X'\n const sourceY = deltaSource + 'Y'\n const touches = getTouchPair(event)\n\n const dx = touches[0][sourceX] - touches[1][sourceX]\n const dy = touches[0][sourceY] - touches[1][sourceY]\n\n return hypot(dx, dy)\n}\n\nexport function touchAngle (event, deltaSource) {\n const sourceX = deltaSource + 'X'\n const sourceY = deltaSource + 'Y'\n const touches = getTouchPair(event)\n const dx = touches[1][sourceX] - touches[0][sourceX]\n const dy = touches[1][sourceY] - touches[0][sourceY]\n const angle = 180 * Math.atan2(dy, dx) / Math.PI\n\n return angle\n}\n\nexport function getPointerType (pointer) {\n return is.string(pointer.pointerType)\n ? pointer.pointerType\n : is.number(pointer.pointerType)\n ? [undefined, undefined, 'touch', 'pen', 'mouse'][pointer.pointerType]\n // if the PointerEvent API isn't available, then the \"pointer\" must\n // be either a MouseEvent, TouchEvent, or Touch object\n : /touch/.test(pointer.type) || pointer instanceof dom.Touch\n ? 'touch'\n : 'mouse'\n}\n\n// [ event.target, event.currentTarget ]\nexport function getEventTargets (event) {\n const path = is.func(event.composedPath) ? event.composedPath() : event.path\n\n return [\n domUtils.getActualElement(path ? path[0] : event.target),\n domUtils.getActualElement(event.currentTarget),\n ]\n}\n\nexport function newCoords (): Interact.CoordsSetMember {\n return {\n page : { x: 0, y: 0 },\n client : { x: 0, y: 0 },\n timeStamp: 0,\n }\n}\n\nexport function coordsToEvent (coords: MockCoords) {\n const event = {\n coords,\n get page () { return this.coords.page },\n get client () { return this.coords.client },\n get timeStamp () { return this.coords.timeStamp },\n get pageX () { return this.coords.page.x },\n get pageY () { return this.coords.page.y },\n get clientX () { return this.coords.client.x },\n get clientY () { return this.coords.client.y },\n get pointerId () { return this.coords.pointerId },\n get target () { return this.coords.target },\n get type () { return this.coords.type },\n get pointerType () { return this.coords.pointerType },\n get buttons () { return this.coords.buttons },\n }\n\n return event as typeof event & Interact.PointerType & Interact.PointerEventType\n}\n\nexport interface MockCoords {\n page: Interact.Point\n client: Interact.Point\n timeStamp?: number\n pointerId?: any\n target?: any\n type?: string\n pointerType?: string\n buttons?: number\n}\n\nexport { pointerExtend }\n","export default function extend (dest: U, source: T): T & U {\n for (const prop in source) {\n (dest as unknown as T)[prop] = source[prop]\n }\n\n const ret = dest as T & U\n\n return ret\n}\n","import { closest, getElementRect, parentNode } from './domUtils'\nimport extend from './extend'\nimport * as is from './is'\n\nexport function getStringOptionResult (value: any, target: Interact.HasGetRect, element) {\n if (value === 'parent') { return parentNode(element) }\n\n if (value === 'self') { return target.getRect(element) }\n\n return closest(element, value)\n}\n\nexport function resolveRectLike (\n value: Interact.RectResolvable,\n target?: Interact.HasGetRect,\n element?: Node,\n functionArgs?: T,\n) {\n let returnValue: any = value\n if (is.string(returnValue)) {\n returnValue = getStringOptionResult(returnValue, target, element)\n }\n else if (is.func(returnValue)) {\n returnValue = returnValue(...functionArgs)\n }\n\n if (is.element(returnValue)) {\n returnValue = getElementRect(returnValue)\n }\n\n return returnValue as Interact.Rect\n}\n\nexport function rectToXY (rect) {\n return rect && {\n x: 'x' in rect ? rect.x : rect.left,\n y: 'y' in rect ? rect.y : rect.top,\n }\n}\n\nexport function xywhToTlbr (rect) {\n if (rect && !('left' in rect && 'top' in rect)) {\n rect = extend({}, rect)\n\n rect.left = rect.x || 0\n rect.top = rect.y || 0\n rect.right = rect.right || (rect.left + rect.width)\n rect.bottom = rect.bottom || (rect.top + rect.height)\n }\n\n return rect\n}\n\nexport function tlbrToXywh (rect) {\n if (rect && !('x' in rect && 'y' in rect)) {\n rect = extend({}, rect)\n\n rect.x = rect.left || 0\n rect.y = rect.top || 0\n rect.width = rect.width || (rect.right || 0 - rect.x)\n rect.height = rect.height || (rect.bottom || 0 - rect.y)\n }\n\n return rect\n}\n\nexport function addEdges (edges: Interact.EdgeOptions, rect: Interact.Rect, delta: Interact.Point) {\n if (edges.left) { rect.left += delta.x }\n if (edges.right) { rect.right += delta.x }\n if (edges.top) { rect.top += delta.y }\n if (edges.bottom) { rect.bottom += delta.y }\n\n rect.width = rect.right - rect.left\n rect.height = rect.bottom - rect.top\n}\n","import * as arr from './arr'\nimport * as is from './is'\n\nexport default function clone (source: T): Partial {\n const dest = {} as Partial\n\n for (const prop in source) {\n const value = source[prop]\n\n if (is.plainObject(value)) {\n dest[prop] = clone(value) as any\n }\n else if (is.array(value)) {\n dest[prop] = arr.from(value) as typeof value\n }\n else {\n dest[prop] = value\n }\n }\n\n return dest\n}\n","import { contains } from './arr'\nimport * as domUtils from './domUtils'\nimport * as is from './is'\nimport pExtend from './pointerExtend'\nimport * as pointerUtils from './pointerUtils'\n\ntype Listener = (event: Event | FakeEvent) => any\n\nconst elements: EventTarget[] = []\nconst targets: Array<{\n events: { [type: string]: Listener[] }\n typeCount: number\n}> = []\n\nconst delegatedEvents: {\n [type: string]: {\n selectors: string[]\n contexts: Node[]\n listeners: Array>\n }\n} = {}\nconst documents: Document[] = []\n\nfunction add (element: EventTarget, type: string, listener: Listener, optionalArg?: boolean | any) {\n const options = getOptions(optionalArg)\n let elementIndex = elements.indexOf(element)\n let target = targets[elementIndex]\n\n if (!target) {\n target = {\n events: {},\n typeCount: 0,\n }\n\n elementIndex = elements.push(element) - 1\n targets.push(target)\n }\n\n if (!target.events[type]) {\n target.events[type] = []\n target.typeCount++\n }\n\n if (element.removeEventListener && !contains(target.events[type], listener)) {\n element.addEventListener(type, listener as any, events.supportsOptions ? options : !!options.capture)\n target.events[type].push(listener)\n }\n}\n\nfunction remove (element: EventTarget, type: string, listener?: 'all' | Listener, optionalArg?: boolean | any) {\n const options = getOptions(optionalArg)\n const elementIndex = elements.indexOf(element)\n const target = targets[elementIndex]\n\n if (!target || !target.events) {\n return\n }\n\n if (type === 'all') {\n for (type in target.events) {\n if (target.events.hasOwnProperty(type)) {\n remove(element, type, 'all')\n }\n }\n return\n }\n\n if (target.events[type]) {\n const len = target.events[type].length\n\n if (listener === 'all') {\n for (let i = 0; i < len; i++) {\n remove(element, type, target.events[type][i], options)\n }\n return\n }\n else {\n for (let i = 0; i < len; i++) {\n if (element.removeEventListener && target.events[type][i] === listener) {\n element.removeEventListener(type, listener as any, events.supportsOptions ? options : !!options.capture)\n target.events[type].splice(i, 1)\n\n break\n }\n }\n }\n\n if (target.events[type] && target.events[type].length === 0) {\n (target.events[type] as any) = null\n target.typeCount--\n }\n }\n\n if (!target.typeCount) {\n targets.splice(elementIndex, 1)\n elements.splice(elementIndex, 1)\n }\n}\n\nfunction addDelegate (selector: string, context: Node, type: string, listener: Listener, optionalArg?: any) {\n const options = getOptions(optionalArg)\n if (!delegatedEvents[type]) {\n delegatedEvents[type] = {\n contexts : [],\n listeners: [],\n selectors: [],\n }\n\n // add delegate listener functions\n for (const doc of documents) {\n add(doc, type, delegateListener)\n add(doc, type, delegateUseCapture, true)\n }\n }\n\n const delegated = delegatedEvents[type]\n let index\n\n for (index = delegated.selectors.length - 1; index >= 0; index--) {\n if (delegated.selectors[index] === selector &&\n delegated.contexts[index] === context) {\n break\n }\n }\n\n if (index === -1) {\n index = delegated.selectors.length\n\n delegated.selectors.push(selector)\n delegated.contexts.push(context)\n delegated.listeners.push([])\n }\n\n // keep listener and capture and passive flags\n delegated.listeners[index].push([listener, !!options.capture, options.passive])\n}\n\nfunction removeDelegate (\n selector: string,\n context: Document | Interact.Element,\n type: string,\n listener?: Listener,\n optionalArg?: any,\n) {\n const options = getOptions(optionalArg)\n const delegated = delegatedEvents[type]\n let matchFound = false\n let index\n\n if (!delegated) { return }\n\n // count from last index of delegated to 0\n for (index = delegated.selectors.length - 1; index >= 0; index--) {\n // look for matching selector and context Node\n if (delegated.selectors[index] === selector &&\n delegated.contexts[index] === context) {\n const listeners = delegated.listeners[index]\n\n // each item of the listeners array is an array: [function, capture, passive]\n for (let i = listeners.length - 1; i >= 0; i--) {\n const [fn, capture, passive] = listeners[i]\n\n // check if the listener functions and capture and passive flags match\n if (fn === listener && capture === !!options.capture && passive === options.passive) {\n // remove the listener from the array of listeners\n listeners.splice(i, 1)\n\n // if all listeners for this interactable have been removed\n // remove the interactable from the delegated arrays\n if (!listeners.length) {\n delegated.selectors.splice(index, 1)\n delegated.contexts.splice(index, 1)\n delegated.listeners.splice(index, 1)\n\n // remove delegate function from context\n remove(context, type, delegateListener)\n remove(context, type, delegateUseCapture, true)\n\n // remove the arrays if they are empty\n if (!delegated.selectors.length) {\n delegatedEvents[type] = null\n }\n }\n\n // only remove one listener\n matchFound = true\n break\n }\n }\n\n if (matchFound) { break }\n }\n }\n}\n\n// bound to the interactable context when a DOM event\n// listener is added to a selector interactable\nfunction delegateListener (event: Event, optionalArg?: any) {\n const options = getOptions(optionalArg)\n const fakeEvent = new FakeEvent(event)\n const delegated = delegatedEvents[event.type]\n const [eventTarget] = (pointerUtils.getEventTargets(event))\n let element: Node = eventTarget\n\n // climb up document tree looking for selector matches\n while (is.element(element)) {\n for (let i = 0; i < delegated.selectors.length; i++) {\n const selector = delegated.selectors[i]\n const context = delegated.contexts[i]\n\n if (domUtils.matchesSelector(element, selector) &&\n domUtils.nodeContains(context, eventTarget) &&\n domUtils.nodeContains(context, element)) {\n const listeners = delegated.listeners[i]\n\n fakeEvent.currentTarget = element\n\n for (const [fn, capture, passive] of listeners) {\n if (capture === !!options.capture && passive === options.passive) {\n fn(fakeEvent)\n }\n }\n }\n }\n\n element = domUtils.parentNode(element)\n }\n}\n\nfunction delegateUseCapture (event: Event) {\n return delegateListener.call(this, event, true)\n}\n\nfunction getOptions (param: object) {\n return is.object(param) ? param : { capture: param }\n}\n\nexport class FakeEvent implements Partial {\n currentTarget: EventTarget\n\n constructor (public originalEvent: Event) {\n // duplicate the event so that currentTarget can be changed\n pExtend(this, originalEvent)\n }\n\n preventOriginalDefault () {\n this.originalEvent.preventDefault()\n }\n\n stopPropagation () {\n this.originalEvent.stopPropagation()\n }\n\n stopImmediatePropagation () {\n this.originalEvent.stopImmediatePropagation()\n }\n}\n\nconst events = {\n add,\n remove,\n\n addDelegate,\n removeDelegate,\n\n delegateListener,\n delegateUseCapture,\n delegatedEvents,\n documents,\n\n supportsOptions: false,\n supportsPassive: false,\n\n _elements: elements,\n _targets: targets,\n\n init (window: Window) {\n window.document.createElement('div').addEventListener('test', null, {\n get capture () { return (events.supportsOptions = true) },\n get passive () { return (events.supportsPassive = true) },\n })\n },\n}\n\nexport default events\n","import { rectToXY, resolveRectLike } from './rect'\n\nexport default function (\n target: Interact.HasGetRect & { options: Interact.PerActionDefaults },\n element: Node,\n actionName?: Interact.ActionName,\n) {\n const actionOptions = (target.options as any)[actionName]\n const actionOrigin = actionOptions && actionOptions.origin\n const origin = actionOrigin || target.options.origin\n\n const originRect = resolveRectLike(origin, target, element, [target && element])\n\n return rectToXY(originRect) || { x: 0, y: 0 }\n}\n","import extend from './extend'\nimport * as is from './is'\n\nexport interface NormalizedListeners {\n [type: string]: Interact.Listener[]\n}\n\nexport default function normalize (\n type: Interact.EventTypes,\n listeners?: Interact.ListenersArg | Interact.ListenersArg[],\n result?: NormalizedListeners,\n): NormalizedListeners {\n result = result || {}\n\n if (is.string(type) && type.search(' ') !== -1) {\n type = split(type)\n }\n\n if (is.array(type)) {\n return type.reduce(\n (acc, t) => extend(acc, normalize(t, listeners, result)),\n result,\n )\n }\n\n // ({ type: fn }) -> ('', { type: fn })\n if (is.object(type)) {\n listeners = type\n type = ''\n }\n\n if (is.func(listeners)) {\n result[type] = result[type] || []\n result[type].push(listeners)\n }\n else if (is.array(listeners)) {\n for (const l of listeners) {\n normalize(type, l, result)\n }\n }\n else if (is.object(listeners)) {\n for (const prefix in listeners) {\n const combinedTypes = split(prefix).map(p => `${type}${p}`)\n\n normalize(combinedTypes, listeners[prefix], result)\n }\n }\n\n return result as NormalizedListeners\n}\n\nfunction split (type: string) {\n return type.trim().split(/ +/)\n}\n","let lastTime = 0\nlet request\nlet cancel\n\nfunction init (window) {\n request = window.requestAnimationFrame\n cancel = window.cancelAnimationFrame\n\n if (!request) {\n const vendors = ['ms', 'moz', 'webkit', 'o']\n\n for (const vendor of vendors) {\n request = window[`${vendor}RequestAnimationFrame`]\n cancel = window[`${vendor}CancelAnimationFrame`] || window[`${vendor}CancelRequestAnimationFrame`]\n }\n }\n\n if (!request) {\n request = callback => {\n const currTime = Date.now()\n const timeToCall = Math.max(0, 16 - (currTime - lastTime))\n // eslint-disable-next-line standard/no-callback-literal\n const token = setTimeout(() => { callback(currTime + timeToCall) },\n timeToCall)\n\n lastTime = currTime + timeToCall\n return token\n }\n\n cancel = token => clearTimeout(token)\n }\n}\n\nexport default {\n request: callback => request(callback),\n cancel: token => cancel(token),\n init,\n}\n","import * as arr from './arr'\nimport * as dom from './domUtils'\nimport * as is from './is'\nimport * as pointer from './pointerUtils'\nimport * as rect from './rect'\nimport win from './window'\n\nexport function warnOnce (this: T, method: (...args: any[]) => any, message: string) {\n let warned = false\n\n // eslint-disable-next-line no-shadow\n return function (this: T) {\n if (!warned) {\n (win as any).window.console.warn(message)\n warned = true\n }\n\n return method.apply(this, arguments)\n }\n}\n\n// http://stackoverflow.com/a/5634528/2280888\nexport function _getQBezierValue (t: number, p1: number, p2: number, p3: number) {\n const iT = 1 - t\n return iT * iT * p1 + 2 * iT * t * p2 + t * t * p3\n}\n\nexport function getQuadraticCurvePoint (\n startX: number, startY: number, cpX: number, cpY: number, endX: number, endY: number, position: number) {\n return {\n x: _getQBezierValue(position, startX, cpX, endX),\n y: _getQBezierValue(position, startY, cpY, endY),\n }\n}\n\n// http://gizma.com/easing/\nexport function easeOutQuad (t: number, b: number, c: number, d: number) {\n t /= d\n return -c * t * (t - 2) + b\n}\n\nexport function copyAction (dest: Interact.ActionProps, src: Interact.ActionProps) {\n dest.name = src.name\n dest.axis = src.axis\n dest.edges = src.edges\n\n return dest\n}\n\nexport { default as browser } from './browser'\nexport { default as clone } from './clone'\nexport { default as events } from './events'\nexport { default as extend } from './extend'\nexport { default as getOriginXY } from './getOriginXY'\nexport { default as hypot } from './hypot'\nexport { default as normalizeListeners } from './normalizeListeners'\nexport { default as raf } from './raf'\nexport { win, arr, dom, is, pointer, rect }\n","// tslint:disable no-empty-interface\n\nexport interface Defaults {\n base: BaseDefaults\n perAction: PerActionDefaults\n actions: ActionDefaults\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ActionDefaults {\n}\n\nexport interface BaseDefaults {\n preventDefault?: 'auto' | 'never' | string\n deltaSource?: 'page' | 'client'\n context?: Interact.EventTarget\n}\n\nexport interface PerActionDefaults {\n enabled?: boolean\n origin?: Interact.Point | string | Interact.Element\n listeners?: Interact.Listeners\n allowFrom?: string | Interact.Element\n ignoreFrom?: string | Interact.Element\n}\n\nexport type Options = Partial & Partial & {\n [P in keyof ActionDefaults]?: Partial\n}\n\n// export interface Options extends BaseDefaults, PerActionDefaults {}\n\nexport interface OptionsArg extends BaseDefaults, Interact.OrBoolean> {}\n\nexport const defaults: Defaults = {\n base: {\n preventDefault: 'auto',\n deltaSource: 'page',\n },\n\n perAction: {\n enabled: false,\n origin: { x: 0, y: 0 },\n },\n\n actions: {} as ActionDefaults,\n}\n\nexport default defaults\n","import * as arr from '@interactjs/utils/arr'\nimport extend from '@interactjs/utils/extend'\nimport normalize, { NormalizedListeners } from '@interactjs/utils/normalizeListeners'\nimport { EventPhase, InteractEvent } from './InteractEvent'\nimport { ActionName } from './scope'\n\nfunction fireUntilImmediateStopped<\n T extends ActionName,\n P extends EventPhase,\n> (event: InteractEvent, listeners: Interact.Listener[]) {\n for (const listener of listeners) {\n if (event.immediatePropagationStopped) { break }\n\n listener(event)\n }\n}\n\nclass Eventable {\n options: any\n types: NormalizedListeners = {}\n propagationStopped = false\n immediatePropagationStopped = false\n global: any\n\n constructor (options?: { [index: string]: any }) {\n this.options = extend({}, options || {})\n }\n\n fire (event: any) {\n let listeners\n const global = this.global\n\n // Interactable#on() listeners\n // tslint:disable no-conditional-assignment\n if ((listeners = this.types[event.type])) {\n fireUntilImmediateStopped(event, listeners)\n }\n\n // interact.on() listeners\n if (!event.propagationStopped && global && (listeners = global[event.type])) {\n fireUntilImmediateStopped(event, listeners)\n }\n }\n\n on (type: string, listener: Interact.ListenersArg) {\n const listeners = normalize(type, listener)\n\n for (type in listeners) {\n this.types[type] = arr.merge(this.types[type] || [], listeners[type])\n }\n }\n\n off (type: string, listener: Interact.ListenersArg) {\n const listeners = normalize(type, listener)\n\n for (type in listeners) {\n const eventList = this.types[type]\n\n if (!eventList || !eventList.length) { continue }\n\n for (const subListener of listeners[type]) {\n const index = eventList.indexOf(subListener)\n\n if (index !== -1) {\n eventList.splice(index, 1)\n }\n }\n }\n }\n\n getRect (_element: Interact.Element): Interact.Rect {\n return null\n }\n}\n\nexport default Eventable\n","import * as arr from '@interactjs/utils/arr'\nimport browser from '@interactjs/utils/browser'\nimport clone from '@interactjs/utils/clone'\nimport { getElementRect, matchesUpTo, nodeContains, trySelector } from '@interactjs/utils/domUtils'\nimport events from '@interactjs/utils/events'\nimport extend from '@interactjs/utils/extend'\nimport * as is from '@interactjs/utils/is'\nimport normalizeListeners from '@interactjs/utils/normalizeListeners'\nimport { getWindow } from '@interactjs/utils/window'\nimport { ActionDefaults, Defaults, Options } from './defaultOptions'\nimport Eventable from './Eventable'\nimport { Actions } from './scope'\n\ntype IgnoreValue = string | Interact.Element | boolean\n\n/** */\nexport class Interactable implements Partial {\n protected get _defaults (): Defaults {\n return {\n base: {},\n perAction: {},\n actions: {} as ActionDefaults,\n }\n }\n\n readonly options!: Required\n readonly _actions: Actions\n readonly target: Interact.Target\n readonly events = new Eventable()\n readonly _context: Document | Interact.Element\n readonly _win: Window\n readonly _doc: Document\n\n /** */\n constructor (target: Interact.Target, options: any, defaultContext: Document | Interact.Element) {\n this._actions = options.actions\n this.target = target\n this._context = options.context || defaultContext\n this._win = getWindow(trySelector(target) ? this._context : target)\n this._doc = this._win.document\n\n this.set(options)\n }\n\n setOnEvents (actionName: Interact.ActionName, phases: NonNullable) {\n if (is.func(phases.onstart)) { this.on(`${actionName}start`, phases.onstart) }\n if (is.func(phases.onmove)) { this.on(`${actionName}move`, phases.onmove) }\n if (is.func(phases.onend)) { this.on(`${actionName}end`, phases.onend) }\n if (is.func(phases.oninertiastart)) { this.on(`${actionName}inertiastart`, phases.oninertiastart) }\n\n return this\n }\n\n updatePerActionListeners (actionName: Interact.ActionName, prev: Interact.Listeners, cur: Interact.Listeners) {\n if (is.array(prev) || is.object(prev)) {\n this.off(actionName, prev)\n }\n\n if (is.array(cur) || is.object(cur)) {\n this.on(actionName, cur)\n }\n }\n\n setPerAction (actionName: Interact.ActionName, options: Interact.OrBoolean) {\n const defaults = this._defaults\n\n // for all the default per-action options\n for (const optionName_ in options) {\n const optionName = optionName_ as keyof Interact.PerActionDefaults\n const actionOptions = this.options[actionName]\n const optionValue: any = options[optionName]\n\n // remove old event listeners and add new ones\n if (optionName === 'listeners') {\n this.updatePerActionListeners(actionName, actionOptions.listeners, optionValue as Interact.Listeners)\n }\n\n // if the option value is an array\n if (is.array(optionValue)) {\n (actionOptions[optionName] as any) = arr.from(optionValue)\n }\n // if the option value is an object\n else if (is.plainObject(optionValue)) {\n // copy the object\n (actionOptions[optionName] as any) = extend(\n actionOptions[optionName] || {} as any,\n clone(optionValue))\n\n // set anabled field to true if it exists in the defaults\n if (is.object(defaults.perAction[optionName]) && 'enabled' in (defaults.perAction[optionName] as any)) {\n (actionOptions[optionName] as any).enabled = optionValue.enabled !== false\n }\n }\n // if the option value is a boolean and the default is an object\n else if (is.bool(optionValue) && is.object(defaults.perAction[optionName])) {\n (actionOptions[optionName] as any).enabled = optionValue\n }\n // if it's anything else, do a plain assignment\n else {\n (actionOptions[optionName] as any) = optionValue\n }\n }\n }\n\n /**\n * The default function to get an Interactables bounding rect. Can be\n * overridden using {@link Interactable.rectChecker}.\n *\n * @param {Element} [element] The element to measure.\n * @return {object} The object's bounding rectangle.\n */\n getRect (element: Interact.Element) {\n element = element || (is.element(this.target)\n ? this.target\n : null)\n\n if (is.string(this.target)) {\n element = element || this._context.querySelector(this.target)\n }\n\n return getElementRect(element)\n }\n\n /**\n * Returns or sets the function used to calculate the interactable's\n * element's rectangle\n *\n * @param {function} [checker] A function which returns this Interactable's\n * bounding rectangle. See {@link Interactable.getRect}\n * @return {function | object} The checker function or this Interactable\n */\n rectChecker (checker: (element: Interact.Element) => any) {\n if (is.func(checker)) {\n this.getRect = checker\n\n return this\n }\n\n if (checker === null) {\n delete this.getRect\n\n return this\n }\n\n return this.getRect\n }\n\n _backCompatOption (optionName: keyof Interact.Options, newValue: any) {\n if (trySelector(newValue) || is.object(newValue)) {\n (this.options[optionName] as any) = newValue\n\n for (const action of this._actions.names) {\n (this.options[action][optionName] as any) = newValue\n }\n\n return this\n }\n\n return this.options[optionName]\n }\n\n /**\n * Gets or sets the origin of the Interactable's element. The x and y\n * of the origin will be subtracted from action event coordinates.\n *\n * @param {Element | object | string} [origin] An HTML or SVG Element whose\n * rect will be used, an object eg. { x: 0, y: 0 } or string 'parent', 'self'\n * or any CSS selector\n *\n * @return {object} The current origin or this Interactable\n */\n origin (newValue: any) {\n return this._backCompatOption('origin', newValue)\n }\n\n /**\n * Returns or sets the mouse coordinate types used to calculate the\n * movement of the pointer.\n *\n * @param {string} [newValue] Use 'client' if you will be scrolling while\n * interacting; Use 'page' if you want autoScroll to work\n * @return {string | object} The current deltaSource or this Interactable\n */\n deltaSource (newValue?: string) {\n if (newValue === 'page' || newValue === 'client') {\n this.options.deltaSource = newValue\n\n return this\n }\n\n return this.options.deltaSource\n }\n\n /**\n * Gets the selector context Node of the Interactable. The default is\n * `window.document`.\n *\n * @return {Node} The context Node of this Interactable\n */\n context () {\n return this._context\n }\n\n inContext (element: Document | Node) {\n return (this._context === element.ownerDocument ||\n nodeContains(this._context, element))\n }\n\n testIgnoreAllow (\n this: Interactable,\n options: { ignoreFrom?: IgnoreValue, allowFrom?: IgnoreValue },\n targetNode: Node,\n eventTarget: Interact.EventTarget,\n ) {\n return (!this.testIgnore(options.ignoreFrom, targetNode, eventTarget) &&\n this.testAllow(options.allowFrom, targetNode, eventTarget))\n }\n\n testAllow (\n this: Interactable,\n allowFrom: IgnoreValue,\n targetNode: Node,\n element: Interact.EventTarget,\n ) {\n if (!allowFrom) { return true }\n\n if (!is.element(element)) { return false }\n\n if (is.string(allowFrom)) {\n return matchesUpTo(element, allowFrom, targetNode)\n }\n else if (is.element(allowFrom)) {\n return nodeContains(allowFrom, element)\n }\n\n return false\n }\n\n testIgnore (\n this: Interactable,\n ignoreFrom: IgnoreValue,\n targetNode: Node,\n element: Interact.EventTarget,\n ) {\n if (!ignoreFrom || !is.element(element)) { return false }\n\n if (is.string(ignoreFrom)) {\n return matchesUpTo(element, ignoreFrom, targetNode)\n }\n else if (is.element(ignoreFrom)) {\n return nodeContains(ignoreFrom, element)\n }\n\n return false\n }\n\n /**\n * Calls listeners for the given InteractEvent type bound globally\n * and directly to this Interactable\n *\n * @param {InteractEvent} iEvent The InteractEvent object to be fired on this\n * Interactable\n * @return {Interactable} this Interactable\n */\n fire (iEvent: object) {\n this.events.fire(iEvent)\n\n return this\n }\n\n _onOff (method: 'on' | 'off', typeArg: Interact.EventTypes, listenerArg?: Interact.ListenersArg | null, options?: any) {\n if (is.object(typeArg) && !is.array(typeArg)) {\n options = listenerArg\n listenerArg = null\n }\n\n const addRemove = method === 'on' ? 'add' : 'remove'\n const listeners = normalizeListeners(typeArg, listenerArg)\n\n for (let type in listeners) {\n if (type === 'wheel') { type = browser.wheelEvent }\n\n for (const listener of listeners[type]) {\n // if it is an action event type\n if (arr.contains(this._actions.eventTypes, type)) {\n this.events[method](type, listener)\n }\n // delegated event\n else if (is.string(this.target)) {\n events[`${addRemove}Delegate` as 'addDelegate' | 'removeDelegate'](this.target, this._context, type, listener, options)\n }\n // remove listener from this Interactable's element\n else {\n (events[addRemove] as typeof events.remove)(this.target, type, listener, options)\n }\n }\n }\n\n return this\n }\n\n /**\n * Binds a listener for an InteractEvent, pointerEvent or DOM event.\n *\n * @param {string | array | object} types The types of events to listen\n * for\n * @param {function | array | object} [listener] The event listener function(s)\n * @param {object | boolean} [options] options object or useCapture flag for\n * addEventListener\n * @return {Interactable} This Interactable\n */\n on (types: Interact.EventTypes, listener?: Interact.ListenersArg, options?: any) {\n return this._onOff('on', types, listener, options)\n }\n\n /**\n * Removes an InteractEvent, pointerEvent or DOM event listener.\n *\n * @param {string | array | object} types The types of events that were\n * listened for\n * @param {function | array | object} [listener] The event listener function(s)\n * @param {object | boolean} [options] options object or useCapture flag for\n * removeEventListener\n * @return {Interactable} This Interactable\n */\n off (types: string | string[] | Interact.EventTypes, listener?: Interact.ListenersArg, options?: any) {\n return this._onOff('off', types, listener, options)\n }\n\n /**\n * Reset the options of this Interactable\n *\n * @param {object} options The new settings to apply\n * @return {object} This Interactable\n */\n set (options: Interact.OptionsArg) {\n const defaults = this._defaults\n\n if (!is.object(options)) {\n options = {}\n }\n\n (this.options as Required) = clone(defaults.base) as Required\n\n for (const actionName_ in this._actions.methodDict) {\n const actionName = actionName_ as Interact.ActionName\n const methodName: any = this._actions.methodDict[actionName]\n\n this.options[actionName] = {}\n this.setPerAction(actionName, extend(extend({}, defaults.perAction), defaults.actions[actionName]))\n\n this[methodName](options[actionName])\n }\n\n for (const setting in options) {\n if (is.func(this[setting])) {\n this[setting](options[setting])\n }\n }\n\n return this\n }\n\n /**\n * Remove this interactable from the list of interactables and remove it's\n * action capabilities and event listeners\n *\n * @return {interact}\n */\n unset () {\n events.remove(this.target as Node, 'all')\n\n if (is.string(this.target)) {\n // remove delegated events\n for (const type in events.delegatedEvents) {\n const delegated = events.delegatedEvents[type]\n\n if (delegated.selectors[0] === this.target &&\n delegated.contexts[0] === this._context) {\n delegated.selectors.splice(0, 1)\n delegated.contexts.splice(0, 1)\n delegated.listeners.splice(0, 1)\n }\n\n events.remove(this._context, type, events.delegateListener)\n events.remove(this._context, type, events.delegateUseCapture, true)\n }\n }\n else {\n events.remove(this.target as Node, 'all')\n }\n }\n}\n\nexport default Interactable\n","import * as arr from '@interactjs/utils/arr'\nimport * as domUtils from '@interactjs/utils/domUtils'\nimport extend from '@interactjs/utils/extend'\nimport * as is from '@interactjs/utils/is'\n\ndeclare module '@interactjs/core/scope' {\n interface SignalArgs {\n 'interactable:new': {\n interactable: Interact.Interactable\n target: Interact.Target\n options: Interact.OptionsArg\n win: Window\n }\n }\n}\n\ninterface InteractableScopeProp {\n context: Document | Interact.Element\n interactable: Interact.Interactable\n}\n\nexport default class InteractableSet {\n // all set interactables\n list: Interact.Interactable[] = []\n\n selectorMap: {\n [selector: string]: InteractableScopeProp[]\n } = {}\n\n constructor (protected scope: Interact.Scope) {\n scope.addListeners({\n 'interactable:unset': ({ interactable }) => {\n const { target, _context: context } = interactable\n const targetMappings: InteractableScopeProp[] = is.string(target)\n ? this.selectorMap[target]\n : (target as any)[this.scope.id]\n\n const targetIndex = targetMappings.findIndex(m => m.context === context)\n if (targetMappings[targetIndex]) {\n // Destroying mappingInfo's context and interactable\n targetMappings[targetIndex].context = null\n targetMappings[targetIndex].interactable = null\n }\n targetMappings.splice(targetIndex, 1)\n },\n })\n }\n\n new (target: Interact.Target, options?: any): Interact.Interactable {\n options = extend(options || {}, {\n actions: this.scope.actions,\n })\n const interactable = new this.scope.Interactable(target, options, this.scope.document)\n const mappingInfo = { context: interactable._context, interactable }\n\n this.scope.addDocument(interactable._doc)\n this.list.push(interactable)\n\n if (is.string(target)) {\n if (!this.selectorMap[target]) { this.selectorMap[target] = [] }\n this.selectorMap[target].push(mappingInfo)\n } else {\n if (!((interactable.target as any)[this.scope.id])) {\n Object.defineProperty(target, this.scope.id, {\n value: [],\n configurable: true,\n })\n }\n\n (target as any)[this.scope.id].push(mappingInfo)\n }\n\n this.scope.fire('interactable:new', {\n target,\n options,\n interactable,\n win: this.scope._win,\n })\n\n return interactable\n }\n\n get (target: Interact.Target, options?: Interact.Options) {\n const context = (options && options.context) || this.scope.document\n const isSelector = is.string(target)\n const targetMappings: InteractableScopeProp[] = isSelector\n ? this.selectorMap[target as string]\n : (target as any)[this.scope.id]\n\n if (!targetMappings) { return null }\n\n const found = arr.find(\n targetMappings,\n m => m.context === context &&\n (isSelector || m.interactable.inContext(target as any)))\n\n return found && found.interactable\n }\n\n forEachMatch (node: Node, callback: (interactable: Interact.Interactable) => T): T | void {\n for (const interactable of this.list) {\n let ret\n\n if ((is.string(interactable.target)\n // target is a selector and the element matches\n ? (is.element(node) && domUtils.matchesSelector(node, interactable.target))\n // target is the element\n : node === interactable.target) &&\n // the element is in context\n (interactable.inContext(node))) {\n ret = callback(interactable)\n }\n\n if (ret !== undefined) {\n return ret\n }\n }\n }\n}\n","import Interactable from './Interactable'\nimport { ActionName } from './scope'\n\nexport enum EventPhase {\n Start = 'start',\n Move = 'move',\n End = 'end',\n _NONE = '',\n}\n\nexport class BaseEvent {\n type: string\n target: EventTarget\n currentTarget: EventTarget\n interactable: Interactable\n _interaction: Interact.Interaction\n timeStamp: any\n immediatePropagationStopped = false\n propagationStopped = false\n\n get interaction () {\n return this._interaction._proxy\n }\n\n constructor (interaction: Interact.Interaction) {\n this._interaction = interaction\n }\n\n preventDefault () {}\n\n /**\n * Don't call any other listeners (even on the current target)\n */\n stopPropagation () {\n this.propagationStopped = true\n }\n\n /**\n * Don't call listeners on the remaining targets\n */\n stopImmediatePropagation () {\n this.immediatePropagationStopped = this.propagationStopped = true\n }\n}\n\nexport default BaseEvent\n","import extend from '@interactjs/utils/extend'\nimport getOriginXY from '@interactjs/utils/getOriginXY'\nimport hypot from '@interactjs/utils/hypot'\nimport BaseEvent from './BaseEvent'\nimport defaults from './defaultOptions'\nimport Interaction from './Interaction'\nimport { ActionName } from './scope'\n\nexport enum EventPhase {\n Start = 'start',\n Move = 'move',\n End = 'end',\n _NONE = '',\n}\n\nexport class InteractEvent<\n T extends ActionName = any,\n P extends EventPhase = EventPhase._NONE,\n> extends BaseEvent {\n target: Interact.Element\n currentTarget: Interact.Element\n relatedTarget: Interact.Element\n screenX?: number\n screenY?: number\n button: number\n buttons: number\n ctrlKey: boolean\n shiftKey: boolean\n altKey: boolean\n metaKey: boolean\n page: Interact.Point\n client: Interact.Point\n delta: Interact.Point\n rect: Interact.FullRect\n x0: number\n y0: number\n t0: number\n dt: number\n duration: number\n clientX0: number\n clientY0: number\n velocity: Interact.Point\n speed: number\n swipe: ReturnType['getSwipe']>\n timeStamp: any\n // drag\n dragEnter?: Interact.Element\n dragLeave?: Interact.Element\n // resize\n axes?: 'x' | 'y' | 'xy'\n preEnd?: boolean\n\n /** */\n constructor (\n interaction: Interaction,\n event: Interact.PointerEventType,\n actionName: T,\n phase: P,\n element: Interact.Element,\n related?: Interact.Element,\n preEnd?: boolean,\n type?: string,\n ) {\n super(interaction)\n\n element = element || interaction.element\n\n const target = interaction.interactable\n const deltaSource = (((target && target.options) || defaults) as any).deltaSource as 'page' | 'client'\n const origin = getOriginXY(target, element, actionName)\n const starting = phase === 'start'\n const ending = phase === 'end'\n const prevEvent = starting ? this : interaction.prevEvent\n const coords = starting\n ? interaction.coords.start\n : ending\n ? { page: prevEvent.page, client: prevEvent.client, timeStamp: interaction.coords.cur.timeStamp }\n : interaction.coords.cur\n\n this.page = extend({}, coords.page)\n this.client = extend({}, coords.client)\n this.rect = extend({}, interaction.rect)\n this.timeStamp = coords.timeStamp\n\n if (!ending) {\n this.page.x -= origin.x\n this.page.y -= origin.y\n\n this.client.x -= origin.x\n this.client.y -= origin.y\n }\n\n this.ctrlKey = event.ctrlKey\n this.altKey = event.altKey\n this.shiftKey = event.shiftKey\n this.metaKey = event.metaKey\n this.button = (event as MouseEvent).button\n this.buttons = (event as MouseEvent).buttons\n this.target = element\n this.currentTarget = element\n this.relatedTarget = related || null\n this.preEnd = preEnd\n this.type = type || (actionName + (phase || ''))\n this.interactable = target\n\n this.t0 = starting\n ? interaction.pointers[interaction.pointers.length - 1].downTime\n : prevEvent.t0\n\n this.x0 = interaction.coords.start.page.x - origin.x\n this.y0 = interaction.coords.start.page.y - origin.y\n this.clientX0 = interaction.coords.start.client.x - origin.x\n this.clientY0 = interaction.coords.start.client.y - origin.y\n\n if (starting || ending) {\n this.delta = { x: 0, y: 0 }\n }\n else {\n this.delta = {\n x: this[deltaSource].x - prevEvent[deltaSource].x,\n y: this[deltaSource].y - prevEvent[deltaSource].y,\n }\n }\n\n this.dt = interaction.coords.delta.timeStamp\n this.duration = this.timeStamp - this.t0\n\n // velocity and speed in pixels per second\n this.velocity = extend({}, interaction.coords.velocity[deltaSource])\n this.speed = hypot(this.velocity.x, this.velocity.y)\n\n this.swipe = (ending || phase === 'inertiastart') ? this.getSwipe() : null\n }\n\n get pageX () { return this.page.x }\n set pageX (value) { this.page.x = value }\n get pageY () { return this.page.y }\n set pageY (value) { this.page.y = value }\n\n get clientX () { return this.client.x }\n set clientX (value) { this.client.x = value }\n get clientY () { return this.client.y }\n set clientY (value) { this.client.y = value }\n\n get dx () { return this.delta.x }\n set dx (value) { this.delta.x = value }\n get dy () { return this.delta.y }\n set dy (value) { this.delta.y = value }\n\n get velocityX () { return this.velocity.x }\n set velocityX (value) { this.velocity.x = value }\n get velocityY () { return this.velocity.y }\n set velocityY (value) { this.velocity.y = value }\n\n getSwipe () {\n const interaction = this._interaction\n\n if (interaction.prevEvent.speed < 600 ||\n this.timeStamp - interaction.prevEvent.timeStamp > 150) {\n return null\n }\n\n let angle = 180 * Math.atan2(interaction.prevEvent.velocityY, interaction.prevEvent.velocityX) / Math.PI\n const overlap = 22.5\n\n if (angle < 0) {\n angle += 360\n }\n\n const left = 135 - overlap <= angle && angle < 225 + overlap\n const up = 225 - overlap <= angle && angle < 315 + overlap\n\n const right = !left && (315 - overlap <= angle || angle < 45 + overlap)\n const down = !up && 45 - overlap <= angle && angle < 135 + overlap\n\n return {\n up,\n down,\n left,\n right,\n angle,\n speed: interaction.prevEvent.speed,\n velocity: {\n x: interaction.prevEvent.velocityX,\n y: interaction.prevEvent.velocityY,\n },\n }\n }\n\n preventDefault () {}\n\n /**\n * Don't call listeners on the remaining targets\n */\n stopImmediatePropagation () {\n this.immediatePropagationStopped = this.propagationStopped = true\n }\n\n /**\n * Don't call any other listeners (even on the current target)\n */\n stopPropagation () {\n this.propagationStopped = true\n }\n}\n\nexport default InteractEvent\n","/* eslint-disable @typescript-eslint/no-parameter-properties */\nexport class PointerInfo {\n constructor (\n public id: number,\n public pointer: Interact.PointerType,\n public event: Interact.PointerEventType,\n public downTime: number,\n public downTarget: Interact.EventTarget,\n ) {}\n}\n\nexport default PointerInfo\n","import * as dom from '@interactjs/utils/domUtils'\n\nexport interface SearchDetails {\n pointer: Interact.PointerType\n pointerId: number\n pointerType: string\n eventType: string\n eventTarget: Interact.EventTarget\n curEventTarget: Interact.EventTarget\n scope: Interact.Scope\n}\n\nconst finder = {\n methodOrder: ['simulationResume', 'mouseOrPen', 'hasPointer', 'idle'] as const,\n\n search (details: SearchDetails) {\n for (const method of finder.methodOrder) {\n const interaction = finder[method](details)\n\n if (interaction) {\n return interaction\n }\n }\n\n return null\n },\n\n // try to resume simulation with a new pointer\n simulationResume ({ pointerType, eventType, eventTarget, scope }: SearchDetails) {\n if (!/down|start/i.test(eventType)) {\n return null\n }\n\n for (const interaction of scope.interactions.list) {\n let element = eventTarget as Node\n\n if (interaction.simulation && interaction.simulation.allowResume &&\n (interaction.pointerType === pointerType)) {\n while (element) {\n // if the element is the interaction element\n if (element === interaction.element) {\n return interaction\n }\n element = dom.parentNode(element)\n }\n }\n }\n\n return null\n },\n\n // if it's a mouse or pen interaction\n mouseOrPen ({ pointerId, pointerType, eventType, scope }: SearchDetails) {\n if (pointerType !== 'mouse' && pointerType !== 'pen') {\n return null\n }\n\n let firstNonActive\n\n for (const interaction of scope.interactions.list) {\n if (interaction.pointerType === pointerType) {\n // if it's a down event, skip interactions with running simulations\n if (interaction.simulation && !hasPointerId(interaction, pointerId)) { continue }\n\n // if the interaction is active, return it immediately\n if (interaction.interacting()) {\n return interaction\n }\n // otherwise save it and look for another active interaction\n else if (!firstNonActive) {\n firstNonActive = interaction\n }\n }\n }\n\n // if no active mouse interaction was found use the first inactive mouse\n // interaction\n if (firstNonActive) {\n return firstNonActive\n }\n\n // find any mouse or pen interaction.\n // ignore the interaction if the eventType is a *down, and a simulation\n // is active\n for (const interaction of scope.interactions.list) {\n if (interaction.pointerType === pointerType && !(/down/i.test(eventType) && interaction.simulation)) {\n return interaction\n }\n }\n\n return null\n },\n\n // get interaction that has this pointer\n hasPointer ({ pointerId, scope }: SearchDetails) {\n for (const interaction of scope.interactions.list) {\n if (hasPointerId(interaction, pointerId)) {\n return interaction\n }\n }\n\n return null\n },\n\n // get first idle interaction with a matching pointerType\n idle ({ pointerType, scope }: SearchDetails) {\n for (const interaction of scope.interactions.list) {\n // if there's already a pointer held down\n if (interaction.pointers.length === 1) {\n const target = interaction.interactable\n // don't add this pointer if there is a target interactable and it\n // isn't gesturable\n if (target && !(target.options.gesture && target.options.gesture.enabled)) {\n continue\n }\n }\n // maximum of 2 pointers per interaction\n else if (interaction.pointers.length >= 2) {\n continue\n }\n\n if (!interaction.interacting() && (pointerType === interaction.pointerType)) {\n return interaction\n }\n }\n\n return null\n },\n}\n\nfunction hasPointerId (interaction: Interact.Interaction, pointerId: number) {\n return interaction.pointers.some(({ id }) => id === pointerId)\n}\n\nexport default finder\n","import { ActionName, Scope } from '@interactjs/core/scope'\nimport * as arr from '@interactjs/utils/arr'\nimport * as is from '@interactjs/utils/is'\n\ndeclare module '@interactjs/core/Interactable' {\n interface Interactable {\n draggable: DraggableMethod\n }\n}\n\ndeclare module '@interactjs/core/defaultOptions' {\n interface ActionDefaults {\n drag: Interact.DraggableOptions\n }\n}\n\ndeclare module '@interactjs/core/scope' {\n interface Actions {\n [ActionName.Drag]?: typeof drag\n }\n\n // eslint-disable-next-line no-shadow\n enum ActionName {\n Drag = 'drag'\n }\n}\n\n(ActionName as any).Drag = 'drag'\n\nexport type DragEvent = Interact.InteractEvent\n\nexport type DraggableMethod = Interact.ActionMethod\n\nfunction install (scope: Scope) {\n const {\n actions,\n Interactable,\n defaults,\n } = scope\n\n Interactable.prototype.draggable = drag.draggable\n\n actions[ActionName.Drag] = drag\n actions.names.push(ActionName.Drag)\n arr.merge(actions.eventTypes, [\n 'dragstart',\n 'dragmove',\n 'draginertiastart',\n 'dragresume',\n 'dragend',\n ])\n actions.methodDict.drag = 'draggable'\n\n defaults.actions.drag = drag.defaults\n}\n\nfunction beforeMove ({ interaction }) {\n if (interaction.prepared.name !== 'drag') { return }\n\n const axis = interaction.prepared.axis\n\n if (axis === 'x') {\n interaction.coords.cur.page.y = interaction.coords.start.page.y\n interaction.coords.cur.client.y = interaction.coords.start.client.y\n\n interaction.coords.velocity.client.y = 0\n interaction.coords.velocity.page.y = 0\n }\n else if (axis === 'y') {\n interaction.coords.cur.page.x = interaction.coords.start.page.x\n interaction.coords.cur.client.x = interaction.coords.start.client.x\n\n interaction.coords.velocity.client.x = 0\n interaction.coords.velocity.page.x = 0\n }\n}\n\nfunction move ({ iEvent, interaction }) {\n if (interaction.prepared.name !== 'drag') { return }\n\n const axis = interaction.prepared.axis\n\n if (axis === 'x' || axis === 'y') {\n const opposite = axis === 'x' ? 'y' : 'x'\n\n iEvent.page[opposite] = interaction.coords.start.page[opposite]\n iEvent.client[opposite] = interaction.coords.start.client[opposite]\n iEvent.delta[opposite] = 0\n }\n}\n\n/**\n * ```js\n * interact(element).draggable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * // the axis in which the first movement must be\n * // for the drag sequence to start\n * // 'xy' by default - any direction\n * startAxis: 'x' || 'y' || 'xy',\n *\n * // 'xy' by default - don't restrict to one axis (move in any direction)\n * // 'x' or 'y' to restrict movement to either axis\n * // 'start' to restrict movement to the axis the drag started in\n * lockAxis: 'x' || 'y' || 'xy' || 'start',\n *\n * // max number of drags that can happen concurrently\n * // with elements of this Interactable. Infinity by default\n * max: Infinity,\n *\n * // max number of drags that can target the same element+Interactable\n * // 1 by default\n * maxPerElement: 2\n * })\n *\n * var isDraggable = interact('element').draggable(); // true\n * ```\n *\n * Get or set whether drag actions can be performed on the target\n *\n * @alias Interactable.prototype.draggable\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on drag events (object makes the Interactable\n * draggable)\n * @return {boolean | Interactable} boolean indicating if this can be the\n * target of drag events, or this Interctable\n */\nconst draggable: DraggableMethod = function draggable (this: Interact.Interactable, options?: Interact.DraggableOptions | boolean): any {\n if (is.object(options)) {\n this.options.drag.enabled = options.enabled !== false\n this.setPerAction(ActionName.Drag, options)\n this.setOnEvents(ActionName.Drag, options)\n\n if (/^(xy|x|y|start)$/.test(options.lockAxis)) {\n this.options.drag.lockAxis = options.lockAxis\n }\n if (/^(xy|x|y)$/.test(options.startAxis)) {\n this.options.drag.startAxis = options.startAxis\n }\n\n return this\n }\n\n if (is.bool(options)) {\n this.options.drag.enabled = options\n\n return this\n }\n\n return this.options.drag\n}\n\nconst drag: Interact.Plugin = {\n id: 'actions/drag',\n install,\n listeners: {\n 'interactions:before-action-move': beforeMove,\n 'interactions:action-resume': beforeMove,\n\n // dragmove\n 'interactions:action-move': move,\n 'auto-start:check': arg => {\n const { interaction, interactable, buttons } = arg\n const dragOptions = interactable.options.drag\n\n if (\n !(dragOptions && dragOptions.enabled) ||\n // check mouseButton setting if the pointer is down\n (interaction.pointerIsDown &&\n /mouse|pointer/.test(interaction.pointerType) &&\n (buttons & interactable.options.drag.mouseButtons) === 0)\n ) {\n return undefined\n }\n\n arg.action = {\n name: ActionName.Drag,\n axis: (dragOptions.lockAxis === 'start'\n ? dragOptions.startAxis\n : dragOptions.lockAxis),\n }\n\n return false\n },\n },\n draggable,\n beforeMove,\n move,\n defaults: {\n startAxis : 'xy',\n lockAxis : 'xy',\n } as Interact.DropzoneOptions,\n\n getCursor () {\n return 'move'\n },\n}\n\nexport default drag\n","import BaseEvent from '@interactjs/core/BaseEvent'\nimport Interactable from '@interactjs/core/Interactable'\nimport InteractEvent from '@interactjs/core/InteractEvent'\nimport Interaction from '@interactjs/core/Interaction'\nimport { ActionName } from '@interactjs/core/scope'\nimport * as arr from '@interactjs/utils/arr'\n\nclass DropEvent extends BaseEvent {\n target: Interact.Element\n dropzone: Interactable\n dragEvent: InteractEvent\n relatedTarget: Interact.Element\n draggable: Interactable\n timeStamp: number\n propagationStopped = false\n immediatePropagationStopped = false\n\n /**\n * Class of events fired on dropzones during drags with acceptable targets.\n */\n constructor (dropState: Interaction['dropState'], dragEvent: InteractEvent, type: string) {\n super(dragEvent._interaction)\n\n const { element, dropzone } = type === 'dragleave'\n ? dropState.prev\n : dropState.cur\n\n this.type = type\n this.target = element\n this.currentTarget = element\n this.dropzone = dropzone\n this.dragEvent = dragEvent\n this.relatedTarget = dragEvent.target\n this.draggable = dragEvent.interactable\n this.timeStamp = dragEvent.timeStamp\n }\n\n /**\n * If this is a `dropactivate` event, the dropzone element will be\n * deactivated.\n *\n * If this is a `dragmove` or `dragenter`, a `dragleave` will be fired on the\n * dropzone element and more.\n */\n reject () {\n const { dropState } = this._interaction\n\n if (\n (this.type !== 'dropactivate') && (\n !this.dropzone ||\n dropState.cur.dropzone !== this.dropzone ||\n dropState.cur.element !== this.target)) {\n return\n }\n\n dropState.prev.dropzone = this.dropzone\n dropState.prev.element = this.target\n\n dropState.rejected = true\n dropState.events.enter = null\n\n this.stopImmediatePropagation()\n\n if (this.type === 'dropactivate') {\n const activeDrops = dropState.activeDrops\n const index = arr.findIndex(activeDrops, ({ dropzone, element }) =>\n dropzone === this.dropzone && element === this.target)\n\n dropState.activeDrops.splice(index, 1)\n\n const deactivateEvent = new DropEvent(dropState, this.dragEvent, 'dropdeactivate')\n\n deactivateEvent.dropzone = this.dropzone\n deactivateEvent.target = this.target\n\n this.dropzone.fire(deactivateEvent)\n }\n else {\n this.dropzone.fire(new DropEvent(dropState, this.dragEvent, 'dragleave'))\n }\n }\n\n preventDefault () {}\n\n stopPropagation () {\n this.propagationStopped = true\n }\n\n stopImmediatePropagation () {\n this.immediatePropagationStopped = this.propagationStopped = true\n }\n}\n\nexport default DropEvent\n","import Interactable from '@interactjs/core/Interactable'\nimport InteractEvent from '@interactjs/core/InteractEvent'\nimport { ActionName, Scope } from '@interactjs/core/scope'\nimport * as utils from '@interactjs/utils/index'\nimport drag from '../drag'\nimport DropEvent from './DropEvent'\n\nexport interface DropzoneMethod {\n (options: Interact.DropzoneOptions | boolean): Interact.Interactable\n (): Interact.DropzoneOptions\n}\n\ndeclare module '@interactjs/core/Interactable' {\n interface Interactable {\n dropzone: DropzoneMethod\n dropCheck: (\n dragEvent: InteractEvent,\n event: Interact.PointerEventType,\n draggable: Interactable,\n draggableElement: Interact.Element,\n dropElemen: Interact.Element,\n rect: any\n ) => boolean\n }\n}\n\ndeclare module '@interactjs/core/Interaction' {\n interface Interaction {\n dropState?: {\n cur: {\n dropzone: Interactable // the dropzone a drag target might be dropped into\n element: Interact.Element // the element at the time of checking\n }\n prev: {\n dropzone: Interactable // the dropzone that was recently dragged away from\n element: Interact.Element // the element at the time of checking\n }\n rejected: boolean // wheather the potential drop was rejected from a listener\n events: any // the drop events related to the current drag event\n activeDrops: Array<{\n dropzone: Interactable\n element: Interact.Element\n rect: Interact.Rect\n }>\n }\n }\n}\n\ndeclare module '@interactjs/core/defaultOptions' {\n interface ActionDefaults {\n drop: Interact.DropzoneOptions\n }\n}\n\ninterface DropSignalArg {\n interaction: Interact.Interaction\n dragEvent: Interact.DragEvent\n}\n\ndeclare module '@interactjs/core/scope' {\n interface Scope {\n dynamicDrop?: boolean\n }\n\n interface SignalArgs {\n 'actions/drop:start': DropSignalArg\n 'actions/drop:move': DropSignalArg\n 'actions/drop:end': DropSignalArg\n }\n}\n\nfunction install (scope: Scope) {\n const {\n actions,\n /** @lends module:interact */\n interact,\n /** @lends Interactable */\n Interactable, // eslint-disable-line no-shadow\n defaults,\n } = scope\n\n scope.usePlugin(drag)\n\n /**\n *\n * ```js\n * interact('.drop').dropzone({\n * accept: '.can-drop' || document.getElementById('single-drop'),\n * overlap: 'pointer' || 'center' || zeroToOne\n * }\n * ```\n *\n * Returns or sets whether draggables can be dropped onto this target to\n * trigger drop events\n *\n * Dropzones can receive the following events:\n * - `dropactivate` and `dropdeactivate` when an acceptable drag starts and ends\n * - `dragenter` and `dragleave` when a draggable enters and leaves the dropzone\n * - `dragmove` when a draggable that has entered the dropzone is moved\n * - `drop` when a draggable is dropped into this dropzone\n *\n * Use the `accept` option to allow only elements that match the given CSS\n * selector or element. The value can be:\n *\n * - **an Element** - only that element can be dropped into this dropzone.\n * - **a string**, - the element being dragged must match it as a CSS selector.\n * - **`null`** - accept options is cleared - it accepts any element.\n *\n * Use the `overlap` option to set how drops are checked for. The allowed\n * values are:\n *\n * - `'pointer'`, the pointer must be over the dropzone (default)\n * - `'center'`, the draggable element's center must be over the dropzone\n * - a number from 0-1 which is the `(intersection area) / (draggable area)`.\n * e.g. `0.5` for drop to happen when half of the area of the draggable is\n * over the dropzone\n *\n * Use the `checker` option to specify a function to check if a dragged element\n * is over this Interactable.\n *\n * @param {boolean | object | null} [options] The new options to be set.\n * @return {boolean | Interactable} The current setting or this Interactable\n */\n Interactable.prototype.dropzone = function (this: Interact.Interactable, options?: Interact.DropzoneOptions | boolean) {\n return dropzoneMethod(this, options)\n }\n\n /**\n * ```js\n * interact(target)\n * .dropChecker(function(dragEvent, // related dragmove or dragend event\n * event, // TouchEvent/PointerEvent/MouseEvent\n * dropped, // bool result of the default checker\n * dropzone, // dropzone Interactable\n * dropElement, // dropzone elemnt\n * draggable, // draggable Interactable\n * draggableElement) {// draggable element\n *\n * return dropped && event.target.hasAttribute('allow-drop')\n * }\n * ```\n */\n Interactable.prototype.dropCheck = function (this: Interact.Interactable, dragEvent, event, draggable, draggableElement, dropElement, rect) {\n return dropCheckMethod(this, dragEvent, event, draggable, draggableElement, dropElement, rect)\n }\n\n /**\n * Returns or sets whether the dimensions of dropzone elements are calculated\n * on every dragmove or only on dragstart for the default dropChecker\n *\n * @param {boolean} [newValue] True to check on each move. False to check only\n * before start\n * @return {boolean | interact} The current setting or interact\n */\n interact.dynamicDrop = function (newValue?: boolean) {\n if (utils.is.bool(newValue)) {\n // if (dragging && scope.dynamicDrop !== newValue && !newValue) {\n // calcRects(dropzones)\n // }\n\n scope.dynamicDrop = newValue\n\n return interact\n }\n return scope.dynamicDrop\n }\n\n utils.arr.merge(actions.eventTypes, [\n 'dragenter',\n 'dragleave',\n 'dropactivate',\n 'dropdeactivate',\n 'dropmove',\n 'drop',\n ])\n actions.methodDict.drop = 'dropzone'\n\n scope.dynamicDrop = false\n\n defaults.actions.drop = drop.defaults\n}\n\nfunction collectDrops ({ interactables }, draggableElement) {\n const drops = []\n\n // collect all dropzones and their elements which qualify for a drop\n for (const dropzone of interactables.list) {\n if (!dropzone.options.drop.enabled) { continue }\n\n const accept = dropzone.options.drop.accept\n\n // test the draggable draggableElement against the dropzone's accept setting\n if ((utils.is.element(accept) && accept !== draggableElement) ||\n (utils.is.string(accept) &&\n !utils.dom.matchesSelector(draggableElement, accept)) ||\n (utils.is.func(accept) && !accept({ dropzone, draggableElement }))) {\n continue\n }\n\n // query for new elements if necessary\n const dropElements = utils.is.string(dropzone.target)\n ? dropzone._context.querySelectorAll(dropzone.target)\n : utils.is.array(dropzone.target) ? dropzone.target : [dropzone.target]\n\n for (const dropzoneElement of dropElements) {\n if (dropzoneElement !== draggableElement) {\n drops.push({\n dropzone,\n element: dropzoneElement,\n })\n }\n }\n }\n\n return drops\n}\n\nfunction fireActivationEvents (activeDrops, event) {\n // loop through all active dropzones and trigger event\n for (const { dropzone, element } of activeDrops.slice()) {\n event.dropzone = dropzone\n\n // set current element as event target\n event.target = element\n dropzone.fire(event)\n event.propagationStopped = event.immediatePropagationStopped = false\n }\n}\n\n// return a new array of possible drops. getActiveDrops should always be\n// called when a drag has just started or a drag event happens while\n// dynamicDrop is true\nfunction getActiveDrops (scope: Scope, dragElement: Interact.Element) {\n // get dropzones and their elements that could receive the draggable\n const activeDrops = collectDrops(scope, dragElement)\n\n for (const activeDrop of activeDrops) {\n activeDrop.rect = activeDrop.dropzone.getRect(activeDrop.element)\n }\n\n return activeDrops\n}\n\nfunction getDrop ({ dropState, interactable: draggable, element: dragElement }: Partial, dragEvent, pointerEvent) {\n const validDrops = []\n\n // collect all dropzones and their elements which qualify for a drop\n for (const { dropzone, element: dropzoneElement, rect } of dropState.activeDrops) {\n validDrops.push(dropzone.dropCheck(dragEvent, pointerEvent, draggable, dragElement, dropzoneElement, rect)\n ? dropzoneElement\n : null)\n }\n\n // get the most appropriate dropzone based on DOM depth and order\n const dropIndex = utils.dom.indexOfDeepestElement(validDrops)\n\n return dropState.activeDrops[dropIndex] || null\n}\n\nfunction getDropEvents (interaction: Interact.Interaction, _pointerEvent, dragEvent) {\n const { dropState } = interaction\n const dropEvents = {\n enter : null,\n leave : null,\n activate : null,\n deactivate: null,\n move : null,\n drop : null,\n }\n\n if (dragEvent.type === 'dragstart') {\n dropEvents.activate = new DropEvent(dropState, dragEvent, 'dropactivate')\n\n dropEvents.activate.target = null\n dropEvents.activate.dropzone = null\n }\n if (dragEvent.type === 'dragend') {\n dropEvents.deactivate = new DropEvent(dropState, dragEvent, 'dropdeactivate')\n\n dropEvents.deactivate.target = null\n dropEvents.deactivate.dropzone = null\n }\n\n if (dropState.rejected) {\n return dropEvents\n }\n\n if (dropState.cur.element !== dropState.prev.element) {\n // if there was a previous dropzone, create a dragleave event\n if (dropState.prev.dropzone) {\n dropEvents.leave = new DropEvent(dropState, dragEvent, 'dragleave')\n\n dragEvent.dragLeave = dropEvents.leave.target = dropState.prev.element\n dragEvent.prevDropzone = dropEvents.leave.dropzone = dropState.prev.dropzone\n }\n // if dropzone is not null, create a dragenter event\n if (dropState.cur.dropzone) {\n dropEvents.enter = new DropEvent(dropState, dragEvent, 'dragenter')\n\n dragEvent.dragEnter = dropState.cur.element\n dragEvent.dropzone = dropState.cur.dropzone\n }\n }\n\n if (dragEvent.type === 'dragend' && dropState.cur.dropzone) {\n dropEvents.drop = new DropEvent(dropState, dragEvent, 'drop')\n\n dragEvent.dropzone = dropState.cur.dropzone\n dragEvent.relatedTarget = dropState.cur.element\n }\n if (dragEvent.type === 'dragmove' && dropState.cur.dropzone) {\n dropEvents.move = new DropEvent(dropState, dragEvent, 'dropmove')\n\n dropEvents.move.dragmove = dragEvent\n dragEvent.dropzone = dropState.cur.dropzone\n }\n\n return dropEvents\n}\n\nfunction fireDropEvents (interaction: Interact.Interaction, events) {\n const { dropState } = interaction\n const {\n activeDrops,\n cur,\n prev,\n } = dropState\n\n if (events.leave) { prev.dropzone.fire(events.leave) }\n if (events.move) { cur.dropzone.fire(events.move) }\n if (events.enter) { cur.dropzone.fire(events.enter) }\n if (events.drop) { cur.dropzone.fire(events.drop) }\n\n if (events.deactivate) {\n fireActivationEvents(activeDrops, events.deactivate)\n }\n\n dropState.prev.dropzone = cur.dropzone\n dropState.prev.element = cur.element\n}\n\nfunction onEventCreated ({ interaction, iEvent, event }: Interact.DoPhaseArg, scope) {\n if (iEvent.type !== 'dragmove' && iEvent.type !== 'dragend') { return }\n\n const { dropState } = interaction\n\n if (scope.dynamicDrop) {\n dropState.activeDrops = getActiveDrops(scope, interaction.element)\n }\n\n const dragEvent = iEvent\n const dropResult = getDrop(interaction, dragEvent, event)\n\n // update rejected status\n dropState.rejected = dropState.rejected &&\n !!dropResult &&\n dropResult.dropzone === dropState.cur.dropzone &&\n dropResult.element === dropState.cur.element\n\n dropState.cur.dropzone = dropResult && dropResult.dropzone\n dropState.cur.element = dropResult && dropResult.element\n\n dropState.events = getDropEvents(interaction, event, dragEvent)\n}\n\nfunction dropzoneMethod (interactable: Interact.Interactable): Interact.DropzoneOptions\nfunction dropzoneMethod (interactable: Interact.Interactable, options: Interact.DropzoneOptions | boolean)\nfunction dropzoneMethod (interactable: Interact.Interactable, options?: Interact.DropzoneOptions | boolean) {\n if (utils.is.object(options)) {\n interactable.options.drop.enabled = options.enabled !== false\n\n if (options.listeners) {\n const normalized = utils.normalizeListeners(options.listeners)\n // rename 'drop' to '' as it will be prefixed with 'drop'\n const corrected = Object.keys(normalized).reduce((acc, type) => {\n const correctedType = /^(enter|leave)/.test(type)\n ? `drag${type}`\n : /^(activate|deactivate|move)/.test(type)\n ? `drop${type}`\n : type\n\n acc[correctedType] = normalized[type]\n\n return acc\n }, {})\n\n interactable.off(interactable.options.drop.listeners)\n interactable.on(corrected)\n interactable.options.drop.listeners = corrected\n }\n\n if (utils.is.func(options.ondrop)) { interactable.on('drop', options.ondrop) }\n if (utils.is.func(options.ondropactivate)) { interactable.on('dropactivate', options.ondropactivate) }\n if (utils.is.func(options.ondropdeactivate)) { interactable.on('dropdeactivate', options.ondropdeactivate) }\n if (utils.is.func(options.ondragenter)) { interactable.on('dragenter', options.ondragenter) }\n if (utils.is.func(options.ondragleave)) { interactable.on('dragleave', options.ondragleave) }\n if (utils.is.func(options.ondropmove)) { interactable.on('dropmove', options.ondropmove) }\n\n if (/^(pointer|center)$/.test(options.overlap as string)) {\n interactable.options.drop.overlap = options.overlap\n }\n else if (utils.is.number(options.overlap)) {\n interactable.options.drop.overlap = Math.max(Math.min(1, options.overlap), 0)\n }\n if ('accept' in options) {\n interactable.options.drop.accept = options.accept\n }\n if ('checker' in options) {\n interactable.options.drop.checker = options.checker\n }\n\n return interactable\n }\n\n if (utils.is.bool(options)) {\n interactable.options.drop.enabled = options\n\n return interactable\n }\n\n return interactable.options.drop\n}\n\nfunction dropCheckMethod (\n interactable: Interact.Interactable,\n dragEvent: InteractEvent,\n event: Interact.PointerEventType,\n draggable: Interact.Interactable,\n draggableElement: Interact.Element,\n dropElement: Interact.Element,\n rect: any,\n) {\n let dropped = false\n\n // if the dropzone has no rect (eg. display: none)\n // call the custom dropChecker or just return false\n if (!(rect = rect || interactable.getRect(dropElement))) {\n return (interactable.options.drop.checker\n ? interactable.options.drop.checker(dragEvent, event, dropped, interactable, dropElement, draggable, draggableElement)\n : false)\n }\n\n const dropOverlap = interactable.options.drop.overlap\n\n if (dropOverlap === 'pointer') {\n const origin = utils.getOriginXY(draggable, draggableElement, ActionName.Drag)\n const page = utils.pointer.getPageXY(dragEvent)\n\n page.x += origin.x\n page.y += origin.y\n\n const horizontal = (page.x > rect.left) && (page.x < rect.right)\n const vertical = (page.y > rect.top) && (page.y < rect.bottom)\n\n dropped = horizontal && vertical\n }\n\n const dragRect = draggable.getRect(draggableElement)\n\n if (dragRect && dropOverlap === 'center') {\n const cx = dragRect.left + dragRect.width / 2\n const cy = dragRect.top + dragRect.height / 2\n\n dropped = cx >= rect.left && cx <= rect.right && cy >= rect.top && cy <= rect.bottom\n }\n\n if (dragRect && utils.is.number(dropOverlap)) {\n const overlapArea = (Math.max(0, Math.min(rect.right, dragRect.right) - Math.max(rect.left, dragRect.left)) *\n Math.max(0, Math.min(rect.bottom, dragRect.bottom) - Math.max(rect.top, dragRect.top)))\n\n const overlapRatio = overlapArea / (dragRect.width * dragRect.height)\n\n dropped = overlapRatio >= dropOverlap\n }\n\n if (interactable.options.drop.checker) {\n dropped = interactable.options.drop.checker(dragEvent, event, dropped, interactable, dropElement, draggable, draggableElement)\n }\n\n return dropped\n}\n\nconst drop: Interact.Plugin = {\n id: 'actions/drop',\n install,\n listeners: {\n 'interactions:before-action-start': ({ interaction }) => {\n if (interaction.prepared.name !== 'drag') { return }\n\n interaction.dropState = {\n cur: {\n dropzone: null,\n element: null,\n },\n prev: {\n dropzone: null,\n element: null,\n },\n rejected: null,\n events: null,\n activeDrops: [],\n }\n },\n\n 'interactions:after-action-start': ({ interaction, event, iEvent: dragEvent }, scope) => {\n if (interaction.prepared.name !== 'drag') { return }\n\n const { dropState } = interaction\n\n // reset active dropzones\n dropState.activeDrops = null\n dropState.events = null\n dropState.activeDrops = getActiveDrops(scope, interaction.element)\n dropState.events = getDropEvents(interaction, event, dragEvent)\n\n if (dropState.events.activate) {\n fireActivationEvents(dropState.activeDrops, dropState.events.activate)\n scope.fire('actions/drop:start', { interaction, dragEvent })\n }\n },\n\n // FIXME proper signal types\n 'interactions:action-move': onEventCreated,\n 'interactions:action-end': onEventCreated,\n\n 'interactions:after-action-move': function fireDropAfterMove ({ interaction, iEvent: dragEvent }, scope) {\n if (interaction.prepared.name !== 'drag') { return }\n\n fireDropEvents(interaction, interaction.dropState.events)\n\n scope.fire('actions/drop:move', { interaction, dragEvent })\n interaction.dropState.events = {}\n },\n\n 'interactions:after-action-end': ({ interaction, iEvent: dragEvent }, scope) => {\n if (interaction.prepared.name !== 'drag') { return }\n\n fireDropEvents(interaction, interaction.dropState.events)\n scope.fire('actions/drop:end', { interaction, dragEvent })\n },\n\n 'interactions:stop': ({ interaction }) => {\n if (interaction.prepared.name !== 'drag') { return }\n\n const { dropState } = interaction\n\n if (dropState) {\n dropState.activeDrops = null\n dropState.events = null\n dropState.cur.dropzone = null\n dropState.cur.element = null\n dropState.prev.dropzone = null\n dropState.prev.element = null\n dropState.rejected = false\n }\n },\n },\n getActiveDrops,\n getDrop,\n getDropEvents,\n fireDropEvents,\n defaults: {\n enabled: false,\n accept : null,\n overlap: 'pointer',\n } as Interact.DropzoneOptions,\n}\n\nexport default drop\n","import InteractEvent from '@interactjs/core/InteractEvent'\nimport { ActionName, Scope } from '@interactjs/core/scope'\nimport * as utils from '@interactjs/utils/index'\n\nexport type GesturableMethod = Interact.ActionMethod\n\ndeclare module '@interactjs/core/Interaction' {\n interface Interaction {\n gesture?: {\n angle: number // angle from first to second touch\n distance: number\n scale: number // gesture.distance / gesture.startDistance\n startAngle: number // angle of line joining two touches\n startDistance: number // distance between two touches of touchStart\n }\n }\n}\n\ndeclare module '@interactjs/core/Interactable' {\n interface Interactable {\n gesturable: GesturableMethod\n }\n}\n\ndeclare module '@interactjs/core/defaultOptions' {\n interface ActionDefaults {\n gesture: Interact.GesturableOptions\n }\n}\n\ndeclare module '@interactjs/core/scope' {\n interface Actions {\n [ActionName.Gesture]?: typeof gesture\n }\n\n // eslint-disable-next-line no-shadow\n enum ActionName {\n Gesture = 'gesture'\n }\n}\n\n(ActionName as any).Gesture = 'gesture'\n\nexport interface GestureEvent extends Interact.InteractEvent {\n distance: number\n angle: number\n da: number // angle change\n scale: number // ratio of distance start to current event\n ds: number // scale change\n box: Interact.Rect // enclosing box of all points\n touches: Interact.PointerType[]\n}\n\nexport interface GestureSignalArg extends Interact.DoPhaseArg {\n iEvent: GestureEvent\n interaction: Interact.Interaction\n event: Interact.PointerEventType | GestureEvent\n}\n\nfunction install (scope: Scope) {\n const {\n actions,\n Interactable,\n defaults,\n } = scope\n\n /**\n * ```js\n * interact(element).gesturable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * // limit multiple gestures.\n * // See the explanation in {@link Interactable.draggable} example\n * max: Infinity,\n * maxPerElement: 1,\n * })\n *\n * var isGestureable = interact(element).gesturable()\n * ```\n *\n * Gets or sets whether multitouch gestures can be performed on the target\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on gesture events (makes the Interactable gesturable)\n * @return {boolean | Interactable} A boolean indicating if this can be the\n * target of gesture events, or this Interactable\n */\n Interactable.prototype.gesturable = function (this: Interact.Interactable, options: Interact.GesturableOptions | boolean) {\n if (utils.is.object(options)) {\n this.options.gesture.enabled = options.enabled !== false\n this.setPerAction(ActionName.Gesture, options)\n this.setOnEvents(ActionName.Gesture, options)\n\n return this\n }\n\n if (utils.is.bool(options)) {\n this.options.gesture.enabled = options\n\n return this\n }\n\n return this.options.gesture as Interact.Options\n } as GesturableMethod\n\n actions[ActionName.Gesture] = gesture\n actions.names.push(ActionName.Gesture)\n utils.arr.merge(actions.eventTypes, [\n 'gesturestart',\n 'gesturemove',\n 'gestureend',\n ])\n actions.methodDict.gesture = 'gesturable'\n\n defaults.actions.gesture = gesture.defaults\n}\n\nfunction updateGestureProps ({ interaction, iEvent, event, phase }: GestureSignalArg) {\n if (interaction.prepared.name !== 'gesture') { return }\n\n const pointers = interaction.pointers.map(p => p.pointer)\n const starting = phase === 'start'\n const ending = phase === 'end'\n const deltaSource = interaction.interactable.options.deltaSource\n\n iEvent.touches = [pointers[0], pointers[1]]\n\n if (starting) {\n iEvent.distance = utils.pointer.touchDistance(pointers, deltaSource)\n iEvent.box = utils.pointer.touchBBox(pointers)\n iEvent.scale = 1\n iEvent.ds = 0\n iEvent.angle = utils.pointer.touchAngle(pointers, deltaSource)\n iEvent.da = 0\n\n interaction.gesture.startDistance = iEvent.distance\n interaction.gesture.startAngle = iEvent.angle\n }\n else if (ending || event instanceof InteractEvent) {\n const prevEvent = interaction.prevEvent as GestureEvent\n\n iEvent.distance = prevEvent.distance\n iEvent.box = prevEvent.box\n iEvent.scale = prevEvent.scale\n iEvent.ds = 0\n iEvent.angle = prevEvent.angle\n iEvent.da = 0\n }\n else {\n iEvent.distance = utils.pointer.touchDistance(pointers, deltaSource)\n iEvent.box = utils.pointer.touchBBox(pointers)\n iEvent.scale = iEvent.distance / interaction.gesture.startDistance\n iEvent.angle = utils.pointer.touchAngle(pointers, deltaSource)\n\n iEvent.ds = iEvent.scale - interaction.gesture.scale\n iEvent.da = iEvent.angle - interaction.gesture.angle\n }\n\n interaction.gesture.distance = iEvent.distance\n interaction.gesture.angle = iEvent.angle\n\n if (utils.is.number(iEvent.scale) &&\n iEvent.scale !== Infinity &&\n !isNaN(iEvent.scale)) {\n interaction.gesture.scale = iEvent.scale\n }\n}\n\nconst gesture: Interact.Plugin = {\n id: 'actions/gesture',\n before: ['actions/drag', 'actions/resize'],\n install,\n listeners: {\n 'interactions:action-start': updateGestureProps,\n 'interactions:action-move': updateGestureProps,\n 'interactions:action-end': updateGestureProps,\n\n 'interactions:new': ({ interaction }) => {\n interaction.gesture = {\n angle: 0,\n distance: 0,\n scale: 1,\n startAngle: 0,\n startDistance: 0,\n }\n },\n\n 'auto-start:check': arg => {\n if (arg.interaction.pointers.length < 2) {\n return undefined\n }\n\n const gestureOptions = arg.interactable.options.gesture\n\n if (!(gestureOptions && gestureOptions.enabled)) {\n return undefined\n }\n\n arg.action = { name: ActionName.Gesture }\n\n return false\n },\n },\n\n defaults: {\n },\n\n getCursor () {\n return ''\n },\n}\n\nexport default gesture\n","import { Interaction } from '@interactjs/core/Interaction'\nimport { ActionName, Scope } from '@interactjs/core/scope'\nimport * as arr from '@interactjs/utils/arr'\nimport * as dom from '@interactjs/utils/domUtils'\nimport extend from '@interactjs/utils/extend'\nimport * as is from '@interactjs/utils/is'\n\nexport type EdgeName = 'top' | 'left' | 'bottom' | 'right'\n\nexport type ResizableMethod = Interact.ActionMethod\n\ndeclare module '@interactjs/core/Interactable' {\n interface Interactable {\n resizable: ResizableMethod\n }\n}\n\ndeclare module '@interactjs/core/Interaction' {\n interface Interaction {\n resizeAxes: 'x' | 'y' | 'xy'\n resizeStartAspectRatio: number\n }\n}\n\ndeclare module '@interactjs/core/defaultOptions' {\n interface ActionDefaults {\n resize: Interact.ResizableOptions\n }\n}\n\ndeclare module '@interactjs/core/scope' {\n interface Actions {\n [ActionName.Resize]?: typeof resize\n }\n\n // eslint-disable-next-line no-shadow\n enum ActionName {\n Resize = 'resize'\n }\n}\n\n(ActionName as any).Resize = 'resize'\n\nexport interface ResizeEvent extends Interact.InteractEvent {\n deltaRect?: Interact.FullRect\n edges?: Interact.ActionProps['edges']\n}\n\nfunction install (scope: Scope) {\n const {\n actions,\n browser,\n /** @lends Interactable */\n Interactable, // tslint:disable-line no-shadowed-variable\n defaults,\n } = scope\n\n // Less Precision with touch input\n\n resize.cursors = initCursors(browser)\n resize.defaultMargin = browser.supportsTouch || browser.supportsPointerEvent ? 20 : 10\n\n /**\n * ```js\n * interact(element).resizable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * edges: {\n * top : true, // Use pointer coords to check for resize.\n * left : false, // Disable resizing from left edge.\n * bottom: '.resize-s',// Resize if pointer target matches selector\n * right : handleEl // Resize if pointer target is the given Element\n * },\n *\n * // Width and height can be adjusted independently. When `true`, width and\n * // height are adjusted at a 1:1 ratio.\n * square: false,\n *\n * // Width and height can be adjusted independently. When `true`, width and\n * // height maintain the aspect ratio they had when resizing started.\n * preserveAspectRatio: false,\n *\n * // a value of 'none' will limit the resize rect to a minimum of 0x0\n * // 'negate' will allow the rect to have negative width/height\n * // 'reposition' will keep the width/height positive by swapping\n * // the top and bottom edges and/or swapping the left and right edges\n * invert: 'none' || 'negate' || 'reposition'\n *\n * // limit multiple resizes.\n * // See the explanation in the {@link Interactable.draggable} example\n * max: Infinity,\n * maxPerElement: 1,\n * })\n *\n * var isResizeable = interact(element).resizable()\n * ```\n *\n * Gets or sets whether resize actions can be performed on the target\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on resize events (object makes the Interactable\n * resizable)\n * @return {boolean | Interactable} A boolean indicating if this can be the\n * target of resize elements, or this Interactable\n */\n Interactable.prototype.resizable = function (this: Interact.Interactable, options: Interact.ResizableOptions | boolean) {\n return resizable(this, options, scope)\n } as ResizableMethod\n\n actions[ActionName.Resize] = resize\n actions.names.push(ActionName.Resize)\n arr.merge(actions.eventTypes, [\n 'resizestart',\n 'resizemove',\n 'resizeinertiastart',\n 'resizeresume',\n 'resizeend',\n ])\n actions.methodDict.resize = 'resizable'\n\n defaults.actions.resize = resize.defaults\n}\n\nfunction resizeChecker (arg) {\n const { interaction, interactable, element, rect, buttons } = arg\n\n if (!rect) { return undefined }\n\n const page = extend({}, interaction.coords.cur.page)\n const resizeOptions = interactable.options.resize\n\n if (\n !(resizeOptions && resizeOptions.enabled) ||\n // check mouseButton setting if the pointer is down\n (interaction.pointerIsDown &&\n /mouse|pointer/.test(interaction.pointerType) &&\n (buttons & resizeOptions.mouseButtons) === 0)\n ) {\n return undefined\n }\n\n // if using resize.edges\n if (is.object(resizeOptions.edges)) {\n const resizeEdges = {\n left: false,\n right: false,\n top: false,\n bottom: false,\n }\n\n for (const edge in resizeEdges) {\n resizeEdges[edge] = checkResizeEdge(edge,\n resizeOptions.edges[edge],\n page,\n interaction._latestPointer.eventTarget,\n element,\n rect,\n resizeOptions.margin || resize.defaultMargin)\n }\n\n resizeEdges.left = resizeEdges.left && !resizeEdges.right\n resizeEdges.top = resizeEdges.top && !resizeEdges.bottom\n\n if (resizeEdges.left || resizeEdges.right || resizeEdges.top || resizeEdges.bottom) {\n arg.action = {\n name: ActionName.Resize,\n edges: resizeEdges,\n }\n }\n }\n else {\n const right = resizeOptions.axis !== 'y' && page.x > (rect.right - resize.defaultMargin)\n const bottom = resizeOptions.axis !== 'x' && page.y > (rect.bottom - resize.defaultMargin)\n\n if (right || bottom) {\n arg.action = {\n name: 'resize',\n axes: (right ? 'x' : '') + (bottom ? 'y' : ''),\n }\n }\n }\n\n return arg.action ? false : undefined\n}\n\nfunction resizable (interactable: Interact.Interactable, options: Interact.OrBoolean | boolean, scope: Scope) {\n if (is.object(options)) {\n interactable.options.resize.enabled = options.enabled !== false\n interactable.setPerAction(ActionName.Resize, options)\n interactable.setOnEvents(ActionName.Resize, options)\n\n if (is.string(options.axis) && /^x$|^y$|^xy$/.test(options.axis)) {\n interactable.options.resize.axis = options.axis\n }\n else if (options.axis === null) {\n interactable.options.resize.axis = scope.defaults.actions.resize.axis\n }\n\n if (is.bool(options.preserveAspectRatio)) {\n interactable.options.resize.preserveAspectRatio = options.preserveAspectRatio\n }\n else if (is.bool(options.square)) {\n interactable.options.resize.square = options.square\n }\n\n return interactable\n }\n if (is.bool(options)) {\n interactable.options.resize.enabled = options\n\n return interactable\n }\n return interactable.options.resize\n}\n\nfunction checkResizeEdge (\n name: string,\n value: any,\n page: Interact.Point,\n element: Node,\n interactableElement: Interact.Element,\n rect: Interact.Rect,\n margin: number,\n) {\n // false, '', undefined, null\n if (!value) { return false }\n\n // true value, use pointer coords and element rect\n if (value === true) {\n // if dimensions are negative, \"switch\" edges\n const width = is.number(rect.width) ? rect.width : rect.right - rect.left\n const height = is.number(rect.height) ? rect.height : rect.bottom - rect.top\n\n // don't use margin greater than half the relevent dimension\n margin = Math.min(margin, (name === 'left' || name === 'right' ? width : height) / 2)\n\n if (width < 0) {\n if (name === 'left') { name = 'right' }\n else if (name === 'right') { name = 'left' }\n }\n if (height < 0) {\n if (name === 'top') { name = 'bottom' }\n else if (name === 'bottom') { name = 'top' }\n }\n\n if (name === 'left') { return page.x < ((width >= 0 ? rect.left : rect.right) + margin) }\n if (name === 'top') { return page.y < ((height >= 0 ? rect.top : rect.bottom) + margin) }\n\n if (name === 'right') { return page.x > ((width >= 0 ? rect.right : rect.left) - margin) }\n if (name === 'bottom') { return page.y > ((height >= 0 ? rect.bottom : rect.top) - margin) }\n }\n\n // the remaining checks require an element\n if (!is.element(element)) { return false }\n\n return is.element(value)\n // the value is an element to use as a resize handle\n ? value === element\n // otherwise check if element matches value as selector\n : dom.matchesUpTo(element, value, interactableElement)\n}\n\nfunction initCursors (browser: typeof import ('@interactjs/utils/browser').default) {\n return (browser.isIe9 ? {\n x : 'e-resize',\n y : 's-resize',\n xy: 'se-resize',\n\n top : 'n-resize',\n left : 'w-resize',\n bottom : 's-resize',\n right : 'e-resize',\n topleft : 'se-resize',\n bottomright: 'se-resize',\n topright : 'ne-resize',\n bottomleft : 'ne-resize',\n } : {\n x : 'ew-resize',\n y : 'ns-resize',\n xy: 'nwse-resize',\n\n top : 'ns-resize',\n left : 'ew-resize',\n bottom : 'ns-resize',\n right : 'ew-resize',\n topleft : 'nwse-resize',\n bottomright: 'nwse-resize',\n topright : 'nesw-resize',\n bottomleft : 'nesw-resize',\n })\n}\n\nfunction start ({ iEvent, interaction }: { iEvent: ResizeEvent, interaction: Interaction }) {\n if (interaction.prepared.name !== 'resize' || !interaction.prepared.edges) {\n return\n }\n\n const rect = interaction.rect\n\n interaction._rects = {\n start: extend({}, rect),\n corrected: extend({}, rect),\n previous: extend({}, rect),\n delta: {\n left: 0,\n right : 0,\n width : 0,\n top : 0,\n bottom: 0,\n height: 0,\n },\n }\n\n iEvent.edges = interaction.prepared.edges\n iEvent.rect = interaction._rects.corrected\n iEvent.deltaRect = interaction._rects.delta\n}\n\nfunction move ({ iEvent, interaction }: { iEvent: ResizeEvent, interaction: Interaction }) {\n if (interaction.prepared.name !== 'resize' || !interaction.prepared.edges) { return }\n\n const resizeOptions = interaction.interactable.options.resize\n const invert = resizeOptions.invert\n const invertible = invert === 'reposition' || invert === 'negate'\n\n // eslint-disable-next-line no-shadow\n const current = interaction.rect\n const { start: startRect, corrected, delta: deltaRect, previous } = interaction._rects\n\n extend(previous, corrected)\n\n if (invertible) {\n // if invertible, copy the current rect\n extend(corrected, current)\n\n if (invert === 'reposition') {\n // swap edge values if necessary to keep width/height positive\n if (corrected.top > corrected.bottom) {\n const swap = corrected.top\n\n corrected.top = corrected.bottom\n corrected.bottom = swap\n }\n if (corrected.left > corrected.right) {\n const swap = corrected.left\n\n corrected.left = corrected.right\n corrected.right = swap\n }\n }\n }\n else {\n // if not invertible, restrict to minimum of 0x0 rect\n corrected.top = Math.min(current.top, startRect.bottom)\n corrected.bottom = Math.max(current.bottom, startRect.top)\n corrected.left = Math.min(current.left, startRect.right)\n corrected.right = Math.max(current.right, startRect.left)\n }\n\n corrected.width = corrected.right - corrected.left\n corrected.height = corrected.bottom - corrected.top\n\n for (const edge in corrected) {\n deltaRect[edge] = corrected[edge] - previous[edge]\n }\n\n iEvent.edges = interaction.prepared.edges\n iEvent.rect = corrected\n iEvent.deltaRect = deltaRect\n}\n\nfunction end ({ iEvent, interaction }: { iEvent: ResizeEvent, interaction: Interaction }) {\n if (interaction.prepared.name !== 'resize' || !interaction.prepared.edges) { return }\n\n iEvent.edges = interaction.prepared.edges\n iEvent.rect = interaction._rects.corrected\n iEvent.deltaRect = interaction._rects.delta\n}\n\nfunction updateEventAxes ({ iEvent, interaction }: { iEvent: ResizeEvent, interaction: Interaction }) {\n if (interaction.prepared.name !== ActionName.Resize || !interaction.resizeAxes) { return }\n\n const options = interaction.interactable.options\n\n if (options.resize.square) {\n if (interaction.resizeAxes === 'y') {\n iEvent.delta.x = iEvent.delta.y\n }\n else {\n iEvent.delta.y = iEvent.delta.x\n }\n iEvent.axes = 'xy'\n }\n else {\n iEvent.axes = interaction.resizeAxes\n\n if (interaction.resizeAxes === 'x') {\n iEvent.delta.y = 0\n }\n else if (interaction.resizeAxes === 'y') {\n iEvent.delta.x = 0\n }\n }\n}\n\nconst resize: Interact.Plugin = {\n id: 'actions/resize',\n before: ['actions/drag'],\n install,\n listeners: {\n 'interactions:new': ({ interaction }) => {\n interaction.resizeAxes = 'xy'\n },\n\n 'interactions:action-start': arg => {\n start(arg)\n updateEventAxes(arg)\n },\n 'interactions:action-move': arg => {\n move(arg)\n updateEventAxes(arg)\n },\n 'interactions:action-end': end,\n 'auto-start:check': resizeChecker,\n },\n\n defaults: {\n square: false,\n preserveAspectRatio: false,\n axis: 'xy',\n\n // use default margin\n margin: NaN,\n\n // object with props left, right, top, bottom which are\n // true/false values to resize when the pointer is over that edge,\n // CSS selectors to match the handles for each direction\n // or the Elements for each handle\n edges: null,\n\n // a value of 'none' will limit the resize rect to a minimum of 0x0\n // 'negate' will alow the rect to have negative width/height\n // 'reposition' will keep the width/height positive by swapping\n // the top and bottom edges and/or swapping the left and right edges\n invert: 'none',\n } as Interact.ResizableOptions,\n\n cursors: null as ReturnType,\n\n getCursor ({ edges, axis, name }: Interact.ActionProps) {\n const cursors = resize.cursors\n let result: string = null\n\n if (axis) {\n result = cursors[name + axis]\n }\n else if (edges) {\n let cursorKey = ''\n\n for (const edge of ['top', 'bottom', 'left', 'right']) {\n if (edges[edge]) {\n cursorKey += edge\n }\n }\n\n result = cursors[cursorKey]\n }\n\n return result\n },\n\n defaultMargin: null as number,\n}\n\nexport default resize\n","import { Scope } from '@interactjs/core/scope'\nimport drag from './drag'\nimport drop from './drop/index'\nimport gesture from './gesture'\nimport resize from './resize'\n\nfunction install (scope: Scope) {\n scope.usePlugin(gesture)\n scope.usePlugin(resize)\n scope.usePlugin(drag)\n scope.usePlugin(drop)\n}\n\nconst id = 'actions'\n\nexport {\n id,\n install,\n gesture,\n resize,\n drag,\n drop,\n}\n","import * as domUtils from '@interactjs/utils/domUtils'\nimport * as is from '@interactjs/utils/is'\nimport raf from '@interactjs/utils/raf'\nimport { getStringOptionResult } from '@interactjs/utils/rect'\nimport { getWindow } from '@interactjs/utils/window'\n\ntype Scope = import ('@interactjs/core/scope').Scope\n\ndeclare module '@interactjs/core/scope' {\n interface Scope {\n autoScroll: typeof autoScroll\n }\n}\n\ndeclare module '@interactjs/core/Interaction' {\n interface Interaction {\n autoScroll?: typeof autoScroll\n }\n}\n\ndeclare module '@interactjs/core/defaultOptions' {\n interface PerActionDefaults {\n autoScroll?: AutoScrollOptions\n }\n}\n\nexport interface AutoScrollOptions {\n container?: Window | HTMLElement\n margin?: number\n distance?: number\n interval?: number\n speed?: number\n enabled?: boolean\n}\n\nfunction install (scope: Scope) {\n const {\n defaults,\n actions,\n } = scope\n\n scope.autoScroll = autoScroll\n autoScroll.now = () => scope.now()\n\n actions.eventTypes.push('autoscroll')\n defaults.perAction.autoScroll = autoScroll.defaults\n}\n\nconst autoScroll = {\n defaults: {\n enabled : false,\n margin : 60,\n\n // the item that is scrolled (Window or HTMLElement)\n container: null as AutoScrollOptions['container'],\n\n // the scroll speed in pixels per second\n speed : 300,\n } as AutoScrollOptions,\n\n now: Date.now,\n\n interaction: null as Interact.Interaction,\n i: 0, // the handle returned by window.setInterval\n x: 0,\n y: 0, // Direction each pulse is to scroll in\n\n isScrolling: false,\n prevTime: 0,\n margin: 0,\n speed: 0,\n\n start (interaction: Interact.Interaction) {\n autoScroll.isScrolling = true\n raf.cancel(autoScroll.i)\n\n interaction.autoScroll = autoScroll\n autoScroll.interaction = interaction\n autoScroll.prevTime = autoScroll.now()\n autoScroll.i = raf.request(autoScroll.scroll)\n },\n\n stop () {\n autoScroll.isScrolling = false\n if (autoScroll.interaction) {\n autoScroll.interaction.autoScroll = null\n }\n raf.cancel(autoScroll.i)\n },\n\n // scroll the window by the values in scroll.x/y\n scroll () {\n const { interaction } = autoScroll\n const { interactable, element } = interaction\n const actionName: Interact.ActionName = interaction.prepared.name\n const options = interactable.options[actionName].autoScroll\n const container = getContainer(options.container, interactable, element)\n const now = autoScroll.now()\n // change in time in seconds\n const dt = (now - autoScroll.prevTime) / 1000\n // displacement\n const s = options.speed * dt\n\n if (s >= 1) {\n const scrollBy = {\n x: autoScroll.x * s,\n y: autoScroll.y * s,\n }\n\n if (scrollBy.x || scrollBy.y) {\n const prevScroll = getScroll(container)\n\n if (is.window(container)) {\n container.scrollBy(scrollBy.x, scrollBy.y)\n }\n else if (container) {\n container.scrollLeft += scrollBy.x\n container.scrollTop += scrollBy.y\n }\n\n const curScroll = getScroll(container)\n const delta = {\n x: curScroll.x - prevScroll.x,\n y: curScroll.y - prevScroll.y,\n }\n\n if (delta.x || delta.y) {\n interactable.fire({\n type: 'autoscroll',\n target: element,\n interactable,\n delta,\n interaction,\n container,\n })\n }\n }\n\n autoScroll.prevTime = now\n }\n\n if (autoScroll.isScrolling) {\n raf.cancel(autoScroll.i)\n autoScroll.i = raf.request(autoScroll.scroll)\n }\n },\n check (interactable: Interact.Interactable, actionName: Interact.ActionName) {\n const options = interactable.options\n\n return options[actionName].autoScroll && options[actionName].autoScroll.enabled\n },\n onInteractionMove ({ interaction, pointer }: { interaction: Interact.Interaction, pointer: Interact.PointerType }) {\n if (!(interaction.interacting() &&\n autoScroll.check(interaction.interactable, interaction.prepared.name))) {\n return\n }\n\n if (interaction.simulation) {\n autoScroll.x = autoScroll.y = 0\n return\n }\n\n let top\n let right\n let bottom\n let left\n\n const { interactable, element } = interaction\n const actionName = interaction.prepared.name\n const options = interactable.options[actionName].autoScroll\n const container = getContainer(options.container, interactable, element)\n\n if (is.window(container)) {\n left = pointer.clientX < autoScroll.margin\n top = pointer.clientY < autoScroll.margin\n right = pointer.clientX > container.innerWidth - autoScroll.margin\n bottom = pointer.clientY > container.innerHeight - autoScroll.margin\n }\n else {\n const rect = domUtils.getElementClientRect(container)\n\n left = pointer.clientX < rect.left + autoScroll.margin\n top = pointer.clientY < rect.top + autoScroll.margin\n right = pointer.clientX > rect.right - autoScroll.margin\n bottom = pointer.clientY > rect.bottom - autoScroll.margin\n }\n\n autoScroll.x = (right ? 1 : left ? -1 : 0)\n autoScroll.y = (bottom ? 1 : top ? -1 : 0)\n\n if (!autoScroll.isScrolling) {\n // set the autoScroll properties to those of the target\n autoScroll.margin = options.margin\n autoScroll.speed = options.speed\n\n autoScroll.start(interaction)\n }\n },\n}\n\nexport function getContainer (value: any, interactable: Interact.Interactable, element: Interact.Element) {\n return (is.string(value) ? getStringOptionResult(value, interactable, element) : value) || getWindow(element)\n}\n\nexport function getScroll (container: any) {\n if (is.window(container)) { container = window.document.body }\n\n return { x: container.scrollLeft, y: container.scrollTop }\n}\n\nexport function getScrollSize (container: any) {\n if (is.window(container)) { container = window.document.body }\n\n return { x: container.scrollWidth, y: container.scrollHeight }\n}\n\nexport function getScrollSizeDelta ({ interaction, element }: {\n interaction: Partial>\n element: Interact.Element\n}, func: any) {\n const scrollOptions = interaction && interaction.interactable.options[interaction.prepared.name].autoScroll\n\n if (!scrollOptions || !scrollOptions.enabled) {\n func()\n return { x: 0, y: 0 }\n }\n\n const scrollContainer = getContainer(\n scrollOptions.container,\n interaction.interactable,\n element,\n )\n\n const prevSize = getScroll(scrollContainer)\n func()\n const curSize = getScroll(scrollContainer)\n\n return {\n x: curSize.x - prevSize.x,\n y: curSize.y - prevSize.y,\n }\n}\n\nconst autoScrollPlugin: Interact.Plugin = {\n id: 'auto-scroll',\n install,\n listeners: {\n 'interactions:new': ({ interaction }) => {\n interaction.autoScroll = null\n },\n\n 'interactions:destroy': ({ interaction }) => {\n interaction.autoScroll = null\n autoScroll.stop()\n if (autoScroll.interaction) {\n autoScroll.interaction = null\n }\n },\n\n 'interactions:stop': autoScroll.stop,\n\n 'interactions:action-move': (arg: any) => autoScroll.onInteractionMove(arg),\n },\n}\n\nexport default autoScrollPlugin\n","import { warnOnce } from '@interactjs/utils/index'\nimport * as is from '@interactjs/utils/is'\n\ndeclare module '@interactjs/core/Interactable' {\n interface Interactable {\n getAction: (\n this: Interact.Interactable,\n pointer: Interact.PointerType,\n event: Interact.PointerEventType,\n interaction: Interact.Interaction,\n element: Interact.Element,\n ) => Interact.ActionProps | null\n styleCursor: typeof styleCursor\n actionChecker: typeof actionChecker\n ignoreFrom: {\n (...args: any[]): Interactable\n (): boolean\n }\n allowFrom: {\n (...args: any[]): Interactable\n (): boolean\n }\n }\n}\n\ndeclare module '@interactjs/core/Interaction' {\n interface Interaction {\n pointerIsDown: boolean\n }\n}\n\nfunction install (scope: Interact.Scope) {\n const {\n /** @lends Interactable */\n Interactable, // tslint:disable-line no-shadowed-variable\n } = scope\n\n Interactable.prototype.getAction = function getAction (\n this: Interact.Interactable,\n pointer: Interact.PointerType,\n event: Interact.PointerEventType,\n interaction: Interact.Interaction,\n element: Interact.Element,\n ): Interact.ActionProps {\n const action = defaultActionChecker(this, event, interaction, element, scope)\n\n if (this.options.actionChecker) {\n return this.options.actionChecker(pointer, event, action, this, element, interaction)\n }\n\n return action\n }\n\n /**\n * ```js\n * interact(element, { ignoreFrom: document.getElementById('no-action') })\n * // or\n * interact(element).ignoreFrom('input, textarea, a')\n * ```\n * @deprecated\n * If the target of the `mousedown`, `pointerdown` or `touchstart` event or any\n * of it's parents match the given CSS selector or Element, no\n * drag/resize/gesture is started.\n *\n * Don't use this method. Instead set the `ignoreFrom` option for each action\n * or for `pointerEvents`\n *\n * @example\n * interact(targett)\n * .draggable({\n * ignoreFrom: 'input, textarea, a[href]'',\n * })\n * .pointerEvents({\n * ignoreFrom: '[no-pointer]',\n * })\n *\n * @param {string | Element | null} [newValue] a CSS selector string, an\n * Element or `null` to not ignore any elements\n * @return {string | Element | object} The current ignoreFrom value or this\n * Interactable\n */\n Interactable.prototype.ignoreFrom = warnOnce(function (this: Interact.Interactable, newValue) {\n return this._backCompatOption('ignoreFrom', newValue)\n }, 'Interactable.ignoreFrom() has been deprecated. Use Interactble.draggable({ignoreFrom: newValue}).')\n\n /**\n * @deprecated\n *\n * A drag/resize/gesture is started only If the target of the `mousedown`,\n * `pointerdown` or `touchstart` event or any of it's parents match the given\n * CSS selector or Element.\n *\n * Don't use this method. Instead set the `allowFrom` option for each action\n * or for `pointerEvents`\n *\n * @example\n * interact(targett)\n * .resizable({\n * allowFrom: '.resize-handle',\n * .pointerEvents({\n * allowFrom: '.handle',,\n * })\n *\n * @param {string | Element | null} [newValue] a CSS selector string, an\n * Element or `null` to allow from any element\n * @return {string | Element | object} The current allowFrom value or this\n * Interactable\n */\n Interactable.prototype.allowFrom = warnOnce(function (this: Interact.Interactable, newValue) {\n return this._backCompatOption('allowFrom', newValue)\n }, 'Interactable.allowFrom() has been deprecated. Use Interactble.draggable({allowFrom: newValue}).')\n\n /**\n * ```js\n * interact('.resize-drag')\n * .resizable(true)\n * .draggable(true)\n * .actionChecker(function (pointer, event, action, interactable, element, interaction) {\n *\n * if (interact.matchesSelector(event.target, '.drag-handle')) {\n * // force drag with handle target\n * action.name = drag\n * }\n * else {\n * // resize from the top and right edges\n * action.name = 'resize'\n * action.edges = { top: true, right: true }\n * }\n *\n * return action\n * })\n * ```\n *\n * Returns or sets the function used to check action to be performed on\n * pointerDown\n *\n * @param {function | null} [checker] A function which takes a pointer event,\n * defaultAction string, interactable, element and interaction as parameters\n * and returns an object with name property 'drag' 'resize' or 'gesture' and\n * optionally an `edges` object with boolean 'top', 'left', 'bottom' and right\n * props.\n * @return {Function | Interactable} The checker function or this Interactable\n */\n Interactable.prototype.actionChecker = actionChecker\n\n /**\n * Returns or sets whether the the cursor should be changed depending on the\n * action that would be performed if the mouse were pressed and dragged.\n *\n * @param {boolean} [newValue]\n * @return {boolean | Interactable} The current setting or this Interactable\n */\n Interactable.prototype.styleCursor = styleCursor\n}\n\nfunction defaultActionChecker (\n interactable: Interact.Interactable,\n event: Interact.PointerEventType,\n interaction: Interact.Interaction,\n element: Interact.Element,\n scope: Interact.Scope,\n) {\n const rect = interactable.getRect(element)\n const buttons = (event as MouseEvent).buttons || ({\n 0: 1,\n 1: 4,\n 3: 8,\n 4: 16,\n })[(event as MouseEvent).button as 0 | 1 | 3 | 4]\n const arg = {\n action: null,\n interactable,\n interaction,\n element,\n rect,\n buttons,\n }\n\n scope.fire('auto-start:check', arg)\n\n return arg.action\n}\n\nfunction styleCursor (this: Interact.Interactable, newValue?: boolean) {\n if (is.bool(newValue)) {\n this.options.styleCursor = newValue\n\n return this\n }\n\n if (newValue === null) {\n delete this.options.styleCursor\n\n return this\n }\n\n return this.options.styleCursor\n}\n\nfunction actionChecker (this: Interact.Interactable, checker: any) {\n if (is.func(checker)) {\n this.options.actionChecker = checker\n\n return this\n }\n\n if (checker === null) {\n delete this.options.actionChecker\n\n return this\n }\n\n return this.options.actionChecker\n}\n\nexport default {\n id: 'auto-start/interactableMethods',\n install,\n}\n","import * as utils from '@interactjs/utils/index'\nimport InteractableMethods from './InteractableMethods'\n\ndeclare module '@interactjs/interact/interact' {\n interface InteractStatic {\n maxInteractions: (newValue: any) => any\n }\n}\n\ndeclare module '@interactjs/core/scope' {\n interface Scope {\n autoStart: AutoStart\n maxInteractions: (...args: any[]) => any\n }\n\n interface SignalArgs {\n 'autoStart:before-start': Interact.SignalArgs['interactions:move']\n 'autoStart:prepared': { interaction: Interact.Interaction }\n 'auto-start:check': CheckSignalArg\n }\n}\n\ndeclare module '@interactjs/core/defaultOptions' {\n interface BaseDefaults {\n actionChecker?: any\n cursorChecker?: any\n styleCursor?: any\n }\n\n interface PerActionDefaults {\n manualStart?: boolean\n max?: number\n maxPerElement?: number\n allowFrom?: string | Interact.Element\n ignoreFrom?: string | Interact.Element\n cursorChecker?: Interact.CursorChecker\n\n // only allow left button by default\n // see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons#Return_value\n mouseButtons?: 0 | 1 | 2 | 4 | 16\n }\n}\n\ninterface CheckSignalArg {\n interactable: Interact.Interactable\n interaction: Interact.Interaction\n element: Interact.Element\n action: Interact.ActionProps\n buttons: number\n}\n\nexport interface AutoStart {\n // Allow this many interactions to happen simultaneously\n maxInteractions: number\n withinInteractionLimit: typeof withinInteractionLimit\n cursorElement: Interact.Element\n}\n\nfunction install (scope: Interact.Scope) {\n const {\n interact,\n defaults,\n } = scope\n\n scope.usePlugin(InteractableMethods)\n\n defaults.base.actionChecker = null\n defaults.base.styleCursor = true\n\n utils.extend(defaults.perAction, {\n manualStart: false,\n max: Infinity,\n maxPerElement: 1,\n allowFrom: null,\n ignoreFrom: null,\n\n // only allow left button by default\n // see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons#Return_value\n mouseButtons: 1,\n })\n\n /**\n * Returns or sets the maximum number of concurrent interactions allowed. By\n * default only 1 interaction is allowed at a time (for backwards\n * compatibility). To allow multiple interactions on the same Interactables and\n * elements, you need to enable it in the draggable, resizable and gesturable\n * `'max'` and `'maxPerElement'` options.\n *\n * @alias module:interact.maxInteractions\n *\n * @param {number} [newValue] Any number. newValue <= 0 means no interactions.\n */\n interact.maxInteractions = newValue => maxInteractions(newValue, scope)\n\n scope.autoStart = {\n // Allow this many interactions to happen simultaneously\n maxInteractions: Infinity,\n withinInteractionLimit,\n cursorElement: null,\n }\n}\n\nfunction prepareOnDown ({ interaction, pointer, event, eventTarget }: Interact.SignalArgs['interactions:down'], scope: Interact.Scope) {\n if (interaction.interacting()) { return }\n\n const actionInfo = getActionInfo(interaction, pointer, event, eventTarget, scope)\n prepare(interaction, actionInfo, scope)\n}\n\nfunction prepareOnMove ({ interaction, pointer, event, eventTarget }: Interact.SignalArgs['interactions:move'], scope: Interact.Scope) {\n if (interaction.pointerType !== 'mouse' ||\n interaction.pointerIsDown ||\n interaction.interacting()) { return }\n\n const actionInfo = getActionInfo(interaction, pointer, event, eventTarget as Interact.Element, scope)\n prepare(interaction, actionInfo, scope)\n}\n\nfunction startOnMove (arg: Interact.SignalArgs['interactions:move'], scope: Interact.Scope) {\n const { interaction } = arg\n\n if (!interaction.pointerIsDown ||\n interaction.interacting() ||\n !interaction.pointerWasMoved ||\n !interaction.prepared.name) {\n return\n }\n\n scope.fire('autoStart:before-start', arg)\n\n const { interactable } = interaction\n const actionName: Interact.ActionName = interaction.prepared.name\n\n if (actionName && interactable) {\n // check manualStart and interaction limit\n if (interactable.options[actionName].manualStart ||\n !withinInteractionLimit(interactable, interaction.element, interaction.prepared, scope)) {\n interaction.stop()\n }\n else {\n interaction.start(interaction.prepared, interactable, interaction.element)\n setInteractionCursor(interaction, scope)\n }\n }\n}\n\nfunction clearCursorOnStop ({ interaction }: { interaction: Interact.Interaction }, scope: Interact.Scope) {\n const { interactable } = interaction\n\n if (interactable && interactable.options.styleCursor) {\n setCursor(interaction.element, '', scope)\n }\n}\n\n// Check if the current interactable supports the action.\n// If so, return the validated action. Otherwise, return null\nfunction validateAction (\n action: Interact.ActionProps,\n interactable: Interact.Interactable,\n element: Interact.Element,\n eventTarget: Interact.EventTarget,\n scope: Interact.Scope,\n) {\n if (interactable.testIgnoreAllow(interactable.options[action.name], element, eventTarget) &&\n interactable.options[action.name].enabled &&\n withinInteractionLimit(interactable, element, action, scope)) {\n return action\n }\n\n return null\n}\n\nfunction validateMatches (\n interaction: Interact.Interaction,\n pointer: Interact.PointerType,\n event: Interact.PointerEventType,\n matches: Interact.Interactable[],\n matchElements: Interact.Element[],\n eventTarget: Interact.EventTarget,\n scope: Interact.Scope,\n) {\n for (let i = 0, len = matches.length; i < len; i++) {\n const match = matches[i]\n const matchElement = matchElements[i]\n const matchAction = match.getAction(pointer, event, interaction, matchElement)\n\n if (!matchAction) { continue }\n\n const action = validateAction(\n matchAction,\n match,\n matchElement,\n eventTarget,\n scope)\n\n if (action) {\n return {\n action,\n interactable: match,\n element: matchElement,\n }\n }\n }\n\n return { action: null, interactable: null, element: null }\n}\n\nfunction getActionInfo (\n interaction: Interact.Interaction,\n pointer: Interact.PointerType,\n event: Interact.PointerEventType,\n eventTarget: Interact.EventTarget,\n scope: Interact.Scope,\n) {\n let matches: Interact.Interactable[] = []\n let matchElements: Interact.Element[] = []\n\n let element = eventTarget as Interact.Element\n\n function pushMatches (interactable: Interact.Interactable) {\n matches.push(interactable)\n matchElements.push(element)\n }\n\n while (utils.is.element(element)) {\n matches = []\n matchElements = []\n\n scope.interactables.forEachMatch(element, pushMatches)\n\n const actionInfo = validateMatches(interaction, pointer, event, matches, matchElements, eventTarget, scope)\n\n if (actionInfo.action &&\n !actionInfo.interactable.options[actionInfo.action.name].manualStart) {\n return actionInfo\n }\n\n element = utils.dom.parentNode(element) as Interact.Element\n }\n\n return { action: null, interactable: null, element: null }\n}\n\nfunction prepare (\n interaction: Interact.Interaction,\n { action, interactable, element }: {\n action: Interact.ActionProps\n interactable: Interact.Interactable\n element: Interact.Element\n },\n scope: Interact.Scope,\n) {\n action = action || { name: null }\n\n interaction.interactable = interactable\n interaction.element = element\n utils.copyAction(interaction.prepared, action)\n\n interaction.rect = interactable && action.name\n ? interactable.getRect(element)\n : null\n\n setInteractionCursor(interaction, scope)\n\n scope.fire('autoStart:prepared', { interaction })\n}\n\nfunction withinInteractionLimit (\n interactable: Interact.Interactable,\n element: Interact.Element,\n action: Interact.ActionProps,\n scope: Interact.Scope,\n) {\n const options = interactable.options\n const maxActions = options[action.name].max\n const maxPerElement = options[action.name].maxPerElement\n const autoStartMax = scope.autoStart.maxInteractions\n let activeInteractions = 0\n let interactableCount = 0\n let elementCount = 0\n\n // no actions if any of these values == 0\n if (!(maxActions && maxPerElement && autoStartMax)) { return false }\n\n for (const interaction of scope.interactions.list) {\n const otherAction = interaction.prepared.name\n\n if (!interaction.interacting()) { continue }\n\n activeInteractions++\n\n if (activeInteractions >= autoStartMax) {\n return false\n }\n\n if (interaction.interactable !== interactable) { continue }\n\n interactableCount += otherAction === action.name ? 1 : 0\n\n if (interactableCount >= maxActions) {\n return false\n }\n\n if (interaction.element === element) {\n elementCount++\n\n if (otherAction === action.name && elementCount >= maxPerElement) {\n return false\n }\n }\n }\n\n return autoStartMax > 0\n}\n\nfunction maxInteractions (newValue: any, scope: Interact.Scope) {\n if (utils.is.number(newValue)) {\n scope.autoStart.maxInteractions = newValue\n\n return this\n }\n\n return scope.autoStart.maxInteractions\n}\n\nfunction setCursor (element: Interact.Element, cursor: string, scope: Interact.Scope) {\n const { cursorElement: prevCursorElement } = scope.autoStart\n\n if (prevCursorElement && prevCursorElement !== element) {\n prevCursorElement.style.cursor = ''\n }\n\n element.ownerDocument.documentElement.style.cursor = cursor\n element.style.cursor = cursor\n scope.autoStart.cursorElement = cursor ? element : null\n}\n\nfunction setInteractionCursor (interaction: Interact.Interaction, scope: Interact.Scope) {\n const { interactable, element, prepared } = interaction\n\n if (!(interaction.pointerType === 'mouse' && interactable && interactable.options.styleCursor)) {\n // clear previous target element cursor\n if (scope.autoStart.cursorElement) {\n setCursor(scope.autoStart.cursorElement, '', scope)\n }\n\n return\n }\n\n let cursor = ''\n\n if (prepared.name) {\n const cursorChecker: Interact.CursorChecker = interactable.options[prepared.name].cursorChecker\n\n if (utils.is.func(cursorChecker)) {\n cursor = cursorChecker(prepared, interactable, element, interaction._interacting)\n }\n else {\n cursor = scope.actions[prepared.name].getCursor(prepared)\n }\n }\n\n setCursor(interaction.element, cursor || '', scope)\n}\n\nconst autoStart: Interact.Plugin = {\n id: 'auto-start/base',\n before: ['actions', 'action/drag', 'actions/resize', 'actions/gesture'],\n install,\n listeners: {\n 'interactions:down': prepareOnDown,\n 'interactions:move': (arg, scope) => {\n prepareOnMove(arg, scope)\n startOnMove(arg, scope)\n },\n 'interactions:stop': clearCursorOnStop,\n },\n maxInteractions,\n withinInteractionLimit,\n validateAction,\n} as Interact.Plugin\n\nexport default autoStart\n","import { ActionName } from '@interactjs/core/scope'\nimport { parentNode } from '@interactjs/utils/domUtils'\nimport * as is from '@interactjs/utils/is'\nimport autoStart from './base'\n\nfunction beforeStart ({ interaction, eventTarget, dx, dy }: Interact.SignalArgs['interactions:move'], scope: Interact.Scope) {\n if (interaction.prepared.name !== 'drag') { return }\n\n // check if a drag is in the correct axis\n const absX = Math.abs(dx)\n const absY = Math.abs(dy)\n const targetOptions = interaction.interactable.options.drag\n const startAxis = targetOptions.startAxis\n const currentAxis = (absX > absY ? 'x' : absX < absY ? 'y' : 'xy')\n\n interaction.prepared.axis = targetOptions.lockAxis === 'start'\n ? currentAxis[0] as 'x' | 'y' // always lock to one axis even if currentAxis === 'xy'\n : targetOptions.lockAxis\n\n // if the movement isn't in the startAxis of the interactable\n if (currentAxis !== 'xy' && startAxis !== 'xy' && startAxis !== currentAxis) {\n // cancel the prepared action\n interaction.prepared.name = null\n\n // then try to get a drag from another ineractable\n let element = eventTarget as Interact.Element\n\n const getDraggable = function (interactable: Interact.Interactable): Interact.Interactable | void {\n if (interactable === interaction.interactable) { return }\n\n const options = interaction.interactable.options.drag\n\n if (!options.manualStart &&\n interactable.testIgnoreAllow(options, element, eventTarget)) {\n const action = interactable.getAction(\n interaction.downPointer, interaction.downEvent, interaction, element)\n\n if (action &&\n action.name === ActionName.Drag &&\n checkStartAxis(currentAxis, interactable) &&\n autoStart.validateAction(action, interactable, element, eventTarget, scope)) {\n return interactable\n }\n }\n }\n\n // check all interactables\n while (is.element(element)) {\n const interactable = scope.interactables.forEachMatch(element, getDraggable)\n\n if (interactable) {\n interaction.prepared.name = ActionName.Drag\n interaction.interactable = interactable\n interaction.element = element\n break\n }\n\n element = parentNode(element) as Interact.Element\n }\n }\n}\n\nfunction checkStartAxis (startAxis: string, interactable: Interact.Interactable) {\n if (!interactable) { return false }\n\n const thisAxis = interactable.options[ActionName.Drag].startAxis\n\n return (startAxis === 'xy' || thisAxis === 'xy' || thisAxis === startAxis)\n}\n\nexport default {\n id: 'auto-start/dragAxis',\n listeners: { 'autoStart:before-start': beforeStart },\n}\n","import basePlugin from './base'\n\ndeclare module '@interactjs/core/defaultOptions' {\n interface PerActionDefaults {\n hold?: number\n delay?: number\n }\n}\n\ndeclare module '@interactjs/core/Interaction' {\n interface Interaction {\n autoStartHoldTimer?: any\n }\n}\n\nfunction install (scope: Interact.Scope) {\n const {\n defaults,\n } = scope\n\n scope.usePlugin(basePlugin)\n\n defaults.perAction.hold = 0\n defaults.perAction.delay = 0\n}\n\nfunction getHoldDuration (interaction) {\n const actionName = interaction.prepared && interaction.prepared.name\n\n if (!actionName) { return null }\n\n const options = interaction.interactable.options\n\n return options[actionName].hold || options[actionName].delay\n}\n\nexport default {\n id: 'auto-start/hold',\n install,\n listeners: {\n 'interactions:new': ({ interaction }) => {\n interaction.autoStartHoldTimer = null\n },\n\n 'autoStart:prepared': ({ interaction }) => {\n const hold = getHoldDuration(interaction)\n\n if (hold > 0) {\n interaction.autoStartHoldTimer = setTimeout(() => {\n interaction.start(interaction.prepared, interaction.interactable, interaction.element)\n }, hold)\n }\n },\n\n 'interactions:move': ({ interaction, duplicate }) => {\n if (interaction.pointerWasMoved && !duplicate) {\n clearTimeout(interaction.autoStartHoldTimer)\n }\n },\n\n // prevent regular down->move autoStart\n 'autoStart:before-start': ({ interaction }) => {\n const hold = getHoldDuration(interaction)\n\n if (hold > 0) {\n interaction.prepared.name = null\n }\n },\n },\n getHoldDuration,\n}\n","import autoStart from './base'\nimport dragAxis from './dragAxis'\nimport hold from './hold'\n\nfunction install (scope) {\n scope.usePlugin(autoStart)\n scope.usePlugin(hold)\n scope.usePlugin(dragAxis)\n}\n\nconst id = 'auto-start'\n\nexport {\n id,\n install,\n autoStart,\n hold,\n dragAxis,\n}\n","import { matchesSelector, nodeContains } from '@interactjs/utils/domUtils'\nimport events from '@interactjs/utils/events'\nimport * as is from '@interactjs/utils/is'\nimport { getWindow } from '@interactjs/utils/window'\n\ndeclare module '@interactjs/core/Interactable' {\n interface Interactable {\n preventDefault: typeof preventDefault\n checkAndPreventDefault: (event: Event) => void\n }\n}\n\nfunction preventDefault (this: Interact.Interactable, newValue?: 'always' | 'never' | 'auto') {\n if (/^(always|never|auto)$/.test(newValue)) {\n this.options.preventDefault = newValue\n return this\n }\n\n if (is.bool(newValue)) {\n this.options.preventDefault = newValue ? 'always' : 'never'\n return this\n }\n\n return this.options.preventDefault\n}\n\nfunction checkAndPreventDefault (interactable: Interact.Interactable, scope: Interact.Scope, event: Event) {\n const setting = interactable.options.preventDefault\n\n if (setting === 'never') { return }\n\n if (setting === 'always') {\n event.preventDefault()\n return\n }\n\n // setting === 'auto'\n\n // if the browser supports passive event listeners and isn't running on iOS,\n // don't preventDefault of touch{start,move} events. CSS touch-action and\n // user-select should be used instead of calling event.preventDefault().\n if (events.supportsPassive && /^touch(start|move)$/.test(event.type)) {\n const doc = getWindow(event.target).document\n const docOptions = scope.getDocOptions(doc)\n\n if (!(docOptions && docOptions.events) || docOptions.events.passive !== false) {\n return\n }\n }\n\n // don't preventDefault of pointerdown events\n if (/^(mouse|pointer|touch)*(down|start)/i.test(event.type)) {\n return\n }\n\n // don't preventDefault on editable elements\n if (is.element(event.target) &&\n matchesSelector(event.target, 'input,select,textarea,[contenteditable=true],[contenteditable=true] *')) {\n return\n }\n\n event.preventDefault()\n}\n\nfunction onInteractionEvent ({ interaction, event }: { interaction: Interact.Interaction, event: Interact.PointerEventType }) {\n if (interaction.interactable) {\n interaction.interactable.checkAndPreventDefault(event as Event)\n }\n}\n\nexport function install (scope: Interact.Scope) {\n /** @lends Interactable */\n const { Interactable } = scope\n\n /**\n * Returns or sets whether to prevent the browser's default behaviour in\n * response to pointer events. Can be set to:\n * - `'always'` to always prevent\n * - `'never'` to never prevent\n * - `'auto'` to let interact.js try to determine what would be best\n *\n * @param {string} [newValue] `'always'`, `'never'` or `'auto'`\n * @return {string | Interactable} The current setting or this Interactable\n */\n Interactable.prototype.preventDefault = preventDefault\n\n Interactable.prototype.checkAndPreventDefault = function (event) {\n return checkAndPreventDefault(this, scope, event)\n }\n\n // prevent native HTML5 drag on interact.js target elements\n scope.interactions.docEvents.push({\n type: 'dragstart',\n listener (event) {\n for (const interaction of scope.interactions.list) {\n if (interaction.element &&\n (interaction.element === event.target ||\n nodeContains(interaction.element, event.target))) {\n interaction.interactable.checkAndPreventDefault(event)\n return\n }\n }\n },\n })\n}\n\nexport default {\n id: 'core/interactablePreventDefault',\n install,\n listeners: ['down', 'move', 'up', 'cancel'].reduce((acc, eventType) => {\n acc[`interactions:${eventType}`] = onInteractionEvent\n return acc\n }, {} as any),\n}\n","/* eslint-disable no-console */\n/* global process */\nimport domObjects from '@interactjs/utils/domObjects'\nimport { parentNode } from '@interactjs/utils/domUtils'\nimport extend from '@interactjs/utils/extend'\nimport * as is from '@interactjs/utils/is'\nimport win from '@interactjs/utils/window'\n\ndeclare module '@interactjs/core/scope' {\n interface Scope {\n logger: Logger\n }\n}\n\ndeclare module '@interactjs/core/defaultOptions' {\n interface BaseDefaults {\n devTools?: DevToolsOptions\n }\n}\n\ndeclare module '@interactjs/core/Interactable' {\n interface Interactable {\n devTools?: Interact.OptionMethod\n }\n}\n\nexport interface DevToolsOptions {\n ignore: { [P in keyof typeof CheckName]?: boolean }\n}\n\nexport interface Logger {\n warn: (...args: any[]) => void\n error: (...args: any[]) => void\n log: (...args: any[]) => void\n}\n\nexport interface Check {\n name: CheckName\n text: string\n perform: (interaction: Interact.Interaction) => boolean\n getInfo: (interaction: Interact.Interaction) => any[]\n}\n\nenum CheckName {\n touchAction = 'touchAction',\n boxSizing = 'boxSizing',\n noListeners = 'noListeners',\n}\n\nconst prefix = '[interact.js] '\nconst links = {\n touchAction: 'https://developer.mozilla.org/en-US/docs/Web/CSS/touch-action',\n boxSizing: 'https://developer.mozilla.org/en-US/docs/Web/CSS/box-sizing',\n}\n\nconst isProduction = process.env.NODE_ENV === 'production'\n\n// eslint-disable-next-line no-restricted-syntax\nfunction install (scope: Interact.Scope, { logger }: { logger?: Logger } = {}) {\n const {\n Interactable,\n defaults,\n } = scope\n\n scope.logger = logger || console\n\n defaults.base.devTools = {\n ignore: {},\n }\n\n Interactable.prototype.devTools = function (options?: object) {\n if (options) {\n extend(this.options.devTools, options)\n return this\n }\n\n return this.options.devTools\n }\n}\n\nconst checks: Check[] = [\n {\n name: CheckName.touchAction,\n perform ({ element }) {\n return !parentHasStyle(element, 'touchAction', /pan-|pinch|none/)\n },\n getInfo ({ element }) {\n return [\n element,\n links.touchAction,\n ]\n },\n text: 'Consider adding CSS \"touch-action: none\" to this element\\n',\n },\n\n {\n name: CheckName.boxSizing,\n perform (interaction) {\n const { element } = interaction\n\n return interaction.prepared.name === 'resize' &&\n element instanceof domObjects.HTMLElement &&\n !hasStyle(element, 'boxSizing', /border-box/)\n },\n text: 'Consider adding CSS \"box-sizing: border-box\" to this resizable element',\n getInfo ({ element }) {\n return [\n element,\n links.boxSizing,\n ]\n },\n },\n\n {\n name: CheckName.noListeners,\n perform (interaction) {\n const actionName = interaction.prepared.name\n const moveListeners = interaction.interactable.events.types[`${actionName}move`] || []\n\n return !moveListeners.length\n },\n getInfo (interaction) {\n return [\n interaction.prepared.name,\n interaction.interactable,\n ]\n },\n text: 'There are no listeners set for this action',\n },\n]\n\nfunction hasStyle (element: HTMLElement, prop: keyof CSSStyleDeclaration, styleRe: RegExp) {\n return styleRe.test(element.style[prop] || win.window.getComputedStyle(element)[prop])\n}\n\nfunction parentHasStyle (element: Interact.Element, prop: keyof CSSStyleDeclaration, styleRe: RegExp) {\n let parent = element as HTMLElement\n\n while (is.element(parent)) {\n if (hasStyle(parent, prop, styleRe)) {\n return true\n }\n\n parent = parentNode(parent) as HTMLElement\n }\n\n return false\n}\n\nconst id = 'dev-tools'\nconst defaultExport: Interact.Plugin = isProduction\n ? { id, install: () => {} }\n : {\n id,\n install,\n listeners: {\n 'interactions:action-start': ({ interaction }, scope) => {\n for (const check of checks) {\n const options = interaction.interactable && interaction.interactable.options\n\n if (\n !(options && options.devTools && options.devTools.ignore[check.name]) &&\n check.perform(interaction)\n ) {\n scope.logger.warn(prefix + check.text, ...check.getInfo(interaction))\n }\n }\n },\n },\n checks,\n CheckName,\n links,\n prefix,\n }\n\nexport default defaultExport\n","import extend from '@interactjs/utils/extend'\nimport * as rectUtils from '@interactjs/utils/rect'\n\ndeclare module '@interactjs/core/scope' {\n interface Scope {\n modifiers?: any\n }\n}\n\ndeclare module '@interactjs/core/Interaction' {\n interface Interaction {\n modifiers?: {\n states: ModifierState[]\n startOffset: Interact.Rect\n startDelta: Interact.Point\n result?: ModifiersResult\n endResult: Interact.Point | void\n }\n }\n}\n\ndeclare module '@interactjs/core/InteractEvent' {\n interface InteractEvent {\n modifiers?: Array<{\n name: string\n [key: string]: any\n }>\n }\n}\ndeclare module '@interactjs/core/defaultOptions' {\n interface PerActionDefaults {\n modifiers?: Modifier[]\n }\n}\n\nexport interface Modifier<\n Defaults = any,\n State extends ModifierState = any,\n Name extends string = any\n> {\n options?: Defaults\n methods: {\n start?: (arg: ModifierArg) => void\n set: (arg: ModifierArg) => void\n beforeEnd?: (arg: ModifierArg) => Interact.Point | void\n stop?: (arg: ModifierArg) => void\n }\n name?: Name\n}\n\nexport type ModifierState<\n Defaults = {},\n StateProps extends { [prop: string]: any } = {},\n Name extends string = any\n> = {\n options: Defaults\n methods?: Modifier['methods']\n index?: number\n name?: Name\n result?: object\n} & StateProps\n\nexport interface ModifierArg {\n interaction: Interact.Interaction\n interactable: Interact.Interactable\n phase: Interact.EventPhase\n rect: Interact.FullRect\n edges: Interact.EdgeOptions\n states?: State[]\n state?: State\n element: Interact.Element\n pageCoords?: Interact.Point\n prevCoords?: Interact.Point\n prevRect?: Interact.FullRect\n coords?: Interact.Point\n startOffset?: Interact.Rect\n preEnd?: boolean\n requireEndOnly?: boolean\n}\n\nexport interface ModifierModule<\n Defaults extends { enabled?: boolean },\n State extends ModifierState,\n> {\n defaults?: Defaults\n start? (arg: ModifierArg): void\n set? (arg: ModifierArg): any\n beforeEnd? (arg: ModifierArg): Interact.Point | void\n stop? (arg: ModifierArg): void\n}\n\nexport interface ModifiersResult {\n delta: {\n x: number\n y: number\n }\n rectDelta: {\n left: number\n right: number\n top: number\n bottom: number\n }\n coords: Interact.Point\n rect: Interact.FullRect\n eventProps: any[]\n changed: boolean\n}\n\nfunction start (\n { interaction, phase }: { interaction: Interact.Interaction, phase: Interact.EventPhase },\n pageCoords: Interact.Point,\n prevCoords: Interact.Point,\n prevRect: Interact.FullRect,\n) {\n const { interactable, element, edges } = interaction\n const modifierList = getModifierList(interaction)\n const states = prepareStates(modifierList)\n\n const rect = extend({} as { [key: string]: any }, interaction.rect)\n const startOffset = getRectOffset(rect, pageCoords)\n\n interaction.modifiers.startOffset = startOffset\n interaction.modifiers.startDelta = { x: 0, y: 0 }\n\n const arg: ModifierArg = {\n interaction,\n interactable,\n element,\n pageCoords,\n phase,\n rect,\n edges,\n startOffset,\n states,\n preEnd: false,\n requireEndOnly: false,\n prevCoords,\n prevRect,\n }\n\n interaction.modifiers.states = states\n interaction.modifiers.result = null\n startAll(arg)\n\n const result = interaction.modifiers.result = setAll(arg)\n\n return result\n}\n\nexport function startAll (arg: ModifierArg) {\n const states: ModifierState[] = arg.states\n\n for (const state of states) {\n if (state.methods.start) {\n arg.state = state\n state.methods.start(arg)\n }\n }\n\n arg.interaction.edges = arg.edges\n}\n\nexport function setAll (arg: ModifierArg): ModifiersResult {\n const {\n prevCoords,\n prevRect,\n phase,\n preEnd,\n requireEndOnly,\n states,\n rect,\n } = arg\n\n arg.coords = extend({}, arg.pageCoords)\n arg.rect = extend({}, rect)\n\n const result = {\n delta: { x: 0, y: 0 },\n rectDelta: {\n left : 0,\n right : 0,\n top : 0,\n bottom: 0,\n },\n coords: arg.coords,\n rect: arg.rect,\n eventProps: [],\n changed: true,\n }\n\n const edges = arg.edges || { left: true, right: true, top: true, bottom: true }\n\n for (const state of states) {\n const { options } = state\n const lastModifierCoords = extend({}, arg.coords)\n let returnValue = null\n\n if (state.methods.set && shouldDo(options, preEnd, requireEndOnly, phase)) {\n arg.state = state\n returnValue = state.methods.set(arg)\n\n rectUtils.addEdges(edges, arg.rect, { x: arg.coords.x - lastModifierCoords.x, y: arg.coords.y - lastModifierCoords.y })\n }\n\n result.eventProps.push(returnValue)\n }\n\n result.delta.x = arg.coords.x - arg.pageCoords.x\n result.delta.y = arg.coords.y - arg.pageCoords.y\n\n result.rectDelta.left = arg.rect.left - rect.left\n result.rectDelta.right = arg.rect.right - rect.right\n result.rectDelta.top = arg.rect.top - rect.top\n result.rectDelta.bottom = arg.rect.bottom - rect.bottom\n\n const rectChanged = !prevRect || result.rect.left !== prevRect.left ||\n result.rect.right !== prevRect.right ||\n result.rect.top !== prevRect.top ||\n result.rect.bottom !== prevRect.bottom\n\n result.changed = !prevCoords || prevCoords.x !== result.coords.x ||\n prevCoords.y !== result.coords.y ||\n rectChanged\n\n return result\n}\n\nfunction beforeMove (arg: Partial & {\n interaction: Interact.Interaction\n phase: Interact.EventPhase\n preEnd?: boolean\n skipModifiers?: number\n prevCoords?: Interact.Point\n prevRect?: Interact.FullRect\n modifiedCoords?: Interact.Point\n}): void | false {\n const { interaction, phase, preEnd, skipModifiers } = arg\n const { interactable, element } = interaction\n\n const states = skipModifiers\n ? interaction.modifiers.states.slice(skipModifiers)\n : interaction.modifiers.states\n const prevCoords = arg.prevCoords || (interaction.modifiers.result\n ? interaction.modifiers.result.coords\n : null)\n const prevRect = arg.prevRect || (interaction.modifiers.result\n ? interaction.modifiers.result.rect\n : null)\n\n const modifierResult = setAll({\n interaction,\n interactable,\n element,\n preEnd,\n phase,\n pageCoords: arg.modifiedCoords || interaction.coords.cur.page,\n prevCoords,\n rect: interaction.rect,\n edges: interaction.edges,\n prevRect,\n states,\n requireEndOnly: false,\n })\n\n interaction.modifiers.result = modifierResult\n\n // don't fire an action move if a modifier would keep the event in the same\n // cordinates as before\n if (!modifierResult.changed && interaction.interacting()) {\n return false\n }\n\n if (arg.modifiedCoords) {\n const { page } = interaction.coords.cur\n const adjustment = {\n x: arg.modifiedCoords.x - page.x,\n y: arg.modifiedCoords.y - page.y,\n }\n\n modifierResult.coords.x += adjustment.x\n modifierResult.coords.y += adjustment.y\n modifierResult.delta.x += adjustment.x\n modifierResult.delta.y += adjustment.y\n }\n setCoords(arg)\n}\n\nfunction beforeEnd (arg: Interact.DoPhaseArg & { noPreEnd?: boolean, state?: ModifierState }): void | false {\n const { interaction, event, noPreEnd } = arg\n const states = interaction.modifiers.states\n\n if (noPreEnd || !states || !states.length) {\n return\n }\n\n let didPreEnd = false\n\n for (const state of states) {\n arg.state = state\n const { options, methods } = state\n\n const endPosition = methods.beforeEnd && methods.beforeEnd(arg as unknown as ModifierArg)\n\n if (endPosition) {\n interaction.modifiers.endResult = endPosition\n return false\n }\n\n // if the endOnly option is true for any modifier\n if (!didPreEnd && shouldDo(options, true, true)) {\n // fire a move event at the modified coordinates\n interaction.move({ event, preEnd: true })\n didPreEnd = true\n }\n }\n}\n\nfunction stop (arg: { interaction: Interact.Interaction, phase: Interact.EventPhase }) {\n const { interaction } = arg\n const states = interaction.modifiers.states\n\n if (!states || !states.length) {\n return\n }\n\n const modifierArg: ModifierArg = extend({\n states,\n interactable: interaction.interactable,\n element: interaction.element,\n rect: null,\n }, arg as any)\n\n for (const state of states) {\n modifierArg.state = state\n\n if (state.methods.stop) { state.methods.stop(modifierArg) }\n }\n\n arg.interaction.modifiers.states = null\n arg.interaction.modifiers.endResult = null\n}\n\nfunction getModifierList (interaction) {\n const actionOptions = interaction.interactable.options[interaction.prepared.name]\n const actionModifiers = actionOptions.modifiers\n\n if (actionModifiers && actionModifiers.length) {\n return actionModifiers.filter(\n modifier => !modifier.options || modifier.options.enabled !== false,\n )\n }\n\n return ['snap', 'snapSize', 'snapEdges', 'restrict', 'restrictEdges', 'restrictSize']\n .map(type => {\n const options = actionOptions[type]\n\n return options && options.enabled && {\n options,\n methods: options._methods,\n }\n })\n .filter(m => !!m)\n}\n\nexport function prepareStates (modifierList: Modifier[]) {\n const states: ModifierState[] = []\n\n for (let index = 0; index < modifierList.length; index++) {\n const { options, methods, name } = modifierList[index]\n\n if (options && options.enabled === false) { continue }\n\n states.push({\n options,\n methods,\n index,\n name,\n })\n }\n\n return states\n}\n\nexport function setCoords (arg: { interaction: Interact.Interaction, phase: Interact.EventPhase, rect?: Interact.Rect }) {\n const { interaction, phase } = arg\n const curCoords = interaction.coords.cur\n const startCoords = interaction.coords.start\n const { result, startDelta } = interaction.modifiers\n const curDelta = result.delta\n\n if (phase === 'start') {\n extend(interaction.modifiers.startDelta, result.delta)\n }\n\n for (const [coordsSet, delta] of [[startCoords, startDelta], [curCoords, curDelta]] as const) {\n coordsSet.page.x += delta.x\n coordsSet.page.y += delta.y\n coordsSet.client.x += delta.x\n coordsSet.client.y += delta.y\n }\n\n const { rectDelta } = interaction.modifiers.result\n const rect = arg.rect || interaction.rect\n\n rect.left += rectDelta.left\n rect.right += rectDelta.right\n rect.top += rectDelta.top\n rect.bottom += rectDelta.bottom\n\n rect.width = rect.right - rect.left\n rect.height = rect.bottom - rect.top\n}\n\nexport function restoreCoords ({ interaction: { coords, rect, modifiers } }: { interaction: Interact.Interaction }) {\n if (!modifiers.result) { return }\n\n const { startDelta } = modifiers\n const { delta: curDelta, rectDelta } = modifiers.result\n\n const coordsAndDeltas = [\n [coords.start, startDelta],\n [coords.cur, curDelta],\n ]\n\n for (const [coordsSet, delta] of coordsAndDeltas as any) {\n coordsSet.page.x -= delta.x\n coordsSet.page.y -= delta.y\n coordsSet.client.x -= delta.x\n coordsSet.client.y -= delta.y\n }\n\n rect.left -= rectDelta.left\n rect.right -= rectDelta.right\n rect.top -= rectDelta.top\n rect.bottom -= rectDelta.bottom\n}\n\nexport function shouldDo (options, preEnd?: boolean, requireEndOnly?: boolean, phase?: string) {\n return options\n ? options.enabled !== false &&\n (preEnd || !options.endOnly) &&\n (!requireEndOnly || options.endOnly || options.alwaysOnEnd) &&\n (options.setStart || phase !== 'start')\n : !requireEndOnly\n}\n\nexport function getRectOffset (rect, coords) {\n return rect\n ? {\n left : coords.x - rect.left,\n top : coords.y - rect.top,\n right : rect.right - coords.x,\n bottom: rect.bottom - coords.y,\n }\n : {\n left : 0,\n top : 0,\n right : 0,\n bottom: 0,\n }\n}\n\nexport function makeModifier<\n Defaults extends { enabled?: boolean },\n State extends ModifierState,\n Name extends string\n> (\n module: ModifierModule,\n name?: Name,\n) {\n const { defaults } = module\n const methods = {\n start: module.start,\n set: module.set,\n beforeEnd: module.beforeEnd,\n stop: module.stop,\n }\n\n const modifier = (_options?: Partial) => {\n const options: Defaults = (_options || {}) as Defaults\n\n options.enabled = options.enabled !== false\n\n // add missing defaults to options\n for (const prop in defaults) {\n if (!(prop in options)) {\n options[prop] = defaults[prop]\n }\n }\n\n const m: Modifier = { options, methods, name }\n\n return m\n }\n\n if (name && typeof name === 'string') {\n // for backwrads compatibility\n modifier._defaults = defaults\n modifier._methods = methods\n }\n\n return modifier\n}\n\nfunction addEventModifiers ({ iEvent, interaction: { modifiers: { result } } }: {\n iEvent: Interact.InteractEvent\n interaction: Interact.Interaction\n}) {\n if (result) {\n iEvent.modifiers = result.eventProps\n }\n}\n\nconst modifiersBase: Interact.Plugin = {\n id: 'modifiers/base',\n install: scope => {\n scope.defaults.perAction.modifiers = []\n },\n listeners: {\n 'interactions:new': ({ interaction }) => {\n interaction.modifiers = {\n startOffset: { left: 0, right: 0, top: 0, bottom: 0 },\n states: null,\n result: null,\n endResult: null,\n startDelta: null,\n }\n },\n\n 'interactions:before-action-start': arg => {\n start(arg, arg.interaction.coords.start.page, null, null)\n setCoords(arg)\n },\n 'interactions:after-action-start': restoreCoords,\n 'interactions:before-action-move': beforeMove,\n 'interactions:after-action-move': restoreCoords,\n\n 'interactions:action-resume': arg => {\n const { coords: prevCoords, rect: prevRect } = arg.interaction.modifiers.result\n\n stop(arg)\n start(arg, arg.interaction.coords.cur.page, prevCoords, prevRect)\n beforeMove(arg)\n },\n\n 'interactions:before-action-end': beforeEnd,\n 'interactions:action-start': addEventModifiers,\n 'interactions:action-move': addEventModifiers,\n 'interactions:action-end': addEventModifiers,\n 'interactions:stop': stop,\n },\n before: ['actions', 'action/drag', 'actions/resize', 'actions/gesture'],\n}\n\nexport default modifiersBase\n","import { EventPhase } from '@interactjs/core/InteractEvent'\nimport * as modifiers from '@interactjs/modifiers/base'\nimport * as utils from '@interactjs/utils/index'\nimport raf from '@interactjs/utils/raf'\n\ndeclare module '@interactjs/core/InteractEvent' {\n // eslint-disable-next-line no-shadow\n enum EventPhase {\n Resume = 'resume',\n InertiaStart = 'inertiastart',\n }\n}\n\ndeclare module '@interactjs/core/Interaction' {\n interface Interaction {\n inertia?: {\n active: boolean\n smoothEnd: boolean\n allowResume: boolean\n\n startEvent?: Interact.InteractEvent\n upCoords: {\n page: Interact.Point\n client: Interact.Point\n timeStamp: number\n }\n\n xe?: number\n ye?: number\n sx?: number\n sy?: number\n\n t0?: number\n te?: number\n v0?: number\n vx0?: number\n vy0?: number\n duration?: number\n modifiedXe?: number\n modifiedYe?: number\n\n lambda_v0?: number // eslint-disable-line camelcase\n one_ve_v0?: number // eslint-disable-line camelcase\n timeout: any\n }\n }\n}\n\ndeclare module '@interactjs/core/defaultOptions' {\n interface PerActionDefaults {\n inertia?: {\n enabled?: boolean\n resistance?: number // the lambda in exponential decay\n minSpeed?: number // target speed must be above this for inertia to start\n endSpeed?: number // the speed at which inertia is slow enough to stop\n allowResume?: true // allow resuming an action in inertia phase\n smoothEndDuration?: number // animate to snap/restrict endOnly if there's no inertia\n }\n }\n}\n\ndeclare module '@interactjs/core/scope' {\n interface SignalArgs {\n 'interactions:action-resume': {\n interaction: Interact.Interaction\n phase: EventPhase.Resume\n }\n }\n}\n\n(EventPhase as any).Resume = 'resume'\n;(EventPhase as any).InertiaStart = 'inertiastart'\n\nfunction install (scope: Interact.Scope) {\n const {\n defaults,\n } = scope\n\n scope.usePlugin(modifiers.default)\n\n defaults.perAction.inertia = {\n enabled : false,\n resistance : 10, // the lambda in exponential decay\n minSpeed : 100, // target speed must be above this for inertia to start\n endSpeed : 10, // the speed at which inertia is slow enough to stop\n allowResume : true, // allow resuming an action in inertia phase\n smoothEndDuration: 300, // animate to snap/restrict endOnly if there's no inertia\n }\n}\n\nfunction resume (\n { interaction, event, pointer, eventTarget }: Interact.SignalArgs['interactions:down'],\n scope: Interact.Scope,\n) {\n const state = interaction.inertia\n\n // Check if the down event hits the current inertia target\n if (state.active) {\n let element = eventTarget as Node\n\n // climb up the DOM tree from the event target\n while (utils.is.element(element)) {\n // if interaction element is the current inertia target element\n if (element === interaction.element) {\n // stop inertia\n raf.cancel(state.timeout)\n state.active = false\n interaction.simulation = null\n\n // update pointers to the down event's coordinates\n interaction.updatePointer(pointer as Interact.PointerType, event as Interact.PointerEventType, eventTarget, true)\n utils.pointer.setCoords(\n interaction.coords.cur,\n interaction.pointers.map(p => p.pointer),\n interaction._now(),\n )\n\n // fire appropriate signals\n const signalArg = {\n interaction,\n phase: EventPhase.Resume as const,\n }\n\n scope.fire('interactions:action-resume', signalArg)\n\n // fire a reume event\n const resumeEvent = new scope.InteractEvent(\n interaction, event as Interact.PointerEventType, interaction.prepared.name, EventPhase.Resume, interaction.element)\n\n interaction._fireEvent(resumeEvent)\n\n utils.pointer.copyCoords(interaction.coords.prev, interaction.coords.cur)\n break\n }\n\n element = utils.dom.parentNode(element)\n }\n }\n}\n\nfunction release (\n { interaction, event, noPreEnd }: Interact.DoPhaseArg & { noPreEnd?: boolean },\n scope: Interact.Scope,\n) {\n const state = interaction.inertia\n\n if (!interaction.interacting() ||\n (interaction.simulation && interaction.simulation.active) ||\n noPreEnd) {\n return null\n }\n\n const options = getOptions(interaction)\n\n const now = interaction._now()\n const { client: velocityClient } = interaction.coords.velocity\n const pointerSpeed = utils.hypot(velocityClient.x, velocityClient.y)\n\n let smoothEnd = false\n let modifierResult: ReturnType\n\n // check if inertia should be started\n const inertiaPossible = (options && options.enabled &&\n interaction.prepared.name !== 'gesture' &&\n event !== state.startEvent)\n\n const inertia = (inertiaPossible &&\n (now - interaction.coords.cur.timeStamp) < 50 &&\n pointerSpeed > options.minSpeed &&\n pointerSpeed > options.endSpeed)\n\n const modifierArg: modifiers.ModifierArg = {\n interaction,\n interactable: interaction.interactable,\n element: interaction.element,\n rect: interaction.rect,\n edges: interaction.edges,\n pageCoords: interaction.coords.cur.page,\n states: inertiaPossible && interaction.modifiers.states.map(\n modifierState => utils.extend({}, modifierState),\n ),\n preEnd: true,\n prevCoords: null,\n prevRect: null,\n requireEndOnly: null,\n phase: EventPhase.InertiaStart,\n }\n\n // smoothEnd\n if (inertiaPossible && !inertia) {\n modifierArg.prevCoords = interaction.modifiers.result.coords\n modifierArg.prevRect = interaction.modifiers.result.rect\n modifierArg.requireEndOnly = false\n modifierResult = modifiers.setAll(modifierArg)\n\n smoothEnd = modifierResult.changed\n }\n\n if (!(inertia || smoothEnd)) { return null }\n\n utils.pointer.copyCoords(state.upCoords, interaction.coords.cur)\n\n modifiers.setCoords(modifierArg)\n interaction.pointers[0].pointer = state.startEvent = new scope.InteractEvent(\n interaction,\n event,\n // FIXME add proper typing Action.name\n interaction.prepared.name as T,\n EventPhase.InertiaStart,\n interaction.element,\n )\n modifiers.restoreCoords(modifierArg)\n\n state.t0 = now\n\n state.active = true\n state.allowResume = options.allowResume\n interaction.simulation = state\n\n interaction.interactable.fire(state.startEvent)\n\n if (inertia) {\n state.vx0 = interaction.coords.velocity.client.x\n state.vy0 = interaction.coords.velocity.client.y\n state.v0 = pointerSpeed\n\n calcInertia(interaction, state)\n\n utils.extend(modifierArg.pageCoords, interaction.coords.cur.page)\n\n modifierArg.pageCoords.x += state.xe\n modifierArg.pageCoords.y += state.ye\n modifierArg.prevCoords = null\n modifierArg.prevRect = null\n modifierArg.requireEndOnly = true\n\n modifierResult = modifiers.setAll(modifierArg)\n\n state.modifiedXe += modifierResult.delta.x\n state.modifiedYe += modifierResult.delta.y\n\n state.timeout = raf.request(() => inertiaTick(interaction))\n }\n else {\n state.smoothEnd = true\n state.xe = modifierResult.delta.x\n state.ye = modifierResult.delta.y\n\n state.sx = state.sy = 0\n\n state.timeout = raf.request(() => smothEndTick(interaction))\n }\n\n return false\n}\n\nfunction stop ({ interaction }: Interact.DoPhaseArg) {\n const state = interaction.inertia\n if (state.active) {\n raf.cancel(state.timeout)\n state.active = false\n interaction.simulation = null\n }\n}\n\nfunction calcInertia (interaction: Interact.Interaction, state) {\n const options = getOptions(interaction)\n const lambda = options.resistance\n const inertiaDur = -Math.log(options.endSpeed / state.v0) / lambda\n\n state.x0 = interaction.prevEvent.page.x\n state.y0 = interaction.prevEvent.page.y\n state.t0 = state.startEvent.timeStamp / 1000\n state.sx = state.sy = 0\n\n state.modifiedXe = state.xe = (state.vx0 - inertiaDur) / lambda\n state.modifiedYe = state.ye = (state.vy0 - inertiaDur) / lambda\n state.te = inertiaDur\n\n state.lambda_v0 = lambda / state.v0\n state.one_ve_v0 = 1 - options.endSpeed / state.v0\n}\n\nfunction inertiaTick (interaction: Interact.Interaction) {\n updateInertiaCoords(interaction)\n utils.pointer.setCoordDeltas(interaction.coords.delta, interaction.coords.prev, interaction.coords.cur)\n utils.pointer.setCoordVelocity(interaction.coords.velocity, interaction.coords.delta)\n\n const state = interaction.inertia\n const options = getOptions(interaction)\n const lambda = options.resistance\n const t = interaction._now() / 1000 - state.t0\n\n if (t < state.te) {\n const progress = 1 - (Math.exp(-lambda * t) - state.lambda_v0) / state.one_ve_v0\n\n if (state.modifiedXe === state.xe && state.modifiedYe === state.ye) {\n state.sx = state.xe * progress\n state.sy = state.ye * progress\n }\n else {\n const quadPoint = utils.getQuadraticCurvePoint(\n 0, 0,\n state.xe, state.ye,\n state.modifiedXe, state.modifiedYe,\n progress)\n\n state.sx = quadPoint.x\n state.sy = quadPoint.y\n }\n\n interaction.move({ event: state.startEvent })\n\n state.timeout = raf.request(() => inertiaTick(interaction))\n }\n else {\n state.sx = state.modifiedXe\n state.sy = state.modifiedYe\n\n interaction.move({ event: state.startEvent })\n interaction.end(state.startEvent)\n state.active = false\n interaction.simulation = null\n }\n\n utils.pointer.copyCoords(interaction.coords.prev, interaction.coords.cur)\n}\n\nfunction smothEndTick (interaction: Interact.Interaction) {\n updateInertiaCoords(interaction)\n\n const state = interaction.inertia\n const t = interaction._now() - state.t0\n const { smoothEndDuration: duration } = getOptions(interaction)\n\n if (t < duration) {\n state.sx = utils.easeOutQuad(t, 0, state.xe, duration)\n state.sy = utils.easeOutQuad(t, 0, state.ye, duration)\n\n interaction.move({ event: state.startEvent })\n\n state.timeout = raf.request(() => smothEndTick(interaction))\n }\n else {\n state.sx = state.xe\n state.sy = state.ye\n\n interaction.move({ event: state.startEvent })\n interaction.end(state.startEvent)\n\n state.smoothEnd =\n state.active = false\n interaction.simulation = null\n }\n}\n\nfunction updateInertiaCoords (interaction: Interact.Interaction) {\n const state = interaction.inertia\n\n // return if inertia isn't running\n if (!state.active) { return }\n\n const pageUp = state.upCoords.page\n const clientUp = state.upCoords.client\n\n utils.pointer.setCoords(interaction.coords.cur, [{\n pageX : pageUp.x + state.sx,\n pageY : pageUp.y + state.sy,\n clientX: clientUp.x + state.sx,\n clientY: clientUp.y + state.sy,\n }], interaction._now())\n}\n\nfunction getOptions ({ interactable, prepared }: Interact.Interaction) {\n return interactable &&\n interactable.options &&\n prepared.name &&\n interactable.options[prepared.name].inertia\n}\n\nconst inertia: Interact.Plugin = {\n id: 'inertia',\n install,\n listeners: {\n 'interactions:new': ({ interaction }) => {\n interaction.inertia = {\n active : false,\n smoothEnd : false,\n allowResume: false,\n upCoords : {} as any,\n timeout : null,\n }\n },\n\n 'interactions:before-action-end': release,\n 'interactions:down': resume,\n 'interactions:stop': stop,\n },\n before: ['modifiers/base'],\n calcInertia,\n inertiaTick,\n smothEndTick,\n updateInertiaCoords,\n}\n\nexport default inertia\n","/* eslint-disable */\n\n/**\n * @module modifiers/aspectRatio\n *\n * @description\n * This module forces elements to be resized with a specified dx/dy ratio.\n *\n * @example\n * interact(target).resizable({\n * modifiers: [\n * interact.modifiers.snapSize({\n * targets: [ interact.createSnapGrid({ x: 20, y: 20 }) ],\n * }),\n * interact.aspectRatio({ ratio: 'preserve' }),\n * ],\n * });\n */\n\nimport extend from '@interactjs/utils/extend'\nimport { addEdges } from '@interactjs/utils/rect'\nimport { Modifier, ModifierModule, ModifierState, prepareStates, setAll, startAll } from './base'\n\nexport interface AspectRatioOptions {\n ratio?: number | 'preserve'\n equalDelta?: boolean\n modifiers?: Modifier[]\n enabled?: boolean\n}\n\nexport type AspectRatioState = ModifierState\n\nconst aspectRatio: ModifierModule = {\n start (arg) {\n const { state, rect, edges: originalEdges, pageCoords: coords } = arg\n let { ratio } = state.options\n const { equalDelta, modifiers } = state.options\n\n if (ratio === 'preserve') {\n ratio = rect.width / rect.height\n }\n\n state.startCoords = extend({}, coords)\n state.startRect = extend({}, rect)\n state.ratio = ratio\n state.equalDelta = equalDelta\n\n const linkedEdges = state.linkedEdges = {\n top : originalEdges.top || (originalEdges.left && !originalEdges.bottom),\n left : originalEdges.left || (originalEdges.top && !originalEdges.right),\n bottom: originalEdges.bottom || (originalEdges.right && !originalEdges.top),\n right : originalEdges.right || (originalEdges.bottom && !originalEdges.left),\n }\n\n state.xIsPrimaryAxis = !!(originalEdges.left || originalEdges.right)\n\n if (state.equalDelta) {\n state.edgeSign = (linkedEdges.left ? 1 : -1) * (linkedEdges.top ? 1 : -1) as 1 | -1\n }\n else {\n const negativeSecondaryEdge = state.xIsPrimaryAxis ? linkedEdges.top : linkedEdges.left\n state.edgeSign = negativeSecondaryEdge ? -1 : 1\n }\n\n extend(arg.edges, linkedEdges)\n\n if (!modifiers || !modifiers.length) { return }\n\n state.subStates = prepareStates(modifiers).map(subState => {\n subState.options = {\n ...subState.options,\n }\n\n return subState\n })\n\n return startAll({\n ...arg,\n states: state.subStates,\n })\n },\n\n set (arg) {\n const { state, rect, coords } = arg\n const initialCoords = extend({}, coords)\n const aspectMethod = state.equalDelta ? setEqualDelta : setRatio\n\n aspectMethod(state, state.xIsPrimaryAxis, coords, rect)\n\n if (!state.subStates) { return null }\n\n const correctedRect = extend({}, rect)\n\n addEdges(state.linkedEdges, correctedRect, { x: coords.x - initialCoords.x, y: coords.y - initialCoords.y })\n\n const result = setAll({\n ...arg,\n rect: correctedRect,\n edges: state.linkedEdges,\n pageCoords: coords,\n states: state.subStates,\n prevCoords: coords,\n prevRect: correctedRect,\n })\n\n const { delta } = result\n\n if (result.changed) {\n const xIsCriticalAxis = Math.abs(delta.x) > Math.abs(delta.y)\n\n // do aspect modification again with critical edge axis as primary\n aspectMethod(state, xIsCriticalAxis, result.coords, result.rect)\n extend(coords, result.coords)\n }\n\n return result.eventProps\n },\n\n defaults: {\n ratio: 'preserve',\n equalDelta: false,\n modifiers: [],\n enabled: false,\n },\n}\n\nfunction setEqualDelta ({ startCoords, edgeSign }: AspectRatioState, xIsPrimaryAxis: boolean, coords: Interact.Point) {\n if (xIsPrimaryAxis) {\n coords.y = startCoords.y + (coords.x - startCoords.x) * edgeSign\n }\n else {\n coords.x = startCoords.x + (coords.y - startCoords.y) * edgeSign\n }\n}\n\nfunction setRatio ({ startRect, startCoords, ratio, edgeSign }: AspectRatioState, xIsPrimaryAxis: boolean, coords: Interact.Point, rect: Interact.Rect) {\n if (xIsPrimaryAxis) {\n const newHeight = rect.width / ratio\n\n coords.y = startCoords.y + (newHeight - startRect.height) * edgeSign\n }\n else {\n const newWidth = rect.height * ratio\n\n coords.x = startCoords.x + (newWidth - startRect.width) * edgeSign\n }\n}\n\nexport default aspectRatio\n","import extend from '@interactjs/utils/extend'\nimport * as is from '@interactjs/utils/is'\nimport * as rectUtils from '@interactjs/utils/rect'\nimport { ModifierArg, ModifierModule, ModifierState } from '../base'\n\nexport interface RestrictOptions {\n // where to drag over\n restriction: Interact.RectResolvable<[number, number, Interact.Interaction]>\n // what part of self is allowed to drag over\n elementRect: Interact.Rect\n offset: Interact.Rect\n // restrict just before the end drag\n endOnly: boolean\n enabled?: boolean\n}\n\nexport type RestrictState = ModifierState\n\nfunction start ({ rect, startOffset, state, interaction, pageCoords }: ModifierArg) {\n const { options } = state\n const { elementRect } = options\n const offset: Interact.Rect = extend({\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n }, options.offset || {})\n\n if (rect && elementRect) {\n const restriction = getRestrictionRect(options.restriction, interaction, pageCoords)\n\n if (restriction) {\n const widthDiff = (restriction.right - restriction.left) - rect.width\n const heightDiff = (restriction.bottom - restriction.top) - rect.height\n\n if (widthDiff < 0) {\n offset.left += widthDiff\n offset.right += widthDiff\n }\n if (heightDiff < 0) {\n offset.top += heightDiff\n offset.bottom += heightDiff\n }\n }\n\n offset.left += startOffset.left - (rect.width * elementRect.left)\n offset.top += startOffset.top - (rect.height * elementRect.top)\n\n offset.right += startOffset.right - (rect.width * (1 - elementRect.right))\n offset.bottom += startOffset.bottom - (rect.height * (1 - elementRect.bottom))\n }\n\n state.offset = offset\n}\n\nfunction set ({ coords, interaction, state }: ModifierArg) {\n const { options, offset } = state\n\n const restriction = getRestrictionRect(options.restriction, interaction, coords)\n\n if (!restriction) { return }\n\n const rect = rectUtils.xywhToTlbr(restriction)\n\n coords.x = Math.max(Math.min(rect.right - offset.right, coords.x), rect.left + offset.left)\n coords.y = Math.max(Math.min(rect.bottom - offset.bottom, coords.y), rect.top + offset.top)\n}\n\nexport function getRestrictionRect (\n value: Interact.RectResolvable<[number, number, Interact.Interaction]>,\n interaction: Interact.Interaction,\n coords?: Interact.Point,\n) {\n if (is.func(value)) {\n return rectUtils.resolveRectLike(value, interaction.interactable, interaction.element, [coords.x, coords.y, interaction])\n } else {\n return rectUtils.resolveRectLike(value, interaction.interactable, interaction.element)\n }\n}\n\nconst defaults: RestrictOptions = {\n restriction: null,\n elementRect: null,\n offset: null,\n endOnly: false,\n enabled: false,\n}\n\nconst restrict: ModifierModule = {\n start,\n set,\n defaults,\n}\n\nexport default restrict\n","// This module adds the options.resize.restrictEdges setting which sets min and\n// max for the top, left, bottom and right edges of the target being resized.\n//\n// interact(target).resize({\n// edges: { top: true, left: true },\n// restrictEdges: {\n// inner: { top: 200, left: 200, right: 400, bottom: 400 },\n// outer: { top: 0, left: 0, right: 600, bottom: 600 },\n// },\n// })\n\nimport extend from '@interactjs/utils/extend'\nimport * as rectUtils from '@interactjs/utils/rect'\nimport { ModifierArg, ModifierState } from '../base'\nimport { getRestrictionRect, RestrictOptions } from './pointer'\n\nexport interface RestrictEdgesOptions {\n inner: RestrictOptions['restriction']\n outer: RestrictOptions['restriction']\n offset?: RestrictOptions['offset']\n endOnly: boolean\n enabled?: boolean\n}\n\nexport type RestrictEdgesState = ModifierState\n\nconst noInner = { top: +Infinity, left: +Infinity, bottom: -Infinity, right: -Infinity }\nconst noOuter = { top: -Infinity, left: -Infinity, bottom: +Infinity, right: +Infinity }\n\nfunction start ({ interaction, startOffset, state }: ModifierArg) {\n const { options } = state\n let offset\n\n if (options) {\n const offsetRect = getRestrictionRect(options.offset, interaction, interaction.coords.start.page)\n\n offset = rectUtils.rectToXY(offsetRect)\n }\n\n offset = offset || { x: 0, y: 0 }\n\n state.offset = {\n top: offset.y + startOffset.top,\n left: offset.x + startOffset.left,\n bottom: offset.y - startOffset.bottom,\n right: offset.x - startOffset.right,\n }\n}\n\nfunction set ({ coords, edges, interaction, state }: ModifierArg) {\n const { offset, options } = state\n\n if (!edges) {\n return\n }\n\n const page = extend({}, coords)\n const inner = getRestrictionRect(options.inner, interaction, page) || {} as Interact.Rect\n const outer = getRestrictionRect(options.outer, interaction, page) || {} as Interact.Rect\n\n fixRect(inner, noInner)\n fixRect(outer, noOuter)\n\n if (edges.top) {\n coords.y = Math.min(Math.max(outer.top + offset.top, page.y), inner.top + offset.top)\n }\n else if (edges.bottom) {\n coords.y = Math.max(Math.min(outer.bottom + offset.bottom, page.y), inner.bottom + offset.bottom)\n }\n if (edges.left) {\n coords.x = Math.min(Math.max(outer.left + offset.left, page.x), inner.left + offset.left)\n }\n else if (edges.right) {\n coords.x = Math.max(Math.min(outer.right + offset.right, page.x), inner.right + offset.right)\n }\n}\n\nfunction fixRect (rect, defaults) {\n for (const edge of ['top', 'left', 'bottom', 'right']) {\n if (!(edge in rect)) {\n rect[edge] = defaults[edge]\n }\n }\n\n return rect\n}\n\nconst defaults: RestrictEdgesOptions = {\n inner: null,\n outer: null,\n offset: null,\n endOnly: false,\n enabled: false,\n}\n\nconst restrictEdges = {\n noInner,\n noOuter,\n start,\n set,\n defaults,\n}\n\nexport default restrictEdges\n","import extend from '../../utils/extend'\nimport restrictPointer from './pointer'\n\nconst defaults = extend({\n get elementRect () {\n return { top: 0, left: 0, bottom: 1, right: 1 }\n },\n set elementRect (_) {},\n}, restrictPointer.defaults)\n\nconst restrictRect = {\n start: restrictPointer.start,\n set: restrictPointer.set,\n defaults,\n}\n\nexport default restrictRect\n","import extend from '@interactjs/utils/extend'\nimport * as rectUtils from '@interactjs/utils/rect'\nimport { ModifierArg, ModifierState } from '../base'\nimport restrictEdges, { RestrictEdgesState } from './edges'\nimport { getRestrictionRect, RestrictOptions } from './pointer'\n\nconst noMin = { width: -Infinity, height: -Infinity }\nconst noMax = { width: +Infinity, height: +Infinity }\n\nexport interface RestrictSizeOptions {\n min?: Interact.Size | Interact.Point | RestrictOptions['restriction']\n max?: Interact.Size | Interact.Point | RestrictOptions['restriction']\n endOnly: boolean\n enabled?: boolean\n}\n\nfunction start (arg: ModifierArg) {\n return restrictEdges.start(arg)\n}\n\nexport type RestrictSizeState =\n RestrictEdgesState & ModifierState\n\nfunction set (arg: ModifierArg) {\n const { interaction, state, rect, edges } = arg\n const { options } = state\n\n if (!edges) {\n return\n }\n\n const minSize = rectUtils.tlbrToXywh(getRestrictionRect(options.min as any, interaction, arg.coords)) || noMin\n const maxSize = rectUtils.tlbrToXywh(getRestrictionRect(options.max as any, interaction, arg.coords)) || noMax\n\n state.options = {\n endOnly: options.endOnly,\n inner: extend({}, restrictEdges.noInner),\n outer: extend({}, restrictEdges.noOuter),\n }\n\n if (edges.top) {\n state.options.inner.top = rect.bottom - minSize.height\n state.options.outer.top = rect.bottom - maxSize.height\n }\n else if (edges.bottom) {\n state.options.inner.bottom = rect.top + minSize.height\n state.options.outer.bottom = rect.top + maxSize.height\n }\n if (edges.left) {\n state.options.inner.left = rect.right - minSize.width\n state.options.outer.left = rect.right - maxSize.width\n }\n else if (edges.right) {\n state.options.inner.right = rect.left + minSize.width\n state.options.outer.right = rect.left + maxSize.width\n }\n\n restrictEdges.set(arg)\n\n state.options = options\n}\n\nconst defaults: RestrictSizeOptions = {\n min: null,\n max: null,\n endOnly: false,\n enabled: false,\n}\n\nconst restrictSize = {\n start,\n set,\n defaults,\n}\n\nexport default restrictSize\n","import * as utils from '@interactjs/utils/index'\nimport { ModifierArg, ModifierState } from '../base'\n\nexport interface Offset {\n x: number\n y: number\n index: number\n relativePoint?: Interact.Point\n}\n\nexport interface SnapPosition {\n x?: number\n y?: number\n range?: number\n offset?: Offset\n [index: string]: any\n}\n\nexport type SnapFunction = (\n x: number,\n y: number,\n interaction: Interact.Interaction,\n offset: Offset,\n index: number\n) => SnapPosition\nexport type SnapTarget = SnapPosition | SnapFunction\nexport interface SnapOptions {\n targets: SnapTarget[]\n // target range\n range: number\n // self points for snapping. [0,0] = top left, [1,1] = bottom right\n relativePoints: Interact.Point[]\n // startCoords = offset snapping from drag start page position\n offset: Interact.Point | Interact.RectResolvable<[Interact.Interaction]> | 'startCoords'\n offsetWithOrigin?: boolean\n origin: Interact.RectResolvable<[Interact.Element]> | Interact.Point\n endOnly?: boolean\n enabled?: boolean\n}\n\nexport type SnapState = ModifierState\n\nfunction start (arg: ModifierArg) {\n const { interaction, interactable, element, rect, state, startOffset } = arg\n const { options } = state\n const origin = options.offsetWithOrigin\n ? getOrigin(arg)\n : { x: 0, y: 0 }\n\n let snapOffset: Interact.Point\n\n if (options.offset === 'startCoords') {\n snapOffset = {\n x: interaction.coords.start.page.x,\n y: interaction.coords.start.page.y,\n }\n }\n else {\n const offsetRect = utils.rect.resolveRectLike(options.offset as any, interactable, element, [interaction])\n\n snapOffset = utils.rect.rectToXY(offsetRect) || { x: 0, y: 0 }\n snapOffset.x += origin.x\n snapOffset.y += origin.y\n }\n\n const { relativePoints } = options\n\n state.offsets = rect && relativePoints && relativePoints.length\n ? relativePoints.map((relativePoint, index) => ({\n index,\n relativePoint,\n x: startOffset.left - (rect.width * relativePoint.x) + snapOffset.x,\n y: startOffset.top - (rect.height * relativePoint.y) + snapOffset.y,\n }))\n : [utils.extend({\n index: 0,\n relativePoint: null,\n }, snapOffset)]\n}\n\nfunction set (arg: ModifierArg) {\n const { interaction, coords, state } = arg\n const { options, offsets } = state\n\n const origin = utils.getOriginXY(interaction.interactable, interaction.element, interaction.prepared.name)\n const page = utils.extend({}, coords)\n const targets = []\n\n if (!options.offsetWithOrigin) {\n page.x -= origin.x\n page.y -= origin.y\n }\n\n for (const offset of offsets) {\n const relativeX = page.x - offset.x\n const relativeY = page.y - offset.y\n\n for (let index = 0, len = options.targets.length; index < len; index++) {\n const snapTarget = options.targets[index]\n let target\n\n if (utils.is.func(snapTarget)) {\n target = snapTarget(relativeX, relativeY, interaction, offset, index)\n }\n else {\n target = snapTarget\n }\n\n if (!target) { continue }\n\n targets.push({\n x: (utils.is.number(target.x) ? target.x : relativeX) + offset.x,\n y: (utils.is.number(target.y) ? target.y : relativeY) + offset.y,\n\n range: utils.is.number(target.range) ? target.range : options.range,\n source: snapTarget,\n index,\n offset,\n })\n }\n }\n\n const closest = {\n target: null,\n inRange: false,\n distance: 0,\n range: 0,\n delta: { x: 0, y: 0 },\n }\n\n for (const target of targets) {\n const range = target.range\n const dx = target.x - page.x\n const dy = target.y - page.y\n const distance = utils.hypot(dx, dy)\n let inRange = distance <= range\n\n // Infinite targets count as being out of range\n // compared to non infinite ones that are in range\n if (range === Infinity && closest.inRange && closest.range !== Infinity) {\n inRange = false\n }\n\n if (!closest.target || (inRange\n // is the closest target in range?\n ? (closest.inRange && range !== Infinity\n // the pointer is relatively deeper in this target\n ? distance / range < closest.distance / closest.range\n // this target has Infinite range and the closest doesn't\n : (range === Infinity && closest.range !== Infinity) ||\n // OR this target is closer that the previous closest\n distance < closest.distance)\n // The other is not in range and the pointer is closer to this target\n : (!closest.inRange && distance < closest.distance))) {\n closest.target = target\n closest.distance = distance\n closest.range = range\n closest.inRange = inRange\n closest.delta.x = dx\n closest.delta.y = dy\n }\n }\n\n if (closest.inRange) {\n coords.x = closest.target.x\n coords.y = closest.target.y\n }\n\n state.closest = closest\n return closest\n}\n\nfunction getOrigin (arg: Partial>) {\n const { element } = arg.interaction\n const optionsOrigin = utils.rect.rectToXY(\n utils.rect.resolveRectLike(arg.state.options.origin as any, null, null, [element]),\n )\n const origin = optionsOrigin || utils.getOriginXY(\n arg.interactable,\n element,\n arg.interaction.prepared.name,\n )\n\n return origin\n}\n\nconst defaults: SnapOptions = {\n range : Infinity,\n targets: null,\n offset: null,\n offsetWithOrigin: true,\n origin: null,\n relativePoints: null,\n endOnly: false,\n enabled: false,\n}\nconst snap = {\n start,\n set,\n defaults,\n}\n\nexport default snap\n","// This module allows snapping of the size of targets during resize\n// interactions.\n\nimport extend from '@interactjs/utils/extend'\nimport * as is from '@interactjs/utils/is'\nimport { ModifierArg } from '../base'\nimport snap, { SnapOptions, SnapState } from './pointer'\n\nexport type SnapSizeOptions = Pick<\nSnapOptions,\n'targets' | 'offset' | 'endOnly' | 'range' | 'enabled'\n>\n\nfunction start (arg: ModifierArg) {\n const { state, edges } = arg\n const { options } = state\n\n if (!edges) { return null }\n\n arg.state = {\n options: {\n targets: null,\n relativePoints: [{\n x: edges.left ? 0 : 1,\n y: edges.top ? 0 : 1,\n }],\n offset: options.offset || 'self',\n origin: { x: 0, y: 0 },\n range: options.range,\n },\n }\n\n state.targetFields = state.targetFields || [\n ['width', 'height'],\n ['x', 'y'],\n ]\n\n snap.start(arg)\n state.offsets = arg.state.offsets\n\n arg.state = state\n}\n\nfunction set (arg) {\n const { interaction, state, coords } = arg\n const { options, offsets } = state\n const relative = {\n x: coords.x - offsets[0].x,\n y: coords.y - offsets[0].y,\n }\n\n state.options = extend({}, options)\n state.options.targets = []\n\n for (const snapTarget of (options.targets || [])) {\n let target\n\n if (is.func(snapTarget)) {\n target = snapTarget(relative.x, relative.y, interaction)\n }\n else {\n target = snapTarget\n }\n\n if (!target) { continue }\n\n for (const [xField, yField] of state.targetFields) {\n if (xField in target || yField in target) {\n target.x = target[xField]\n target.y = target[yField]\n\n break\n }\n }\n\n state.options.targets.push(target)\n }\n\n const returnValue = snap.set(arg)\n\n state.options = options\n\n return returnValue\n}\n\nconst defaults: SnapSizeOptions = {\n range: Infinity,\n targets: null,\n offset: null,\n endOnly: false,\n enabled: false,\n}\n\nconst snapSize = {\n start,\n set,\n defaults,\n}\n\nexport default snapSize\n","/**\n * @module modifiers/snapEdges\n *\n * @description\n * This module allows snapping of the edges of targets during resize\n * interactions.\n *\n * @example\n * interact(target).resizable({\n * snapEdges: {\n * targets: [interact.snappers.grid({ x: 100, y: 50 })],\n * },\n * })\n *\n * interact(target).resizable({\n * snapEdges: {\n * targets: [\n * interact.snappers.grid({\n * top: 50,\n * left: 50,\n * bottom: 100,\n * right: 100,\n * }),\n * ],\n * },\n * })\n */\n\nimport clone from '@interactjs/utils/clone'\nimport extend from '@interactjs/utils/extend'\nimport { ModifierArg, ModifierModule } from '../base'\nimport { SnapOptions, SnapState } from './pointer'\nimport snapSize from './size'\n\nfunction start (arg: ModifierArg) {\n const { edges } = arg\n\n if (!edges) { return null }\n\n arg.state.targetFields = arg.state.targetFields || [\n [edges.left ? 'left' : 'right', edges.top ? 'top' : 'bottom'],\n ]\n\n return snapSize.start(arg)\n}\n\nconst snapEdges: ModifierModule = {\n start,\n set: snapSize.set,\n defaults: extend(\n clone(snapSize.defaults),\n {\n offset: { x: 0, y: 0 },\n } as SnapOptions,\n ),\n}\n\nexport default snapEdges\n","import aspectRatioModule from './aspectRatio'\nimport { makeModifier } from './base'\nimport restrictEdgesModule from './restrict/edges'\nimport restrictModule from './restrict/pointer'\nimport restrictRectModule from './restrict/rect'\nimport restrictSizeModule from './restrict/size'\nimport snapEdgesModule from './snap/edges'\nimport snapModule from './snap/pointer'\nimport snapSizeModule from './snap/size'\n\nexport const snap = makeModifier(snapModule, 'snap')\nexport const snapSize = makeModifier(snapSizeModule, 'snapSize')\nexport const snapEdges = makeModifier(snapEdgesModule, 'snapEdges')\nexport const restrict = makeModifier(restrictModule, 'restrict')\nexport const restrictRect = makeModifier(restrictRectModule, 'restrictRect')\nexport const restrictEdges = makeModifier(restrictEdgesModule, 'restrictEdges')\nexport const restrictSize = makeModifier(restrictSizeModule, 'restrictSize')\nexport const aspectRatio = makeModifier(aspectRatioModule, 'aspectRatio')\n","import BaseEvent from '../core/BaseEvent'\nimport * as pointerUtils from '../utils/pointerUtils'\n\nexport default class PointerEvent extends BaseEvent {\n type: T\n originalEvent: Interact.PointerEventType\n pointerId: number\n pointerType: string\n double: boolean\n pageX: number\n pageY: number\n clientX: number\n clientY: number\n dt: number\n eventable: any\n [key: string]: any\n\n /** */\n constructor (\n type: T,\n pointer: Interact.PointerType | PointerEvent,\n event: Interact.PointerEventType,\n eventTarget: Interact.EventTarget,\n interaction: Interact.Interaction,\n timeStamp: number,\n ) {\n super(interaction)\n pointerUtils.pointerExtend(this, event)\n\n if (event !== pointer) {\n pointerUtils.pointerExtend(this, pointer)\n }\n\n this.timeStamp = timeStamp\n this.originalEvent = event\n this.type = type\n this.pointerId = pointerUtils.getPointerId(pointer)\n this.pointerType = pointerUtils.getPointerType(pointer)\n this.target = eventTarget\n this.currentTarget = null\n\n if (type === 'tap') {\n const pointerIndex = interaction.getPointerIndex(pointer)\n this.dt = this.timeStamp - interaction.pointers[pointerIndex].downTime\n\n const interval = this.timeStamp - interaction.tapTime\n\n this.double = !!(interaction.prevTap &&\n interaction.prevTap.type !== 'doubletap' &&\n interaction.prevTap.target === this.target &&\n interval < 500)\n }\n else if (type === 'doubletap') {\n this.dt = (pointer as PointerEvent<'tap'>).timeStamp - interaction.tapTime\n }\n }\n\n _subtractOrigin ({ x: originX, y: originY }: Interact.Point) {\n this.pageX -= originX\n this.pageY -= originY\n this.clientX -= originX\n this.clientY -= originY\n\n return this\n }\n\n _addOrigin ({ x: originX, y: originY }: Interact.Point) {\n this.pageX += originX\n this.pageY += originY\n this.clientX += originX\n this.clientY += originY\n\n return this\n }\n\n /**\n * Prevent the default behaviour of the original Event\n */\n preventDefault () {\n this.originalEvent.preventDefault()\n }\n}\n\nexport { PointerEvent }\n","import { PerActionDefaults } from '@interactjs/core/defaultOptions'\nimport Eventable from '@interactjs/core/Eventable'\nimport Interaction from '@interactjs/core/Interaction'\nimport { Scope } from '@interactjs/core/scope'\nimport * as utils from '@interactjs/utils/index'\nimport PointerEvent from './PointerEvent'\n\nexport type EventTargetList = Array<{\n node: Node\n eventable: Eventable\n props: { [key: string]: any }\n}>\n\nexport interface PointerEventOptions extends PerActionDefaults {\n enabled?: undefined // not used\n holdDuration?: number\n ignoreFrom?: any\n allowFrom?: any\n origin?: Interact.Point | string | Interact.Element\n}\n\ndeclare module '@interactjs/core/scope' {\n interface Scope {\n pointerEvents: typeof pointerEvents\n }\n}\n\ndeclare module '@interactjs/core/Interaction' {\n interface Interaction {\n prevTap?: PointerEvent\n tapTime?: number\n }\n}\n\ndeclare module '@interactjs/core/PointerInfo' {\n interface PointerInfo {\n hold?: {\n duration: number\n timeout: any\n }\n }\n}\n\ndeclare module '@interactjs/core/defaultOptions' {\n interface ActionDefaults {\n pointerEvents: Interact.Options\n }\n}\n\ndeclare module '@interactjs/core/scope' {\n interface SignalArgs {\n 'pointerEvents:new': { pointerEvent: PointerEvent }\n 'pointerEvents:fired': {\n interaction: Interaction\n pointer: Interact.PointerType | PointerEvent\n event: Interact.PointerEventType | PointerEvent\n eventTarget: Interact.EventTarget\n pointerEvent: PointerEvent\n targets?: EventTargetList\n type: string\n }\n 'pointerEvents:collect-targets': {\n interaction: Interaction\n pointer: Interact.PointerType | PointerEvent\n event: Interact.PointerEventType | PointerEvent\n eventTarget: Interact.EventTarget\n targets?: EventTargetList\n type: string\n path: Node[]\n node: null\n }\n }\n}\n\nconst defaults: PointerEventOptions = {\n holdDuration: 600,\n ignoreFrom : null,\n allowFrom : null,\n origin : { x: 0, y: 0 },\n}\n\nconst pointerEvents = {\n id: 'pointer-events/base',\n install,\n listeners: {\n 'interactions:new': addInteractionProps,\n 'interactions:update-pointer': addHoldInfo,\n 'interactions:move': moveAndClearHold,\n 'interactions:down': (arg, scope) => {\n downAndStartHold(arg, scope)\n fire(arg, scope)\n },\n 'interactions:up': (arg, scope) => {\n clearHold(arg)\n fire(arg, scope)\n tapAfterUp(arg, scope)\n },\n 'interactions:cancel': (arg, scope) => {\n clearHold(arg)\n fire(arg, scope)\n },\n },\n PointerEvent,\n fire,\n collectEventTargets,\n defaults,\n types: [\n 'down',\n 'move',\n 'up',\n 'cancel',\n 'tap',\n 'doubletap',\n 'hold',\n ],\n}\n\nfunction fire (\n arg: {\n pointer: Interact.PointerType | PointerEvent\n event: Interact.PointerEventType | PointerEvent\n eventTarget: Interact.EventTarget\n interaction: Interaction\n type: T\n targets?: EventTargetList\n },\n scope: Interact.Scope,\n) {\n const {\n interaction,\n pointer,\n event,\n eventTarget,\n type,\n targets = collectEventTargets(arg, scope),\n } = arg\n\n const pointerEvent = new PointerEvent(type, pointer, event, eventTarget, interaction, scope.now())\n\n scope.fire('pointerEvents:new', { pointerEvent })\n\n const signalArg = {\n interaction,\n pointer,\n event,\n eventTarget,\n targets,\n type,\n pointerEvent,\n }\n\n for (let i = 0; i < targets.length; i++) {\n const target = targets[i]\n\n for (const prop in target.props || {}) {\n (pointerEvent as any)[prop] = target.props[prop]\n }\n\n const origin = utils.getOriginXY(target.eventable, target.node)\n\n pointerEvent._subtractOrigin(origin)\n pointerEvent.eventable = target.eventable\n pointerEvent.currentTarget = target.node\n\n target.eventable.fire(pointerEvent)\n\n pointerEvent._addOrigin(origin)\n\n if (pointerEvent.immediatePropagationStopped ||\n (pointerEvent.propagationStopped &&\n (i + 1) < targets.length && targets[i + 1].node !== pointerEvent.currentTarget)) {\n break\n }\n }\n\n scope.fire('pointerEvents:fired', signalArg)\n\n if (type === 'tap') {\n // if pointerEvent should make a double tap, create and fire a doubletap\n // PointerEvent and use that as the prevTap\n const prevTap = pointerEvent.double\n ? fire({\n interaction,\n pointer,\n event,\n eventTarget,\n type: 'doubletap',\n }, scope)\n : pointerEvent\n\n interaction.prevTap = prevTap\n interaction.tapTime = prevTap.timeStamp\n }\n\n return pointerEvent\n}\n\nfunction collectEventTargets ({ interaction, pointer, event, eventTarget, type }: {\n interaction: Interaction\n pointer: Interact.PointerType | PointerEvent\n event: Interact.PointerEventType | PointerEvent\n eventTarget: Interact.EventTarget\n type: T\n}, scope: Interact.Scope) {\n const pointerIndex = interaction.getPointerIndex(pointer)\n const pointerInfo = interaction.pointers[pointerIndex]\n\n // do not fire a tap event if the pointer was moved before being lifted\n if (type === 'tap' && (interaction.pointerWasMoved ||\n // or if the pointerup target is different to the pointerdown target\n !(pointerInfo && pointerInfo.downTarget === eventTarget))) {\n return []\n }\n\n const path = utils.dom.getPath(eventTarget as Interact.Element | Document)\n const signalArg = {\n interaction,\n pointer,\n event,\n eventTarget,\n type,\n path,\n targets: [] as EventTargetList,\n node: null,\n }\n\n for (const node of path) {\n signalArg.node = node\n\n scope.fire('pointerEvents:collect-targets', signalArg)\n }\n\n if (type === 'hold') {\n signalArg.targets = signalArg.targets.filter(target =>\n target.eventable.options.holdDuration === interaction.pointers[pointerIndex].hold.duration)\n }\n\n return signalArg.targets\n}\n\nfunction addInteractionProps ({ interaction }) {\n interaction.prevTap = null // the most recent tap event on this interaction\n interaction.tapTime = 0 // time of the most recent tap event\n}\n\nfunction addHoldInfo ({ down, pointerInfo }: Interact.SignalArgs['interactions:update-pointer']) {\n if (!down && pointerInfo.hold) {\n return\n }\n\n pointerInfo.hold = { duration: Infinity, timeout: null }\n}\n\nfunction clearHold ({ interaction, pointerIndex }) {\n if (interaction.pointers[pointerIndex].hold) {\n clearTimeout(interaction.pointers[pointerIndex].hold.timeout)\n }\n}\n\nfunction moveAndClearHold (\n { interaction, pointer, event, eventTarget, duplicate }: Interact.SignalArgs['interactions:move'],\n scope: Interact.Scope,\n) {\n const pointerIndex = interaction.getPointerIndex(pointer)\n\n if (!duplicate && (!interaction.pointerIsDown || interaction.pointerWasMoved)) {\n if (interaction.pointerIsDown) {\n clearTimeout(interaction.pointers[pointerIndex].hold.timeout)\n }\n\n fire({\n interaction,\n pointer,\n event,\n eventTarget: eventTarget as Interact.Element,\n type: 'move',\n }, scope)\n }\n}\n\nfunction downAndStartHold ({ interaction, pointer, event, eventTarget, pointerIndex }: Interact.SignalArgs['interactions:down'], scope: Interact.Scope) {\n const timer = interaction.pointers[pointerIndex].hold\n const path = utils.dom.getPath(eventTarget as Interact.Element | Document)\n const signalArg = {\n interaction,\n pointer,\n event,\n eventTarget,\n type: 'hold',\n targets: [] as EventTargetList,\n path,\n node: null,\n }\n\n for (const node of path) {\n signalArg.node = node\n\n scope.fire('pointerEvents:collect-targets', signalArg)\n }\n\n if (!signalArg.targets.length) { return }\n\n let minDuration = Infinity\n\n for (const target of signalArg.targets) {\n const holdDuration = target.eventable.options.holdDuration\n\n if (holdDuration < minDuration) {\n minDuration = holdDuration\n }\n }\n\n timer.duration = minDuration\n timer.timeout = setTimeout(() => {\n fire({\n interaction,\n eventTarget,\n pointer,\n event,\n type: 'hold',\n }, scope)\n }, minDuration)\n}\n\nfunction tapAfterUp ({ interaction, pointer, event, eventTarget }: Interact.SignalArgs['interactions:up'], scope: Interact.Scope) {\n if (!interaction.pointerWasMoved) {\n fire({ interaction, eventTarget, pointer, event, type: 'tap' }, scope)\n }\n}\n\nfunction install (scope: Scope) {\n scope.pointerEvents = pointerEvents\n scope.defaults.actions.pointerEvents = pointerEvents.defaults\n}\n\nexport default pointerEvents\n","import { ListenerMap } from '@interactjs/core/scope'\nimport basePlugin from './base'\nimport PointerEvent from './PointerEvent'\n\ndeclare module '@interactjs/core/Interaction' {\n interface Interaction {\n holdIntervalHandle?: any\n }\n}\n\ndeclare module '@interactjs/pointer-events/PointerEvent' {\n interface PointerEvent {\n count?: number\n }\n}\n\ndeclare module '@interactjs/pointer-events/base' {\n interface PointerEventOptions {\n holdRepeatInterval?: number\n }\n}\n\nfunction install (scope: Interact.Scope) {\n scope.usePlugin(basePlugin)\n\n const {\n pointerEvents,\n } = scope\n\n // don't repeat by default\n pointerEvents.defaults.holdRepeatInterval = 0\n pointerEvents.types.push('holdrepeat')\n}\n\nfunction onNew ({ pointerEvent }: { pointerEvent: PointerEvent }) {\n if (pointerEvent.type !== 'hold') { return }\n\n pointerEvent.count = (pointerEvent.count || 0) + 1\n}\n\nfunction onFired (\n { interaction, pointerEvent, eventTarget, targets }: Interact.SignalArgs['pointerEvents:fired'],\n scope: Interact.Scope,\n) {\n if (pointerEvent.type !== 'hold' || !targets.length) { return }\n\n // get the repeat interval from the first eventable\n const interval = targets[0].eventable.options.holdRepeatInterval\n\n // don't repeat if the interval is 0 or less\n if (interval <= 0) { return }\n\n // set a timeout to fire the holdrepeat event\n interaction.holdIntervalHandle = setTimeout(() => {\n scope.pointerEvents.fire({\n interaction,\n eventTarget,\n type: 'hold',\n pointer: pointerEvent,\n event: pointerEvent,\n }, scope)\n }, interval)\n}\n\nfunction endHoldRepeat ({ interaction }: { interaction: Interact.Interaction }) {\n // set the interaction's holdStopTime property\n // to stop further holdRepeat events\n if (interaction.holdIntervalHandle) {\n clearInterval(interaction.holdIntervalHandle)\n interaction.holdIntervalHandle = null\n }\n}\n\nconst holdRepeat: Interact.Plugin = {\n id: 'pointer-events/holdRepeat',\n install,\n listeners: ['move', 'up', 'cancel', 'endall'].reduce(\n (acc, enderTypes) => {\n (acc as any)[`pointerEvents:${enderTypes}`] = endHoldRepeat\n return acc\n },\n {\n 'pointerEvents:new': onNew,\n 'pointerEvents:fired': onFired,\n } as ListenerMap,\n ),\n}\n\nexport default holdRepeat\n","import { Scope } from '@interactjs/core/scope'\nimport { merge } from '@interactjs/utils/arr'\nimport extend from '@interactjs/utils/extend'\n\ntype Interactable = import ('@interactjs/core/Interactable').default\n\ndeclare module '@interactjs/core/Interactable' {\n interface Interactable {\n pointerEvents: typeof pointerEventsMethod\n __backCompatOption: (optionName: string, newValue: any) => any\n }\n}\n\nfunction install (scope: Scope) {\n const {\n pointerEvents,\n actions,\n Interactable,\n } = scope\n\n merge(actions.eventTypes, pointerEvents.types)\n\n Interactable.prototype.pointerEvents = pointerEventsMethod\n\n const __backCompatOption = Interactable.prototype._backCompatOption\n\n Interactable.prototype._backCompatOption = function (optionName, newValue) {\n const ret = __backCompatOption.call(this, optionName, newValue)\n\n if (ret === this) {\n this.events.options[optionName] = newValue\n }\n\n return ret\n }\n}\n\nfunction pointerEventsMethod (this: Interact.Interactable, options: any) {\n extend(this.events.options, options)\n\n return this\n}\n\nconst plugin: Interact.Plugin = {\n id: 'pointer-events/interactableTargets',\n install,\n listeners: {\n 'pointerEvents:collect-targets': ({\n targets,\n node,\n type,\n eventTarget,\n }, scope) => {\n scope.interactables.forEachMatch(node, (interactable: Interactable) => {\n const eventable = interactable.events\n const options = eventable.options\n\n if (\n eventable.types[type] &&\n eventable.types[type].length &&\n interactable.testIgnoreAllow(options, node, eventTarget)) {\n targets.push({\n node,\n eventable,\n props: { interactable },\n })\n }\n })\n },\n\n 'interactable:new': ({ interactable }) => {\n interactable.events.getRect = function (element: Interact.Element) {\n return interactable.getRect(element)\n }\n },\n\n 'interactable:set': ({ interactable, options }, scope) => {\n extend(interactable.events.options, scope.pointerEvents.defaults)\n extend(interactable.events.options, options.pointerEvents || {})\n },\n },\n}\n\nexport default plugin\n","import * as pointerEvents from './base'\nimport holdRepeat from './holdRepeat'\nimport interactableTargets from './interactableTargets'\n\nfunction install (scope: Interact.Scope) {\n scope.usePlugin(pointerEvents)\n scope.usePlugin(holdRepeat)\n scope.usePlugin(interactableTargets)\n}\n\nconst id = 'pointer-events'\n\nexport { id, pointerEvents, holdRepeat, interactableTargets, install }\n","import Interactable from '@interactjs/core/Interactable'\nimport { EventPhase } from '@interactjs/core/InteractEvent'\nimport { ActionProps, Interaction } from '@interactjs/core/Interaction'\nimport { Scope } from '@interactjs/core/scope'\nimport { arr, extend, is, pointer as pointerUtils, rect as rectUtils, win } from '@interactjs/utils/index'\n\ndeclare module '@interactjs/core/Interactable' {\n interface Interactable {\n reflow: (action: ActionProps) => ReturnType\n }\n}\n\ndeclare module '@interactjs/core/Interaction' {\n interface Interaction {\n _reflowPromise: Promise\n _reflowResolve: () => void\n }\n}\n\ndeclare module '@interactjs/core/InteractEvent' {\n // eslint-disable-next-line no-shadow\n enum EventPhase {\n Reflow = 'reflow',\n }\n}\n\n(EventPhase as any).Reflow = 'reflow'\n\nexport function install (scope: Scope) {\n const {\n actions,\n /** @lends Interactable */\n // eslint-disable-next-line no-shadow\n Interactable,\n } = scope\n\n // add action reflow event types\n for (const actionName of actions.names) {\n actions.eventTypes.push(`${actionName}reflow`)\n }\n\n /**\n * ```js\n * const interactable = interact(target)\n * const drag = { name: drag, axis: 'x' }\n * const resize = { name: resize, edges: { left: true, bottom: true }\n *\n * interactable.reflow(drag)\n * interactable.reflow(resize)\n * ```\n *\n * Start an action sequence to re-apply modifiers, check drops, etc.\n *\n * @param { Object } action The action to begin\n * @param { string } action.name The name of the action\n * @returns { Promise } A promise that resolves to the `Interactable` when actions on all targets have ended\n */\n Interactable.prototype.reflow = function (action) {\n return reflow(this, action, scope)\n }\n}\n\nfunction reflow (interactable: Interactable, action: ActionProps, scope: Scope): Promise {\n const elements = (is.string(interactable.target)\n ? arr.from(interactable._context.querySelectorAll(interactable.target))\n : [interactable.target]) as Interact.Element[]\n\n // tslint:disable-next-line variable-name\n const Promise = (win.window as any).Promise\n const promises: Array> | null = Promise ? [] : null\n\n for (const element of elements) {\n const rect = interactable.getRect(element as HTMLElement | SVGElement)\n\n if (!rect) { break }\n\n const runningInteraction = arr.find(\n scope.interactions.list,\n (interaction: Interaction) => {\n return interaction.interacting() &&\n interaction.interactable === interactable &&\n interaction.element === element &&\n interaction.prepared.name === action.name\n })\n let reflowPromise: Promise\n\n if (runningInteraction) {\n runningInteraction.move()\n\n if (promises) {\n reflowPromise = runningInteraction._reflowPromise || new Promise((resolve: any) => {\n runningInteraction._reflowResolve = resolve\n })\n }\n }\n else {\n const xywh = rectUtils.tlbrToXywh(rect)\n const coords = {\n page : { x: xywh.x, y: xywh.y },\n client : { x: xywh.x, y: xywh.y },\n timeStamp: scope.now(),\n }\n\n const event = pointerUtils.coordsToEvent(coords)\n reflowPromise = startReflow(scope, interactable, element, action, event)\n }\n\n if (promises) {\n promises.push(reflowPromise)\n }\n }\n\n return promises && Promise.all(promises).then(() => interactable)\n}\n\nfunction startReflow (scope: Scope, interactable: Interactable, element: Interact.Element, action: ActionProps, event: any) {\n const interaction = scope.interactions.new({ pointerType: 'reflow' })\n const signalArg = {\n interaction,\n event,\n pointer: event,\n eventTarget: element,\n phase: EventPhase.Reflow,\n }\n\n interaction.interactable = interactable\n interaction.element = element\n interaction.prepared = extend({}, action)\n interaction.prevEvent = event\n interaction.updatePointer(event, event, element, true)\n\n interaction._doPhase(signalArg)\n\n const reflowPromise = (win.window as unknown as any).Promise\n ? new (win.window as unknown as any).Promise((resolve: any) => {\n interaction._reflowResolve = resolve\n })\n : null\n\n interaction._reflowPromise = reflowPromise\n interaction.start(action, interactable, element)\n\n if (interaction._interacting) {\n interaction.move(signalArg)\n interaction.end(event)\n }\n else {\n interaction.stop()\n }\n\n interaction.removePointer(event, event)\n interaction.pointerIsDown = false\n\n return reflowPromise\n}\n\nexport default {\n id: 'reflow',\n install,\n listeners: {\n // remove completed reflow interactions\n 'interactions:stop': ({ interaction }, scope) => {\n if (interaction.pointerType === EventPhase.Reflow) {\n if (interaction._reflowResolve) {\n interaction._reflowResolve()\n }\n\n arr.remove(scope.interactions.list, interaction)\n }\n },\n },\n} as Interact.Plugin\n","/** @module interact */\n\nimport { Options } from '@interactjs/core/defaultOptions'\nimport Interactable from '@interactjs/core/Interactable'\nimport { Scope } from '@interactjs/core/scope'\nimport browser from '@interactjs/utils/browser'\nimport events from '@interactjs/utils/events'\nimport * as utils from '@interactjs/utils/index'\n\ndeclare module '@interactjs/core/scope' {\n interface Scope {\n interact: InteractStatic\n }\n}\n\nexport interface InteractStatic {\n (target: Interact.Target, options?: Options): Interactable\n on: typeof on\n pointerMoveTolerance: typeof pointerMoveTolerance\n stop: typeof stop\n supportsPointerEvent: typeof supportsPointerEvent\n supportsTouch: typeof supportsTouch\n debug: typeof debug\n off: typeof off\n isSet: typeof isSet\n use: typeof use\n getPointerAverage: typeof utils.pointer.pointerAverage\n getTouchBBox: typeof utils.pointer.touchBBox\n getTouchDistance: typeof utils.pointer.touchDistance\n getTouchAngle: typeof utils.pointer.touchAngle\n getElementRect: typeof utils.dom.getElementRect\n getElementClientRect: typeof utils.dom.getElementClientRect\n matchesSelector: typeof utils.dom.matchesSelector\n closest: typeof utils.dom.closest\n addDocument: typeof scope.addDocument\n removeDocument: typeof scope.removeDocument\n dynamicDrop: (newValue?: boolean) => boolean | Interact.interact\n version: string\n}\n\nconst globalEvents: any = {}\nconst scope = new Scope()\n\n/**\n * ```js\n * interact('#draggable').draggable(true)\n *\n * var rectables = interact('rect')\n * rectables\n * .gesturable(true)\n * .on('gesturemove', function (event) {\n * // ...\n * })\n * ```\n *\n * The methods of this variable can be used to set elements as interactables\n * and also to change various default settings.\n *\n * Calling it as a function and passing an element or a valid CSS selector\n * string returns an Interactable object which has various methods to configure\n * it.\n *\n * @global\n *\n * @param {Element | string} target The HTML or SVG Element to interact with\n * or CSS selector\n * @return {Interactable}\n */\nexport const interact: InteractStatic = function interact (target: Interact.Target, options?: any) {\n let interactable = scope.interactables.get(target, options)\n\n if (!interactable) {\n interactable = scope.interactables.new(target, options)\n interactable.events.global = globalEvents\n }\n\n return interactable\n} as InteractStatic\n\n/**\n * Use a plugin\n *\n * @alias module:interact.use\n *\n * @param {Object} plugin\n * @param {function} plugin.install\n * @return {interact}\n */\ninteract.use = use\nfunction use (plugin: Interact.Plugin, options?: { [key: string]: any }) {\n scope.usePlugin(plugin, options)\n\n return interact\n}\n\n/**\n * Check if an element or selector has been set with the {@link interact}\n * function\n *\n * @alias module:interact.isSet\n *\n * @param {Element} element The Element being searched for\n * @return {boolean} Indicates if the element or CSS selector was previously\n * passed to interact\n */\ninteract.isSet = isSet\nfunction isSet (target: Interact.Element, options?: any) {\n return !!scope.interactables.get(target, options && options.context)\n}\n\n/**\n * Add a global listener for an InteractEvent or adds a DOM event to `document`\n *\n * @alias module:interact.on\n *\n * @param {string | array | object} type The types of events to listen for\n * @param {function} listener The function event (s)\n * @param {object | boolean} [options] object or useCapture flag for\n * addEventListener\n * @return {object} interact\n */\ninteract.on = on\nfunction on (type: string | Interact.EventTypes, listener: Interact.ListenersArg, options?: object) {\n if (utils.is.string(type) && type.search(' ') !== -1) {\n type = type.trim().split(/ +/)\n }\n\n if (utils.is.array(type)) {\n for (const eventType of (type as any[])) {\n interact.on(eventType, listener, options)\n }\n\n return interact\n }\n\n if (utils.is.object(type)) {\n for (const prop in type) {\n interact.on(prop, (type as any)[prop], listener)\n }\n\n return interact\n }\n\n // if it is an InteractEvent type, add listener to globalEvents\n if (utils.arr.contains(scope.actions.eventTypes, type)) {\n // if this type of event was never bound\n if (!globalEvents[type]) {\n globalEvents[type] = [listener]\n }\n else {\n globalEvents[type].push(listener)\n }\n }\n // If non InteractEvent type, addEventListener to document\n else {\n events.add(scope.document, type, listener as Interact.Listener, { options })\n }\n\n return interact\n}\n\n/**\n * Removes a global InteractEvent listener or DOM event from `document`\n *\n * @alias module:interact.off\n *\n * @param {string | array | object} type The types of events that were listened\n * for\n * @param {function} listener The listener function to be removed\n * @param {object | boolean} options [options] object or useCapture flag for\n * removeEventListener\n * @return {object} interact\n */\ninteract.off = off\nfunction off (type: Interact.EventTypes, listener: any, options?: object) {\n if (utils.is.string(type) && type.search(' ') !== -1) {\n type = type.trim().split(/ +/)\n }\n\n if (utils.is.array(type)) {\n for (const eventType of type) {\n interact.off(eventType, listener, options)\n }\n\n return interact\n }\n\n if (utils.is.object(type)) {\n for (const prop in type) {\n interact.off(prop, type[prop], listener)\n }\n\n return interact\n }\n\n if (!utils.arr.contains(scope.actions.eventTypes, type)) {\n events.remove(scope.document, type, listener, options)\n }\n else {\n let index\n\n if (type in globalEvents &&\n (index = globalEvents[type].indexOf(listener)) !== -1) {\n globalEvents[type].splice(index, 1)\n }\n }\n\n return interact\n}\n\ninteract.debug = debug\nfunction debug () {\n return scope\n}\n\n// expose the functions used to calculate multi-touch properties\ninteract.getPointerAverage = utils.pointer.pointerAverage\ninteract.getTouchBBox = utils.pointer.touchBBox\ninteract.getTouchDistance = utils.pointer.touchDistance\ninteract.getTouchAngle = utils.pointer.touchAngle\n\ninteract.getElementRect = utils.dom.getElementRect\ninteract.getElementClientRect = utils.dom.getElementClientRect\ninteract.matchesSelector = utils.dom.matchesSelector\ninteract.closest = utils.dom.closest\n\n/**\n * @alias module:interact.supportsTouch\n *\n * @return {boolean} Whether or not the browser supports touch input\n */\ninteract.supportsTouch = supportsTouch\nfunction supportsTouch () {\n return browser.supportsTouch\n}\n\n/**\n * @alias module:interact.supportsPointerEvent\n *\n * @return {boolean} Whether or not the browser supports PointerEvents\n */\ninteract.supportsPointerEvent = supportsPointerEvent\nfunction supportsPointerEvent () {\n return browser.supportsPointerEvent\n}\n\n/**\n * Cancels all interactions (end events are not fired)\n *\n * @alias module:interact.stop\n *\n * @return {object} interact\n */\ninteract.stop = stop\nfunction stop () {\n for (const interaction of scope.interactions.list) {\n interaction.stop()\n }\n\n return interact\n}\n\n/**\n * Returns or sets the distance the pointer must be moved before an action\n * sequence occurs. This also affects tolerance for tap events.\n *\n * @alias module:interact.pointerMoveTolerance\n *\n * @param {number} [newValue] The movement from the start position must be greater than this value\n * @return {interact | number}\n */\ninteract.pointerMoveTolerance = pointerMoveTolerance\nfunction pointerMoveTolerance (newValue?: number) {\n if (utils.is.number(newValue)) {\n scope.interactions.pointerMoveTolerance = newValue\n\n return interact\n }\n\n return scope.interactions.pointerMoveTolerance\n}\n\nscope.addListeners({\n 'interactable:unset': ({ interactable }) => {\n scope.interactables.list.splice(scope.interactables.list.indexOf(interactable), 1)\n\n // Stop related interactions when an Interactable is unset\n for (const interaction of scope.interactions.list) {\n if (interaction.interactable === interactable && interaction.interacting() && !interaction._ending) {\n interaction.stop()\n }\n }\n },\n})\n\ninteract.addDocument = (doc, options) => scope.addDocument(doc, options)\ninteract.removeDocument = doc => scope.removeDocument(doc)\n\nscope.interact = interact\n\nexport { scope }\nexport default interact\n","import * as actions from '@interactjs/actions/index'\nimport autoScroll from '@interactjs/auto-scroll/index'\nimport * as autoStart from '@interactjs/auto-start/index'\nimport interactablePreventDefault from '@interactjs/core/interactablePreventDefault'\nimport devTools from '@interactjs/dev-tools/index'\nimport inertia from '@interactjs/inertia/index'\nimport modifiersBase from '@interactjs/modifiers/base'\nimport * as modifiers from '@interactjs/modifiers/index'\nimport * as pointerEvents from '@interactjs/pointer-events/index'\nimport reflow from '@interactjs/reflow/index'\nimport interact, { scope } from './interact'\n\nexport function init (window: Window) {\n scope.init(window)\n\n interact.use(interactablePreventDefault)\n\n // pointerEvents\n interact.use(pointerEvents)\n\n // inertia\n interact.use(inertia)\n\n // snap, resize, etc.\n interact.use(modifiersBase)\n\n // autoStart, hold\n interact.use(autoStart)\n\n // drag and drop, resize, gesture\n interact.use(actions)\n\n // for backwrads compatibility\n for (const type in modifiers) {\n const { _defaults, _methods } = modifiers[type as keyof typeof modifiers]\n\n ;(_defaults as any)._methods = _methods\n ;(scope.defaults.perAction as any)[type] = _defaults\n }\n\n // autoScroll\n interact.use(autoScroll)\n\n // reflow\n interact.use(reflow)\n\n // eslint-disable-next-line no-undef\n if (process.env.NODE_ENV !== 'production') {\n interact.use(devTools)\n }\n\n return interact\n}\n\n// eslint-disable-next-line no-undef\ninteract.version = process.env.npm_package_version\n\nexport default interact\n","function createGrid (grid: (Partial | Interact.Point) & { range?: number, limits?: Interact.Rect, offset?: Interact.Point }) {\n const coordFields = ([\n ['x', 'y'],\n ['left', 'top'],\n ['right', 'bottom'],\n ['width', 'height'],\n ] as const).filter(([xField, yField]) => xField in grid || yField in grid)\n\n const gridFunc: Interact.SnapFunction & {\n grid: typeof grid\n coordFields: typeof coordFields\n } = (x, y) => {\n const {\n range,\n limits = {\n left : -Infinity,\n right : Infinity,\n top : -Infinity,\n bottom: Infinity,\n },\n offset = { x: 0, y: 0 },\n } = grid\n\n const result: Interact.SnapTarget & {\n grid: typeof grid\n } = { range, grid, x: null as number, y: null as number }\n\n for (const [xField, yField] of coordFields) {\n const gridx = Math.round((x - offset.x) / (grid as any)[xField])\n const gridy = Math.round((y - offset.y) / (grid as any)[yField])\n\n result[xField] = Math.max(limits.left, Math.min(limits.right, gridx * (grid as any)[xField] + offset.x))\n result[yField] = Math.max(limits.top, Math.min(limits.bottom, gridy * (grid as any)[yField] + offset.y))\n }\n\n return result\n }\n\n gridFunc.grid = grid\n gridFunc.coordFields = coordFields\n\n return gridFunc\n}\n\nexport default createGrid\n","import grid from './grid'\n\nexport { grid }\n","import interact, { init as initInteract } from '@interactjs/interact/index'\nimport * as modifiers from '@interactjs/modifiers/index'\nimport '@interactjs/types/index'\nimport extend from '@interactjs/utils/extend'\nimport * as snappers from '@interactjs/utils/snappers/index'\n\ndeclare module '@interactjs/interact/interact' {\n interface InteractStatic {\n modifiers: typeof modifiers\n snappers: typeof snappers\n createSnapGrid: typeof snappers.grid\n }\n}\n\nif (typeof window === 'object' && !!window) {\n init(window)\n}\n\nexport function init (win: Window) {\n initInteract(win)\n\n return interact.use({\n id: 'interactjs',\n install () {\n interact.modifiers = extend({}, modifiers)\n interact.snappers = snappers\n interact.createSnapGrid = interact.snappers.grid\n },\n })\n}\n\nexport default interact\n","import interact, { init } from '@interactjs/interactjs/index'\nexport * from '@interactjs/interactjs/index'\n\nif (typeof module === 'object' && !!module) {\n try { module.exports = interact }\n catch {}\n}\n\n(interact as any).default = interact // tslint:disable-line no-string-literal\n;(interact as any).init = init // tslint:disable-line no-string-literal\n\nexport default interact\n","\nreturn _$index_67;\n\n});\n","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS 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 size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** 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/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.defaultItemRenderer = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar defaultItemRenderer = function defaultItemRenderer(_ref) {\n var item = _ref.item,\n itemContext = _ref.itemContext,\n getItemProps = _ref.getItemProps,\n getResizeProps = _ref.getResizeProps;\n\n var _getResizeProps = getResizeProps(),\n leftResizeProps = _getResizeProps.left,\n rightResizeProps = _getResizeProps.right;\n\n return _react[\"default\"].createElement(\"div\", getItemProps(item.itemProps), itemContext.useResizeHandle ? _react[\"default\"].createElement(\"div\", leftResizeProps) : '', _react[\"default\"].createElement(\"div\", {\n className: \"rct-item-content\",\n style: {\n maxHeight: \"\".concat(itemContext.dimensions.height)\n }\n }, itemContext.title), itemContext.useResizeHandle ? _react[\"default\"].createElement(\"div\", rightResizeProps) : '');\n}; // TODO: update this to actual prop types. Too much to change before release\n// future me, forgive me.\n\n\nexports.defaultItemRenderer = defaultItemRenderer;\ndefaultItemRenderer.propTypes = {\n item: _propTypes[\"default\"].any,\n itemContext: _propTypes[\"default\"].any,\n getItemProps: _propTypes[\"default\"].any,\n getResizeProps: _propTypes[\"default\"].any\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.rightResizeStyle = exports.leftResizeStyle = exports.selectedAndCanResizeRightAndDragRight = exports.selectedAndCanResizeRight = exports.selectedAndCanResizeLeftAndDragLeft = exports.selectedAndCanResizeLeft = exports.selectedAndCanMove = exports.selectedStyle = exports.overridableStyles = void 0;\nvar overridableStyles = {\n fontSize: 12,\n color: 'white',\n cursor: 'pointer',\n background: '#2196f3',\n border: '1px solid #1a6fb3',\n zIndex: 80\n};\nexports.overridableStyles = overridableStyles;\nvar selectedStyle = {\n background: '#ffc107',\n border: '1px solid #ff9800',\n zIndex: 82\n};\nexports.selectedStyle = selectedStyle;\nvar selectedAndCanMove = {\n cursor: 'move'\n};\nexports.selectedAndCanMove = selectedAndCanMove;\nvar selectedAndCanResizeLeft = {\n borderLeftWidth: 3\n};\nexports.selectedAndCanResizeLeft = selectedAndCanResizeLeft;\nvar selectedAndCanResizeLeftAndDragLeft = {\n cursor: 'w-resize'\n};\nexports.selectedAndCanResizeLeftAndDragLeft = selectedAndCanResizeLeftAndDragLeft;\nvar selectedAndCanResizeRight = {\n borderRightWidth: 3\n};\nexports.selectedAndCanResizeRight = selectedAndCanResizeRight;\nvar selectedAndCanResizeRightAndDragRight = {\n cursor: 'e-resize'\n};\nexports.selectedAndCanResizeRightAndDragRight = selectedAndCanResizeRightAndDragRight;\nvar leftResizeStyle = {\n position: \"absolute\",\n width: 24,\n maxWidth: \"20%\",\n minWidth: 2,\n height: \"100%\",\n top: 0,\n left: 0,\n cursor: \"pointer\",\n zIndex: 88\n};\nexports.leftResizeStyle = leftResizeStyle;\nvar rightResizeStyle = {\n position: \"absolute\",\n width: 24,\n maxWidth: \"20%\",\n minWidth: 2,\n height: \"100%\",\n top: 0,\n right: 0,\n cursor: \"pointer\",\n zIndex: 88\n};\nexports.rightResizeStyle = rightResizeStyle;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _generic = require(\"../utility/generic\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj[\"default\"] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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 Sidebar =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Sidebar, _Component);\n\n function Sidebar() {\n _classCallCheck(this, Sidebar);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Sidebar).apply(this, arguments));\n }\n\n _createClass(Sidebar, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return !(nextProps.keys === this.props.keys && nextProps.width === this.props.width && nextProps.height === this.props.height && (0, _generic.arraysEqual)(nextProps.groups, this.props.groups) && (0, _generic.arraysEqual)(nextProps.groupHeights, this.props.groupHeights));\n }\n }, {\n key: \"renderGroupContent\",\n value: function renderGroupContent(group, isRightSidebar, groupTitleKey, groupRightTitleKey) {\n if (this.props.groupRenderer) {\n return _react[\"default\"].createElement(this.props.groupRenderer, {\n group: group,\n isRightSidebar: isRightSidebar\n });\n } else {\n return (0, _generic._get)(group, isRightSidebar ? groupRightTitleKey : groupTitleKey);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this = this;\n\n var _this$props = this.props,\n width = _this$props.width,\n groupHeights = _this$props.groupHeights,\n height = _this$props.height,\n isRightSidebar = _this$props.isRightSidebar;\n var _this$props$keys = this.props.keys,\n groupIdKey = _this$props$keys.groupIdKey,\n groupTitleKey = _this$props$keys.groupTitleKey,\n groupRightTitleKey = _this$props$keys.groupRightTitleKey;\n var sidebarStyle = {\n width: \"\".concat(width, \"px\"),\n height: \"\".concat(height, \"px\")\n };\n var groupsStyle = {\n width: \"\".concat(width, \"px\")\n };\n var groupLines = this.props.groups.map(function (group, index) {\n var elementStyle = {\n height: \"\".concat(groupHeights[index], \"px\"),\n lineHeight: \"\".concat(groupHeights[index], \"px\")\n };\n return _react[\"default\"].createElement(\"div\", {\n key: (0, _generic._get)(group, groupIdKey),\n className: 'rct-sidebar-row rct-sidebar-row-' + (index % 2 === 0 ? 'even' : 'odd'),\n style: elementStyle\n }, _this.renderGroupContent(group, isRightSidebar, groupTitleKey, groupRightTitleKey));\n });\n return _react[\"default\"].createElement(\"div\", {\n className: 'rct-sidebar' + (isRightSidebar ? ' rct-sidebar-right' : ''),\n style: sidebarStyle\n }, _react[\"default\"].createElement(\"div\", {\n style: groupsStyle\n }, groupLines));\n }\n }]);\n\n return Sidebar;\n}(_react.Component);\n\nexports[\"default\"] = Sidebar;\n\n_defineProperty(Sidebar, \"propTypes\", {\n groups: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].array, _propTypes[\"default\"].object]).isRequired,\n width: _propTypes[\"default\"].number.isRequired,\n height: _propTypes[\"default\"].number.isRequired,\n groupHeights: _propTypes[\"default\"].array.isRequired,\n keys: _propTypes[\"default\"].object.isRequired,\n groupRenderer: _propTypes[\"default\"].func,\n isRightSidebar: _propTypes[\"default\"].bool\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _calendar = require(\"../utility/calendar\");\n\nvar _TimelineStateContext = require(\"../timeline/TimelineStateContext\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj[\"default\"] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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 passThroughPropTypes = {\n canvasTimeStart: _propTypes[\"default\"].number.isRequired,\n canvasTimeEnd: _propTypes[\"default\"].number.isRequired,\n canvasWidth: _propTypes[\"default\"].number.isRequired,\n lineCount: _propTypes[\"default\"].number.isRequired,\n minUnit: _propTypes[\"default\"].string.isRequired,\n timeSteps: _propTypes[\"default\"].object.isRequired,\n height: _propTypes[\"default\"].number.isRequired,\n verticalLineClassNamesForTime: _propTypes[\"default\"].func\n};\n\nvar Columns =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Columns, _Component);\n\n function Columns() {\n _classCallCheck(this, Columns);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Columns).apply(this, arguments));\n }\n\n _createClass(Columns, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return !(nextProps.canvasTimeStart === this.props.canvasTimeStart && nextProps.canvasTimeEnd === this.props.canvasTimeEnd && nextProps.canvasWidth === this.props.canvasWidth && nextProps.lineCount === this.props.lineCount && nextProps.minUnit === this.props.minUnit && nextProps.timeSteps === this.props.timeSteps && nextProps.height === this.props.height && nextProps.verticalLineClassNamesForTime === this.props.verticalLineClassNamesForTime);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n canvasTimeStart = _this$props.canvasTimeStart,\n canvasTimeEnd = _this$props.canvasTimeEnd,\n canvasWidth = _this$props.canvasWidth,\n minUnit = _this$props.minUnit,\n timeSteps = _this$props.timeSteps,\n height = _this$props.height,\n verticalLineClassNamesForTime = _this$props.verticalLineClassNamesForTime,\n getLeftOffsetFromDate = _this$props.getLeftOffsetFromDate;\n var ratio = canvasWidth / (canvasTimeEnd - canvasTimeStart);\n var lines = [];\n (0, _calendar.iterateTimes)(canvasTimeStart, canvasTimeEnd, minUnit, timeSteps, function (time, nextTime) {\n var minUnitValue = time.get(minUnit === 'day' ? 'date' : minUnit);\n var firstOfType = minUnitValue === (minUnit === 'day' ? 1 : 0);\n var classNamesForTime = [];\n\n if (verticalLineClassNamesForTime) {\n classNamesForTime = verticalLineClassNamesForTime(time.unix() * 1000, // turn into ms, which is what verticalLineClassNamesForTime expects\n nextTime.unix() * 1000 - 1);\n } // TODO: rename or remove class that has reference to vertical-line\n\n\n var classNames = 'rct-vl' + (firstOfType ? ' rct-vl-first' : '') + (minUnit === 'day' || minUnit === 'hour' || minUnit === 'minute' ? \" rct-day-\".concat(time.day(), \" \") : '') + classNamesForTime.join(' ');\n var left = getLeftOffsetFromDate(time.valueOf());\n var right = getLeftOffsetFromDate(nextTime.valueOf());\n lines.push(_react[\"default\"].createElement(\"div\", {\n key: \"line-\".concat(time.valueOf()),\n className: classNames,\n style: {\n pointerEvents: 'none',\n top: '0px',\n left: \"\".concat(left, \"px\"),\n width: \"\".concat(right - left, \"px\"),\n height: \"\".concat(height, \"px\")\n }\n }));\n });\n return _react[\"default\"].createElement(\"div\", {\n className: \"rct-vertical-lines\"\n }, lines);\n }\n }]);\n\n return Columns;\n}(_react.Component);\n\n_defineProperty(Columns, \"propTypes\", _objectSpread({}, passThroughPropTypes, {\n getLeftOffsetFromDate: _propTypes[\"default\"].func.isRequired\n}));\n\nvar ColumnsWrapper = function ColumnsWrapper(_ref) {\n var props = _extends({}, _ref);\n\n return _react[\"default\"].createElement(_TimelineStateContext.TimelineStateConsumer, null, function (_ref2) {\n var getLeftOffsetFromDate = _ref2.getLeftOffsetFromDate;\n return _react[\"default\"].createElement(Columns, _extends({\n getLeftOffsetFromDate: getLeftOffsetFromDate\n }, props));\n });\n};\n\nColumnsWrapper.defaultProps = _objectSpread({}, passThroughPropTypes);\nvar _default = ColumnsWrapper;\nexports[\"default\"] = _default;","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _gud = require('gud');\n\nvar _gud2 = _interopRequireDefault(_gud);\n\nvar _warning = require('fbjs/lib/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\n\n// Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + (0, _gud2.default)() + '__';\n\n var Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n function Provider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Provider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.emitter = createEventEmitter(_this.props.value), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Provider.prototype.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n Provider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits = void 0;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n if (process.env.NODE_ENV !== 'production') {\n (0, _warning2.default)((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n Provider.prototype.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(_react.Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = _propTypes2.default.object.isRequired, _Provider$childContex);\n\n var Consumer = function (_Component2) {\n _inherits(Consumer, _Component2);\n\n function Consumer() {\n var _temp2, _this2, _ret2;\n\n _classCallCheck(this, Consumer);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this2 = _possibleConstructorReturn(this, _Component2.call.apply(_Component2, [this].concat(args))), _this2), _this2.state = {\n value: _this2.getValue()\n }, _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({ value: _this2.getValue() });\n }\n }, _temp2), _possibleConstructorReturn(_this2, _ret2);\n }\n\n Consumer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n var observedBits = this.props.observedBits;\n\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n Consumer.prototype.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n Consumer.prototype.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(_react.Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = _propTypes2.default.object, _Consumer$contextType);\n\n\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nexports.default = createReactContext;\nmodule.exports = exports['default'];","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;","\"use strict\";\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 */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _GroupRow = _interopRequireDefault(require(\"./GroupRow\"));\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj[\"default\"] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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 GroupRows =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(GroupRows, _Component);\n\n function GroupRows() {\n _classCallCheck(this, GroupRows);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(GroupRows).apply(this, arguments));\n }\n\n _createClass(GroupRows, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return !(nextProps.canvasWidth === this.props.canvasWidth && nextProps.lineCount === this.props.lineCount && nextProps.groupHeights === this.props.groupHeights && nextProps.groups === this.props.groups);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n canvasWidth = _this$props.canvasWidth,\n lineCount = _this$props.lineCount,\n groupHeights = _this$props.groupHeights,\n onRowClick = _this$props.onRowClick,\n onRowDoubleClick = _this$props.onRowDoubleClick,\n clickTolerance = _this$props.clickTolerance,\n groups = _this$props.groups,\n horizontalLineClassNamesForGroup = _this$props.horizontalLineClassNamesForGroup,\n onRowContextClick = _this$props.onRowContextClick;\n var lines = [];\n\n var _loop = function _loop(i) {\n lines.push(_react[\"default\"].createElement(_GroupRow[\"default\"], {\n clickTolerance: clickTolerance,\n onContextMenu: function onContextMenu(evt) {\n return onRowContextClick(evt, i);\n },\n onClick: function onClick(evt) {\n return onRowClick(evt, i);\n },\n onDoubleClick: function onDoubleClick(evt) {\n return onRowDoubleClick(evt, i);\n },\n key: \"horizontal-line-\".concat(i),\n isEvenRow: i % 2 === 0,\n group: groups[i],\n horizontalLineClassNamesForGroup: horizontalLineClassNamesForGroup,\n style: {\n width: \"\".concat(canvasWidth, \"px\"),\n height: \"\".concat(groupHeights[i], \"px\")\n }\n }));\n };\n\n for (var i = 0; i < lineCount; i++) {\n _loop(i);\n }\n\n return _react[\"default\"].createElement(\"div\", {\n className: \"rct-horizontal-lines\"\n }, lines);\n }\n }]);\n\n return GroupRows;\n}(_react.Component);\n\nexports[\"default\"] = GroupRows;\n\n_defineProperty(GroupRows, \"propTypes\", {\n canvasWidth: _propTypes[\"default\"].number.isRequired,\n lineCount: _propTypes[\"default\"].number.isRequired,\n groupHeights: _propTypes[\"default\"].array.isRequired,\n onRowClick: _propTypes[\"default\"].func.isRequired,\n onRowDoubleClick: _propTypes[\"default\"].func.isRequired,\n clickTolerance: _propTypes[\"default\"].number.isRequired,\n groups: _propTypes[\"default\"].array.isRequired,\n horizontalLineClassNamesForGroup: _propTypes[\"default\"].func,\n onRowContextClick: _propTypes[\"default\"].func.isRequired\n});","\"use strict\";\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 _PreventClickOnDrag = _interopRequireDefault(require(\"../interaction/PreventClickOnDrag\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj[\"default\"] = obj; return newObj; } }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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 GroupRow =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(GroupRow, _Component);\n\n function GroupRow() {\n _classCallCheck(this, GroupRow);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(GroupRow).apply(this, arguments));\n }\n\n _createClass(GroupRow, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n onContextMenu = _this$props.onContextMenu,\n onDoubleClick = _this$props.onDoubleClick,\n isEvenRow = _this$props.isEvenRow,\n style = _this$props.style,\n onClick = _this$props.onClick,\n clickTolerance = _this$props.clickTolerance,\n horizontalLineClassNamesForGroup = _this$props.horizontalLineClassNamesForGroup,\n group = _this$props.group;\n var classNamesForGroup = [];\n\n if (horizontalLineClassNamesForGroup) {\n classNamesForGroup = horizontalLineClassNamesForGroup(group);\n }\n\n return _react[\"default\"].createElement(_PreventClickOnDrag[\"default\"], {\n clickTolerance: clickTolerance,\n onClick: onClick\n }, _react[\"default\"].createElement(\"div\", {\n onContextMenu: onContextMenu,\n onDoubleClick: onDoubleClick,\n className: (isEvenRow ? 'rct-hl-even ' : 'rct-hl-odd ') + (classNamesForGroup ? classNamesForGroup.join(' ') : ''),\n style: style\n }));\n }\n }]);\n\n return GroupRow;\n}(_react.Component);\n\n_defineProperty(GroupRow, \"propTypes\", {\n onClick: _propTypes[\"default\"].func.isRequired,\n onDoubleClick: _propTypes[\"default\"].func.isRequired,\n onContextMenu: _propTypes[\"default\"].func.isRequired,\n isEvenRow: _propTypes[\"default\"].bool.isRequired,\n style: _propTypes[\"default\"].object.isRequired,\n clickTolerance: _propTypes[\"default\"].number.isRequired,\n group: _propTypes[\"default\"].object.isRequired,\n horizontalLineClassNamesForGroup: _propTypes[\"default\"].func\n});\n\nvar _default = GroupRow;\nexports[\"default\"] = _default;","\"use strict\";\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 _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj[\"default\"] = obj; return newObj; } }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 _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 PreventClickOnDrag =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(PreventClickOnDrag, _Component);\n\n function PreventClickOnDrag() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, PreventClickOnDrag);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(PreventClickOnDrag)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"handleMouseDown\", function (evt) {\n _this.originClickX = evt.clientX;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleMouseUp\", function (evt) {\n if (Math.abs(_this.originClickX - evt.clientX) > _this.props.clickTolerance) {\n _this.cancelClick = true;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClick\", function (evt) {\n if (!_this.cancelClick) {\n _this.props.onClick(evt);\n }\n\n _this.cancelClick = false;\n _this.originClickX = null;\n });\n\n return _this;\n }\n\n _createClass(PreventClickOnDrag, [{\n key: \"render\",\n value: function render() {\n var childElement = _react[\"default\"].Children.only(this.props.children);\n\n return _react[\"default\"].cloneElement(childElement, {\n onMouseDown: this.handleMouseDown,\n onMouseUp: this.handleMouseUp,\n onClick: this.handleClick\n });\n }\n }]);\n\n return PreventClickOnDrag;\n}(_react.Component);\n\n_defineProperty(PreventClickOnDrag, \"propTypes\", {\n children: _propTypes[\"default\"].element.isRequired,\n onClick: _propTypes[\"default\"].func.isRequired,\n clickTolerance: _propTypes[\"default\"].number.isRequired\n});\n\nvar _default = PreventClickOnDrag;\nexports[\"default\"] = _default;","\"use strict\";\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 _domHelpers = require(\"../utility/dom-helpers\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj[\"default\"] = obj; return newObj; } }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 _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 ScrollElement =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ScrollElement, _Component);\n\n function ScrollElement() {\n var _this;\n\n _classCallCheck(this, ScrollElement);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ScrollElement).call(this));\n\n _defineProperty(_assertThisInitialized(_this), \"handleScroll\", function () {\n var scrollX = _this.scrollComponent.scrollLeft;\n\n _this.props.onScroll(scrollX);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"refHandler\", function (el) {\n _this.scrollComponent = el;\n\n _this.props.scrollRef(el);\n\n if (el) {\n el.addEventListener('wheel', _this.handleWheel, {\n passive: false\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleWheel\", function (e) {\n var traditionalZoom = _this.props.traditionalZoom; // zoom in the time dimension\n\n if (e.ctrlKey || e.metaKey || e.altKey) {\n e.preventDefault();\n var parentPosition = (0, _domHelpers.getParentPosition)(e.currentTarget);\n var xPosition = e.clientX - parentPosition.x;\n var speed = e.ctrlKey ? 10 : e.metaKey ? 3 : 1; // convert vertical zoom to horiziontal\n\n _this.props.onWheelZoom(speed, xPosition, e.deltaY);\n } else if (e.shiftKey) {\n e.preventDefault(); // shift+scroll event from a touchpad has deltaY property populated; shift+scroll event from a mouse has deltaX\n\n _this.props.onScroll(_this.scrollComponent.scrollLeft + (e.deltaY || e.deltaX)); // no modifier pressed? we prevented the default event, so scroll or zoom as needed\n\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleMouseDown\", function (e) {\n if (e.button === 0) {\n _this.dragStartPosition = e.pageX;\n _this.dragLastPosition = e.pageX;\n\n _this.setState({\n isDragging: true\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleMouseMove\", function (e) {\n // this.props.onMouseMove(e)\n //why is interacting with item important?\n if (_this.state.isDragging && !_this.props.isInteractingWithItem) {\n _this.props.onScroll(_this.scrollComponent.scrollLeft + _this.dragLastPosition - e.pageX);\n\n _this.dragLastPosition = e.pageX;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleMouseUp\", function () {\n _this.dragStartPosition = null;\n _this.dragLastPosition = null;\n\n _this.setState({\n isDragging: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleMouseLeave\", function () {\n // this.props.onMouseLeave(e)\n _this.dragStartPosition = null;\n _this.dragLastPosition = null;\n\n _this.setState({\n isDragging: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleTouchStart\", function (e) {\n if (e.touches.length === 2) {\n e.preventDefault();\n _this.lastTouchDistance = Math.abs(e.touches[0].screenX - e.touches[1].screenX);\n _this.singleTouchStart = null;\n _this.lastSingleTouch = null;\n } else if (e.touches.length === 1) {\n e.preventDefault();\n var x = e.touches[0].clientX;\n var y = e.touches[0].clientY;\n _this.lastTouchDistance = null;\n _this.singleTouchStart = {\n x: x,\n y: y,\n screenY: window.pageYOffset\n };\n _this.lastSingleTouch = {\n x: x,\n y: y,\n screenY: window.pageYOffset\n };\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleTouchMove\", function (e) {\n var _this$props = _this.props,\n isInteractingWithItem = _this$props.isInteractingWithItem,\n width = _this$props.width,\n onZoom = _this$props.onZoom;\n\n if (isInteractingWithItem) {\n e.preventDefault();\n return;\n }\n\n if (_this.lastTouchDistance && e.touches.length === 2) {\n e.preventDefault();\n var touchDistance = Math.abs(e.touches[0].screenX - e.touches[1].screenX);\n var parentPosition = (0, _domHelpers.getParentPosition)(e.currentTarget);\n var xPosition = (e.touches[0].screenX + e.touches[1].screenX) / 2 - parentPosition.x;\n\n if (touchDistance !== 0 && _this.lastTouchDistance !== 0) {\n onZoom(_this.lastTouchDistance / touchDistance, xPosition / width);\n _this.lastTouchDistance = touchDistance;\n }\n } else if (_this.lastSingleTouch && e.touches.length === 1) {\n e.preventDefault();\n var x = e.touches[0].clientX;\n var y = e.touches[0].clientY;\n var deltaX = x - _this.lastSingleTouch.x;\n var deltaX0 = x - _this.singleTouchStart.x;\n var deltaY0 = y - _this.singleTouchStart.y;\n _this.lastSingleTouch = {\n x: x,\n y: y\n };\n var moveX = Math.abs(deltaX0) * 3 > Math.abs(deltaY0);\n var moveY = Math.abs(deltaY0) * 3 > Math.abs(deltaX0);\n\n if (deltaX !== 0 && moveX) {\n _this.props.onScroll(_this.scrollComponent.scrollLeft - deltaX);\n }\n\n if (moveY) {\n window.scrollTo(window.pageXOffset, _this.singleTouchStart.screenY - deltaY0);\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleTouchEnd\", function () {\n if (_this.lastTouchDistance) {\n _this.lastTouchDistance = null;\n }\n\n if (_this.lastSingleTouch) {\n _this.lastSingleTouch = null;\n _this.singleTouchStart = null;\n }\n });\n\n _this.state = {\n isDragging: false\n };\n return _this;\n }\n /**\n * needed to handle scrolling with trackpad\n */\n\n\n _createClass(ScrollElement, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.scrollComponent) {\n this.scrollComponent.removeEventListener('wheel', this.handleWheel);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n width = _this$props2.width,\n height = _this$props2.height,\n children = _this$props2.children;\n var isDragging = this.state.isDragging;\n var scrollComponentStyle = {\n width: \"\".concat(width, \"px\"),\n height: \"\".concat(height + 20, \"px\"),\n //20px to push the scroll element down off screen...?\n cursor: isDragging ? 'move' : 'default',\n position: 'relative'\n };\n return _react[\"default\"].createElement(\"div\", {\n ref: this.refHandler,\n className: \"rct-scroll\",\n style: scrollComponentStyle,\n onMouseDown: this.handleMouseDown,\n onMouseMove: this.handleMouseMove,\n onMouseUp: this.handleMouseUp,\n onMouseLeave: this.handleMouseLeave,\n onTouchStart: this.handleTouchStart,\n onTouchMove: this.handleTouchMove,\n onTouchEnd: this.handleTouchEnd,\n onScroll: this.handleScroll\n }, children);\n }\n }]);\n\n return ScrollElement;\n}(_react.Component);\n\n_defineProperty(ScrollElement, \"propTypes\", {\n children: _propTypes[\"default\"].element.isRequired,\n width: _propTypes[\"default\"].number.isRequired,\n height: _propTypes[\"default\"].number.isRequired,\n traditionalZoom: _propTypes[\"default\"].bool.isRequired,\n scrollRef: _propTypes[\"default\"].func.isRequired,\n isInteractingWithItem: _propTypes[\"default\"].bool.isRequired,\n onZoom: _propTypes[\"default\"].func.isRequired,\n onWheelZoom: _propTypes[\"default\"].func.isRequired,\n onScroll: _propTypes[\"default\"].func.isRequired\n});\n\nvar _default = ScrollElement;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _MarkerCanvasContext = require(\"./MarkerCanvasContext\");\n\nvar _TimelineMarkersRenderer = _interopRequireDefault(require(\"./TimelineMarkersRenderer\"));\n\nvar _TimelineStateContext = require(\"../timeline/TimelineStateContext\");\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 _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 _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// expand to fill entire parent container (ScrollElement)\nvar staticStyles = {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n /**\n * Renders registered markers and exposes a mouse over listener for\n * CursorMarkers to subscribe to\n */\n\n};\n\nvar MarkerCanvas =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(MarkerCanvas, _React$Component);\n\n function MarkerCanvas() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, MarkerCanvas);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(MarkerCanvas)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"handleMouseMove\", function (evt) {\n if (_this.subscription != null) {\n var pageX = evt.pageX; // FIXME: dont use getBoundingClientRect. Use passed in scroll amount\n\n var _this$containerEl$get = _this.containerEl.getBoundingClientRect(),\n containerLeft = _this$containerEl$get.left; // number of pixels from left we are on canvas\n // we do this calculation as pageX is based on x from viewport whereas\n // our canvas can be scrolled left and right and is generally outside\n // of the viewport. This calculation is to get how many pixels the cursor\n // is from left of this element\n\n\n var canvasX = pageX - containerLeft;\n\n var date = _this.props.getDateFromLeftOffsetPosition(canvasX);\n\n _this.subscription({\n leftOffset: canvasX,\n date: date,\n isCursorOverCanvas: true\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleMouseLeave\", function () {\n if (_this.subscription != null) {\n // tell subscriber that we're not on canvas\n _this.subscription({\n leftOffset: 0,\n date: 0,\n isCursorOverCanvas: false\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleMouseMoveSubscribe\", function (sub) {\n _this.subscription = sub;\n return function () {\n _this.subscription = null;\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n subscribeToMouseOver: _this.handleMouseMoveSubscribe\n });\n\n return _this;\n }\n\n _createClass(MarkerCanvas, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n return _react[\"default\"].createElement(_MarkerCanvasContext.MarkerCanvasProvider, {\n value: this.state\n }, _react[\"default\"].createElement(\"div\", {\n style: staticStyles,\n onMouseMove: this.handleMouseMove,\n onMouseLeave: this.handleMouseLeave,\n ref: function ref(el) {\n return _this2.containerEl = el;\n }\n }, _react[\"default\"].createElement(_TimelineMarkersRenderer[\"default\"], null), this.props.children));\n }\n }]);\n\n return MarkerCanvas;\n}(_react[\"default\"].Component);\n\n_defineProperty(MarkerCanvas, \"propTypes\", {\n getDateFromLeftOffsetPosition: _propTypes[\"default\"].func.isRequired,\n children: _propTypes[\"default\"].node\n});\n\nvar MarkerCanvasWrapper = function MarkerCanvasWrapper(props) {\n return _react[\"default\"].createElement(_TimelineStateContext.TimelineStateConsumer, null, function (_ref) {\n var getDateFromLeftOffsetPosition = _ref.getDateFromLeftOffsetPosition;\n return _react[\"default\"].createElement(MarkerCanvas, _extends({\n getDateFromLeftOffsetPosition: getDateFromLeftOffsetPosition\n }, props));\n });\n};\n\nvar _default = MarkerCanvasWrapper;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _TimelineMarkersContext = require(\"./TimelineMarkersContext\");\n\nvar _markerType = require(\"./markerType\");\n\nvar _TodayMarker = _interopRequireDefault(require(\"./implementations/TodayMarker\"));\n\nvar _CustomMarker = _interopRequireDefault(require(\"./implementations/CustomMarker\"));\n\nvar _TimelineStateContext = require(\"../timeline/TimelineStateContext\");\n\nvar _CursorMarker = _interopRequireDefault(require(\"./implementations/CursorMarker\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/** Internal component used in timeline to render markers registered */\nvar TimelineMarkersRenderer = function TimelineMarkersRenderer() {\n return _react[\"default\"].createElement(_TimelineStateContext.TimelineStateConsumer, null, function (_ref) {\n var getLeftOffsetFromDate = _ref.getLeftOffsetFromDate;\n return _react[\"default\"].createElement(_TimelineMarkersContext.TimelineMarkersConsumer, null, function (_ref2) {\n var markers = _ref2.markers;\n return markers.map(function (marker) {\n switch (marker.type) {\n case _markerType.TimelineMarkerType.Today:\n return _react[\"default\"].createElement(_TodayMarker[\"default\"], {\n key: marker.id,\n getLeftOffsetFromDate: getLeftOffsetFromDate,\n renderer: marker.renderer,\n interval: marker.interval\n });\n\n case _markerType.TimelineMarkerType.Custom:\n return _react[\"default\"].createElement(_CustomMarker[\"default\"], {\n key: marker.id,\n renderer: marker.renderer,\n date: marker.date,\n getLeftOffsetFromDate: getLeftOffsetFromDate\n });\n\n case _markerType.TimelineMarkerType.Cursor:\n return _react[\"default\"].createElement(_CursorMarker[\"default\"], {\n key: marker.id,\n renderer: marker.renderer,\n getLeftOffsetFromDate: getLeftOffsetFromDate\n });\n\n default:\n return null;\n }\n });\n });\n });\n};\n\nvar _default = TimelineMarkersRenderer;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _shared = require(\"./shared\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 _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 defaultRenderer = (0, _shared.createDefaultRenderer)('default-today-line');\n/** Marker that is placed based on current date. This component updates itself on\n * a set interval, dictated by the 'interval' prop.\n */\n\nvar TodayMarker =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(TodayMarker, _React$Component);\n\n function TodayMarker() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, TodayMarker);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(TodayMarker)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n date: Date.now()\n });\n\n return _this;\n }\n\n _createClass(TodayMarker, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.intervalToken = this.createIntervalUpdater(this.props.interval);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.interval !== this.props.interval) {\n clearInterval(this.intervalToken);\n this.intervalToken = this.createIntervalUpdater(this.props.interval);\n }\n }\n }, {\n key: \"createIntervalUpdater\",\n value: function createIntervalUpdater(interval) {\n var _this2 = this;\n\n return setInterval(function () {\n _this2.setState({\n date: Date.now() // FIXME: use date utils pass in as props\n\n });\n }, interval);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n clearInterval(this.intervalToken);\n }\n }, {\n key: \"render\",\n value: function render() {\n var date = this.state.date;\n var leftOffset = this.props.getLeftOffsetFromDate(date);\n var styles = (0, _shared.createMarkerStylesWithLeftOffset)(leftOffset);\n return this.props.renderer({\n styles: styles,\n date: date\n });\n }\n }]);\n\n return TodayMarker;\n}(_react[\"default\"].Component);\n\n_defineProperty(TodayMarker, \"propTypes\", {\n getLeftOffsetFromDate: _propTypes[\"default\"].func.isRequired,\n renderer: _propTypes[\"default\"].func,\n interval: _propTypes[\"default\"].number.isRequired\n});\n\n_defineProperty(TodayMarker, \"defaultProps\", {\n renderer: defaultRenderer\n});\n\nvar _default = TodayMarker;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _shared = require(\"./shared\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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 defaultCustomMarkerRenderer = (0, _shared.createDefaultRenderer)('default-customer-marker-id');\n/**\n * CustomMarker that is placed based on passed in date prop\n */\n\nvar CustomMarker =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(CustomMarker, _React$Component);\n\n function CustomMarker() {\n _classCallCheck(this, CustomMarker);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(CustomMarker).apply(this, arguments));\n }\n\n _createClass(CustomMarker, [{\n key: \"render\",\n value: function render() {\n var date = this.props.date;\n var leftOffset = this.props.getLeftOffsetFromDate(date);\n var styles = (0, _shared.createMarkerStylesWithLeftOffset)(leftOffset);\n return this.props.renderer({\n styles: styles,\n date: date\n });\n }\n }]);\n\n return CustomMarker;\n}(_react[\"default\"].Component);\n\n_defineProperty(CustomMarker, \"propTypes\", {\n getLeftOffsetFromDate: _propTypes[\"default\"].func.isRequired,\n renderer: _propTypes[\"default\"].func,\n date: _propTypes[\"default\"].number.isRequired\n});\n\n_defineProperty(CustomMarker, \"defaultProps\", {\n renderer: defaultCustomMarkerRenderer\n});\n\nvar _default = CustomMarker;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _shared = require(\"./shared\");\n\nvar _MarkerCanvasContext = require(\"../MarkerCanvasContext\");\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 _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 _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 defaultRenderer = (0, _shared.createDefaultRenderer)('default-cursor-marker');\n/**\n * CursorMarker implementation subscribes to 'subscribeToCanvasMouseOver' on mount.\n * This subscription is passed in via MarkerCanvasConsumer, which is wired up to\n * MarkerCanvasProvider in the MarkerCanvas component. When the user mouses over MarkerCanvas,\n * the callback registered in CursorMarker (this component) is passed:\n * leftOffset - pixels from left edge of canvas, used to position this element\n * date - the date the cursor pertains to\n * isCursorOverCanvas - whether the user cursor is over the canvas. This is set to 'false'\n * when the user mouseleaves the element\n */\n\nvar CursorMarker =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(CursorMarker, _React$Component);\n\n function CursorMarker() {\n var _this;\n\n _classCallCheck(this, CursorMarker);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(CursorMarker).call(this));\n\n _defineProperty(_assertThisInitialized(_this), \"handleCanvasMouseOver\", function (_ref) {\n var leftOffset = _ref.leftOffset,\n date = _ref.date,\n isCursorOverCanvas = _ref.isCursorOverCanvas;\n\n _this.setState({\n leftOffset: leftOffset,\n date: date,\n isShowingCursor: isCursorOverCanvas\n });\n });\n\n _this.state = {\n leftOffset: 0,\n date: 0,\n isShowingCursor: false\n };\n return _this;\n }\n\n _createClass(CursorMarker, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.unsubscribe = this.props.subscribeToCanvasMouseOver(this.handleCanvasMouseOver);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.unsubscribe != null) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$state = this.state,\n isShowingCursor = _this$state.isShowingCursor,\n leftOffset = _this$state.leftOffset,\n date = _this$state.date;\n if (!isShowingCursor) return null;\n var styles = (0, _shared.createMarkerStylesWithLeftOffset)(leftOffset);\n return this.props.renderer({\n styles: styles,\n date: date\n });\n }\n }]);\n\n return CursorMarker;\n}(_react[\"default\"].Component); // TODO: turn into HOC?\n\n\n_defineProperty(CursorMarker, \"propTypes\", {\n subscribeToCanvasMouseOver: _propTypes[\"default\"].func.isRequired,\n renderer: _propTypes[\"default\"].func\n});\n\n_defineProperty(CursorMarker, \"defaultProps\", {\n renderer: defaultRenderer\n});\n\nvar CursorMarkerWrapper = function CursorMarkerWrapper(props) {\n return _react[\"default\"].createElement(_MarkerCanvasContext.MarkerCanvasConsumer, null, function (_ref2) {\n var subscribeToMouseOver = _ref2.subscribeToMouseOver;\n return _react[\"default\"].createElement(CursorMarker, _extends({\n subscribeToCanvasMouseOver: subscribeToMouseOver\n }, props));\n });\n};\n\nCursorMarkerWrapper.displayName = 'CursorMarkerWrapper';\nvar _default = CursorMarkerWrapper;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction addListener(component) {\n component._resizeEventListener = {\n handleEvent: function handleEvent() {\n component.resize();\n }\n };\n window.addEventListener('resize', component._resizeEventListener);\n}\n\nfunction removeListener(component) {\n window.removeEventListener('resize', component._resizeEventListener);\n}\n\nvar _default = {\n addListener: addListener,\n removeListener: removeListener\n};\nexports[\"default\"] = _default;","function areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (newInputs[i] !== lastInputs[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nexport default memoizeOne;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CustomDateHeader = CustomDateHeader;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Interval = _interopRequireDefault(require(\"./Interval\"));\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 CustomDateHeader(_ref) {\n var _ref$headerContext = _ref.headerContext,\n intervals = _ref$headerContext.intervals,\n unit = _ref$headerContext.unit,\n getRootProps = _ref.getRootProps,\n getIntervalProps = _ref.getIntervalProps,\n showPeriod = _ref.showPeriod,\n _ref$data = _ref.data,\n style = _ref$data.style,\n intervalRenderer = _ref$data.intervalRenderer,\n className = _ref$data.className,\n getLabelFormat = _ref$data.getLabelFormat,\n unitProp = _ref$data.unitProp,\n headerData = _ref$data.headerData;\n return _react[\"default\"].createElement(\"div\", _extends({\n className: className\n }, getRootProps({\n style: style\n })), intervals.map(function (interval) {\n var intervalText = getLabelFormat([interval.startTime, interval.endTime], unit, interval.labelWidth);\n return _react[\"default\"].createElement(_Interval[\"default\"], {\n key: \"label-\".concat(interval.startTime.valueOf()),\n unit: unit,\n interval: interval,\n showPeriod: showPeriod,\n intervalText: intervalText,\n primaryHeader: unitProp === 'primaryHeader',\n getIntervalProps: getIntervalProps,\n intervalRenderer: intervalRenderer,\n headerData: headerData\n });\n }));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _calendar = require(\"../utility/calendar\");\n\nvar _events = require(\"../utility/events\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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 _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } 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 _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 _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 Interval =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Interval, _React$PureComponent);\n\n function Interval() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Interval);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Interval)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"onIntervalClick\", function () {\n var _this$props = _this.props,\n primaryHeader = _this$props.primaryHeader,\n interval = _this$props.interval,\n unit = _this$props.unit,\n showPeriod = _this$props.showPeriod;\n\n if (primaryHeader) {\n var nextUnit = (0, _calendar.getNextUnit)(unit);\n var newStartTime = interval.startTime.clone().startOf(nextUnit);\n var newEndTime = interval.startTime.clone().endOf(nextUnit);\n showPeriod(newStartTime, newEndTime);\n } else {\n showPeriod(interval.startTime, interval.endTime);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getIntervalProps\", function () {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return _objectSpread({}, _this.props.getIntervalProps(_objectSpread({\n interval: _this.props.interval\n }, props)), {\n onClick: (0, _events.composeEvents)(_this.onIntervalClick, props.onClick)\n });\n });\n\n return _this;\n }\n\n _createClass(Interval, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n intervalText = _this$props2.intervalText,\n interval = _this$props2.interval,\n intervalRenderer = _this$props2.intervalRenderer,\n headerData = _this$props2.headerData;\n var Renderer = intervalRenderer;\n\n if (Renderer) {\n return _react[\"default\"].createElement(Renderer, {\n getIntervalProps: this.getIntervalProps,\n intervalContext: {\n interval: interval,\n intervalText: intervalText\n },\n data: headerData\n });\n }\n\n return _react[\"default\"].createElement(\"div\", _extends({}, this.getIntervalProps({}), {\n className: \"rct-dateHeader \".concat(this.props.primaryHeader ? 'rct-dateHeader-primary' : '')\n }), _react[\"default\"].createElement(\"span\", null, intervalText));\n }\n }]);\n\n return Interval;\n}(_react[\"default\"].PureComponent);\n\n_defineProperty(Interval, \"propTypes\", {\n intervalRenderer: _propTypes[\"default\"].func,\n unit: _propTypes[\"default\"].string.isRequired,\n interval: _propTypes[\"default\"].object.isRequired,\n showPeriod: _propTypes[\"default\"].func.isRequired,\n intervalText: _propTypes[\"default\"].string.isRequired,\n primaryHeader: _propTypes[\"default\"].bool.isRequired,\n getIntervalProps: _propTypes[\"default\"].func.isRequired,\n headerData: _propTypes[\"default\"].object\n});\n\nvar _default = Interval;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\n// Is this necessary? The initial reason for including this is for organization sake in the\n// user code e.g.\n\n/*\n\n // would there be props passed in here?\n \n \n \n \n\n\n*/\n// If we decide to pass in props to TimelineMarkers, then yes, this is necessary.\nvar TimelineMarkers = function TimelineMarkers(props) {\n return props.children || null;\n};\n\nvar _default = TimelineMarkers;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _TimelineMarkersContext = require(\"../TimelineMarkersContext\");\n\nvar _markerType = require(\"../markerType\");\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 _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } 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 _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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 TodayMarker =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(TodayMarker, _React$Component);\n\n function TodayMarker() {\n _classCallCheck(this, TodayMarker);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(TodayMarker).apply(this, arguments));\n }\n\n _createClass(TodayMarker, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props$subscribe = this.props.subscribeMarker({\n type: _markerType.TimelineMarkerType.Today,\n renderer: this.props.children,\n interval: this.props.interval\n }),\n unsubscribe = _this$props$subscribe.unsubscribe,\n getMarker = _this$props$subscribe.getMarker;\n\n this.unsubscribe = unsubscribe;\n this.getMarker = getMarker;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.unsubscribe != null) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.interval !== this.props.interval && this.getMarker) {\n var marker = this.getMarker();\n this.props.updateMarker(_objectSpread({}, marker, {\n interval: this.props.interval\n }));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return TodayMarker;\n}(_react[\"default\"].Component); // TODO: turn into HOC?\n\n\n_defineProperty(TodayMarker, \"propTypes\", {\n subscribeMarker: _propTypes[\"default\"].func.isRequired,\n updateMarker: _propTypes[\"default\"].func.isRequired,\n interval: _propTypes[\"default\"].number,\n children: _propTypes[\"default\"].func\n});\n\n_defineProperty(TodayMarker, \"defaultProps\", {\n interval: 1000 * 10 // default to ten seconds\n\n});\n\nvar TodayMarkerWrapper = function TodayMarkerWrapper(props) {\n return _react[\"default\"].createElement(_TimelineMarkersContext.TimelineMarkersConsumer, null, function (_ref) {\n var subscribeMarker = _ref.subscribeMarker,\n updateMarker = _ref.updateMarker;\n return _react[\"default\"].createElement(TodayMarker, _extends({\n subscribeMarker: subscribeMarker,\n updateMarker: updateMarker\n }, props));\n });\n};\n\nTodayMarkerWrapper.displayName = 'TodayMarkerWrapper';\nvar _default = TodayMarkerWrapper;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _TimelineMarkersContext = require(\"../TimelineMarkersContext\");\n\nvar _markerType = require(\"../markerType\");\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 _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { if (i % 2) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } else { Object.defineProperties(target, Object.getOwnPropertyDescriptors(arguments[i])); } } 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 _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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 CustomMarker =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(CustomMarker, _React$Component);\n\n function CustomMarker() {\n _classCallCheck(this, CustomMarker);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(CustomMarker).apply(this, arguments));\n }\n\n _createClass(CustomMarker, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.date !== this.props.date && this.getMarker) {\n var marker = this.getMarker();\n this.props.updateMarker(_objectSpread({}, marker, {\n date: this.props.date\n }));\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props$subscribe = this.props.subscribeMarker({\n type: _markerType.TimelineMarkerType.Custom,\n renderer: this.props.children,\n date: this.props.date\n }),\n unsubscribe = _this$props$subscribe.unsubscribe,\n getMarker = _this$props$subscribe.getMarker;\n\n this.unsubscribe = unsubscribe;\n this.getMarker = getMarker;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.unsubscribe != null) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return CustomMarker;\n}(_react[\"default\"].Component); // TODO: turn into HOC?\n\n\n_defineProperty(CustomMarker, \"propTypes\", {\n subscribeMarker: _propTypes[\"default\"].func.isRequired,\n updateMarker: _propTypes[\"default\"].func.isRequired,\n children: _propTypes[\"default\"].func,\n date: _propTypes[\"default\"].number.isRequired\n});\n\nvar CustomMarkerWrapper = function CustomMarkerWrapper(props) {\n return _react[\"default\"].createElement(_TimelineMarkersContext.TimelineMarkersConsumer, null, function (_ref) {\n var subscribeMarker = _ref.subscribeMarker,\n updateMarker = _ref.updateMarker;\n return _react[\"default\"].createElement(CustomMarker, _extends({\n subscribeMarker: subscribeMarker,\n updateMarker: updateMarker\n }, props));\n });\n};\n\nCustomMarkerWrapper.displayName = 'CustomMarkerWrapper';\nvar _default = CustomMarkerWrapper;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _TimelineMarkersContext = require(\"../TimelineMarkersContext\");\n\nvar _markerType = require(\"../markerType\");\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 _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\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 CursorMarker =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(CursorMarker, _React$Component);\n\n function CursorMarker() {\n _classCallCheck(this, CursorMarker);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(CursorMarker).apply(this, arguments));\n }\n\n _createClass(CursorMarker, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props$subscribe = this.props.subscribeMarker({\n type: _markerType.TimelineMarkerType.Cursor,\n renderer: this.props.children\n }),\n unsubscribe = _this$props$subscribe.unsubscribe;\n\n this.unsubscribe = unsubscribe;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.unsubscribe != null) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return CursorMarker;\n}(_react[\"default\"].Component); // TODO: turn into HOC?\n\n\n_defineProperty(CursorMarker, \"propTypes\", {\n subscribeMarker: _propTypes[\"default\"].func.isRequired,\n children: _propTypes[\"default\"].func\n});\n\nvar CursorMarkerWrapper = function CursorMarkerWrapper(props) {\n return _react[\"default\"].createElement(_TimelineMarkersContext.TimelineMarkersConsumer, null, function (_ref) {\n var subscribeMarker = _ref.subscribeMarker;\n return _react[\"default\"].createElement(CursorMarker, _extends({\n subscribeMarker: subscribeMarker\n }, props));\n });\n};\n\nCursorMarkerWrapper.displayName = 'CursorMarkerWrapper';\nvar _default = CursorMarkerWrapper;\nexports[\"default\"] = _default;","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && !check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, value);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\t_entry(_this).then(returnValue, function(error) {\n\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","/** @license React v16.12.0\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.suspense_list\"):\n60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.fundamental\"):60117,w=b?Symbol.for(\"react.responder\"):60118,x=b?Symbol.for(\"react.scope\"):60119;function y(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function z(a){return y(a)===m}\nexports.typeOf=y;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===v||a.$$typeof===w||a.$$typeof===x)};exports.isAsyncMode=function(a){return z(a)||y(a)===l};exports.isConcurrentMode=z;exports.isContextConsumer=function(a){return y(a)===k};exports.isContextProvider=function(a){return y(a)===h};\nexports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return y(a)===n};exports.isFragment=function(a){return y(a)===e};exports.isLazy=function(a){return y(a)===t};exports.isMemo=function(a){return y(a)===r};exports.isPortal=function(a){return y(a)===d};exports.isProfiler=function(a){return y(a)===g};exports.isStrictMode=function(a){return y(a)===f};exports.isSuspense=function(a){return y(a)===p};\n","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (dirtyObject.hasOwnProperty(property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCDay(dirtyDate, dirtyDay, dirtyOptions) {\n requiredArgs(2, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\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 getUTCWeekYear from '../../../_lib/getUTCWeekYear/index.js';\nimport setUTCDay from '../../../_lib/setUTCDay/index.js';\nimport setUTCISODay from '../../../_lib/setUTCISODay/index.js';\nimport setUTCISOWeek from '../../../_lib/setUTCISOWeek/index.js';\nimport setUTCWeek from '../../../_lib/setUTCWeek/index.js';\nimport startOfUTCISOWeek from '../../../_lib/startOfUTCISOWeek/index.js';\nimport startOfUTCWeek from '../../../_lib/startOfUTCWeek/index.js';\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar MILLISECONDS_IN_SECOND = 1000;\nvar 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 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 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};\nvar 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\nfunction parseNumericPattern(pattern, string, valueCallback) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n var value = parseInt(matchResult[0], 10);\n return {\n value: valueCallback ? valueCallback(value) : value,\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseTimezonePattern(pattern, string) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n } // Input is 'Z'\n\n\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: string.slice(1)\n };\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 * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * MILLISECONDS_IN_SECOND),\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseAnyDigitsSigned(string, valueCallback) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, string, valueCallback);\n}\n\nfunction parseNDigits(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction parseNDigitsSigned(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction dayPeriodEnumToHours(enumValue) {\n switch (enumValue) {\n case 'morning':\n return 4;\n\n case 'evening':\n return 17;\n\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\n\nfunction normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0; // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n\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\n return isCommonEra ? result : 1 - result;\n}\n\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]; // User for validation\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\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 | | 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 */\n\n\nvar parsers = {\n // Era\n G: {\n priority: 140,\n parse: function (string, token, match, _options) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n // A, B\n\n case 'GGGGG':\n return match.era(string, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return match.era(string, {\n width: 'wide'\n }) || match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n }\n },\n set: function (date, flags, value, _options) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['R', 'u', 't', 'T']\n },\n // Year\n y: {\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 |\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n\n switch (token) {\n case 'y':\n return parseNDigits(4, string, valueCallback);\n\n case 'yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, _options) {\n var currentYear = date.getUTCFullYear();\n\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\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 incompatibleTokens: ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Local week-numbering year\n Y: {\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n\n switch (token) {\n case 'Y':\n return parseNDigits(4, string, valueCallback);\n\n case 'Yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n\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\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 incompatibleTokens: ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week-numbering year\n R: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'R') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (_date, _flags, value, _options) {\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 incompatibleTokens: ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Extended year\n u: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'u') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Quarter\n Q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone quarter\n q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Month\n M: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'MM':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone month\n L: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'LL':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Local week of year\n w: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'wo':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week of year\n I: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'Io':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Day of the month\n d: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, string);\n\n case 'do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n\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 set: function (date, _flags, value, _options) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Day of year\n D: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, string);\n\n case 'Do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']\n },\n // Day of week\n E: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['D', 'i', 'e', 'c', 't', 'T']\n },\n // Local day of week\n e: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'eo':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'eee':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']\n },\n // Stand-alone local day of week\n c: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'co':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'ccc':\n return match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']\n },\n // ISO day of week\n i: {\n priority: 90,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n if (value === 0) {\n return 7;\n }\n\n return value;\n };\n\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, string);\n // 2nd\n\n case 'io':\n return match.ordinalNumber(string, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // T\n\n case 'iiiii':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tu\n\n case 'iiiiii':\n return match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tuesday\n\n case 'iiii':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 7;\n },\n set: function (date, _flags, value, options) {\n date = setUTCISODay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']\n },\n // AM or PM\n a: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['b', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // AM, PM, midnight\n b: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // in the morning, in the afternoon, in the evening, at night\n B: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 't', 'T']\n },\n // Hour [1-12]\n h: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, string);\n\n case 'ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 12;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\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\n return date;\n },\n incompatibleTokens: ['H', 'K', 'k', 't', 'T']\n },\n // Hour [0-23]\n H: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, string);\n\n case 'Ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 23;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'K', 'k', 't', 'T']\n },\n // Hour [0-11]\n K: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, string);\n\n case 'Ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'k', 't', 'T']\n },\n // Hour [1-24]\n k: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, string);\n\n case 'ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 24;\n },\n set: function (date, _flags, value, _options) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'K', 't', 'T']\n },\n // Minute\n m: {\n priority: 60,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, string);\n\n case 'mo':\n return match.ordinalNumber(string, {\n unit: 'minute'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Second\n s: {\n priority: 50,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, string);\n\n case 'so':\n return match.ordinalNumber(string, {\n unit: 'second'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCSeconds(value, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Fraction of second\n S: {\n priority: 30,\n parse: function (string, token, _match, _options) {\n var valueCallback = function (value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n\n return parseNDigits(token.length, string, valueCallback);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMilliseconds(value);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Timezone (ISO-8601. +00:00 is `'Z'`)\n X: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'x']\n },\n // Timezone (ISO-8601)\n x: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'X']\n },\n // Seconds timestamp\n t: {\n priority: 40,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n },\n // Milliseconds timestamp\n T: {\n priority: 20,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n }\n};\nexport default parsers;","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport getUTCWeek from '../getUTCWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\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 toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport getUTCISOWeek from '../getUTCISOWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\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 toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n\n if (day % 7 === 0) {\n day = day - 7;\n }\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 defaultLocale from '../locale/en-US/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 parsers from './_lib/parsers/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar TIMEZONE_UNIT_PRIORITY = 10; // 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\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\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://git.io/fxCyr\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, ..., Su | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\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, ..., Su | 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, Su, Sa | 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, ..., Su | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\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, ..., Su | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\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 | 1, 2, ..., 11, 0 | |\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, 0001, ..., 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 `backupDate`:\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://git.io/fxCyr\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://git.io/fxCyr\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 `backupDate` which works as a context of parsing.\n *\n * `backupDate` must be passed for correct work of the function.\n * If you're not sure which `backupDate` 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 `backupDate` 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, `backupDate` 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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Old `parse` was renamed to `toDate`.\n * Now `parse` is a new function which parses a string using a provided format.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward\n * toDate('2016-01-01')\n * parse('2016-01-01', 'yyyy-MM-dd', new Date())\n * ```\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} backupDate - 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://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\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; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr\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 */\n\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyBackupDate, dirtyOptions) {\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyBackupDate);\n } else {\n return new Date(NaN);\n }\n }\n\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale // If timezone isn't specified, it will be set to the system timezone\n\n };\n var setters = [{\n priority: TIMEZONE_UNIT_PRIORITY,\n set: dateToSystemTimezone,\n index: 0\n }];\n var i;\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, subFnOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n\n for (i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(token)) {\n throwProtectedError(token);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token);\n }\n\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = void 0;\n\n for (var _i = 0; _i < usedTokens.length; _i++) {\n var usedToken = usedTokens[_i].token;\n\n if (incompatibleTokens.indexOf(usedToken) !== -1 || usedToken === firstCharacter) {\n incompatibleToken = usedTokens[_i];\n break;\n }\n }\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) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.parse(dateString, token, locale.match, subFnOptions);\n\n if (!parseResult) {\n return new Date(NaN);\n }\n\n setters.push({\n priority: parser.priority,\n set: parser.set,\n validate: parser.validate,\n value: parseResult.value,\n index: setters.length\n });\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 } // Replace two single quote characters with one single quote character\n\n\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n } // Cut token from string, or, if string doesn't match the token, return Invalid Date\n\n\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return new Date(NaN);\n }\n }\n } // Check if the remaining input contains something other than whitespace\n\n\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\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 }).reverse();\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyBackupDate);\n\n if (isNaN(date)) {\n return new Date(NaN);\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/37\n\n\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n\n for (i = 0; i < uniquePrioritySetters.length; i++) {\n var setter = uniquePrioritySetters[i];\n\n if (setter.validate && !setter.validate(utcDate, setter.value, subFnOptions)) {\n return new Date(NaN);\n }\n\n var result = setter.set(utcDate, flags, setter.value, subFnOptions); // Result is tuple (date, flags)\n\n if (result[0]) {\n utcDate = result[0];\n assign(flags, result[1]); // Result is date\n } else {\n utcDate = result;\n }\n }\n\n return utcDate;\n}\n\nfunction dateToSystemTimezone(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\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\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\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 */\n\nvar formatters = {\n // Year\n y: function (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 var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function (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 (date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function (date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function (date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function (date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function (date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function (date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function (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 lightFormatters from '../lightFormatters/index.js';\nimport 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';\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 * | | 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\n};\nvar formatters = {\n // Era\n G: function (date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\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\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function (date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\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 (date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\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\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\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 (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\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\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\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 (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\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 (date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function (date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function (date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function (date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\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\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\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 (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\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\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\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 (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\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 (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\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 (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\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 (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\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\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\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\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 (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\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\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\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\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 (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\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function (date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function (date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function (date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function (date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\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\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\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\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\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 (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\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\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\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\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function (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 (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\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\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\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\n return formatTimezone(offset, dirtyDelimiter);\n}\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}\n\nexport default formatters;","import toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js';\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\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 defaultLocale from '../locale/en-US/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'; // 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\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\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://git.io/fxCyr\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, ..., Su | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\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, ..., Su | 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, Su, Sa | 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, ..., Su | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\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, ..., Su | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | a..aaa | AM, PM | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 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 | 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 | 1, 2, ..., 11, 0 | |\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, 0001, ..., 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 | 05/29/1453 | 7 |\n * | | PP | May 29, 1453 | 7 |\n * | | PPP | May 29th, 1453 | 7 |\n * | | PPPP | Sunday, May 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 | 05/29/1453, 12:00 AM | 7 |\n * | | PPpp | May 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | May 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Sunday, May 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://git.io/fxCyr\n *\n * 9. `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://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\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://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\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; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var 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 * var 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 * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\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\n\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\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions);\n }\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\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring);\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport * as React from 'react';\nimport createContext from 'create-react-context';\nexport var ManagerReferenceNodeContext = createContext();\nexport var ManagerReferenceNodeSetterContext = createContext();\n\nvar Manager =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Manager, _React$Component);\n\n function Manager() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"referenceNode\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"setReferenceNode\", function (newReferenceNode) {\n if (newReferenceNode && _this.referenceNode !== newReferenceNode) {\n _this.referenceNode = newReferenceNode;\n\n _this.forceUpdate();\n }\n });\n\n return _this;\n }\n\n var _proto = Manager.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.referenceNode = null;\n };\n\n _proto.render = function render() {\n return React.createElement(ManagerReferenceNodeContext.Provider, {\n value: this.referenceNode\n }, React.createElement(ManagerReferenceNodeSetterContext.Provider, {\n value: this.setReferenceNode\n }, this.props.children));\n };\n\n return Manager;\n}(React.Component);\n\nexport { Manager as default };","/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === \"function\") {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return fn.apply(void 0, args);\n }\n};\n/**\n * Does a shallow equality check of two objects by comparing the reference\n * equality of each value.\n */\n\nexport var shallowEqual = function shallowEqual(objA, objB) {\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n\n if (bKeys.length !== aKeys.length) {\n return false;\n }\n\n for (var i = 0; i < bKeys.length; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key]) {\n return false;\n }\n }\n\n return true;\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === \"function\") {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport deepEqual from \"deep-equal\";\nimport * as React from 'react';\nimport PopperJS from 'popper.js';\nimport { ManagerReferenceNodeContext } from './Manager';\nimport { unwrapArray, setRef, shallowEqual } from './utils';\nvar initialStyle = {\n position: 'absolute',\n top: 0,\n left: 0,\n opacity: 0,\n pointerEvents: 'none'\n};\nvar initialArrowStyle = {};\nexport var InnerPopper =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(InnerPopper, _React$Component);\n\n function InnerPopper() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n data: undefined,\n placement: undefined\n });\n\n _defineProperty(_assertThisInitialized(_this), \"popperInstance\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"popperNode\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"arrowNode\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"setPopperNode\", function (popperNode) {\n if (!popperNode || _this.popperNode === popperNode) return;\n setRef(_this.props.innerRef, popperNode);\n _this.popperNode = popperNode;\n\n _this.updatePopperInstance();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setArrowNode\", function (arrowNode) {\n _this.arrowNode = arrowNode;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateStateModifier\", {\n enabled: true,\n order: 900,\n fn: function fn(data) {\n var placement = data.placement;\n\n _this.setState({\n data: data,\n placement: placement\n });\n\n return data;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getOptions\", function () {\n return {\n placement: _this.props.placement,\n eventsEnabled: _this.props.eventsEnabled,\n positionFixed: _this.props.positionFixed,\n modifiers: _extends({}, _this.props.modifiers, {\n arrow: _extends({}, _this.props.modifiers && _this.props.modifiers.arrow, {\n enabled: !!_this.arrowNode,\n element: _this.arrowNode\n }),\n applyStyle: {\n enabled: false\n },\n updateStateModifier: _this.updateStateModifier\n })\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getPopperStyle\", function () {\n return !_this.popperNode || !_this.state.data ? initialStyle : _extends({\n position: _this.state.data.offsets.popper.position\n }, _this.state.data.styles);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getPopperPlacement\", function () {\n return !_this.state.data ? undefined : _this.state.placement;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getArrowStyle\", function () {\n return !_this.arrowNode || !_this.state.data ? initialArrowStyle : _this.state.data.arrowStyles;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getOutOfBoundariesState\", function () {\n return _this.state.data ? _this.state.data.hide : undefined;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"destroyPopperInstance\", function () {\n if (!_this.popperInstance) return;\n\n _this.popperInstance.destroy();\n\n _this.popperInstance = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updatePopperInstance\", function () {\n _this.destroyPopperInstance();\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n popperNode = _assertThisInitialize.popperNode;\n\n var referenceElement = _this.props.referenceElement;\n if (!referenceElement || !popperNode) return;\n _this.popperInstance = new PopperJS(referenceElement, popperNode, _this.getOptions());\n });\n\n _defineProperty(_assertThisInitialized(_this), \"scheduleUpdate\", function () {\n if (_this.popperInstance) {\n _this.popperInstance.scheduleUpdate();\n }\n });\n\n return _this;\n }\n\n var _proto = InnerPopper.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // If the Popper.js options have changed, update the instance (destroy + create)\n if (this.props.placement !== prevProps.placement || this.props.referenceElement !== prevProps.referenceElement || this.props.positionFixed !== prevProps.positionFixed || !deepEqual(this.props.modifiers, prevProps.modifiers, {\n strict: true\n })) {\n // develop only check that modifiers isn't being updated needlessly\n if (process.env.NODE_ENV === \"development\") {\n if (this.props.modifiers !== prevProps.modifiers && this.props.modifiers != null && prevProps.modifiers != null && shallowEqual(this.props.modifiers, prevProps.modifiers)) {\n console.warn(\"'modifiers' prop reference updated even though all values appear the same.\\nConsider memoizing the 'modifiers' object to avoid needless rendering.\");\n }\n }\n\n this.updatePopperInstance();\n } else if (this.props.eventsEnabled !== prevProps.eventsEnabled && this.popperInstance) {\n this.props.eventsEnabled ? this.popperInstance.enableEventListeners() : this.popperInstance.disableEventListeners();\n } // A placement difference in state means popper determined a new placement\n // apart from the props value. By the time the popper element is rendered with\n // the new position Popper has already measured it, if the place change triggers\n // a size change it will result in a misaligned popper. So we schedule an update to be sure.\n\n\n if (prevState.placement !== this.state.placement) {\n this.scheduleUpdate();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n setRef(this.props.innerRef, null);\n this.destroyPopperInstance();\n };\n\n _proto.render = function render() {\n return unwrapArray(this.props.children)({\n ref: this.setPopperNode,\n style: this.getPopperStyle(),\n placement: this.getPopperPlacement(),\n outOfBoundaries: this.getOutOfBoundariesState(),\n scheduleUpdate: this.scheduleUpdate,\n arrowProps: {\n ref: this.setArrowNode,\n style: this.getArrowStyle()\n }\n });\n };\n\n return InnerPopper;\n}(React.Component);\n\n_defineProperty(InnerPopper, \"defaultProps\", {\n placement: 'bottom',\n eventsEnabled: true,\n referenceElement: undefined,\n positionFixed: false\n});\n\nvar placements = PopperJS.placements;\nexport { placements };\nexport default function Popper(_ref) {\n var referenceElement = _ref.referenceElement,\n props = _objectWithoutPropertiesLoose(_ref, [\"referenceElement\"]);\n\n return React.createElement(ManagerReferenceNodeContext.Consumer, null, function (referenceNode) {\n return React.createElement(InnerPopper, _extends({\n referenceElement: referenceElement !== undefined ? referenceElement : referenceNode\n }, props));\n });\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport * as React from 'react';\nimport warning from 'warning';\nimport { ManagerReferenceNodeSetterContext } from './Manager';\nimport { safeInvoke, unwrapArray, setRef } from './utils';\n\nvar InnerReference =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(InnerReference, _React$Component);\n\n function InnerReference() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"refHandler\", function (node) {\n setRef(_this.props.innerRef, node);\n safeInvoke(_this.props.setReferenceNode, node);\n });\n\n return _this;\n }\n\n var _proto = InnerReference.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n setRef(this.props.innerRef, null);\n };\n\n _proto.render = function render() {\n warning(Boolean(this.props.setReferenceNode), '`Reference` should not be used outside of a `Manager` component.');\n return unwrapArray(this.props.children)({\n ref: this.refHandler\n });\n };\n\n return InnerReference;\n}(React.Component);\n\nexport default function Reference(props) {\n return React.createElement(ManagerReferenceNodeSetterContext.Consumer, null, function (setReferenceNode) {\n return React.createElement(InnerReference, _extends({\n setReferenceNode: setReferenceNode\n }, props));\n });\n}","// Public components\nimport Popper, { placements } from './Popper';\nimport Manager from './Manager';\nimport Reference from './Reference';\nexport { Popper, placements, Manager, Reference }; // Public types","/**\r\n * ReactPlugin.ts\r\n * @copyright Microsoft 2019\r\n */\r\n\r\nimport {\r\n IConfig, IPageViewTelemetry, IMetricTelemetry, IAppInsights\r\n} from \"@microsoft/applicationinsights-common\";\r\nimport {\r\n IPlugin, IConfiguration, IAppInsightsCore,\r\n ITelemetryPlugin, BaseTelemetryPlugin, CoreUtils, ITelemetryItem, IProcessTelemetryContext,\r\n ITelemetryPluginChain, _InternalMessageId, LoggingSeverity, ICustomProperties\r\n} from \"@microsoft/applicationinsights-core-js\";\r\nimport { IReactExtensionConfig } from './Interfaces/IReactExtensionConfig';\r\nimport { History, LocationListener, Location, Action } from \"history\";\r\n\r\nexport default class ReactPlugin extends BaseTelemetryPlugin {\r\n public priority = 185;\r\n public identifier = 'ReactPlugin';\r\n\r\n private _analyticsPlugin: IAppInsights;\r\n private _extensionConfig: IReactExtensionConfig;\r\n\r\n initialize(config: IConfiguration & IConfig, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?:ITelemetryPluginChain) {\r\n super.initialize(config, core, extensions, pluginChain);\r\n this._extensionConfig =\r\n config.extensionConfig && config.extensionConfig[this.identifier]\r\n ? (config.extensionConfig[this.identifier] as IReactExtensionConfig)\r\n : { history: null };\r\n\r\n CoreUtils.arrForEach(extensions, ext => {\r\n const identifier = (ext as ITelemetryPlugin).identifier;\r\n if (identifier === 'ApplicationInsightsAnalytics') {\r\n this._analyticsPlugin = (ext as any) as IAppInsights;\r\n }\r\n });\r\n if (this._extensionConfig.history) {\r\n this.addHistoryListener(this._extensionConfig.history);\r\n const pageViewTelemetry: IPageViewTelemetry = {\r\n uri: this._extensionConfig.history.location.pathname\r\n };\r\n this.trackPageView(pageViewTelemetry);\r\n }\r\n }\r\n\r\n /**\r\n * Add Part A fields to the event\r\n * @param event The event that needs to be processed\r\n */\r\n processTelemetry(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n this.processNext(event, itemCtx);\r\n }\r\n\r\n trackMetric(metric: IMetricTelemetry, customProperties: ICustomProperties) {\r\n if (this._analyticsPlugin) {\r\n this._analyticsPlugin.trackMetric(metric, customProperties);\r\n } else {\r\n this.diagLog().throwInternal(\r\n LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"Analytics plugin is not available, React plugin telemetry will not be sent: \");\r\n }\r\n }\r\n\r\n trackPageView(pageView: IPageViewTelemetry) {\r\n if (this._analyticsPlugin) {\r\n this._analyticsPlugin.trackPageView(pageView);\r\n } else {\r\n this.diagLog().throwInternal(\r\n LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"Analytics plugin is not available, React plugin telemetry will not be sent: \");\r\n }\r\n }\r\n\r\n private addHistoryListener(history: History): void {\r\n const locationListener: LocationListener = (location: Location, action: Action): void => {\r\n // Timeout to ensure any changes to the DOM made by route changes get included in pageView telemetry\r\n setTimeout(() => {\r\n const pageViewTelemetry: IPageViewTelemetry = { uri: location.pathname };\r\n this.trackPageView(pageViewTelemetry);\r\n }, 500);\r\n };\r\n history.listen(locationListener);\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { IMetricTelemetry } from '@microsoft/applicationinsights-common';\r\nimport * as React from 'react';\r\nimport ReactPlugin from './ReactPlugin';\r\n\r\n/**\r\n * Higher-order component function to hook Application Insights tracking \r\n * in a React component's lifecycle.\r\n * \r\n * @param reactPlugin ReactPlugin instance\r\n * @param Component the React component to be instrumented \r\n * @param componentName (optional) component name\r\n * @param className (optional) className of the HOC div\r\n */\r\nexport default function withAITracking

(reactPlugin: ReactPlugin, Component: React.ComponentType

, componentName?: string, className?: string): React.ComponentClass

{\r\n\r\n if (componentName === undefined || componentName === null || typeof componentName !== 'string') {\r\n componentName = Component.prototype.constructor.name;\r\n }\r\n\r\n if (className === undefined || className === null || typeof className !== 'string') {\r\n className = '';\r\n }\r\n\r\n return class extends React.Component

{\r\n private _mountTimestamp: number = 0;\r\n private _firstActiveTimestamp: number = 0;\r\n private _idleStartTimestamp: number = 0;\r\n private _lastActiveTimestamp: number = 0;\r\n private _totalIdleTime: number = 0;\r\n private _idleCount: number = 0;\r\n private _idleTimeout: number = 5000;\r\n private _intervalId?: any;\r\n\r\n public componentDidMount() {\r\n this._mountTimestamp = Date.now();\r\n this._firstActiveTimestamp = 0;\r\n this._totalIdleTime = 0;\r\n this._lastActiveTimestamp = 0;\r\n this._idleStartTimestamp = 0;\r\n this._idleCount = 0;\r\n\r\n this._intervalId = setInterval(() => {\r\n if (this._lastActiveTimestamp > 0 && this._idleStartTimestamp === 0 && Date.now() - this._lastActiveTimestamp >= this._idleTimeout) {\r\n this._idleStartTimestamp = Date.now();\r\n this._idleCount++;\r\n }\r\n }, 100);\r\n }\r\n\r\n public componentWillUnmount() {\r\n if (this._mountTimestamp === 0) {\r\n throw new Error('withAITracking:componentWillUnmount: mountTimestamp is not initialized.');\r\n }\r\n if (this._intervalId) {\r\n clearInterval(this._intervalId);\r\n }\r\n\r\n if (this._firstActiveTimestamp === 0) {\r\n return;\r\n }\r\n\r\n const engagementTime = this.getEngagementTimeSeconds();\r\n const metricData: IMetricTelemetry = {\r\n average: engagementTime,\r\n name: 'React Component Engaged Time (seconds)',\r\n sampleCount: 1\r\n };\r\n\r\n const additionalProperties: { [key: string]: any } = { 'Component Name': componentName };\r\n reactPlugin.trackMetric(metricData, additionalProperties);\r\n }\r\n\r\n public render() {\r\n return (\r\n \r\n \r\n

\r\n );\r\n }\r\n\r\n private trackActivity = (e: React.SyntheticEvent): void => {\r\n if (this._firstActiveTimestamp === 0) {\r\n this._firstActiveTimestamp = Date.now();\r\n this._lastActiveTimestamp = this._firstActiveTimestamp;\r\n } else {\r\n this._lastActiveTimestamp = Date.now();\r\n }\r\n\r\n if (this._idleStartTimestamp > 0) {\r\n const lastIdleTime = this._lastActiveTimestamp - this._idleStartTimestamp;\r\n this._totalIdleTime += lastIdleTime;\r\n this._idleStartTimestamp = 0;\r\n }\r\n }\r\n\r\n private getEngagementTimeSeconds(): number {\r\n return (Date.now() - this._firstActiveTimestamp - this._totalIdleTime - this._idleCount * this._idleTimeout) / 1000;\r\n }\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\n\r\nimport { IPlugin, ITelemetryPlugin } from '../JavaScriptSDK.Interfaces/ITelemetryPlugin';\r\nimport { CoreUtils } from \"./CoreUtils\";\r\nimport { _InternalLogMessage } from \"./DiagnosticLogger\";\r\nimport { _InternalMessageId } from '../JavaScriptSDK.Enums/LoggingEnums';\r\nimport { ProcessTelemetryContext } from './ProcessTelemetryContext';\r\nimport { ITelemetryPluginChain } from '../JavaScriptSDK.Interfaces/ITelemetryPluginChain';\r\n\r\nlet _isFunction = CoreUtils.isFunction;\r\nlet processTelemetry = \"processTelemetry\";\r\nlet priority = \"priority\";\r\nlet setNextPlugin = \"setNextPlugin\";\r\nlet isInitialized = \"isInitialized\";\r\n\r\n/**\r\n * Initialize the queue of plugins\r\n * @param plugins - The array of plugins to initialize and setting of the next plugin\r\n * @param config The current config for the instance\r\n * @param core THe current core instance\r\n * @param extensions The extensions\r\n */\r\nexport function initializePlugins(processContext:ProcessTelemetryContext, extensions: IPlugin[]) {\r\n\r\n // Set the next plugin and identified the uninitialized plugins\r\n let initPlugins:ITelemetryPlugin[] = [];\r\n let lastPlugin:ITelemetryPlugin = null;\r\n let proxy:ITelemetryPluginChain = processContext.getNext();\r\n while (proxy) {\r\n let thePlugin = proxy.getPlugin();\r\n if (thePlugin) {\r\n if (lastPlugin &&\r\n _isFunction(lastPlugin[setNextPlugin]) &&\r\n _isFunction(thePlugin[processTelemetry])) {\r\n // Set this plugin as the next for the previous one\r\n lastPlugin[setNextPlugin](thePlugin);\r\n }\r\n\r\n if (!_isFunction(thePlugin[isInitialized]) || !thePlugin[isInitialized]()) {\r\n initPlugins.push(thePlugin);\r\n }\r\n\r\n lastPlugin = thePlugin;\r\n proxy = proxy.getNext();\r\n }\r\n }\r\n\r\n // Now initiatilize the plugins\r\n CoreUtils.arrForEach(initPlugins, thePlugin => {\r\n thePlugin.initialize(\r\n processContext.getCfg(), \r\n processContext.core(), \r\n extensions, \r\n processContext.getNext());\r\n });\r\n}\r\n\r\nexport function sortPlugins(plugins:IPlugin[]) {\r\n // Sort by priority\r\n return plugins.sort((extA, extB) => {\r\n let result = 0;\r\n let bHasProcess = _isFunction(extB[processTelemetry]);\r\n if (_isFunction(extA[processTelemetry])) {\r\n result = bHasProcess ? extA[priority] - extB[priority] : 1;\r\n } else if (bHasProcess) {\r\n result = -1;\r\n }\r\n\r\n return result;\r\n });\r\n // sort complete \r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\n\r\nimport { IAppInsightsCore } from \"../JavaScriptSDK.Interfaces/IAppInsightsCore\"\r\nimport { IConfiguration } from \"../JavaScriptSDK.Interfaces/IConfiguration\";\r\nimport { IChannelControls } from \"../JavaScriptSDK.Interfaces/IChannelControls\";\r\nimport { IPlugin, ITelemetryPlugin } from \"../JavaScriptSDK.Interfaces/ITelemetryPlugin\";\r\nimport { ITelemetryItem } from \"../JavaScriptSDK.Interfaces/ITelemetryItem\";\r\nimport { IProcessTelemetryContext } from \"../JavaScriptSDK.Interfaces/IProcessTelemetryContext\";\r\nimport { CoreUtils } from \"./CoreUtils\";\r\nimport { _InternalLogMessage } from \"./DiagnosticLogger\";\r\nimport { BaseTelemetryPlugin } from './BaseTelemetryPlugin';\r\nimport { ProcessTelemetryContext } from './ProcessTelemetryContext';\r\nimport { initializePlugins } from './TelemetryHelpers';\r\n\r\nconst ChannelControllerPriority = 500;\r\nconst ChannelValidationMessage = \"Channel has invalid priority\";\r\n\r\nlet _arrForEach = CoreUtils.arrForEach;\r\nlet _objDefineAccessors = CoreUtils.objDefineAccessors;\r\n\r\nfunction _checkQueuePriority(queue:IChannelControls[]) {\r\n _arrForEach(queue, queueItem => {\r\n if (queueItem.priority < ChannelControllerPriority) {\r\n throw Error(ChannelValidationMessage + queueItem.identifier);\r\n }\r\n });\r\n}\r\n\r\nfunction _addChannelQueue(channelQueues:IChannelControls[][], queue:IChannelControls[]) {\r\n if (queue && queue.length > 0) {\r\n queue = queue.sort((a, b) => { // sort based on priority within each queue\r\n return a.priority - b.priority;\r\n });\r\n\r\n _checkQueuePriority(queue);\r\n channelQueues.push(queue);\r\n }\r\n}\r\n\r\nfunction _createChannelQueues(channels:IChannelControls[][], extensions: IPlugin[]) {\r\n let channelQueues:IChannelControls[][] = [];\r\n\r\n if (channels) {\r\n // Add and sort the configuration channel queues\r\n _arrForEach(channels, queue => _addChannelQueue(channelQueues, queue));\r\n }\r\n\r\n if (extensions) {\r\n // Create a new channel queue for any extensions with a priority > the ChannelControllerPriority\r\n let extensionQueue:IChannelControls[] = [];\r\n _arrForEach(extensions as IChannelControls[], plugin => {\r\n if (plugin.priority > ChannelControllerPriority) {\r\n extensionQueue.push(plugin);\r\n }\r\n });\r\n \r\n _addChannelQueue(channelQueues, extensionQueue);\r\n }\r\n\r\n return channelQueues;\r\n}\r\n\r\nexport class ChannelController extends BaseTelemetryPlugin {\r\n\r\n identifier: string = \"ChannelControllerPlugin\";\r\n\r\n setNextPlugin: (next: ITelemetryPlugin) => {}; // channel controller is last in pipeline\r\n\r\n priority: number = ChannelControllerPriority; // in reserved range 100 to 200\r\n\r\n private _channelQueue: IChannelControls[][];\r\n\r\n public processTelemetry(item: ITelemetryItem, itemCtx: IProcessTelemetryContext) {\r\n if (this._channelQueue) {\r\n _arrForEach(this._channelQueue, queues => {\r\n // pass on to first item in queue\r\n if (queues.length > 0) {\r\n // Copying the item context as we could have mutiple chains that are executing asynchronously\r\n // and calling _getDefTelCtx as it's possible that the caller doesn't pass any context\r\n let chainCtx = this._getTelCtx(itemCtx).createNew(queues); \r\n chainCtx.processNext(item);\r\n }\r\n });\r\n }\r\n };\r\n\r\n public getChannelControls(): IChannelControls[][] {\r\n return this._channelQueue;\r\n }\r\n\r\n public initialize(config: IConfiguration, core: IAppInsightsCore, extensions: IPlugin[]) {\r\n let _self = this;\r\n if (_self.isInitialized()) {\r\n // already initialized\r\n return;\r\n }\r\n\r\n super.initialize(config, core, extensions);\r\n\r\n if ((config as any).isCookieUseDisabled) {\r\n CoreUtils.disableCookies();\r\n }\r\n \r\n let channelQueue = _self._channelQueue = _createChannelQueues((config||{}).channels, extensions);\r\n\r\n // Initialize the Queues\r\n _arrForEach(channelQueue, queue => initializePlugins(new ProcessTelemetryContext(queue, config, core), extensions));\r\n }\r\n\r\n /**\r\n * Static constructor, attempt to create accessors\r\n */\r\n // tslint:disable-next-line\r\n private static _staticInit = (() => {\r\n // Dynamically create get/set property accessors\r\n _objDefineAccessors(ChannelController.prototype, \"ChannelControls\", ChannelController.prototype.getChannelControls);\r\n _objDefineAccessors(ChannelController.prototype, \"channelQueue\", ChannelController.prototype.getChannelControls);\r\n })();\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n/**\r\n * Type of storage to differentiate between local storage and session storage\r\n */\r\nexport enum StorageType {\r\n LocalStorage,\r\n SessionStorage\r\n}\r\n\r\n/**\r\n * Enum is used in aiDataContract to describe how fields are serialized. \r\n * For instance: (Fieldtype.Required | FieldType.Array) will mark the field as required and indicate it's an array\r\n */\r\nexport enum FieldType { Default = 0, Required = 1, Array = 2, Hidden = 4 };\r\n\r\nexport enum DistributedTracingModes {\r\n /**\r\n * (Default) Send Application Insights correlation headers\r\n */\r\n\r\n AI=0,\r\n\r\n /**\r\n * Send both W3C Trace Context headers and back-compatibility Application Insights headers\r\n */\r\n AI_AND_W3C,\r\n\r\n /**\r\n * Send W3C Trace Context headers\r\n */\r\n W3C\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\n\r\nimport { IAppInsightsCore } from \"../JavaScriptSDK.Interfaces/IAppInsightsCore\"\r\nimport { IConfiguration } from \"../JavaScriptSDK.Interfaces/IConfiguration\";\r\nimport { IPlugin, ITelemetryPlugin } from \"../JavaScriptSDK.Interfaces/ITelemetryPlugin\";\r\nimport { IChannelControls } from \"../JavaScriptSDK.Interfaces/IChannelControls\";\r\nimport { ITelemetryItem } from \"../JavaScriptSDK.Interfaces/ITelemetryItem\";\r\nimport { CoreUtils } from \"./CoreUtils\";\r\nimport { INotificationManager } from '../JavaScriptSDK.Interfaces/INotificationManager';\r\nimport { IDiagnosticLogger } from \"../JavaScriptSDK.Interfaces/IDiagnosticLogger\";\r\nimport { ChannelController } from './ChannelController';\r\nimport { IProcessTelemetryContext } from '../JavaScriptSDK.Interfaces/IProcessTelemetryContext';\r\nimport { ProcessTelemetryContext } from './ProcessTelemetryContext';\r\nimport { initializePlugins, sortPlugins } from './TelemetryHelpers';\r\n\r\nconst validationError = \"Extensions must provide callback to initialize\";\r\n\r\nlet _arrForEach = CoreUtils.arrForEach;\r\nlet _isNullOrUndefined = CoreUtils.isNullOrUndefined;\r\n\r\nexport class BaseCore implements IAppInsightsCore {\r\n public static defaultConfig: IConfiguration;\r\n public config: IConfiguration;\r\n public logger: IDiagnosticLogger;\r\n\r\n public _extensions: IPlugin[];\r\n public isInitialized: () => boolean;\r\n protected _notificationManager: INotificationManager;\r\n private _eventQueue: ITelemetryItem[];\r\n private _channelController: ChannelController;\r\n private _setInit: (value: boolean) => void;\r\n\r\n constructor() {\r\n let _isInitialized = false;\r\n let _this = this;\r\n _this._extensions = new Array();\r\n _this._channelController = new ChannelController();\r\n _this.isInitialized = () => _isInitialized;\r\n _this._setInit = (value: boolean) => { _isInitialized = value; }\r\n _this._eventQueue = [];\r\n }\r\n\r\n initialize(config: IConfiguration, extensions: IPlugin[], logger?: IDiagnosticLogger, notificationManager?: INotificationManager): void {\r\n let _this = this;\r\n\r\n // Make sure core is only initialized once\r\n if (_this.isInitialized()) {\r\n throw Error(\"Core should not be initialized more than once\");\r\n }\r\n\r\n if (!config || _isNullOrUndefined(config.instrumentationKey)) {\r\n throw Error(\"Please provide instrumentation key\");\r\n }\r\n\r\n _this.config = config;\r\n let channelController = _this._channelController;\r\n\r\n if (!notificationManager) {\r\n // Create Dummy notification manager\r\n notificationManager = CoreUtils.objCreate({\r\n addNotificationListener: (listener) => { },\r\n removeNotificationListener: (listener) => { },\r\n eventsSent: (events) => { },\r\n eventsDiscarded: (events: ITelemetryItem[], reason: number) => { }\r\n })\r\n }\r\n\r\n _this._notificationManager = notificationManager;\r\n config.extensions = _isNullOrUndefined(config.extensions) ? [] : config.extensions;\r\n\r\n // add notification to the extensions in the config so other plugins can access it\r\n let extConfig = config.extensionConfig = _isNullOrUndefined(config.extensionConfig) ? {} : config.extensionConfig;\r\n extConfig.NotificationManager = notificationManager;\r\n\r\n if (!logger) {\r\n logger = CoreUtils.objCreate({\r\n throwInternal: (severity, msgId, msg: string, properties?: Object, isUserAct = false) => { },\r\n warnToConsole: (message: string) => { },\r\n resetInternalMessageCount: () => { }\r\n });\r\n }\r\n _this.logger = logger;\r\n\r\n // Concat all available extensions\r\n let allExtensions = [];\r\n allExtensions.push(...extensions, ...config.extensions);\r\n allExtensions = sortPlugins(allExtensions);\r\n\r\n let coreExtensions = [];\r\n let channelExtensions = [];\r\n\r\n // Check if any two extensions have the same priority, then warn to console\r\n // And extract the local extensions from the \r\n const extPriorities = {};\r\n\r\n // Extension validation\r\n _arrForEach(allExtensions, (ext: ITelemetryPlugin) => {\r\n if (_isNullOrUndefined(ext) || _isNullOrUndefined(ext.initialize)) {\r\n throw Error(validationError);\r\n }\r\n\r\n const extPriority = ext.priority;\r\n const identifier = ext.identifier;\r\n\r\n if (ext && extPriority) {\r\n if (!_isNullOrUndefined(extPriorities[extPriority])) {\r\n logger.warnToConsole(\"Two extensions have same priority #\" + extPriority + \" - \" + extPriorities[extPriority] + \", \" + identifier);\r\n } else {\r\n // set a value\r\n extPriorities[extPriority] = identifier;\r\n }\r\n }\r\n\r\n // Split extensions to core and channelController\r\n if (!extPriority || extPriority < channelController.priority) {\r\n // Add to core extension that will be managed by BaseCore\r\n coreExtensions.push(ext);\r\n } else {\r\n // Add all other extensions to be managed by the channel controller\r\n channelExtensions.push(ext);\r\n }\r\n });\r\n // Validation complete\r\n\r\n // Add the channelController to the complete extension collection and\r\n // to the end of the core extensions\r\n allExtensions.push(channelController);\r\n coreExtensions.push(channelController);\r\n\r\n // Sort the complete set of extensions by priority\r\n allExtensions = sortPlugins(allExtensions);\r\n _this._extensions = allExtensions;\r\n\r\n // initialize channel controller first, this will initialize all channel plugins\r\n initializePlugins(new ProcessTelemetryContext([channelController], config, _this), allExtensions);\r\n initializePlugins(new ProcessTelemetryContext(coreExtensions, config, _this), allExtensions);\r\n\r\n // Now reset the extensions to just those being managed by Basecore\r\n _this._extensions = coreExtensions;\r\n\r\n if (_this.getTransmissionControls().length === 0) {\r\n throw new Error(\"No channels available\");\r\n }\r\n\r\n _this._setInit(true);\r\n }\r\n\r\n getTransmissionControls(): IChannelControls[][] {\r\n return this._channelController.getChannelControls();\r\n }\r\n\r\n track(telemetryItem: ITelemetryItem) {\r\n let _this = this;\r\n if (!telemetryItem.iKey) {\r\n // setup default iKey if not passed in\r\n telemetryItem.iKey = _this.config.instrumentationKey;\r\n }\r\n if (!telemetryItem.time) {\r\n // add default timestamp if not passed in\r\n telemetryItem.time = CoreUtils.toISOString(new Date());\r\n }\r\n if (_isNullOrUndefined(telemetryItem.ver)) {\r\n // CommonSchema 4.0\r\n telemetryItem.ver = \"4.0\";\r\n }\r\n\r\n if (_this.isInitialized()) {\r\n // Release queue\r\n if (_this._eventQueue.length > 0) {\r\n _arrForEach(_this._eventQueue, (event: ITelemetryItem) => {\r\n _this.getProcessTelContext().processNext(event);\r\n });\r\n _this._eventQueue = [];\r\n }\r\n // Process the telemetry plugin chain\r\n _this.getProcessTelContext().processNext(telemetryItem);\r\n } else {\r\n // Queue events until all extensions are initialized\r\n _this._eventQueue.push(telemetryItem);\r\n }\r\n }\r\n\r\n getProcessTelContext(): IProcessTelemetryContext {\r\n let _this = this;\r\n let extensions = _this._extensions;\r\n let thePlugins: IPlugin[] = extensions;\r\n\r\n // invoke any common telemetry processors before sending through pipeline\r\n if (!extensions || extensions.length === 0) {\r\n // Pass to Channel controller so data is sent to correct channel queues\r\n thePlugins = [_this._channelController];\r\n }\r\n\r\n return new ProcessTelemetryContext(thePlugins, _this.config, _this);\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * The EventsDiscardedReason enumeration contains a set of values that specify the reason for discarding an event.\r\n */\r\nexport const EventsDiscardedReason = {\r\n /**\r\n * Unknown.\r\n */\r\n Unknown: 0,\r\n /**\r\n * Status set to non-retryable.\r\n */\r\n NonRetryableStatus: 1,\r\n /**\r\n * The event is invalid.\r\n */\r\n InvalidEvent: 2,\r\n /**\r\n * The size of the event is too large.\r\n */\r\n SizeLimitExceeded: 3,\r\n /**\r\n * The server is not accepting events from this instrumentation key.\r\n */\r\n KillSwitch: 4,\r\n /**\r\n * The event queue is full.\r\n */\r\n QueueFull: 5,\r\n};\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { ITelemetryItem } from \"../JavaScriptSDK.Interfaces/ITelemetryItem\";\r\nimport { INotificationListener } from \"../JavaScriptSDK.Interfaces/INotificationListener\";\r\nimport { INotificationManager } from './../JavaScriptSDK.Interfaces/INotificationManager';\r\nimport { CoreUtils } from \"./CoreUtils\";\r\n\r\n/**\r\n * Class to manage sending notifications to all the listeners.\r\n */\r\nexport class NotificationManager implements INotificationManager {\r\n listeners: INotificationListener[] = [];\r\n\r\n /**\r\n * Adds a notification listener.\r\n * @param {INotificationListener} listener - The notification listener to be added.\r\n */\r\n addNotificationListener(listener: INotificationListener): void {\r\n this.listeners.push(listener);\r\n }\r\n\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - AWTNotificationListener to remove.\r\n */\r\n removeNotificationListener(listener: INotificationListener): void {\r\n let index: number = CoreUtils.arrIndexOf(this.listeners, listener);\r\n while (index > -1) {\r\n this.listeners.splice(index, 1);\r\n index = CoreUtils.arrIndexOf(this.listeners, listener);\r\n }\r\n }\r\n\r\n /**\r\n * Notification for events sent.\r\n * @param {ITelemetryItem[]} events - The array of events that have been sent.\r\n */\r\n eventsSent(events: ITelemetryItem[]): void {\r\n for (let i: number = 0; i < this.listeners.length; ++i) {\r\n if (this.listeners[i].eventsSent) {\r\n setTimeout(() => this.listeners[i].eventsSent(events), 0);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Notification for events being discarded.\r\n * @param {ITelemetryItem[]} events - The array of events that have been discarded by the SDK.\r\n * @param {number} reason - The reason for which the SDK discarded the events. The EventsDiscardedReason\r\n * constant should be used to check the different values.\r\n */\r\n eventsDiscarded(events: ITelemetryItem[], reason: number): void {\r\n for (let i: number = 0; i < this.listeners.length; ++i) {\r\n if (this.listeners[i].eventsDiscarded) {\r\n setTimeout(() => this.listeners[i].eventsDiscarded(events, reason), 0);\r\n }\r\n }\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { IAppInsightsCore } from \"../JavaScriptSDK.Interfaces/IAppInsightsCore\"\r\nimport { BaseCore } from './BaseCore';\r\nimport { IConfiguration } from \"../JavaScriptSDK.Interfaces/IConfiguration\";\r\nimport { IPlugin } from \"../JavaScriptSDK.Interfaces/ITelemetryPlugin\";\r\nimport { IChannelControls } from \"../JavaScriptSDK.Interfaces/IChannelControls\";\r\nimport { ITelemetryItem } from \"../JavaScriptSDK.Interfaces/ITelemetryItem\";\r\nimport { INotificationListener } from \"../JavaScriptSDK.Interfaces/INotificationListener\";\r\nimport { EventsDiscardedReason } from \"../JavaScriptSDK.Enums/EventsDiscardedReason\";\r\nimport { NotificationManager } from \"./NotificationManager\";\r\nimport { CoreUtils } from \"./CoreUtils\";\r\nimport { IDiagnosticLogger } from \"../JavaScriptSDK.Interfaces/IDiagnosticLogger\";\r\nimport { _InternalLogMessage, DiagnosticLogger } from \"./DiagnosticLogger\";\r\n\r\n\"use strict\";\r\n\r\nexport class AppInsightsCore extends BaseCore implements IAppInsightsCore {\r\n public config: IConfiguration;\r\n public logger: IDiagnosticLogger;\r\n\r\n protected _notificationManager: NotificationManager;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n initialize(config: IConfiguration, extensions: IPlugin[]): void {\r\n let _self = this;\r\n _self._notificationManager = new NotificationManager();\r\n _self.logger = new DiagnosticLogger(config);\r\n _self.config = config;\r\n \r\n super.initialize(config, extensions, _self.logger, _self._notificationManager);\r\n }\r\n\r\n getTransmissionControls(): IChannelControls[][] {\r\n return super.getTransmissionControls();\r\n }\r\n\r\n track(telemetryItem: ITelemetryItem) {\r\n if (telemetryItem === null) {\r\n this._notifyInvalidEvent(telemetryItem);\r\n // throw error\r\n throw Error(\"Invalid telemetry item\");\r\n }\r\n \r\n // do basic validation before sending it through the pipeline\r\n this._validateTelemetryItem(telemetryItem);\r\n\r\n super.track(telemetryItem);\r\n }\r\n\r\n /**\r\n * Adds a notification listener. The SDK calls methods on the listener when an appropriate notification is raised.\r\n * The added plugins must raise notifications. If the plugins do not implement the notifications, then no methods will be\r\n * called.\r\n * @param {INotificationListener} listener - An INotificationListener object.\r\n */\r\n addNotificationListener(listener: INotificationListener): void {\r\n if (this._notificationManager) {\r\n this._notificationManager.addNotificationListener(listener);\r\n }\r\n }\r\n\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - INotificationListener to remove.\r\n */\r\n removeNotificationListener(listener: INotificationListener): void {\r\n if (this._notificationManager) {\r\n this._notificationManager.removeNotificationListener(listener);\r\n }\r\n }\r\n\r\n /**\r\n * Periodically check logger.queue for\r\n */\r\n pollInternalLogs(eventName?: string): number {\r\n let interval = this.config.diagnosticLogInterval;\r\n if (!(interval > 0)) {\r\n interval = 10000;\r\n }\r\n\r\n return setInterval(() => {\r\n let _self = this;\r\n const queue: _InternalLogMessage[] = _self.logger ? _self.logger.queue : [];\r\n\r\n CoreUtils.arrForEach(queue, (logMessage: _InternalLogMessage) => {\r\n const item: ITelemetryItem = {\r\n name: eventName ? eventName : \"InternalMessageId: \" + logMessage.messageId,\r\n iKey: _self.config.instrumentationKey,\r\n time: CoreUtils.toISOString(new Date()),\r\n baseType: _InternalLogMessage.dataType,\r\n baseData: { message: logMessage.message }\r\n };\r\n\r\n _self.track(item);\r\n });\r\n queue.length = 0;\r\n }, interval) as any;\r\n }\r\n\r\n private _validateTelemetryItem(telemetryItem: ITelemetryItem) {\r\n\r\n if (CoreUtils.isNullOrUndefined(telemetryItem.name)) {\r\n this._notifyInvalidEvent(telemetryItem);\r\n throw Error(\"telemetry name required\");\r\n }\r\n }\r\n\r\n private _notifyInvalidEvent(telemetryItem: ITelemetryItem): void {\r\n if (this._notificationManager) {\r\n this._notificationManager.eventsDiscarded([telemetryItem], EventsDiscardedReason.InvalidEvent);\r\n }\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nexport class RequestHeaders {\r\n /**\r\n * Request-Context header\r\n */\r\n public static requestContextHeader = \"Request-Context\";\r\n\r\n /**\r\n * Target instrumentation header that is added to the response and retrieved by the\r\n * calling application when processing incoming responses.\r\n */\r\n public static requestContextTargetKey = \"appId\";\r\n\r\n /**\r\n * Request-Context appId format\r\n */\r\n public static requestContextAppIdFormat = \"appId=cid-v1:\";\r\n\r\n /**\r\n * Request-Id header\r\n */\r\n public static requestIdHeader = \"Request-Id\";\r\n\r\n /**\r\n * W3C distributed tracing protocol header\r\n */\r\n public static traceParentHeader = \"traceparent\";\r\n\r\n /**\r\n * W3C distributed tracing protocol state header\r\n */\r\n public static traceStateHeader: \"tracestate\"; // currently not used\r\n\r\n /**\r\n * Sdk-Context header\r\n * If this header passed with appId in content then appId will be returned back by the backend.\r\n */\r\n public static sdkContextHeader = \"Sdk-Context\";\r\n\r\n /**\r\n * String to pass in header for requesting appId back from the backend.\r\n */\r\n public static sdkContextHeaderAppIdRequest = \"appId\";\r\n\r\n public static requestContextHeaderLowerCase = \"request-context\";\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { IDiagnosticLogger, LoggingSeverity, _InternalMessageId, CoreUtils, hasJSON, getJSON } from '@microsoft/applicationinsights-core-js';\r\n\r\nexport class DataSanitizer {\r\n\r\n /**\r\n * Max length allowed for custom names.\r\n */\r\n public static MAX_NAME_LENGTH = 150;\r\n\r\n /**\r\n * Max length allowed for Id field in page views.\r\n */\r\n public static MAX_ID_LENGTH = 128;\r\n\r\n /**\r\n * Max length allowed for custom values.\r\n */\r\n public static MAX_PROPERTY_LENGTH = 8192;\r\n\r\n /**\r\n * Max length allowed for names\r\n */\r\n public static MAX_STRING_LENGTH = 1024;\r\n\r\n /**\r\n * Max length allowed for url.\r\n */\r\n public static MAX_URL_LENGTH = 2048;\r\n\r\n /**\r\n * Max length allowed for messages.\r\n */\r\n public static MAX_MESSAGE_LENGTH = 32768;\r\n\r\n /**\r\n * Max length allowed for exceptions.\r\n */\r\n public static MAX_EXCEPTION_LENGTH = 32768;\r\n\r\n public static sanitizeKeyAndAddUniqueness(logger: IDiagnosticLogger, key, map) {\r\n const origLength = key.length;\r\n let field = DataSanitizer.sanitizeKey(logger, key);\r\n\r\n // validation truncated the length. We need to add uniqueness\r\n if (field.length !== origLength) {\r\n let i = 0;\r\n let uniqueField = field;\r\n while (map[uniqueField] !== undefined) {\r\n i++;\r\n uniqueField = field.substring(0, DataSanitizer.MAX_NAME_LENGTH - 3) + DataSanitizer.padNumber(i);\r\n }\r\n field = uniqueField;\r\n }\r\n return field;\r\n }\r\n\r\n public static sanitizeKey(logger: IDiagnosticLogger, name) {\r\n let nameTrunc: String;\r\n if (name) {\r\n // Remove any leading or trailing whitepace\r\n name = DataSanitizer.trim(name.toString());\r\n\r\n // truncate the string to 150 chars\r\n if (name.length > DataSanitizer.MAX_NAME_LENGTH) {\r\n nameTrunc = name.substring(0, DataSanitizer.MAX_NAME_LENGTH);\r\n logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.NameTooLong,\r\n \"name is too long. It has been truncated to \" + DataSanitizer.MAX_NAME_LENGTH + \" characters.\",\r\n { name }, true);\r\n }\r\n }\r\n\r\n return nameTrunc || name;\r\n }\r\n\r\n public static sanitizeString(logger: IDiagnosticLogger, value: any, maxLength: number = DataSanitizer.MAX_STRING_LENGTH) {\r\n let valueTrunc : String;\r\n if (value) {\r\n maxLength = maxLength ? maxLength : DataSanitizer.MAX_STRING_LENGTH; // in case default parameters dont work\r\n value = DataSanitizer.trim(value);\r\n if (value.toString().length > maxLength) {\r\n valueTrunc = value.toString().substring(0, maxLength);\r\n logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.StringValueTooLong,\r\n \"string value is too long. It has been truncated to \" + maxLength + \" characters.\",\r\n { value }, true);\r\n }\r\n }\r\n\r\n return valueTrunc || value;\r\n }\r\n\r\n public static sanitizeUrl(logger: IDiagnosticLogger, url) {\r\n return DataSanitizer.sanitizeInput(logger, url, DataSanitizer.MAX_URL_LENGTH, _InternalMessageId.UrlTooLong);\r\n }\r\n\r\n public static sanitizeMessage(logger: IDiagnosticLogger, message) {\r\n let messageTrunc : String;\r\n if (message) {\r\n if (message.length > DataSanitizer.MAX_MESSAGE_LENGTH) {\r\n messageTrunc = message.substring(0, DataSanitizer.MAX_MESSAGE_LENGTH);\r\n logger.throwInternal(\r\n LoggingSeverity.WARNING, _InternalMessageId.MessageTruncated,\r\n \"message is too long, it has been truncated to \" + DataSanitizer.MAX_MESSAGE_LENGTH + \" characters.\",\r\n { message },\r\n true);\r\n }\r\n }\r\n\r\n return messageTrunc || message;\r\n }\r\n\r\n public static sanitizeException(logger: IDiagnosticLogger, exception) {\r\n let exceptionTrunc : String;\r\n if (exception) {\r\n if (exception.length > DataSanitizer.MAX_EXCEPTION_LENGTH) {\r\n exceptionTrunc = exception.substring(0, DataSanitizer.MAX_EXCEPTION_LENGTH);\r\n logger.throwInternal(\r\n LoggingSeverity.WARNING, _InternalMessageId.ExceptionTruncated, \"exception is too long, it has been truncated to \" + DataSanitizer.MAX_EXCEPTION_LENGTH + \" characters.\",\r\n { exception }, true);\r\n }\r\n }\r\n\r\n return exceptionTrunc || exception;\r\n }\r\n\r\n public static sanitizeProperties(logger: IDiagnosticLogger, properties) {\r\n if (properties) {\r\n const tempProps = {};\r\n for (let prop in properties) {\r\n let value = properties[prop];\r\n if (CoreUtils.isObject(value) && hasJSON()) {\r\n // Stringify any part C properties\r\n try {\r\n value = getJSON().stringify(value);\r\n } catch (e) {\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CannotSerializeObjectNonSerializable, \"custom property is not valid\", { exception: e}, true);\r\n }\r\n }\r\n value = DataSanitizer.sanitizeString(logger, value, DataSanitizer.MAX_PROPERTY_LENGTH);\r\n prop = DataSanitizer.sanitizeKeyAndAddUniqueness(logger, prop, tempProps);\r\n tempProps[prop] = value;\r\n }\r\n properties = tempProps;\r\n }\r\n\r\n return properties;\r\n }\r\n\r\n public static sanitizeMeasurements(logger: IDiagnosticLogger, measurements) {\r\n if (measurements) {\r\n const tempMeasurements = {};\r\n for (let measure in measurements) {\r\n const value = measurements[measure];\r\n measure = DataSanitizer.sanitizeKeyAndAddUniqueness(logger, measure, tempMeasurements);\r\n tempMeasurements[measure] = value;\r\n }\r\n measurements = tempMeasurements;\r\n }\r\n\r\n return measurements;\r\n }\r\n\r\n public static sanitizeId(logger: IDiagnosticLogger, id: string): string {\r\n return id ? DataSanitizer.sanitizeInput(logger, id, DataSanitizer.MAX_ID_LENGTH, _InternalMessageId.IdTooLong).toString() : id;\r\n }\r\n\r\n public static sanitizeInput(logger: IDiagnosticLogger, input: any, maxLength: number, _msgId: _InternalMessageId) {\r\n let inputTrunc : String;\r\n if (input) {\r\n input = DataSanitizer.trim(input);\r\n if (input.length > maxLength) {\r\n inputTrunc = input.substring(0, maxLength);\r\n logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _msgId,\r\n \"input is too long, it has been truncated to \" + maxLength + \" characters.\",\r\n { data: input },\r\n true);\r\n }\r\n }\r\n\r\n return inputTrunc || input;\r\n }\r\n\r\n public static padNumber(num) {\r\n const s = \"00\" + num;\r\n return s.substr(s.length - 3);\r\n }\r\n\r\n /**\r\n * helper method to trim strings (IE8 does not implement String.prototype.trim)\r\n */\r\n public static trim(str: any): string {\r\n if (!CoreUtils.isString(str)) { return str; }\r\n return str.replace(/^\\s+|\\s+$/g, \"\");\r\n }\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { StorageType } from \"./Enums\";\r\nimport { \r\n CoreUtils, EventHelper, _InternalMessageId, LoggingSeverity, IDiagnosticLogger, IPlugin, \r\n getGlobal, getGlobalInst, getWindow, getDocument, getNavigator, getPerformance, getLocation, hasJSON, getJSON \r\n} from \"@microsoft/applicationinsights-core-js\";\r\nimport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nimport { DataSanitizer } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { ICorrelationConfig } from \"./Interfaces/ICorrelationConfig\";\r\n\r\n// Adding common usage of prototype as a string to enable indexed lookup to assist with minification\r\nconst prototype = \"prototype\";\r\n\r\nlet _navigator = getNavigator();\r\nlet _isString = CoreUtils.isString;\r\nlet _uaDisallowsSameSiteNone = null;\r\n\r\nfunction _endsWith(value:string, search:string) {\r\n let len = value.length;\r\n let start = len - search.length;\r\n return value.substring(start >= 0 ? start : 0, len) === search;\r\n}\r\n\r\nexport class Util {\r\n private static document: any = getDocument()||{};\r\n private static _canUseLocalStorage: boolean = undefined;\r\n private static _canUseSessionStorage: boolean = undefined;\r\n // listing only non-geo specific locations\r\n private static _internalEndpoints: string[] = [\r\n \"https://dc.services.visualstudio.com/v2/track\",\r\n \"https://breeze.aimon.applicationinsights.io/v2/track\",\r\n \"https://dc-int.services.visualstudio.com/v2/track\"\r\n ];\r\n public static NotSpecified = \"not_specified\";\r\n\r\n public static createDomEvent(eventName: string): Event {\r\n let event: Event = null;\r\n\r\n if (CoreUtils.isFunction(Event)) { // Use Event constructor when available\r\n event = new Event(eventName);\r\n } else { // Event has no constructor in IE\r\n let doc = getDocument();\r\n if (doc && doc.createEvent) {\r\n event = doc.createEvent(\"Event\");\r\n event.initEvent(eventName, true, true);\r\n }\r\n }\r\n\r\n return event;\r\n }\r\n\r\n /*\r\n * Force the SDK not to use local and session storage\r\n */\r\n public static disableStorage() {\r\n Util._canUseLocalStorage = false;\r\n Util._canUseSessionStorage = false;\r\n }\r\n\r\n /**\r\n * Gets the localStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\n private static _getLocalStorageObject(): Storage {\r\n if (Util.canUseLocalStorage()) {\r\n return Util._getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Tests storage object (localStorage or sessionStorage) to verify that it is usable\r\n * More details here: https://mathiasbynens.be/notes/localstorage-pattern\r\n * @param storageType Type of storage\r\n * @return {Storage} Returns storage object verified that it is usable\r\n */\r\n private static _getVerifiedStorageObject(storageType: StorageType): Storage {\r\n let storage: Storage = null;\r\n let fail: boolean;\r\n let uid: Date;\r\n try {\r\n if (CoreUtils.isNullOrUndefined(getGlobal())) {\r\n return null;\r\n }\r\n uid = new Date;\r\n storage = storageType === StorageType.LocalStorage ? getGlobalInst(\"localStorage\") : getGlobalInst(\"sessionStorage\");\r\n storage.setItem(uid.toString(), uid.toString());\r\n fail = storage.getItem(uid.toString()) !== uid.toString();\r\n storage.removeItem(uid.toString());\r\n if (fail) {\r\n storage = null;\r\n }\r\n } catch (exception) {\r\n storage = null;\r\n }\r\n\r\n return storage;\r\n }\r\n\r\n /**\r\n * Checks if endpoint URL is application insights internal injestion service URL.\r\n *\r\n * @param endpointUrl Endpoint URL to check.\r\n * @returns {boolean} True if if endpoint URL is application insights internal injestion service URL.\r\n */\r\n public static isInternalApplicationInsightsEndpoint(endpointUrl: string): boolean {\r\n return Util._internalEndpoints.indexOf(endpointUrl.toLowerCase()) !== -1;\r\n }\r\n\r\n /**\r\n * Check if the browser supports local storage.\r\n *\r\n * @returns {boolean} True if local storage is supported.\r\n */\r\n public static canUseLocalStorage(): boolean {\r\n if (Util._canUseLocalStorage === undefined) {\r\n Util._canUseLocalStorage = !!Util._getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n\r\n return Util._canUseLocalStorage;\r\n }\r\n\r\n /**\r\n * Get an object from the browser's local storage\r\n *\r\n * @param {string} name - the name of the object to get from storage\r\n * @returns {string} The contents of the storage object with the given name. Null if storage is not supported.\r\n */\r\n public static getStorage(logger: IDiagnosticLogger, name: string): string {\r\n const storage = Util._getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n } catch (e) {\r\n Util._canUseLocalStorage = false;\r\n\r\n logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.BrowserCannotReadLocalStorage,\r\n \"Browser failed read of local storage. \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Set the contents of an object in the browser's local storage\r\n *\r\n * @param {string} name - the name of the object to set in storage\r\n * @param {string} data - the contents of the object to set in storage\r\n * @returns {boolean} True if the storage object could be written.\r\n */\r\n public static setStorage(logger: IDiagnosticLogger, name: string, data: string): boolean {\r\n const storage = Util._getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n } catch (e) {\r\n Util._canUseLocalStorage = false;\r\n\r\n logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.BrowserCannotWriteLocalStorage,\r\n \"Browser failed write to local storage. \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Remove an object from the browser's local storage\r\n *\r\n * @param {string} name - the name of the object to remove from storage\r\n * @returns {boolean} True if the storage object could be removed.\r\n */\r\n public static removeStorage(logger: IDiagnosticLogger, name: string): boolean {\r\n const storage = Util._getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.removeItem(name);\r\n return true;\r\n } catch (e) {\r\n Util._canUseLocalStorage = false;\r\n\r\n logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.BrowserFailedRemovalFromLocalStorage,\r\n \"Browser failed removal of local storage item. \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Gets the sessionStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\n private static _getSessionStorageObject(): Storage {\r\n if (Util.canUseSessionStorage()) {\r\n return Util._getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Check if the browser supports session storage.\r\n *\r\n * @returns {boolean} True if session storage is supported.\r\n */\r\n public static canUseSessionStorage(): boolean {\r\n if (Util._canUseSessionStorage === undefined) {\r\n Util._canUseSessionStorage = !!Util._getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n\r\n return Util._canUseSessionStorage;\r\n }\r\n\r\n /**\r\n * Gets the list of session storage keys\r\n *\r\n * @returns {string[]} List of session storage keys\r\n */\r\n public static getSessionStorageKeys(): string[] {\r\n const keys = [];\r\n\r\n if (Util.canUseSessionStorage()) {\r\n for (const key in getGlobalInst(\"sessionStorage\")) {\r\n keys.push(key);\r\n }\r\n }\r\n return keys;\r\n }\r\n\r\n /**\r\n * Get an object from the browser's session storage\r\n *\r\n * @param {string} name - the name of the object to get from storage\r\n * @returns {string} The contents of the storage object with the given name. Null if storage is not supported.\r\n */\r\n public static getSessionStorage(logger: IDiagnosticLogger, name: string): string {\r\n const storage = Util._getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n } catch (e) {\r\n Util._canUseSessionStorage = false;\r\n\r\n logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.BrowserCannotReadSessionStorage,\r\n \"Browser failed read of session storage. \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Set the contents of an object in the browser's session storage\r\n *\r\n * @param {string} name - the name of the object to set in storage\r\n * @param {string} data - the contents of the object to set in storage\r\n * @returns {boolean} True if the storage object could be written.\r\n */\r\n public static setSessionStorage(logger: IDiagnosticLogger, name: string, data: string): boolean {\r\n const storage = Util._getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n } catch (e) {\r\n Util._canUseSessionStorage = false;\r\n\r\n logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.BrowserCannotWriteSessionStorage,\r\n \"Browser failed write to session storage. \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Remove an object from the browser's session storage\r\n *\r\n * @param {string} name - the name of the object to remove from storage\r\n * @returns {boolean} True if the storage object could be removed.\r\n */\r\n public static removeSessionStorage(logger: IDiagnosticLogger, name: string): boolean {\r\n const storage = Util._getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.removeItem(name);\r\n return true;\r\n } catch (e) {\r\n Util._canUseSessionStorage = false;\r\n\r\n logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.BrowserFailedRemovalFromSessionStorage,\r\n \"Browser failed removal of session storage item. \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /*\r\n * Force the SDK not to store and read any data from cookies\r\n */\r\n public static disableCookies() {\r\n CoreUtils.disableCookies();\r\n }\r\n\r\n /*\r\n * helper method to tell if document.cookie object is available\r\n */\r\n public static canUseCookies(logger: IDiagnosticLogger): any {\r\n if (CoreUtils._canUseCookies === undefined) {\r\n CoreUtils._canUseCookies = false;\r\n\r\n try {\r\n CoreUtils._canUseCookies = Util.document.cookie !== undefined;\r\n } catch (e) {\r\n logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.CannotAccessCookie,\r\n \"Cannot access document.cookie - \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n };\r\n }\r\n\r\n return CoreUtils._canUseCookies && Util.document && Util.document.cookie;\r\n }\r\n\r\n public static disallowsSameSiteNone(userAgent:string) {\r\n if (!_isString(userAgent)) {\r\n return false;\r\n }\r\n \r\n // Cover all iOS based browsers here. This includes:\r\n // - Safari on iOS 12 for iPhone, iPod Touch, iPad\r\n // - WkWebview on iOS 12 for iPhone, iPod Touch, iPad\r\n // - Chrome on iOS 12 for iPhone, iPod Touch, iPad\r\n // All of which are broken by SameSite=None, because they use the iOS networking stack\r\n if (userAgent.indexOf(\"CPU iPhone OS 12\") !== -1 || userAgent.indexOf(\"iPad; CPU OS 12\") !== -1) {\r\n return true;\r\n }\r\n \r\n // Cover Mac OS X based browsers that use the Mac OS networking stack. This includes:\r\n // - Safari on Mac OS X\r\n // This does not include:\r\n // - Internal browser on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (userAgent.indexOf(\"Macintosh; Intel Mac OS X 10_14\") !== -1 && userAgent.indexOf(\"Version/\") !== -1 && userAgent.indexOf(\"Safari\") !== -1) {\r\n return true;\r\n }\r\n \r\n // Cover Mac OS X internal browsers that use the Mac OS networking stack. This includes:\r\n // - Internal browser on Mac OS X\r\n // This does not include:\r\n // - Safari on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (userAgent.indexOf(\"Macintosh; Intel Mac OS X 10_14\") !== -1 && _endsWith(userAgent, \"AppleWebKit/605.1.15 (KHTML, like Gecko)\")) {\r\n return true;\r\n }\r\n \r\n // Cover Chrome 50-69, because some versions are broken by SameSite=None, and none in this range require it.\r\n // Note: this covers some pre-Chromium Edge versions, but pre-Chromim Edge does not require SameSite=None, so this is fine.\r\n // Note: this regex applies to Windows, Mac OS X, and Linux, deliberately.\r\n if (userAgent.indexOf(\"Chrome/5\") !== -1 || userAgent.indexOf(\"Chrome/6\") !== -1) {\r\n return true;\r\n }\r\n \r\n // Unreal Engine runs Chromium 59, but does not advertise as Chrome until 4.23. Treat versions of Unreal\r\n // that don't specify their Chrome version as lacking support for SameSite=None.\r\n if (userAgent.indexOf(\"UnrealEngine\") !== -1 && userAgent.indexOf(\"Chrome\") === -1) {\r\n return true;\r\n }\r\n \r\n // UCBrowser < 12.13.2 ignores Set-Cookie headers with SameSite=None\r\n // NB: this rule isn't complete - you need regex to make a complete rule.\r\n // See: https://www.chromium.org/updates/same-site/incompatible-clients\r\n if (userAgent.indexOf(\"UCBrowser/12\") !== -1 || userAgent.indexOf(\"UCBrowser/11\") !== -1) {\r\n return true;\r\n }\r\n \r\n return false;\r\n }\r\n \r\n /**\r\n * helper method to set userId and sessionId cookie\r\n */\r\n public static setCookie(logger: IDiagnosticLogger, name, value, domain?) {\r\n if (Util.canUseCookies(logger)) {\r\n let domainAttrib = \"\";\r\n let secureAttrib = \"\";\r\n\r\n if (domain) {\r\n domainAttrib = \";domain=\" + domain;\r\n }\r\n\r\n let location = getLocation();\r\n if (location && location.protocol === \"https:\") {\r\n secureAttrib = \";secure\";\r\n if (_uaDisallowsSameSiteNone === null) {\r\n _uaDisallowsSameSiteNone = Util.disallowsSameSiteNone((getNavigator()||{} as Navigator).userAgent);\r\n }\r\n \r\n if (!_uaDisallowsSameSiteNone) {\r\n value = value + \";SameSite=None\"; // SameSite can only be set on secure pages\r\n }\r\n }\r\n\r\n Util.document.cookie = name + \"=\" + value + domainAttrib + \";path=/\" + secureAttrib;\r\n }\r\n }\r\n\r\n public static stringToBoolOrDefault(str: any, defaultValue = false): boolean {\r\n if (str === undefined || str === null) {\r\n return defaultValue;\r\n }\r\n\r\n return str.toString().toLowerCase() === \"true\";\r\n }\r\n\r\n /**\r\n * helper method to access userId and sessionId cookie\r\n */\r\n public static getCookie(logger: IDiagnosticLogger, name) {\r\n if (!Util.canUseCookies(logger)) {\r\n return;\r\n }\r\n\r\n let value = \"\";\r\n if (name && name.length) {\r\n const cookieName = name + \"=\";\r\n const cookies = Util.document.cookie.split(\";\");\r\n for (let i = 0; i < cookies.length; i++) {\r\n let cookie = cookies[i];\r\n cookie = Util.trim(cookie);\r\n if (cookie && cookie.indexOf(cookieName) === 0) {\r\n value = cookie.substring(cookieName.length, cookies[i].length);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return value;\r\n }\r\n\r\n /**\r\n * Deletes a cookie by setting it's expiration time in the past.\r\n * @param name - The name of the cookie to delete.\r\n */\r\n public static deleteCookie(logger: IDiagnosticLogger, name: string) {\r\n if (Util.canUseCookies(logger)) {\r\n // Setting the expiration date in the past immediately removes the cookie\r\n Util.document.cookie = name + \"=;path=/;expires=Thu, 01 Jan 1970 00:00:01 GMT;\";\r\n }\r\n }\r\n\r\n /**\r\n * helper method to trim strings (IE8 does not implement String.prototype.trim)\r\n */\r\n public static trim(str: any): string {\r\n if (!_isString(str)) { return str; }\r\n return str.replace(/^\\s+|\\s+$/g, \"\");\r\n }\r\n\r\n /**\r\n * generate random id string\r\n */\r\n public static newId(): string {\r\n const base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\r\n\r\n let result = \"\";\r\n // tslint:disable-next-line:insecure-random\r\n let random = Math.random() * 1073741824; // 5 symbols in base64, almost maxint\r\n\r\n while (random > 0) {\r\n const char = base64chars.charAt(random % 64);\r\n result += char;\r\n random = Math.floor(random / 64);\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * generate a random 32bit number (-0x80000000..0x7FFFFFFF).\r\n */\r\n public static random32() {\r\n return (0x100000000 * Math.random()) | 0;\r\n }\r\n\r\n /**\r\n * generate W3C trace id\r\n */\r\n public static generateW3CId() {\r\n const hexValues = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\r\n\r\n // rfc4122 version 4 UUID without dashes and with lowercase letters\r\n let oct = \"\", tmp;\r\n for (let a = 0; a < 4; a++) {\r\n tmp = Util.random32();\r\n oct +=\r\n hexValues[tmp & 0xF] +\r\n hexValues[tmp >> 4 & 0xF] +\r\n hexValues[tmp >> 8 & 0xF] +\r\n hexValues[tmp >> 12 & 0xF] +\r\n hexValues[tmp >> 16 & 0xF] +\r\n hexValues[tmp >> 20 & 0xF] +\r\n hexValues[tmp >> 24 & 0xF] +\r\n hexValues[tmp >> 28 & 0xF];\r\n }\r\n\r\n // \"Set the two most significant bits (bits 6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively\"\r\n const clockSequenceHi = hexValues[8 + (Math.random() * 4) | 0];\r\n return oct.substr(0, 8) + oct.substr(9, 4) + \"4\" + oct.substr(13, 3) + clockSequenceHi + oct.substr(16, 3) + oct.substr(19, 12);\r\n }\r\n\r\n /**\r\n * Check if an object is of type Array\r\n */\r\n public static isArray(obj: any): boolean {\r\n return Object[prototype].toString.call(obj) === \"[object Array]\";\r\n }\r\n\r\n /**\r\n * Check if an object is of type Error\r\n */\r\n public static isError(obj: any): boolean {\r\n return Object[prototype].toString.call(obj) === \"[object Error]\";\r\n }\r\n\r\n /**\r\n * Check if an object is of type Date\r\n */\r\n public static isDate = CoreUtils.isDate;\r\n\r\n // Keeping this name for backward compatibility (for now)\r\n public static toISOStringForIE8 = CoreUtils.toISOString;\r\n\r\n /**\r\n * Gets IE version if we are running on IE, or null otherwise\r\n */\r\n public static getIEVersion(userAgentStr: string = null): number {\r\n const myNav = userAgentStr ? userAgentStr.toLowerCase() : (_navigator ? (_navigator.userAgent ||\"\").toLowerCase() : \"\");\r\n return (myNav.indexOf('msie') !== -1) ? parseInt(myNav.split('msie')[1]) : null;\r\n }\r\n\r\n /**\r\n * Convert ms to c# time span format\r\n */\r\n public static msToTimeSpan(totalms: number): string {\r\n if (isNaN(totalms) || totalms < 0) {\r\n totalms = 0;\r\n }\r\n\r\n totalms = Math.round(totalms);\r\n\r\n let ms = \"\" + totalms % 1000;\r\n let sec = \"\" + Math.floor(totalms / 1000) % 60;\r\n let min = \"\" + Math.floor(totalms / (1000 * 60)) % 60;\r\n let hour = \"\" + Math.floor(totalms / (1000 * 60 * 60)) % 24;\r\n const days = Math.floor(totalms / (1000 * 60 * 60 * 24));\r\n\r\n ms = ms.length === 1 ? \"00\" + ms : ms.length === 2 ? \"0\" + ms : ms;\r\n sec = sec.length < 2 ? \"0\" + sec : sec;\r\n min = min.length < 2 ? \"0\" + min : min;\r\n hour = hour.length < 2 ? \"0\" + hour : hour;\r\n\r\n return (days > 0 ? days + \".\" : \"\") + hour + \":\" + min + \":\" + sec + \".\" + ms;\r\n }\r\n\r\n /**\r\n * Checks if error has no meaningful data inside. Ususally such errors are received by window.onerror when error\r\n * happens in a script from other domain (cross origin, CORS).\r\n */\r\n public static isCrossOriginError(message: string, url: string, lineNumber: number, columnNumber: number, error: Error): boolean {\r\n return (message === \"Script error.\" || message === \"Script error\") && !error;\r\n }\r\n\r\n /**\r\n * Returns string representation of an object suitable for diagnostics logging.\r\n */\r\n public static dump(object: any): string {\r\n const objectTypeDump: string = Object[prototype].toString.call(object);\r\n let propertyValueDump: string = \"\";\r\n if (objectTypeDump === \"[object Error]\") {\r\n propertyValueDump = \"{ stack: '\" + object.stack + \"', message: '\" + object.message + \"', name: '\" + object.name + \"'\";\r\n } else if (hasJSON()) {\r\n propertyValueDump = getJSON().stringify(object);\r\n }\r\n\r\n return objectTypeDump + propertyValueDump;\r\n }\r\n\r\n /**\r\n * Returns the name of object if it's an Error. Otherwise, returns empty string.\r\n */\r\n public static getExceptionName(object: any): string {\r\n const objectTypeDump: string = Object[prototype].toString.call(object);\r\n if (objectTypeDump === \"[object Error]\") {\r\n return object.name;\r\n }\r\n return \"\";\r\n }\r\n\r\n /**\r\n * Adds an event handler for the specified event to the window\r\n * @param eventName {string} - The name of the event\r\n * @param callback {any} - The callback function that needs to be executed for the given event\r\n * @return {boolean} - true if the handler was successfully added\r\n */\r\n public static addEventHandler(eventName: string, callback: any): boolean {\r\n return EventHelper.Attach(getWindow(), eventName, callback);\r\n }\r\n\r\n /**\r\n * Tells if a browser supports a Beacon API\r\n */\r\n public static IsBeaconApiSupported(): boolean {\r\n return ('sendBeacon' in _navigator && (_navigator as any).sendBeacon);\r\n }\r\n\r\n public static getExtension(extensions: IPlugin[], identifier: string) {\r\n let extension = null;\r\n let extIx = 0;\r\n\r\n while (!extension && extIx < extensions.length) {\r\n if (extensions[extIx] && extensions[extIx].identifier === identifier) {\r\n extension = extensions[extIx];\r\n }\r\n extIx++;\r\n }\r\n\r\n return extension;\r\n }\r\n}\r\n\r\nexport class UrlHelper {\r\n private static document: any = getDocument()||{};\r\n private static htmlAnchorElement: HTMLAnchorElement;\r\n\r\n public static parseUrl(url): HTMLAnchorElement {\r\n if (!UrlHelper.htmlAnchorElement) {\r\n UrlHelper.htmlAnchorElement = !!UrlHelper.document.createElement ? UrlHelper.document.createElement('a') : { host: UrlHelper.parseHost(url) }; // fill host field in the fallback case as that is the only externally required field from this fn\r\n }\r\n\r\n UrlHelper.htmlAnchorElement.href = url;\r\n\r\n return UrlHelper.htmlAnchorElement;\r\n }\r\n\r\n public static getAbsoluteUrl(url): string {\r\n let result: string;\r\n const a = UrlHelper.parseUrl(url);\r\n if (a) {\r\n result = a.href;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n public static getPathName(url): string {\r\n let result: string;\r\n const a = UrlHelper.parseUrl(url);\r\n if (a) {\r\n result = a.pathname;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n public static getCompleteUrl(method: string, absoluteUrl: string) {\r\n if (method) {\r\n return method.toUpperCase() + \" \" + absoluteUrl;\r\n } else {\r\n return absoluteUrl;\r\n }\r\n }\r\n\r\n // Fallback method to grab host from url if document.createElement method is not available\r\n public static parseHost(url: string) {\r\n if (url) {\r\n const match = url.match(/:\\/\\/(www[0-9]?\\.)?(.[^/:]+)/i);\r\n if (match != null && match.length > 2 && _isString(match[2]) && match[2].length > 0) {\r\n return match[2];\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n\r\nexport class CorrelationIdHelper {\r\n public static correlationIdPrefix = \"cid-v1:\";\r\n\r\n /**\r\n * Checks if a request url is not on a excluded domain list and if it is safe to add correlation headers.\r\n * Headers are always included if the current domain matches the request domain. If they do not match (CORS),\r\n * they are regexed across correlationHeaderDomains and correlationHeaderExcludedDomains to determine if headers are included.\r\n * Some environments don't give information on currentHost via window.location.host (e.g. Cordova). In these cases, the user must\r\n * manually supply domains to include correlation headers on. Else, no headers will be included at all.\r\n */\r\n public static canIncludeCorrelationHeader(config: ICorrelationConfig, requestUrl: string, currentHost?: string) {\r\n if (config && config.disableCorrelationHeaders) {\r\n return false;\r\n }\r\n\r\n if (!requestUrl) {\r\n return false;\r\n }\r\n\r\n const requestHost = UrlHelper.parseUrl(requestUrl).host.toLowerCase();\r\n if ((!config || !config.enableCorsCorrelation) && requestHost !== currentHost) {\r\n return false;\r\n }\r\n\r\n const includedDomains = config && config.correlationHeaderDomains;\r\n if (includedDomains) {\r\n let matchExists;\r\n CoreUtils.arrForEach(includedDomains, (domain) => {\r\n const regex = new RegExp(domain.toLowerCase().replace(/\\./g, \"\\.\").replace(/\\*/g, \".*\"));\r\n matchExists = matchExists || regex.test(requestHost);\r\n });\r\n\r\n if (!matchExists) {\r\n return false;\r\n }\r\n }\r\n\r\n const excludedDomains = config && config.correlationHeaderExcludedDomains;\r\n if (!excludedDomains || excludedDomains.length === 0) {\r\n return true;\r\n }\r\n\r\n for (let i = 0; i < excludedDomains.length; i++) {\r\n const regex = new RegExp(excludedDomains[i].toLowerCase().replace(/\\./g, \"\\.\").replace(/\\*/g, \".*\"));\r\n if (regex.test(requestHost)) {\r\n return false;\r\n }\r\n }\r\n\r\n // if we don't know anything about the requestHost, require the user to use included/excludedDomains.\r\n // Previously we always returned false for a falsy requestHost\r\n return requestHost && requestHost.length > 0;\r\n }\r\n\r\n /**\r\n * Combines target appId and target role name from response header.\r\n */\r\n public static getCorrelationContext(responseHeader: string) {\r\n if (responseHeader) {\r\n const correlationId = CorrelationIdHelper.getCorrelationContextValue(responseHeader, RequestHeaders.requestContextTargetKey);\r\n if (correlationId && correlationId !== CorrelationIdHelper.correlationIdPrefix) {\r\n return correlationId;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Gets key from correlation response header\r\n */\r\n public static getCorrelationContextValue(responseHeader: string, key: string) {\r\n if (responseHeader) {\r\n const keyValues = responseHeader.split(\",\");\r\n for (let i = 0; i < keyValues.length; ++i) {\r\n const keyValue = keyValues[i].split(\"=\");\r\n if (keyValue.length === 2 && keyValue[0] === key) {\r\n return keyValue[1];\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport class AjaxHelper {\r\n public static ParseDependencyPath(logger: IDiagnosticLogger, absoluteUrl: string, method: string, commandName: string) {\r\n let target, name = commandName, data = commandName;\r\n\r\n if (absoluteUrl && absoluteUrl.length > 0) {\r\n const parsedUrl: HTMLAnchorElement = UrlHelper.parseUrl(absoluteUrl)\r\n target = parsedUrl.host;\r\n if (!name) {\r\n if (parsedUrl.pathname != null) {\r\n let pathName: string = (parsedUrl.pathname.length === 0) ? \"/\" : parsedUrl.pathname;\r\n if (pathName.charAt(0) !== '/') {\r\n pathName = \"/\" + pathName;\r\n }\r\n data = parsedUrl.pathname;\r\n name = DataSanitizer.sanitizeString(logger, method ? method + \" \" + pathName : pathName);\r\n } else {\r\n name = DataSanitizer.sanitizeString(logger, absoluteUrl);\r\n }\r\n }\r\n } else {\r\n target = commandName;\r\n name = commandName;\r\n }\r\n\r\n return {\r\n target,\r\n name,\r\n data\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * A utility class that helps getting time related parameters\r\n */\r\nexport class DateTimeUtils {\r\n /**\r\n * Get the number of milliseconds since 1970/01/01 in local timezone\r\n */\r\n public static Now = () => {\r\n // returns the window or webworker performance object\r\n let perf = getPerformance();\r\n if (perf && perf.now && perf.timing) {\r\n return perf.now() + perf.timing.navigationStart\r\n }\r\n \r\n return new Date().getTime()\r\n };\r\n\r\n /**\r\n * Gets duration between two timestamps\r\n */\r\n public static GetDuration = (start: number, end: number): number => {\r\n let result = null;\r\n if (start !== 0 && end !== 0 && !CoreUtils.isNullOrUndefined(start) && !CoreUtils.isNullOrUndefined(end)) {\r\n result = end - start;\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\n/**\r\n * Type of the metric data measurement.\r\n */\r\nexport enum DataPointType {\r\n Measurement = 0,\r\n Aggregation = 1,\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { Util } from \"./Util\";\r\nimport { DataSanitizer } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { ITelemetryItem, CoreUtils, IDiagnosticLogger } from \"@microsoft/applicationinsights-core-js\";\r\n\r\nexport class TelemetryItemCreator {\r\n\r\n /**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item domain specific properties; part B\r\n * @param baseType telemetry item type. ie PageViewData\r\n * @param envelopeName name of the envelope. ie Microsoft.ApplicationInsights..PageView\r\n * @param customProperties user defined custom properties; part C\r\n * @param systemProperties system properties that are added to the context; part A\r\n * @returns ITelemetryItem that is sent to channel\r\n */\r\n\r\n public static create(item: T,\r\n baseType: string,\r\n envelopeName: string,\r\n logger: IDiagnosticLogger,\r\n customProperties?: { [key: string]: any },\r\n systemProperties?: { [key: string]: any }): ITelemetryItem {\r\n\r\n envelopeName = DataSanitizer.sanitizeString(logger, envelopeName) || Util.NotSpecified;\r\n\r\n if (CoreUtils.isNullOrUndefined(item) ||\r\n CoreUtils.isNullOrUndefined(baseType) ||\r\n CoreUtils.isNullOrUndefined(envelopeName)) {\r\n throw Error(\"Input doesn't contain all required fields\");\r\n }\r\n\r\n const telemetryItem: ITelemetryItem = {\r\n name: envelopeName,\r\n time: CoreUtils.toISOString(new Date()),\r\n iKey: \"\", // this will be set in TelemetryContext\r\n ext: systemProperties ? systemProperties : {}, // part A\r\n tags: [],\r\n data: {\r\n },\r\n baseType,\r\n baseData: item // Part B\r\n };\r\n\r\n // Part C\r\n if (!CoreUtils.isNullOrUndefined(customProperties)) {\r\n for (const prop in customProperties) {\r\n if (customProperties.hasOwnProperty(prop)) {\r\n telemetryItem.data[prop] = customProperties[prop];\r\n }\r\n }\r\n }\r\n\r\n return telemetryItem;\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\n\r\n/**\r\n * The abstract common base of all domains.\r\n */\r\nexport class Domain {\r\n\r\n constructor() {\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { Domain } from './Domain';\r\n\r\n/**\r\n * Instances of Event represent structured event records that can be grouped and searched by their properties. Event data item also creates a metric of event count by name.\r\n */\r\nexport class EventData extends Domain {\r\n\r\n /**\r\n * Schema version\r\n */\r\n public ver: number;\r\n\r\n /**\r\n * Event name. Keep it low cardinality to allow proper grouping and useful metrics.\r\n */\r\n public name: string;\r\n\r\n /**\r\n * Collection of custom properties.\r\n */\r\n public properties: any;\r\n\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n public measurements: any;\r\n\r\n constructor() {\r\n super();\r\n\r\n this.ver = 2;\r\n this.properties = {};\r\n this.measurements = {};\r\n }\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { IDiagnosticLogger } from '@microsoft/applicationinsights-core-js';\r\nimport { EventData } from '../Interfaces/Contracts/Generated/EventData';\r\nimport { ISerializable } from '../Interfaces/Telemetry/ISerializable';\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { FieldType } from '../Enums';\r\nimport { Util } from '../Util';\r\n\r\nexport class Event extends EventData implements ISerializable {\r\n\r\n public static envelopeType = \"Microsoft.ApplicationInsights.{0}.Event\";\r\n public static dataType = \"EventData\";\r\n\r\n public aiDataContract = {\r\n ver: FieldType.Required,\r\n name: FieldType.Required,\r\n properties: FieldType.Default,\r\n measurements: FieldType.Default\r\n }\r\n\r\n /**\r\n * Constructs a new instance of the EventTelemetry object\r\n */\r\n constructor(logger: IDiagnosticLogger, name: string, properties?: any, measurements?: any) {\r\n\r\n super();\r\n\r\n this.name = DataSanitizer.sanitizeString(logger, name) || Util.NotSpecified;\r\n this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { MessageData } from '../Interfaces/Contracts/Generated/MessageData';\r\nimport { ISerializable } from '../Interfaces/Telemetry/ISerializable';\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { FieldType } from '../Enums';\r\nimport { SeverityLevel } from '../Interfaces/Contracts/Generated/SeverityLevel';\r\nimport { Util } from '../Util';\r\nimport { IDiagnosticLogger } from '@microsoft/applicationinsights-core-js';\r\n\r\nexport class Trace extends MessageData implements ISerializable {\r\n\r\n public static envelopeType = \"Microsoft.ApplicationInsights.{0}.Message\";\r\n public static dataType = \"MessageData\";\r\n\r\n public aiDataContract = {\r\n ver: FieldType.Required,\r\n message: FieldType.Required,\r\n severityLevel: FieldType.Default,\r\n properties: FieldType.Default\r\n };\r\n\r\n /**\r\n * Constructs a new instance of the TraceTelemetry object\r\n */\r\n constructor(logger: IDiagnosticLogger, message: string, severityLevel?: SeverityLevel, properties?: any, measurements?: { [key: string]: number }) {\r\n super();\r\n message = message || Util.NotSpecified;\r\n this.message = DataSanitizer.sanitizeMessage(logger, message);\r\n this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n\r\n if (severityLevel) {\r\n this.severityLevel = severityLevel;\r\n }\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { Domain } from './Domain';\r\nimport { SeverityLevel } from './SeverityLevel';\r\n\r\n/**\r\n * Instances of Message represent printf-like trace statements that are text-searched. Log4Net, NLog and other text-based log file entries are translated into intances of this type. The message does not have measurements.\r\n */\r\nexport class MessageData extends Domain {\r\n\r\n /**\r\n * Schema version\r\n */\r\n public ver: number;\r\n\r\n /**\r\n * Trace message\r\n */\r\n public message: string;\r\n\r\n /**\r\n * Trace severity level.\r\n */\r\n public severityLevel: SeverityLevel;\r\n\r\n /**\r\n * Collection of custom properties.\r\n */\r\n public properties: any;\r\n\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n public measurements: any;\r\n\r\n constructor() {\r\n super();\r\n\r\n this.ver = 2;\r\n this.properties = {};\r\n this.measurements = {};\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { Domain } from './Domain';\r\nimport { DataPoint } from './DataPoint';\r\n\r\n/**\r\n * An instance of the Metric item is a list of measurements (single data points) and/or aggregations.\r\n */\r\nexport class MetricData extends Domain {\r\n\r\n /**\r\n * Schema version\r\n */\r\n public ver: number;\r\n\r\n /**\r\n * List of metrics. Only one metric in the list is currently supported by Application Insights storage. If multiple data points were sent only the first one will be used.\r\n */\r\n public metrics: DataPoint[];\r\n\r\n /**\r\n * Collection of custom properties.\r\n */\r\n public properties: any;\r\n\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n public measurements: any;\r\n\r\n constructor() {\r\n super();\r\n\r\n this.ver = 2;\r\n this.metrics = [];\r\n this.properties = {};\r\n this.measurements = {};\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { DataPointType } from './DataPointType';\r\n\r\n/**\r\n * Metric data single measurement.\r\n */\r\nexport class DataPoint {\r\n\r\n /**\r\n * Name of the metric.\r\n */\r\n public name: string;\r\n\r\n /**\r\n * Metric type. Single measurement or the aggregated value.\r\n */\r\n public kind: DataPointType;\r\n\r\n /**\r\n * Single value for measurement. Sum of individual measurements for the aggregation.\r\n */\r\n public value: number;\r\n\r\n /**\r\n * Metric weight of the aggregated metric. Should not be set for a measurement.\r\n */\r\n public count: number;\r\n\r\n /**\r\n * Minimum value of the aggregated metric. Should not be set for a measurement.\r\n */\r\n public min: number;\r\n\r\n /**\r\n * Maximum value of the aggregated metric. Should not be set for a measurement.\r\n */\r\n public max: number;\r\n\r\n /**\r\n * Standard deviation of the aggregated metric. Should not be set for a measurement.\r\n */\r\n public stdDev: number;\r\n\r\n constructor() {\r\n this.kind = DataPointType.Measurement;\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\n\r\n/**\r\n * Defines the level of severity for the event.\r\n */\r\nexport enum SeverityLevel {\r\n Verbose = 0,\r\n Information = 1,\r\n Warning = 2,\r\n Error = 3,\r\n Critical = 4,\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { DataPoint as AIDataPoint } from '../../Interfaces/Contracts/Generated/DataPoint';\r\nimport { ISerializable } from '../../Interfaces/Telemetry/ISerializable';\r\nimport { FieldType } from '../../Enums';\r\n\r\nexport class DataPoint extends AIDataPoint implements ISerializable {\r\n\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n public aiDataContract = {\r\n name: FieldType.Required,\r\n kind: FieldType.Default,\r\n value: FieldType.Required,\r\n count: FieldType.Default,\r\n min: FieldType.Default,\r\n max: FieldType.Default,\r\n stdDev: FieldType.Default\r\n }\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { MetricData } from '../Interfaces/Contracts/Generated/MetricData';\r\nimport { ISerializable } from '../Interfaces/Telemetry/ISerializable';\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { FieldType } from '../Enums';\r\nimport { DataPoint } from './Common/DataPoint';\r\nimport { Util } from '../Util';\r\nimport { IDiagnosticLogger } from '@microsoft/applicationinsights-core-js';\r\n\r\nexport class Metric extends MetricData implements ISerializable {\r\n\r\n public static envelopeType = \"Microsoft.ApplicationInsights.{0}.Metric\";\r\n public static dataType = \"MetricData\";\r\n\r\n public aiDataContract = {\r\n ver: FieldType.Required,\r\n metrics: FieldType.Required,\r\n properties: FieldType.Default\r\n }\r\n\r\n /**\r\n * Constructs a new instance of the MetricTelemetry object\r\n */\r\n constructor(logger: IDiagnosticLogger, name: string, value: number, count?: number, min?: number, max?: number, properties?: any, measurements?: { [key: string]: number }) {\r\n super();\r\n\r\n const dataPoint = new DataPoint();\r\n dataPoint.count = count > 0 ? count : undefined;\r\n dataPoint.max = isNaN(max) || max === null ? undefined : max;\r\n dataPoint.min = isNaN(min) || min === null ? undefined : min;\r\n dataPoint.name = DataSanitizer.sanitizeString(logger, name) || Util.NotSpecified;\r\n dataPoint.value = value;\r\n\r\n this.metrics = [dataPoint];\r\n this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { EventData } from './EventData';\r\n\r\n/**\r\n * An instance of PageView represents a generic action on a page like a button click. It is also the base type for PageView.\r\n */\r\nexport class PageViewData extends EventData {\r\n\r\n /**\r\n * Schema version\r\n */\r\n public ver: number;\r\n\r\n /**\r\n * Request URL with all query string parameters\r\n */\r\n public url: string;\r\n\r\n /**\r\n * Event name. Keep it low cardinality to allow proper grouping and useful metrics.\r\n */\r\n public name: string;\r\n\r\n /**\r\n * Request duration in format: DD.HH:MM:SS.MMMMMM. For a page view (PageViewData), this is the duration. For a page view with performance information (PageViewPerfData), this is the page load time. Must be less than 1000 days.\r\n */\r\n public duration: string;\r\n\r\n /**\r\n * Identifier of a page view instance. Used for correlation between page view and other telemetry items.\r\n */\r\n public id: string;\r\n\r\n /**\r\n * Collection of custom properties.\r\n */\r\n public properties: any;\r\n\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n public measurements: any;\r\n\r\n constructor() {\r\n super();\r\n\r\n this.ver = 2;\r\n this.properties = {};\r\n this.measurements = {};\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { PageViewData } from '../Interfaces/Contracts/Generated/PageViewData';\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { ISerializable } from '../Interfaces/Telemetry/ISerializable';\r\nimport { FieldType } from '../Enums';\r\nimport { Util } from '../Util';\r\nimport { IDiagnosticLogger } from '@microsoft/applicationinsights-core-js';\r\n\r\nexport class PageView extends PageViewData implements ISerializable {\r\n\r\n public static envelopeType = \"Microsoft.ApplicationInsights.{0}.Pageview\";\r\n public static dataType = \"PageviewData\";\r\n\r\n public aiDataContract = {\r\n ver: FieldType.Required,\r\n name: FieldType.Default,\r\n url: FieldType.Default,\r\n duration: FieldType.Default,\r\n properties: FieldType.Default,\r\n measurements: FieldType.Default,\r\n id: FieldType.Default\r\n }\r\n\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n constructor(logger: IDiagnosticLogger, name?: string, url?: string, durationMs?: number, properties?: {[key: string]: string}, measurements?: {[key: string]: number}, id?: string) {\r\n super();\r\n\r\n this.id = DataSanitizer.sanitizeId(logger, id);\r\n this.url = DataSanitizer.sanitizeUrl(logger, url);\r\n this.name = DataSanitizer.sanitizeString(logger, name) || Util.NotSpecified;\r\n if (!isNaN(durationMs)) {\r\n this.duration = Util.msToTimeSpan(durationMs);\r\n }\r\n this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { PageViewPerfData } from '../Interfaces/Contracts/Generated/PageViewPerfData';\r\nimport { FieldType } from '../Enums';\r\nimport { ISerializable } from '../Interfaces/Telemetry/ISerializable';\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { Util } from '../Util';\r\nimport { IDiagnosticLogger, _InternalMessageId, LoggingSeverity } from '@microsoft/applicationinsights-core-js';\r\nimport { IPageViewPerformanceTelemetry } from '../Interfaces/IPageViewPerformanceTelemetry';\r\n\r\n\r\nexport class PageViewPerformance extends PageViewPerfData implements ISerializable {\r\n\r\n public static envelopeType = \"Microsoft.ApplicationInsights.{0}.PageviewPerformance\";\r\n public static dataType = \"PageviewPerformanceData\";\r\n\r\n public aiDataContract = {\r\n ver: FieldType.Required,\r\n name: FieldType.Default,\r\n url: FieldType.Default,\r\n duration: FieldType.Default,\r\n perfTotal: FieldType.Default,\r\n networkConnect: FieldType.Default,\r\n sentRequest: FieldType.Default,\r\n receivedResponse: FieldType.Default,\r\n domProcessing: FieldType.Default,\r\n properties: FieldType.Default,\r\n measurements: FieldType.Default\r\n };\r\n\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n constructor(logger: IDiagnosticLogger, name: string, url: string, unused: number, properties?: { [key: string]: string }, measurements?: { [key: string]: number }, cs4BaseData?: IPageViewPerformanceTelemetry) {\r\n super();\r\n this.url = DataSanitizer.sanitizeUrl(logger, url);\r\n this.name = DataSanitizer.sanitizeString(logger, name) || Util.NotSpecified;\r\n\r\n this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n\r\n if (cs4BaseData) {\r\n this.domProcessing = cs4BaseData.domProcessing;\r\n this.duration = cs4BaseData.duration\r\n this.networkConnect = cs4BaseData.networkConnect;\r\n this.perfTotal = cs4BaseData.perfTotal;\r\n this.receivedResponse = cs4BaseData.receivedResponse;\r\n this.sentRequest = cs4BaseData.sentRequest;\r\n }\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { PageViewData } from './PageViewData';\r\n\r\n/**\r\n * An instance of PageViewPerf represents: a page view with no performance data, a page view with performance data, or just the performance data of an earlier page request.\r\n */\r\nexport class PageViewPerfData extends PageViewData {\r\n\r\n /**\r\n * Schema version\r\n */\r\n public ver: number;\r\n\r\n /**\r\n * Request URL with all query string parameters\r\n */\r\n public url: string;\r\n\r\n /**\r\n * Performance total in TimeSpan 'G' (general long) format: d:hh:mm:ss.fffffff\r\n */\r\n public perfTotal: string;\r\n\r\n /**\r\n * Event name. Keep it low cardinality to allow proper grouping and useful metrics.\r\n */\r\n public name: string;\r\n\r\n /**\r\n * Request duration in format: DD.HH:MM:SS.MMMMMM. For a page view (PageViewData), this is the duration. For a page view with performance information (PageViewPerfData), this is the page load time. Must be less than 1000 days.\r\n */\r\n public duration: string;\r\n\r\n /**\r\n * Network connection time in TimeSpan 'G' (general long) format: d:hh:mm:ss.fffffff\r\n */\r\n public networkConnect: string;\r\n\r\n /**\r\n * Sent request time in TimeSpan 'G' (general long) format: d:hh:mm:ss.fffffff\r\n */\r\n public sentRequest: string;\r\n\r\n /**\r\n * Received response time in TimeSpan 'G' (general long) format: d:hh:mm:ss.fffffff\r\n */\r\n public receivedResponse: string;\r\n\r\n /**\r\n * DOM processing time in TimeSpan 'G' (general long) format: d:hh:mm:ss.fffffff\r\n */\r\n public domProcessing: string;\r\n\r\n /**\r\n * Collection of custom properties.\r\n */\r\n public properties: any;\r\n\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n public measurements: any;\r\n\r\n constructor() {\r\n super();\r\n\r\n this.ver = 2;\r\n this.properties = {};\r\n this.measurements = {};\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\n/**\r\n * Stack frame information.\r\n */\r\nexport class StackFrame {\r\n\r\n /**\r\n * Level in the call stack. For the long stacks SDK may not report every function in a call stack.\r\n */\r\n public level: number;\r\n\r\n /**\r\n * Method name.\r\n */\r\n public method: string;\r\n\r\n /**\r\n * Name of the assembly (dll, jar, etc.) containing this function.\r\n */\r\n public assembly: string;\r\n\r\n /**\r\n * File name or URL of the method implementation.\r\n */\r\n public fileName: string;\r\n\r\n /**\r\n * Line number of the code implementation.\r\n */\r\n public line: number;\r\n\r\n constructor() {\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { StackFrame } from './StackFrame';\r\n\r\n/**\r\n * Exception details of the exception in a chain.\r\n */\r\nexport class ExceptionDetails {\r\n\r\n /**\r\n * In case exception is nested (outer exception contains inner one), the id and outerId properties are used to represent the nesting.\r\n */\r\n public id: number;\r\n\r\n /**\r\n * The value of outerId is a reference to an element in ExceptionDetails that represents the outer exception\r\n */\r\n public outerId: number;\r\n\r\n /**\r\n * Exception type name.\r\n */\r\n public typeName: string;\r\n\r\n /**\r\n * Exception message.\r\n */\r\n public message: string;\r\n\r\n /**\r\n * Indicates if full exception stack is provided in the exception. The stack may be trimmed, such as in the case of a StackOverflow exception.\r\n */\r\n public hasFullStack: boolean;\r\n\r\n /**\r\n * Text describing the stack. Either stack or parsedStack should have a value.\r\n */\r\n public stack: string;\r\n\r\n /**\r\n * List of stack frames. Either stack or parsedStack should have a value.\r\n */\r\n public parsedStack: StackFrame[];\r\n\r\n constructor() {\r\n this.hasFullStack = true;\r\n this.parsedStack = [];\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { StackFrame } from '../Interfaces/Contracts/Generated/StackFrame';\r\nimport { ExceptionData } from '../Interfaces/Contracts/Generated/ExceptionData';\r\nimport { ExceptionDetails } from '../Interfaces/Contracts/Generated/ExceptionDetails';\r\nimport { ISerializable } from '../Interfaces/Telemetry/ISerializable';\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { FieldType } from '../Enums';\r\nimport { SeverityLevel } from '../Interfaces/Contracts/Generated/SeverityLevel';\r\nimport { Util } from '../Util';\r\nimport { IDiagnosticLogger, CoreUtils } from '@microsoft/applicationinsights-core-js';\r\nimport { IExceptionInternal, IExceptionDetailsInternal, IExceptionStackFrameInternal } from '../Interfaces/IExceptionTelemetry';\r\n\r\nexport class Exception extends ExceptionData implements ISerializable {\r\n\r\n public static envelopeType = \"Microsoft.ApplicationInsights.{0}.Exception\";\r\n public static dataType = \"ExceptionData\";\r\n\r\n public id?: string;\r\n public problemGroup?: string;\r\n public isManual?: boolean;\r\n\r\n\r\n public aiDataContract = {\r\n ver: FieldType.Required,\r\n exceptions: FieldType.Required,\r\n severityLevel: FieldType.Default,\r\n properties: FieldType.Default,\r\n measurements: FieldType.Default\r\n }\r\n\r\n /**\r\n * Constructs a new instance of the ExceptionTelemetry object\r\n */\r\n constructor(logger: IDiagnosticLogger, exception: Error | IExceptionInternal, properties?: {[key: string]: any}, measurements?: {[key: string]: number}, severityLevel?: SeverityLevel, id?: string) {\r\n super();\r\n\r\n if (exception instanceof Error) {\r\n this.exceptions = [new _ExceptionDetails(logger, exception)];\r\n this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n if (severityLevel) { this.severityLevel = severityLevel; }\r\n if (id) { this.id = id; }\r\n } else {\r\n this.exceptions = exception.exceptions;\r\n this.properties = exception.properties;\r\n this.measurements = exception.measurements;\r\n if (exception.severityLevel) { this.severityLevel = exception.severityLevel; }\r\n if (exception.id) { this.id = exception.id; }\r\n if (exception.problemGroup) { this.problemGroup = exception.problemGroup; }\r\n\r\n // bool/int types, use isNullOrUndefined\r\n this.ver = 2; // TODO: handle the CS\"4.0\" ==> breeze 2 conversion in a better way\r\n if (!CoreUtils.isNullOrUndefined(exception.isManual)) { this.isManual = exception.isManual; }\r\n }\r\n\r\n }\r\n\r\n public static CreateFromInterface(logger: IDiagnosticLogger, exception: IExceptionInternal): Exception {\r\n const exceptions: _ExceptionDetails[] = exception.exceptions\r\n && CoreUtils.arrMap(exception.exceptions, (ex: IExceptionDetailsInternal) => _ExceptionDetails.CreateFromInterface(logger, ex));\r\n const exceptionData = new Exception(logger, {...exception, exceptions});\r\n return exceptionData;\r\n }\r\n\r\n public toInterface(): IExceptionInternal {\r\n const { exceptions, properties, measurements, severityLevel, ver, problemGroup, id, isManual } = this;\r\n\r\n const exceptionDetailsInterface = exceptions instanceof Array\r\n && CoreUtils.arrMap(exceptions, (exception: _ExceptionDetails) => exception.toInterface())\r\n || undefined;\r\n\r\n return {\r\n ver: \"4.0\", // TODO: handle the CS\"4.0\" ==> breeze 2 conversion in a better way\r\n exceptions: exceptionDetailsInterface,\r\n severityLevel,\r\n properties,\r\n measurements,\r\n problemGroup,\r\n id,\r\n isManual\r\n } as IExceptionInternal;\r\n }\r\n\r\n /**\r\n * Creates a simple exception with 1 stack frame. Useful for manual constracting of exception.\r\n */\r\n public static CreateSimpleException(message: string, typeName: string, assembly: string, fileName: string,\r\n details: string, line: number): Exception {\r\n\r\n return {\r\n exceptions: [\r\n {\r\n hasFullStack: true,\r\n message,\r\n stack: details,\r\n typeName\r\n } as ExceptionDetails\r\n ]\r\n } as Exception;\r\n }\r\n}\r\n\r\nexport class _ExceptionDetails extends ExceptionDetails implements ISerializable {\r\n\r\n public aiDataContract = {\r\n id: FieldType.Default,\r\n outerId: FieldType.Default,\r\n typeName: FieldType.Required,\r\n message: FieldType.Required,\r\n hasFullStack: FieldType.Default,\r\n stack: FieldType.Default,\r\n parsedStack: FieldType.Array\r\n };\r\n\r\n constructor(logger: IDiagnosticLogger, exception: Error | IExceptionDetailsInternal) {\r\n super();\r\n\r\n if (exception instanceof Error) {\r\n this.typeName = DataSanitizer.sanitizeString(logger, exception.name) || Util.NotSpecified;\r\n this.message = DataSanitizer.sanitizeMessage(logger, exception.message) || Util.NotSpecified;\r\n const stack = exception.stack;\r\n this.parsedStack = _ExceptionDetails.parseStack(stack);\r\n this.stack = DataSanitizer.sanitizeException(logger, stack);\r\n this.hasFullStack = Util.isArray(this.parsedStack) && this.parsedStack.length > 0;\r\n } else {\r\n this.typeName = exception.typeName;\r\n this.message = exception.message;\r\n this.stack = exception.stack;\r\n this.parsedStack = exception.parsedStack\r\n this.hasFullStack = exception.hasFullStack\r\n }\r\n }\r\n\r\n public toInterface(): IExceptionDetailsInternal {\r\n const parsedStack = this.parsedStack instanceof Array\r\n && CoreUtils.arrMap(this.parsedStack, (frame: _StackFrame) => frame.toInterface());\r\n\r\n const exceptionDetailsInterface: IExceptionDetailsInternal = {\r\n id: this.id,\r\n outerId: this.outerId,\r\n typeName: this.typeName,\r\n message: this.message,\r\n hasFullStack: this.hasFullStack,\r\n stack: this.stack,\r\n parsedStack: parsedStack || undefined\r\n };\r\n\r\n return exceptionDetailsInterface;\r\n }\r\n\r\n public static CreateFromInterface(logger, exception: IExceptionDetailsInternal): _ExceptionDetails {\r\n const parsedStack = (exception.parsedStack instanceof Array\r\n &&CoreUtils.arrMap(exception.parsedStack, frame => _StackFrame.CreateFromInterface(frame)))\r\n || exception.parsedStack;\r\n\r\n const exceptionDetails = new _ExceptionDetails(logger, {...exception, parsedStack});\r\n\r\n return exceptionDetails;\r\n }\r\n\r\n private static parseStack(stack): _StackFrame[] {\r\n let parsedStack: _StackFrame[];\r\n if (CoreUtils.isString(stack)) {\r\n const frames = stack.split('\\n');\r\n parsedStack = [];\r\n let level = 0;\r\n\r\n let totalSizeInBytes = 0;\r\n for (let i = 0; i <= frames.length; i++) {\r\n const frame = frames[i];\r\n if (_StackFrame.regex.test(frame)) {\r\n const parsedFrame = new _StackFrame(frames[i], level++);\r\n totalSizeInBytes += parsedFrame.sizeInBytes;\r\n parsedStack.push(parsedFrame);\r\n }\r\n }\r\n\r\n // DP Constraint - exception parsed stack must be < 32KB\r\n // remove frames from the middle to meet the threshold\r\n const exceptionParsedStackThreshold = 32 * 1024;\r\n if (totalSizeInBytes > exceptionParsedStackThreshold) {\r\n let left = 0;\r\n let right = parsedStack.length - 1;\r\n let size = 0;\r\n let acceptedLeft = left;\r\n let acceptedRight = right;\r\n\r\n while (left < right) {\r\n // check size\r\n const lSize = parsedStack[left].sizeInBytes;\r\n const rSize = parsedStack[right].sizeInBytes;\r\n size += lSize + rSize;\r\n\r\n if (size > exceptionParsedStackThreshold) {\r\n\r\n // remove extra frames from the middle\r\n const howMany = acceptedRight - acceptedLeft + 1;\r\n parsedStack.splice(acceptedLeft, howMany);\r\n break;\r\n }\r\n\r\n // update pointers\r\n acceptedLeft = left;\r\n acceptedRight = right;\r\n\r\n left++;\r\n right--;\r\n }\r\n }\r\n }\r\n\r\n return parsedStack;\r\n }\r\n}\r\n\r\nexport class _StackFrame extends StackFrame implements ISerializable {\r\n\r\n // regex to match stack frames from ie/chrome/ff\r\n // methodName=$2, fileName=$4, lineNo=$5, column=$6\r\n public static regex = /^([\\s]+at)?(.*?)(\\@|\\s\\(|\\s)([^\\(\\@\\n]+):([0-9]+):([0-9]+)(\\)?)$/;\r\n public static baseSize = 58; // '{\"method\":\"\",\"level\":,\"assembly\":\"\",\"fileName\":\"\",\"line\":}'.length\r\n public sizeInBytes = 0;\r\n\r\n public aiDataContract = {\r\n level: FieldType.Required,\r\n method: FieldType.Required,\r\n assembly: FieldType.Default,\r\n fileName: FieldType.Default,\r\n line: FieldType.Default,\r\n };\r\n\r\n constructor(sourceFrame: string | IExceptionStackFrameInternal, level: number) {\r\n super();\r\n\r\n // Not converting this to CoreUtils.isString() as typescript uses this logic to \"understand\" the different\r\n // types for the 2 different code paths\r\n if (typeof sourceFrame === \"string\") {\r\n const frame: string = sourceFrame;\r\n this.level = level;\r\n this.method = \"\";\r\n this.assembly = Util.trim(frame);\r\n this.fileName = \"\";\r\n this.line = 0;\r\n const matches = frame.match(_StackFrame.regex);\r\n if (matches && matches.length >= 5) {\r\n this.method = Util.trim(matches[2]) || this.method;\r\n this.fileName = Util.trim(matches[4]);\r\n this.line = parseInt(matches[5]) || 0;\r\n }\r\n } else {\r\n this.level = sourceFrame.level;\r\n this.method = sourceFrame.method;\r\n this.assembly = sourceFrame.assembly;\r\n this.fileName = sourceFrame.fileName;\r\n this.line = sourceFrame.line;\r\n this.sizeInBytes = 0;\r\n }\r\n\r\n this.sizeInBytes += this.method.length;\r\n this.sizeInBytes += this.fileName.length;\r\n this.sizeInBytes += this.assembly.length;\r\n\r\n // todo: these might need to be removed depending on how the back-end settles on their size calculation\r\n this.sizeInBytes += _StackFrame.baseSize;\r\n this.sizeInBytes += this.level.toString().length;\r\n this.sizeInBytes += this.line.toString().length;\r\n }\r\n\r\n public static CreateFromInterface(frame: IExceptionStackFrameInternal) {\r\n return new _StackFrame(frame, null /* level is available in frame interface */);\r\n }\r\n\r\n public toInterface() {\r\n return {\r\n level: this.level,\r\n method: this.method,\r\n assembly: this.assembly,\r\n fileName: this.fileName,\r\n line: this.line\r\n };\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { ExceptionDetails } from './ExceptionDetails';\r\nimport { Domain } from './Domain';\r\nimport { SeverityLevel } from './SeverityLevel';\r\n\r\n/**\r\n * An instance of Exception represents a handled or unhandled exception that occurred during execution of the monitored application.\r\n */\r\nexport class ExceptionData extends Domain {\r\n\r\n /**\r\n * Schema version\r\n */\r\n public ver: number;\r\n\r\n /**\r\n * Exception chain - list of inner exceptions.\r\n */\r\n public exceptions: ExceptionDetails[];\r\n\r\n /**\r\n * Severity level. Mostly used to indicate exception severity level when it is reported by logging library.\r\n */\r\n public severityLevel: SeverityLevel;\r\n\r\n /**\r\n * Collection of custom properties.\r\n */\r\n public properties: any;\r\n\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n public measurements: any;\r\n\r\n constructor() {\r\n super();\r\n\r\n this.ver = 2;\r\n this.exceptions = [];\r\n this.properties = {};\r\n this.measurements = {};\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nexport const DisabledPropertyName: string = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nexport const SampleRate = \"sampleRate\";\r\nexport const ProcessLegacy = \"ProcessLegacy\";\r\nexport const HttpMethod = \"http.method\";\r\nexport const DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// @duplicate of https://github.com/microsoft/ApplicationInsights-node.js/blob/develop/Library/ConnectionStringParser.ts\r\n\r\nimport { ConnectionString, ConnectionStringKey } from \"./Interfaces/ConnectionString\";\r\nimport { DEFAULT_BREEZE_ENDPOINT } from \"./Constants\";\r\nimport { CoreUtils } from \"@microsoft/applicationinsights-core-js\";\r\n\r\nexport class ConnectionStringParser {\r\n private static _FIELDS_SEPARATOR = \";\";\r\n private static _FIELD_KEY_VALUE_SEPARATOR = \"=\";\r\n\r\n public static parse(connectionString?: string): ConnectionString {\r\n if (!connectionString) {\r\n return {};\r\n }\r\n\r\n const kvPairs = connectionString.split(ConnectionStringParser._FIELDS_SEPARATOR);\r\n\r\n const result: ConnectionString = CoreUtils.arrReduce(kvPairs, (fields: ConnectionString, kv: string) => {\r\n const kvParts = kv.split(ConnectionStringParser._FIELD_KEY_VALUE_SEPARATOR);\r\n\r\n if (kvParts.length === 2) { // only save fields with valid formats\r\n const key = kvParts[0].toLowerCase() as ConnectionStringKey;\r\n const value = kvParts[1];\r\n fields[key] = value as string;\r\n }\r\n return fields;\r\n }, {});\r\n\r\n if (CoreUtils.objKeys(result).length > 0) {\r\n // this is a valid connection string, so parse the results\r\n\r\n if (result.endpointsuffix) {\r\n // use endpoint suffix where overrides are not provided\r\n const locationPrefix = result.location ? result.location + \".\" : \"\";\r\n result.ingestionendpoint = result.ingestionendpoint || (\"https://\" + locationPrefix + \"dc.\" + result.endpointsuffix);\r\n }\r\n\r\n // apply the default endpoints\r\n result.ingestionendpoint = result.ingestionendpoint || DEFAULT_BREEZE_ENDPOINT;\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\n\r\n/**\r\n * Data struct to contain only C section with custom fields.\r\n */\r\nexport class Base {\r\n\r\n /**\r\n * Name of item (B section) if any. If telemetry data is derived straight from this, this should be null.\r\n */\r\n public baseType: string;\r\n\r\n constructor() {\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { Base } from './Base';\r\n\r\n/**\r\n * Data struct to contain both B and C sections.\r\n */\r\nexport class Data extends Base {\r\n\r\n /**\r\n * Name of item (B section) if any. If telemetry data is derived straight from this, this should be null.\r\n */\r\n public baseType: string;\r\n\r\n /**\r\n * Container for data item (B section).\r\n */\r\n public baseData: TDomain;\r\n\r\n constructor() {\r\n super();\r\n\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { Envelope as AIEnvelope } from '../../Interfaces/Contracts/Generated/Envelope';\r\nimport { Base } from '../../Interfaces/Contracts/Generated/Base';\r\nimport { IEnvelope } from '../../Interfaces/Telemetry/IEnvelope';\r\nimport { DataSanitizer } from './DataSanitizer';\r\nimport { FieldType } from '../../Enums';\r\nimport { Util } from '../../Util';\r\nimport { IDiagnosticLogger, CoreUtils } from '@microsoft/applicationinsights-core-js';\r\n\r\nexport class Envelope extends AIEnvelope implements IEnvelope {\r\n\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n public aiDataContract;\r\n\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n constructor(logger: IDiagnosticLogger, data: Base, name: string) {\r\n super();\r\n\r\n this.name = DataSanitizer.sanitizeString(logger, name) || Util.NotSpecified;\r\n this.data = data;\r\n this.time = CoreUtils.toISOString(new Date());\r\n\r\n this.aiDataContract = {\r\n time: FieldType.Required,\r\n iKey: FieldType.Required,\r\n name: FieldType.Required,\r\n sampleRate: () => {\r\n return (this.sampleRate === 100) ? FieldType.Hidden : FieldType.Required;\r\n },\r\n tags: FieldType.Required,\r\n data: FieldType.Required\r\n };\r\n }\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { Base } from './Base';\r\n\r\n/**\r\n * System variables for a telemetry item.\r\n */\r\nexport class Envelope {\r\n\r\n /**\r\n * Envelope version. For internal use only. By assigning this the default, it will not be serialized within the payload unless changed to a value other than #1.\r\n */\r\n public ver: number;\r\n\r\n /**\r\n * Type name of telemetry data item.\r\n */\r\n public name: string;\r\n\r\n /**\r\n * Event date time when telemetry item was created. This is the wall clock time on the client when the event was generated. There is no guarantee that the client's time is accurate. This field must be formatted in UTC ISO 8601 format, with a trailing 'Z' character, as described publicly on https://en.wikipedia.org/wiki/ISO_8601#UTC. Note: the number of decimal seconds digits provided are variable (and unspecified). Consumers should handle this, i.e. managed code consumers should not use format 'O' for parsing as it specifies a fixed length. Example: 2009-06-15T13:45:30.0000000Z.\r\n */\r\n public time: string;\r\n\r\n /**\r\n * Sampling rate used in application. This telemetry item represents 1 / sampleRate actual telemetry items.\r\n */\r\n public sampleRate: number;\r\n\r\n /**\r\n * Sequence field used to track absolute order of uploaded events.\r\n */\r\n public seq: string;\r\n\r\n /**\r\n * The application's instrumentation key. The key is typically represented as a GUID, but there are cases when it is not a guid. No code should rely on iKey being a GUID. Instrumentation key is case insensitive.\r\n */\r\n public iKey: string;\r\n\r\n /**\r\n * Key/value collection of context properties. See ContextTagKeys for information on available properties.\r\n */\r\n public tags: any;\r\n\r\n /**\r\n * Telemetry data item.\r\n */\r\n public data: Base;\r\n\r\n constructor() {\r\n this.ver = 1;\r\n this.sampleRate = 100.0;\r\n this.tags = {};\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { FieldType } from '../Enums';\r\nimport { ISerializable } from '../Interfaces/Telemetry/ISerializable';\r\nimport { Util, AjaxHelper} from '../Util';\r\nimport { RemoteDependencyData as GeneratedRemoteDependencyData } from '../Interfaces/Contracts/Generated/RemoteDependencyData';\r\nimport { IDiagnosticLogger } from '@microsoft/applicationinsights-core-js';\r\n\r\nexport class RemoteDependencyData extends GeneratedRemoteDependencyData implements ISerializable {\r\n\r\n public static envelopeType = \"Microsoft.ApplicationInsights.{0}.RemoteDependency\";\r\n public static dataType = \"RemoteDependencyData\";\r\n\r\n public aiDataContract = {\r\n id: FieldType.Required,\r\n ver: FieldType.Required,\r\n name: FieldType.Default,\r\n resultCode: FieldType.Default,\r\n duration: FieldType.Default,\r\n success: FieldType.Default,\r\n data: FieldType.Default,\r\n target: FieldType.Default,\r\n type: FieldType.Default,\r\n properties: FieldType.Default,\r\n measurements: FieldType.Default,\r\n\r\n kind: FieldType.Default,\r\n value: FieldType.Default,\r\n count: FieldType.Default,\r\n min: FieldType.Default,\r\n max: FieldType.Default,\r\n stdDev: FieldType.Default,\r\n dependencyKind: FieldType.Default,\r\n dependencySource: FieldType.Default,\r\n commandName: FieldType.Default,\r\n dependencyTypeName: FieldType.Default,\r\n }\r\n\r\n /**\r\n * Constructs a new instance of the RemoteDependencyData object\r\n */\r\n constructor(logger: IDiagnosticLogger, id: string, absoluteUrl: string, commandName: string, value: number, success: boolean, resultCode: number, method?: string, requestAPI: string = \"Ajax\", correlationContext?: string, properties?: Object, measurements?: Object) {\r\n super();\r\n\r\n this.id = id;\r\n\r\n this.duration = Util.msToTimeSpan(value);\r\n this.success = success;\r\n this.resultCode = resultCode + \"\";\r\n\r\n this.type = DataSanitizer.sanitizeString(logger, requestAPI);\r\n\r\n const dependencyFields = AjaxHelper.ParseDependencyPath(logger, absoluteUrl, method, commandName);\r\n this.data = DataSanitizer.sanitizeUrl(logger, commandName) || dependencyFields.data; // get a value from hosturl if commandName not available\r\n this.target = DataSanitizer.sanitizeString(logger, dependencyFields.target);\r\n if (correlationContext) {\r\n this.target = `${this.target} | ${correlationContext}`;\r\n }\r\n this.name = DataSanitizer.sanitizeString(logger, dependencyFields.name);\r\n\r\n this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { Domain } from './Domain';\r\n\r\n/**\r\n * An instance of Remote Dependency represents an interaction of the monitored component with a remote component/service like SQL or an HTTP endpoint.\r\n */\r\nexport class RemoteDependencyData extends Domain {\r\n\r\n /**\r\n * Schema version\r\n */\r\n public ver: number;\r\n\r\n /**\r\n * Name of the command initiated with this dependency call. Low cardinality value. Examples are stored procedure name and URL path template.\r\n */\r\n public name: string;\r\n\r\n /**\r\n * Identifier of a dependency call instance. Used for correlation with the request telemetry item corresponding to this dependency call.\r\n */\r\n public id: string;\r\n\r\n /**\r\n * Result code of a dependency call. Examples are SQL error code and HTTP status code.\r\n */\r\n public resultCode: string;\r\n\r\n /**\r\n * Request duration in format: DD.HH:MM:SS.MMMMMM. Must be less than 1000 days.\r\n */\r\n public duration: string;\r\n\r\n /**\r\n * Indication of successfull or unsuccessfull call.\r\n */\r\n public success: boolean;\r\n\r\n /**\r\n * Command initiated by this dependency call. Examples are SQL statement and HTTP URL's with all query parameters.\r\n */\r\n public data: string;\r\n\r\n /**\r\n * Target site of a dependency call. Examples are server name, host address.\r\n */\r\n public target: string;\r\n\r\n /**\r\n * Dependency type name. Very low cardinality value for logical grouping of dependencies and interpretation of other fields like commandName and resultCode. Examples are SQL, Azure table, and HTTP.\r\n */\r\n public type: string;\r\n\r\n /**\r\n * Collection of custom properties.\r\n */\r\n public properties: any;\r\n\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n public measurements: any;\r\n\r\n constructor() {\r\n super();\r\n\r\n this.ver = 2;\r\n this.success = true;\r\n this.properties = {};\r\n this.measurements = {};\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { Data as AIData } from '../../Interfaces/Contracts/Generated/Data';\r\nimport { ISerializable } from '../../Interfaces/Telemetry/ISerializable';\r\nimport { FieldType } from '../../Enums';\r\n\r\nexport class Data extends AIData implements ISerializable {\r\n\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n public aiDataContract = {\r\n baseType: FieldType.Required,\r\n baseData: FieldType.Required\r\n }\r\n\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n constructor(baseType: string, data: TDomain) {\r\n super();\r\n\r\n this.baseType = baseType;\r\n this.baseData = data;\r\n }\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { IConfiguration, CoreUtils } from '@microsoft/applicationinsights-core-js';\r\nimport { DistributedTracingModes } from '../Enums';\r\n\r\n/**\r\n * @description Configuration settings for how telemetry is sent\r\n * @export\r\n * @interface IConfig\r\n */\r\nexport interface IConfig {\r\n\r\n /**\r\n * @description\r\n * @type {boolean}\r\n * @memberof IConfig\r\n */\r\n emitLineDelimitedJson?: boolean;\r\n\r\n /**\r\n * @description An optional account id, if your app groups users into accounts. No spaces, commas, semicolons, equals, or vertical bars.\r\n * @type {string}\r\n * @memberof IConfig\r\n */\r\n accountId?: string;\r\n\r\n /**\r\n * @description A session is logged if the user is inactive for this amount of time in milliseconds. Default 30 mins.\r\n * @type {number}\r\n * @memberof IConfig\r\n * @default 30*60*1000\r\n */\r\n sessionRenewalMs?: number;\r\n\r\n /**\r\n * @description A session is logged if it has continued for this amount of time in milliseconds. Default 24h.\r\n * @type {number}\r\n * @memberof IConfig\r\n * @default 24*60*60*1000\r\n */\r\n sessionExpirationMs?: number;\r\n\r\n /**\r\n * @description Max size of telemetry batch. If batch exceeds limit, it is sent and a new batch is started\r\n * @type {number}\r\n * @memberof IConfig\r\n * @default 100000\r\n */\r\n maxBatchSizeInBytes?: number;\r\n\r\n /**\r\n * @description How long to batch telemetry for before sending (milliseconds)\r\n * @type {number}\r\n * @memberof IConfig\r\n * @default 15 seconds\r\n */\r\n maxBatchInterval?: number;\r\n\r\n /**\r\n * @description If true, debugging data is thrown as an exception by the logger. Default false\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n enableDebug?: boolean;\r\n\r\n /**\r\n * @description If true, exceptions are not autocollected. Default is false\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n disableExceptionTracking?: boolean;\r\n\r\n /**\r\n * @description If true, telemetry is not collected or sent. Default is false\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n disableTelemetry?: boolean;\r\n\r\n /**\r\n * @description Percentage of events that will be sent. Default is 100, meaning all events are sent.\r\n * @type {number}\r\n * @memberof IConfig\r\n * @defaultValue 100\r\n */\r\n samplingPercentage?: number;\r\n\r\n /**\r\n * @description If true, on a pageview,the previous instrumented page's view time is tracked and sent as telemetry and a new timer is started for the current pageview. Default is false.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n */\r\n autoTrackPageVisitTime?: boolean;\r\n\r\n /**\r\n * @description Automatically track route changes in Single Page Applications (SPA). If true, each route change will send a new Pageview to Application Insights.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n */\r\n enableAutoRouteTracking?: boolean;\r\n\r\n /**\r\n * @description If true, Ajax calls are not autocollected. Default is false\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n disableAjaxTracking?: boolean;\r\n\r\n /**\r\n * @description If true, Fetch requests are not autocollected. Default is true.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue true\r\n */\r\n disableFetchTracking?: boolean;\r\n\r\n /**\r\n * @description If true, default behavior of trackPageView is changed to record end of page view duration interval when trackPageView is called. If false and no custom duration is provided to trackPageView, the page view performance is calculated using the navigation timing API. Default is false\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n overridePageViewDuration?: boolean;\r\n\r\n /**\r\n * @description Default 500 - controls how many ajax calls will be monitored per page view. Set to -1 to monitor all (unlimited) ajax calls on the page.\r\n * @type {number}\r\n * @memberof IConfig\r\n */\r\n maxAjaxCallsPerView?: number;\r\n\r\n /**\r\n * @ignore\r\n * @description If false, internal telemetry sender buffers will be checked at startup for items not yet sent. Default is true\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue true\r\n */\r\n disableDataLossAnalysis?: boolean;\r\n\r\n /**\r\n * @description If false, the SDK will add two headers ('Request-Id' and 'Request-Context') to all dependency requests to correlate them with corresponding requests on the server side. Default is false.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n disableCorrelationHeaders?: boolean;\r\n\r\n /**\r\n * @description Sets the distributed tracing mode. If AI_AND_W3C mode or W3C mode is set, W3C trace context headers (traceparent/tracestate) will be generated and included in all outgoing requests. \r\n * AI_AND_W3C is provided for back-compatibility with any legacy Application Insights instrumented services\r\n * @type {enum}\r\n * @memberof IConfig\r\n * @defaultValue AI\r\n */\r\n distributedTracingMode?: DistributedTracingModes;\r\n\r\n /**\r\n * @description Disable correlation headers for specific domain\r\n * @type {string[]}\r\n * @memberof IConfig\r\n */\r\n correlationHeaderExcludedDomains?: string[];\r\n\r\n /**\r\n * @description Default false. If true, flush method will not be called when onBeforeUnload event triggers.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n */\r\n disableFlushOnBeforeUnload?: boolean;\r\n\r\n /**\r\n * @description Default value of {@link #disableFlushOnBeforeUnload}. If true, flush method will not be called when onUnload event triggers.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n */\r\n disableFlushOnUnload?: boolean;\r\n\r\n /**\r\n * @description If true, the buffer with all unsent telemetry is stored in session storage. The buffer is restored on page load. Default is true.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue true\r\n */\r\n enableSessionStorageBuffer?: boolean;\r\n\r\n /**\r\n * @description If true, the SDK will not store or read any data from cookies. Default is false.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n isCookieUseDisabled?: boolean;\r\n\r\n /**\r\n * @description Custom cookie domain. This is helpful if you want to share Application Insights cookies across subdomains.\r\n * @type {string}\r\n * @memberof IConfig\r\n * @defaultValue \"\"\r\n */\r\n cookieDomain?: string;\r\n\r\n /** \r\n * Default false. If false, retry on 206 (partial success), 408 (timeout), 429 (too many requests), 500 (internal server error), 503 (service unavailable), and 0 (offline, only if detected)\r\n * @description\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n isRetryDisabled?: boolean;\r\n\r\n /**\r\n * @deprecated Used when initizialing from snippet only.\r\n * @description The url from where the JS SDK will be downloaded. Default 'https://az416426.vo.msecnd.net/scripts/beta/ai.1.js'\r\n * @type {string}\r\n * @memberof IConfig\r\n * @defaultValue \"https://az416426.vo.msecnd.net/scripts/beta/ai.1.js\"\r\n */\r\n url?: string;\r\n\r\n /**\r\n * @description If true, the SDK will not store or read any data from local and session storage. Default is false.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n isStorageUseDisabled?: boolean;\r\n\r\n /**\r\n * @description If false, the SDK will send all telemetry using the [Beacon API](https://www.w3.org/TR/beacon)\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue true\r\n */\r\n isBeaconApiDisabled?: boolean;\r\n\r\n /**\r\n * @description Sets the sdk extension name. Only alphabetic characters are allowed. The extension name is added as a prefix to the 'ai.internal.sdkVersion' tag (e.g. 'ext_javascript:2.0.0'). Default is null.\r\n * @type {string}\r\n * @memberof IConfig\r\n * @defaultValue null\r\n */\r\n sdkExtension?: string;\r\n\r\n /**\r\n * @description Default is false. If true, the SDK will track all [Browser Link](https://docs.microsoft.com/en-us/aspnet/core/client-side/using-browserlink) requests.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n isBrowserLinkTrackingEnabled?: boolean;\r\n\r\n /**\r\n * @description AppId is used for the correlation between AJAX dependencies happening on the client-side with the server-side requets. When Beacon API is enabled, it cannot be used automatically, but can be set manually in the configuration. Default is null\r\n * @type {string}\r\n * @memberof IConfig\r\n * @defaultValue null\r\n */\r\n appId?: string;\r\n\r\n /**\r\n * @description If true, the SDK will add two headers ('Request-Id' and 'Request-Context') to all CORS requests to correlate outgoing AJAX dependencies with corresponding requests on the server side. Default is false\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n enableCorsCorrelation?: boolean;\r\n\r\n /**\r\n * @description An optional value that will be used as name postfix for localStorage and cookie name.\r\n * @type {string}\r\n * @memberof IConfig\r\n * @defaultValue null\r\n */\r\n namePrefix?: string;\r\n\r\n /**\r\n * @description An optional value that will track Request Header through trackDependency function.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n enableRequestHeaderTracking?: boolean;\r\n\r\n /**\r\n * @description An optional value that will track Response Header through trackDependency function.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n enableResponseHeaderTracking?: boolean;\r\n\r\n /**\r\n * @description An optional value that will track Response Error data through trackDependency function.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n enableAjaxErrorStatusText?: boolean;\r\n\r\n /**\r\n * @description Default false. when tab is closed, the SDK will send all remaining telemetry using the [Beacon API](https://www.w3.org/TR/beacon)\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n onunloadDisableBeacon?: boolean;\r\n\r\n // Internal\r\n\r\n /**\r\n * @ignore\r\n * @description Internal only\r\n * @type {boolean}\r\n * @memberof IConfig\r\n */\r\n autoExceptionInstrumented?: boolean;\r\n correlationHeaderDomains?: string[]\r\n\r\n /**\r\n * @ignore\r\n * @description Internal only\r\n * @type {boolean}\r\n * @memberof IConfig\r\n */\r\n autoUnhandledPromiseInstrumented?: boolean;\r\n\r\n /**\r\n * @description Default false. Define whether to track unhandled promise rejections and report as JS errors. \r\n * When disableExceptionTracking is enabled (dont track exceptions) this value will be false.\r\n * @type {boolean}\r\n * @memberof IConfig\r\n * @defaultValue false\r\n */\r\n enableUnhandledPromiseRejectionTracking?: boolean;\r\n}\r\n\r\nexport class ConfigurationManager {\r\n public static getConfig(config: IConfiguration & IConfig, field: string, identifier?: string, defaultValue: number | string | boolean = false): number | string | boolean {\r\n let configValue;\r\n if (identifier && config.extensionConfig && config.extensionConfig[identifier] && !CoreUtils.isNullOrUndefined(config.extensionConfig[identifier][field])) {\r\n configValue = config.extensionConfig[identifier][field];\r\n } else {\r\n configValue = config[field];\r\n }\r\n\r\n return !CoreUtils.isNullOrUndefined(configValue) ? configValue : defaultValue;\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\nexport class ContextTagKeys {\r\n\r\n /**\r\n * Application version. Information in the application context fields is always about the application that is sending the telemetry.\r\n */\r\n public applicationVersion: string;\r\n\r\n /**\r\n * Application build.\r\n */\r\n public applicationBuild: string;\r\n\r\n /**\r\n * Application type id.\r\n */\r\n public applicationTypeId: string;\r\n\r\n /**\r\n * Application id.\r\n */\r\n public applicationId: string;\r\n\r\n /**\r\n * Application layer.\r\n */\r\n public applicationLayer: string;\r\n\r\n /**\r\n * Unique client device id. Computer name in most cases.\r\n */\r\n public deviceId: string;\r\n public deviceIp: string;\r\n public deviceLanguage: string;\r\n\r\n /**\r\n * Device locale using - pattern, following RFC 5646. Example 'en-US'.\r\n */\r\n public deviceLocale: string;\r\n\r\n /**\r\n * Model of the device the end user of the application is using. Used for client scenarios. If this field is empty then it is derived from the user agent.\r\n */\r\n public deviceModel: string;\r\n public deviceFriendlyName: string;\r\n public deviceNetwork: string;\r\n public deviceNetworkName: string;\r\n\r\n /**\r\n * Client device OEM name taken from the browser.\r\n */\r\n public deviceOEMName: string;\r\n public deviceOS: string;\r\n\r\n /**\r\n * Operating system name and version of the device the end user of the application is using. If this field is empty then it is derived from the user agent. Example 'Windows 10 Pro 10.0.10586.0'\r\n */\r\n public deviceOSVersion: string;\r\n\r\n /**\r\n * Name of the instance where application is running. Computer name for on-premisis, instance name for Azure.\r\n */\r\n public deviceRoleInstance: string;\r\n\r\n /**\r\n * Name of the role application is part of. Maps directly to the role name in azure.\r\n */\r\n public deviceRoleName: string;\r\n public deviceScreenResolution: string;\r\n\r\n /**\r\n * The type of the device the end user of the application is using. Used primarily to distinguish JavaScript telemetry from server side telemetry. Examples: 'PC', 'Phone', 'Browser'. 'PC' is the default value.\r\n */\r\n public deviceType: string;\r\n public deviceMachineName: string;\r\n public deviceVMName: string;\r\n public deviceBrowser: string;\r\n\r\n /**\r\n * The browser name and version as reported by the browser.\r\n */\r\n public deviceBrowserVersion: string;\r\n\r\n /**\r\n * The IP address of the client device. IPv4 and IPv6 are supported. Information in the location context fields is always about the end user. When telemetry is sent from a service, the location context is about the user that initiated the operation in the service.\r\n */\r\n public locationIp: string;\r\n\r\n /**\r\n * The country of the client device. If any of Country, Province, or City is specified, those values will be preferred over geolocation of the IP address field. Information in the location context fields is always about the end user. When telemetry is sent from a service, the location context is about the user that initiated the operation in the service.\r\n */\r\n public locationCountry: string;\r\n\r\n /**\r\n * The province/state of the client device. If any of Country, Province, or City is specified, those values will be preferred over geolocation of the IP address field. Information in the location context fields is always about the end user. When telemetry is sent from a service, the location context is about the user that initiated the operation in the service.\r\n */\r\n public locationProvince: string;\r\n\r\n /**\r\n * The city of the client device. If any of Country, Province, or City is specified, those values will be preferred over geolocation of the IP address field. Information in the location context fields is always about the end user. When telemetry is sent from a service, the location context is about the user that initiated the operation in the service.\r\n */\r\n public locationCity: string;\r\n\r\n /**\r\n * A unique identifier for the operation instance. The operation.id is created by either a request or a page view. All other telemetry sets this to the value for the containing request or page view. Operation.id is used for finding all the telemetry items for a specific operation instance.\r\n */\r\n public operationId: string;\r\n\r\n /**\r\n * The name (group) of the operation. The operation.name is created by either a request or a page view. All other telemetry items set this to the value for the containing request or page view. Operation.name is used for finding all the telemetry items for a group of operations (i.e. 'GET Home/Index').\r\n */\r\n public operationName: string;\r\n\r\n /**\r\n * The unique identifier of the telemetry item's immediate parent.\r\n */\r\n public operationParentId: string;\r\n public operationRootId: string;\r\n\r\n /**\r\n * Name of synthetic source. Some telemetry from the application may represent a synthetic traffic. It may be web crawler indexing the web site, site availability tests or traces from diagnostic libraries like Application Insights SDK itself.\r\n */\r\n public operationSyntheticSource: string;\r\n\r\n /**\r\n * The correlation vector is a light weight vector clock which can be used to identify and order related events across clients and services.\r\n */\r\n public operationCorrelationVector: string;\r\n\r\n /**\r\n * Session ID - the instance of the user's interaction with the app. Information in the session context fields is always about the end user. When telemetry is sent from a service, the session context is about the user that initiated the operation in the service.\r\n */\r\n public sessionId: string;\r\n\r\n /**\r\n * Boolean value indicating whether the session identified by ai.session.id is first for the user or not.\r\n */\r\n public sessionIsFirst: string;\r\n public sessionIsNew: string;\r\n public userAccountAcquisitionDate: string;\r\n\r\n /**\r\n * In multi-tenant applications this is the account ID or name which the user is acting with. Examples may be subscription ID for Azure portal or blog name blogging platform.\r\n */\r\n public userAccountId: string;\r\n\r\n /**\r\n * The browser's user agent string as reported by the browser. This property will be used to extract informaiton regarding the customer's browser but will not be stored. Use custom properties to store the original user agent.\r\n */\r\n public userAgent: string;\r\n\r\n /**\r\n * Anonymous user id. Represents the end user of the application. When telemetry is sent from a service, the user context is about the user that initiated the operation in the service.\r\n */\r\n public userId: string;\r\n\r\n /**\r\n * Store region for UWP applications.\r\n */\r\n public userStoreRegion: string;\r\n\r\n /**\r\n * Authenticated user id. The opposite of ai.user.id, this represents the user with a friendly name. Since it's PII information it is not collected by default by most SDKs.\r\n */\r\n public userAuthUserId: string;\r\n public userAnonymousUserAcquisitionDate: string;\r\n public userAuthenticatedUserAcquisitionDate: string;\r\n public cloudName: string;\r\n\r\n /**\r\n * Name of the role the application is a part of. Maps directly to the role name in azure.\r\n */\r\n public cloudRole: string;\r\n public cloudRoleVer: string;\r\n\r\n /**\r\n * Name of the instance where the application is running. Computer name for on-premisis, instance name for Azure.\r\n */\r\n public cloudRoleInstance: string;\r\n public cloudEnvironment: string;\r\n public cloudLocation: string;\r\n public cloudDeploymentUnit: string;\r\n\r\n /**\r\n * SDK version. See https://github.com/microsoft/ApplicationInsights-Home/blob/master/SDK-AUTHORING.md#sdk-version-specification for information.\r\n */\r\n public internalSdkVersion: string;\r\n\r\n /**\r\n * Agent version. Used to indicate the version of StatusMonitor installed on the computer if it is used for data collection.\r\n */\r\n public internalAgentVersion: string;\r\n\r\n /**\r\n * This is the node name used for billing purposes. Use it to override the standard detection of nodes.\r\n */\r\n public internalNodeName: string;\r\n\r\n constructor() {\r\n this.applicationVersion = \"ai.application.ver\";\r\n this.applicationBuild = \"ai.application.build\";\r\n this.applicationTypeId = \"ai.application.typeId\";\r\n this.applicationId = \"ai.application.applicationId\";\r\n this.applicationLayer = \"ai.application.layer\";\r\n this.deviceId = \"ai.device.id\";\r\n this.deviceIp = \"ai.device.ip\";\r\n this.deviceLanguage = \"ai.device.language\";\r\n this.deviceLocale = \"ai.device.locale\";\r\n this.deviceModel = \"ai.device.model\";\r\n this.deviceFriendlyName = \"ai.device.friendlyName\";\r\n this.deviceNetwork = \"ai.device.network\";\r\n this.deviceNetworkName = \"ai.device.networkName\";\r\n this.deviceOEMName = \"ai.device.oemName\";\r\n this.deviceOS = \"ai.device.os\";\r\n this.deviceOSVersion = \"ai.device.osVersion\";\r\n this.deviceRoleInstance = \"ai.device.roleInstance\";\r\n this.deviceRoleName = \"ai.device.roleName\";\r\n this.deviceScreenResolution = \"ai.device.screenResolution\";\r\n this.deviceType = \"ai.device.type\";\r\n this.deviceMachineName = \"ai.device.machineName\";\r\n this.deviceVMName = \"ai.device.vmName\";\r\n this.deviceBrowser = \"ai.device.browser\";\r\n this.deviceBrowserVersion = \"ai.device.browserVersion\";\r\n this.locationIp = \"ai.location.ip\";\r\n this.locationCountry = \"ai.location.country\";\r\n this.locationProvince = \"ai.location.province\";\r\n this.locationCity = \"ai.location.city\";\r\n this.operationId = \"ai.operation.id\";\r\n this.operationName = \"ai.operation.name\";\r\n this.operationParentId = \"ai.operation.parentId\";\r\n this.operationRootId = \"ai.operation.rootId\";\r\n this.operationSyntheticSource = \"ai.operation.syntheticSource\";\r\n this.operationCorrelationVector = \"ai.operation.correlationVector\";\r\n\r\n this.sessionId = \"ai.session.id\";\r\n this.sessionIsFirst = \"ai.session.isFirst\";\r\n this.sessionIsNew = \"ai.session.isNew\";\r\n this.userAccountAcquisitionDate = \"ai.user.accountAcquisitionDate\";\r\n this.userAccountId = \"ai.user.accountId\";\r\n this.userAgent = \"ai.user.userAgent\";\r\n this.userId = \"ai.user.id\";\r\n this.userStoreRegion = \"ai.user.storeRegion\";\r\n this.userAuthUserId = \"ai.user.authUserId\";\r\n this.userAnonymousUserAcquisitionDate = \"ai.user.anonUserAcquisitionDate\";\r\n this.userAuthenticatedUserAcquisitionDate = \"ai.user.authUserAcquisitionDate\";\r\n\r\n this.cloudName = \"ai.cloud.name\";\r\n this.cloudRole = \"ai.cloud.role\";\r\n this.cloudRoleVer = \"ai.cloud.roleVer\";\r\n this.cloudRoleInstance = \"ai.cloud.roleInstance\";\r\n this.cloudEnvironment = \"ai.cloud.environment\";\r\n this.cloudLocation = \"ai.cloud.location\";\r\n this.cloudDeploymentUnit = \"ai.cloud.deploymentUnit\";\r\n this.internalNodeName = \"ai.internal.nodeName\";\r\n this.internalSdkVersion = \"ai.internal.sdkVersion\";\r\n this.internalAgentVersion = \"ai.internal.agentVersion\";\r\n }\r\n}\r\n","import { ContextTagKeys } from \"./Contracts/Generated/ContextTagKeys\";\r\n\r\nexport class Extensions {\r\n public static UserExt = \"user\";\r\n public static DeviceExt = \"device\";\r\n public static TraceExt = \"trace\";\r\n public static WebExt = \"web\";\r\n public static AppExt = \"app\";\r\n public static OSExt = \"os\";\r\n public static SessionExt = \"ses\";\r\n public static SDKExt = \"sdk\";\r\n}\r\n\r\nexport let CtxTagKeys = new ContextTagKeys();","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nexport { Util, CorrelationIdHelper, UrlHelper, DateTimeUtils } from './Util';\r\nexport { ConnectionStringParser } from './ConnectionStringParser';\r\nexport { FieldType } from './Enums';\r\nexport { RequestHeaders } from './RequestResponseHeaders';\r\nexport { DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT } from './Constants';\r\nexport { Data as AIData } from './Interfaces/Contracts/Generated/Data';\r\nexport { Base as AIBase } from './Interfaces/Contracts/Generated/Base';\r\nexport { ISerializable } from './Interfaces/Telemetry/ISerializable';\r\nexport { IEnvelope } from './Interfaces/Telemetry/IEnvelope';\r\nexport { Envelope } from './Telemetry/Common/Envelope';\r\nexport { Event } from './Telemetry/Event';\r\nexport { Exception } from './Telemetry/Exception';\r\nexport { Metric } from './Telemetry/Metric';\r\nexport { PageView } from './Telemetry/PageView';\r\nexport { PageViewData } from './Interfaces/Contracts/Generated/PageViewData';\r\nexport { RemoteDependencyData } from './Telemetry/RemoteDependencyData';\r\nexport { IEventTelemetry } from './Interfaces/IEventTelemetry';\r\nexport { ITraceTelemetry } from './Interfaces/ITraceTelemetry';\r\nexport { IMetricTelemetry } from './Interfaces/IMetricTelemetry';\r\nexport { IDependencyTelemetry } from './Interfaces/IDependencyTelemetry';\r\nexport { IExceptionTelemetry, IAutoExceptionTelemetry, IExceptionInternal } from './Interfaces/IExceptionTelemetry';\r\nexport { IPageViewTelemetry, IPageViewTelemetryInternal } from './Interfaces/IPageViewTelemetry';\r\nexport { IPageViewPerformanceTelemetry, IPageViewPerformanceTelemetryInternal } from './Interfaces/IPageViewPerformanceTelemetry';\r\nexport { Trace } from './Telemetry/Trace';\r\nexport { PageViewPerformance } from './Telemetry/PageViewPerformance';\r\nexport { Data } from './Telemetry/Common/Data';\r\nexport { SeverityLevel } from './Interfaces/Contracts/Generated/SeverityLevel';\r\nexport { IConfig, ConfigurationManager } from './Interfaces/IConfig';\r\nexport { IChannelControlsAI } from './Interfaces/IChannelControlsAI';\r\nexport { ContextTagKeys } from './Interfaces/Contracts/Generated/ContextTagKeys';\r\nexport { DataSanitizer } from './Telemetry/Common/DataSanitizer';\r\nexport { TelemetryItemCreator } from './TelemetryItemCreator';\r\nexport { ICorrelationConfig } from './Interfaces/ICorrelationConfig';\r\nexport { IAppInsights } from './Interfaces/IAppInsights';\r\nexport { IWeb } from './Interfaces/Context/IWeb';\r\nexport { CtxTagKeys, Extensions } from './Interfaces/PartAExtensions';\r\nexport { ISession } from './Interfaces/Context/ISession';\r\nexport { ITelemetryContext } from './Interfaces/ITelemetryContext';\r\nexport { IApplication } from './Interfaces/Context/IApplication';\r\nexport { IDevice } from './Interfaces/Context/IDevice';\r\nexport { IInternal } from './Interfaces/Context/IInternal';\r\nexport { ILocation } from './Interfaces/Context/ILocation';\r\nexport { ISample } from './Interfaces/Context/ISample';\r\nexport { IOperatingSystem } from './Interfaces/Context/IOperatingSystem';\r\nexport { IPropertiesPlugin } from './Interfaces/IPropertiesPlugin';\r\nexport { IUser, IUserContext } from './Interfaces/Context/IUser';\r\nexport { ITelemetryTrace, ITraceState } from './Interfaces/Context/ITelemetryTrace';\r\nexport { DistributedTracingModes } from './Enums';\r\nexport const PropertiesPluginIdentifier = \"AppInsightsPropertiesPlugin\";\r\nexport const BreezeChannelIdentifier = \"AppInsightsChannelPlugin\";","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport {\r\n DateTimeUtils, Util, IPageViewTelemetry, IPageViewTelemetryInternal, IPageViewPerformanceTelemetryInternal\r\n} from '@microsoft/applicationinsights-common';\r\nimport {\r\n IAppInsightsCore, CoreUtils, IDiagnosticLogger, LoggingSeverity,\r\n _InternalMessageId, IChannelControls, getDocument, getLocation\r\n} from '@microsoft/applicationinsights-core-js';\r\nimport { PageViewPerformanceManager } from './PageViewPerformanceManager';\r\n\r\n/**\r\n * Internal interface to pass appInsights object to subcomponents without coupling \r\n */\r\nexport interface IAppInsightsInternal {\r\n sendPageViewInternal(pageViewItem: IPageViewTelemetryInternal, properties?: Object, systemProperties?: Object);\r\n sendPageViewPerformanceInternal(pageViewPerformance: IPageViewPerformanceTelemetryInternal, properties?: Object, systemProperties?: Object);\r\n}\r\n\r\n/**\r\n * Class encapsulates sending page views and page view performance telemetry.\r\n */\r\nexport class PageViewManager {\r\n private pageViewPerformanceSent: boolean = false;\r\n\r\n private overridePageViewDuration: boolean = false;\r\n\r\n private appInsights: IAppInsightsInternal;\r\n private _pageViewPerformanceManager: PageViewPerformanceManager;\r\n private _channel: () => IChannelControls[][];\r\n private _logger: IDiagnosticLogger;\r\n\r\n constructor(\r\n appInsights: IAppInsightsInternal,\r\n overridePageViewDuration: boolean, core: IAppInsightsCore, pageViewPerformanceManager: PageViewPerformanceManager) {\r\n this.overridePageViewDuration = overridePageViewDuration;\r\n this.appInsights = appInsights;\r\n this._pageViewPerformanceManager = pageViewPerformanceManager;\r\n if (core) {\r\n this._channel = () => (core.getTransmissionControls()) as IChannelControls[][];\r\n this._logger = core.logger;\r\n }\r\n\r\n }\r\n\r\n /**\r\n * Currently supported cases:\r\n * 1) (default case) track page view called with default parameters, overridePageViewDuration = false. Page view is sent with page view performance when navigation timing data is available.\r\n * a. If navigation timing is not supported then page view is sent right away with undefined duration. Page view performance is not sent.\r\n * 2) overridePageViewDuration = true, custom duration provided. Custom duration is used, page view sends right away.\r\n * 3) overridePageViewDuration = true, custom duration NOT provided. Page view is sent right away, duration is time spent from page load till now (or undefined if navigation timing is not supported). \r\n * 4) overridePageViewDuration = false, custom duration is provided. Page view is sent right away with custom duration. \r\n *\r\n * In all cases page view performance is sent once (only for the 1st call of trackPageView), or not sent if navigation timing is not supported.\r\n */\r\n public trackPageView(pageView: IPageViewTelemetry, customProperties?: { [key: string]: any }) {\r\n let name = pageView.name;\r\n if (CoreUtils.isNullOrUndefined(name) || typeof name !== \"string\") {\r\n let doc = getDocument();\r\n name = pageView.name = doc && doc.title || \"\";\r\n }\r\n\r\n let uri = pageView.uri;\r\n if (CoreUtils.isNullOrUndefined(uri) || typeof uri !== \"string\") {\r\n let location = getLocation();\r\n uri = pageView.uri = location && location.href || \"\";\r\n }\r\n\r\n // case 1a. if performance timing is not supported by the browser, send the page view telemetry with the duration provided by the user. If the user\r\n // do not provide the duration, set duration to undefined\r\n // Also this is case 4\r\n if (!this._pageViewPerformanceManager.isPerformanceTimingSupported()) {\r\n this.appInsights.sendPageViewInternal(\r\n pageView,\r\n customProperties\r\n );\r\n CoreUtils.arrForEach(this._channel(), queues => { CoreUtils.arrForEach(queues, q => q.flush(true)) })\r\n\r\n // no navigation timing (IE 8, iOS Safari 8.4, Opera Mini 8 - see http://caniuse.com/#feat=nav-timing)\r\n this._logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.NavigationTimingNotSupported,\r\n \"trackPageView: navigation timing API used for calculation of page duration is not supported in this browser. This page view will be collected without duration and timing info.\");\r\n\r\n return;\r\n }\r\n\r\n let pageViewSent = false;\r\n let customDuration;\r\n\r\n // if the performance timing is supported by the browser, calculate the custom duration\r\n const start = this._pageViewPerformanceManager.getPerformanceTiming().navigationStart;\r\n customDuration = DateTimeUtils.GetDuration(start, +new Date);\r\n if (!this._pageViewPerformanceManager.shouldCollectDuration(customDuration)) {\r\n customDuration = undefined;\r\n }\r\n\r\n // if the user has provided duration, send a page view telemetry with the provided duration. Otherwise, if\r\n // overridePageViewDuration is set to true, send a page view telemetry with the custom duration calculated earlier\r\n let duration;\r\n if (!CoreUtils.isNullOrUndefined(customProperties) &&\r\n !CoreUtils.isNullOrUndefined(customProperties.duration)) {\r\n duration = customProperties.duration;\r\n }\r\n if (this.overridePageViewDuration || !isNaN(duration)) {\r\n if (isNaN(duration)) {\r\n // case 3\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n\r\n customProperties[\"duration\"] = customDuration;\r\n }\r\n // case 2\r\n this.appInsights.sendPageViewInternal(\r\n pageView,\r\n customProperties\r\n );\r\n CoreUtils.arrForEach(this._channel(), queues => { CoreUtils.arrForEach(queues, q => q.flush(true)) })\r\n pageViewSent = true;\r\n }\r\n\r\n // now try to send the page view performance telemetry\r\n const maxDurationLimit = 60000;\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n const handle = setInterval((() => {\r\n try {\r\n if (this._pageViewPerformanceManager.isPerformanceTimingDataReady()) {\r\n clearInterval(handle);\r\n const pageViewPerformance: IPageViewPerformanceTelemetryInternal = {\r\n name,\r\n uri\r\n };\r\n this._pageViewPerformanceManager.populatePageViewPerformanceEvent(pageViewPerformance);\r\n\r\n if (!pageViewPerformance.isValid && !pageViewSent) {\r\n // If navigation timing gives invalid numbers, then go back to \"override page view duration\" mode.\r\n // That's the best value we can get that makes sense.\r\n customProperties[\"duration\"] = customDuration;\r\n this.appInsights.sendPageViewInternal(\r\n pageView,\r\n customProperties);\r\n CoreUtils.arrForEach(this._channel(), queues => { CoreUtils.arrForEach(queues, q => q.flush(true)) })\r\n } else {\r\n if (!pageViewSent) {\r\n customProperties[\"duration\"] = pageViewPerformance.durationMs;\r\n this.appInsights.sendPageViewInternal(\r\n pageView,\r\n customProperties);\r\n }\r\n\r\n if (!this.pageViewPerformanceSent) {\r\n this.appInsights.sendPageViewPerformanceInternal(pageViewPerformance, customProperties);\r\n this.pageViewPerformanceSent = true;\r\n }\r\n CoreUtils.arrForEach(this._channel(), queues => { CoreUtils.arrForEach(queues, q => q.flush(true)) })\r\n }\r\n } else if (DateTimeUtils.GetDuration(start, +new Date) > maxDurationLimit) {\r\n // if performance timings are not ready but we exceeded the maximum duration limit, just log a page view telemetry\r\n // with the maximum duration limit. Otherwise, keep waiting until performance timings are ready\r\n clearInterval(handle);\r\n if (!pageViewSent) {\r\n customProperties[\"duration\"] = maxDurationLimit;\r\n this.appInsights.sendPageViewInternal(\r\n pageView,\r\n customProperties\r\n );\r\n CoreUtils.arrForEach(this._channel(), queues => { CoreUtils.arrForEach(queues, q => q.flush(true)) })\r\n }\r\n }\r\n } catch (e) {\r\n this._logger.throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.TrackPVFailedCalc,\r\n \"trackPageView failed on page load calculation: \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n }), 100);\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { Util } from '@microsoft/applicationinsights-common';\r\nimport { IDiagnosticLogger, hasJSON, getJSON } from '@microsoft/applicationinsights-core-js';\r\n\r\n/**\r\n * Used to track page visit durations\r\n */\r\nexport class PageVisitTimeManager {\r\n\r\n private prevPageVisitDataKeyName: string = \"prevPageVisitData\";\r\n private pageVisitTimeTrackingHandler: (pageName: string, pageUrl: string, pageVisitTime: number) => void;\r\n private _logger: IDiagnosticLogger;\r\n\r\n /**\r\n * Creates a new instance of PageVisitTimeManager\r\n * @param pageVisitTimeTrackingHandler Delegate that will be called to send telemetry data to AI (when trackPreviousPageVisit is called)\r\n * @returns {} \r\n */\r\n constructor(logger: IDiagnosticLogger, pageVisitTimeTrackingHandler: (pageName: string, pageUrl: string, pageVisitTime: number) => void) {\r\n this.pageVisitTimeTrackingHandler = pageVisitTimeTrackingHandler;\r\n this._logger = logger;\r\n }\r\n\r\n /**\r\n * Tracks the previous page visit time telemetry (if exists) and starts timing of new page visit time\r\n * @param currentPageName Name of page to begin timing for visit duration\r\n * @param currentPageUrl Url of page to begin timing for visit duration\r\n */\r\n public trackPreviousPageVisit(currentPageName: string, currentPageUrl: string) {\r\n\r\n try {\r\n // Restart timer for new page view\r\n const prevPageVisitTimeData = this.restartPageVisitTimer(currentPageName, currentPageUrl);\r\n\r\n // If there was a page already being timed, track the visit time for it now.\r\n if (prevPageVisitTimeData) {\r\n this.pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);\r\n }\r\n } catch (e) {\r\n this._logger.warnToConsole(\"Auto track page visit time failed, metric will not be collected: \" + Util.dump(e));\r\n }\r\n }\r\n\r\n /**\r\n * Stops timing of current page (if exists) and starts timing for duration of visit to pageName\r\n * @param pageName Name of page to begin timing visit duration\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from last call to start or restart, if exists. Null if not. \r\n */\r\n public restartPageVisitTimer(pageName: string, pageUrl: string) {\r\n try {\r\n const prevPageVisitData = this.stopPageVisitTimer();\r\n this.startPageVisitTimer(pageName, pageUrl);\r\n\r\n return prevPageVisitData;\r\n } catch (e) {\r\n this._logger.warnToConsole(\"Call to restart failed: \" + Util.dump(e));\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * Starts timing visit duration of pageName\r\n * @param pageName \r\n * @returns {} \r\n */\r\n public startPageVisitTimer(pageName: string, pageUrl: string) {\r\n try {\r\n if (Util.canUseSessionStorage()) {\r\n if (Util.getSessionStorage(this._logger, this.prevPageVisitDataKeyName) != null) {\r\n throw new Error(\"Cannot call startPageVisit consecutively without first calling stopPageVisit\");\r\n }\r\n\r\n const currPageVisitData = new PageVisitData(pageName, pageUrl);\r\n const currPageVisitDataStr = getJSON().stringify(currPageVisitData);\r\n Util.setSessionStorage(this._logger, this.prevPageVisitDataKeyName, currPageVisitDataStr);\r\n }\r\n } catch (e) {\r\n // TODO: Remove this catch in next phase, since if start is called twice in a row the exception needs to be propagated out\r\n this._logger.warnToConsole(\"Call to start failed: \" + Util.dump(e));\r\n }\r\n }\r\n\r\n /**\r\n * Stops timing of current page, if exists.\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from call to start, if exists. Null if not. \r\n */\r\n public stopPageVisitTimer() {\r\n try {\r\n if (Util.canUseSessionStorage()) {\r\n\r\n // Define end time of page's visit\r\n const pageVisitEndTime = Date.now();\r\n\r\n // Try to retrieve page name and start time from session storage\r\n const pageVisitDataJsonStr = Util.getSessionStorage(this._logger, this.prevPageVisitDataKeyName);\r\n if (pageVisitDataJsonStr && hasJSON()) {\r\n\r\n // if previous page data exists, set end time of visit\r\n const prevPageVisitData: PageVisitData = getJSON().parse(pageVisitDataJsonStr);\r\n prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData.pageVisitStartTime;\r\n\r\n // Remove data from storage since we already used it\r\n Util.removeSessionStorage(this._logger, this.prevPageVisitDataKeyName);\r\n\r\n // Return page visit data\r\n return prevPageVisitData;\r\n } else {\r\n return null;\r\n }\r\n\r\n }\r\n return null;\r\n } catch (e) {\r\n this._logger.warnToConsole(\"Stop page visit timer failed: \" + Util.dump(e));\r\n return null\r\n }\r\n }\r\n}\r\n\r\nexport class PageVisitData {\r\n\r\n public pageName: string;\r\n public pageUrl: string;\r\n public pageVisitStartTime: number;\r\n public pageVisitTime: number;\r\n\r\n constructor(pageName, pageUrl) {\r\n this.pageVisitStartTime = Date.now();\r\n this.pageName = pageName;\r\n this.pageUrl = pageUrl;\r\n }\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport {\r\n Util, IPageViewPerformanceTelemetryInternal, DateTimeUtils\r\n} from '@microsoft/applicationinsights-common';\r\nimport {\r\n IAppInsightsCore, IDiagnosticLogger, LoggingSeverity,\r\n _InternalMessageId, getNavigator, getPerformance\r\n} from '@microsoft/applicationinsights-core-js';\r\n\r\n/**\r\n * Class encapsulates sending page view performance telemetry.\r\n */\r\nexport class PageViewPerformanceManager {\r\n private _logger: IDiagnosticLogger;\r\n private MAX_DURATION_ALLOWED = 3600000; // 1h\r\n\r\n constructor(core: IAppInsightsCore) {\r\n if (core) {\r\n this._logger = core.logger;\r\n }\r\n\r\n }\r\n\r\n public populatePageViewPerformanceEvent(pageViewPerformance: IPageViewPerformanceTelemetryInternal): void {\r\n pageViewPerformance.isValid = false;\r\n\r\n /*\r\n * http://www.w3.org/TR/navigation-timing/#processing-model\r\n * |-navigationStart\r\n * | |-connectEnd\r\n * | ||-requestStart\r\n * | || |-responseStart\r\n * | || | |-responseEnd\r\n * | || | |\r\n * | || | | |-loadEventEnd\r\n * |---network---||---request---|---response---|---dom---|\r\n * |--------------------------total----------------------|\r\n */\r\n const navigationTiming = this.getPerformanceNavigationTiming();\r\n const timing = this.getPerformanceTiming();\r\n if (navigationTiming || timing) {\r\n if (navigationTiming) {\r\n var total = navigationTiming.duration;\r\n var network = DateTimeUtils.GetDuration(navigationTiming.startTime, navigationTiming.connectEnd);\r\n var request = DateTimeUtils.GetDuration(navigationTiming.requestStart, navigationTiming.responseStart);\r\n var response = DateTimeUtils.GetDuration(navigationTiming.responseStart, navigationTiming.responseEnd);\r\n var dom = DateTimeUtils.GetDuration(navigationTiming.responseEnd, navigationTiming.loadEventEnd);\r\n } else {\r\n var total = DateTimeUtils.GetDuration(timing.navigationStart, timing.loadEventEnd);\r\n var network = DateTimeUtils.GetDuration(timing.navigationStart, timing.connectEnd);\r\n var request = DateTimeUtils.GetDuration(timing.requestStart, timing.responseStart);\r\n var response = DateTimeUtils.GetDuration(timing.responseStart, timing.responseEnd);\r\n var dom = DateTimeUtils.GetDuration(timing.responseEnd, timing.loadEventEnd);\r\n }\r\n\r\n if (total === 0) {\r\n this._logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.ErrorPVCalc,\r\n \"error calculating page view performance.\",\r\n { total, network, request, response, dom });\r\n\r\n } else if (!this.shouldCollectDuration(total, network, request, response, dom)) {\r\n this._logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.InvalidDurationValue,\r\n \"Invalid page load duration value. Browser perf data won't be sent.\",\r\n { total, network, request, response, dom });\r\n\r\n } else if (total < Math.floor(network) + Math.floor(request) + Math.floor(response) + Math.floor(dom)) {\r\n // some browsers may report individual components incorrectly so that the sum of the parts will be bigger than total PLT\r\n // in this case, don't report client performance from this page\r\n this._logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.ClientPerformanceMathError,\r\n \"client performance math error.\",\r\n { total, network, request, response, dom });\r\n\r\n } else {\r\n pageViewPerformance.durationMs = total;\r\n // // convert to timespans\r\n pageViewPerformance.perfTotal = pageViewPerformance.duration = Util.msToTimeSpan(total);\r\n pageViewPerformance.networkConnect = Util.msToTimeSpan(network);\r\n pageViewPerformance.sentRequest = Util.msToTimeSpan(request);\r\n pageViewPerformance.receivedResponse = Util.msToTimeSpan(response);\r\n pageViewPerformance.domProcessing = Util.msToTimeSpan(dom);\r\n pageViewPerformance.isValid = true;\r\n }\r\n }\r\n }\r\n\r\n public getPerformanceTiming(): PerformanceTiming | null {\r\n if (this.isPerformanceTimingSupported()) {\r\n return getPerformance().timing;\r\n }\r\n\r\n return null;\r\n }\r\n public getPerformanceNavigationTiming(): PerformanceNavigationTiming | null {\r\n if (this.isPerformanceNavigationTimingSupported()) {\r\n return getPerformance().getEntriesByType(\"navigation\")[0] as PerformanceNavigationTiming;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Returns true is window PerformanceNavigationTiming API is supported, false otherwise.\r\n */\r\n public isPerformanceNavigationTimingSupported() {\r\n let perf = getPerformance();\r\n return perf && perf.getEntriesByType && perf.getEntriesByType(\"navigation\").length > 0;\r\n}\r\n\r\n /**\r\n * Returns true is window performance timing API is supported, false otherwise.\r\n */\r\n public isPerformanceTimingSupported() {\r\n let perf = getPerformance();\r\n return perf && perf.timing;\r\n }\r\n\r\n /**\r\n * As page loads different parts of performance timing numbers get set. When all of them are set we can report it.\r\n * Returns true if ready, false otherwise.\r\n */\r\n public isPerformanceTimingDataReady() {\r\n let perf = getPerformance();\r\n const timing = perf ? perf.timing : 0;\r\n\r\n return timing\r\n && timing.domainLookupStart > 0\r\n && timing.navigationStart > 0\r\n && timing.responseStart > 0\r\n && timing.requestStart > 0\r\n && timing.loadEventEnd > 0\r\n && timing.responseEnd > 0\r\n && timing.connectEnd > 0\r\n && timing.domLoading > 0;\r\n }\r\n\r\n /**\r\n * This method tells if given durations should be excluded from collection.\r\n */\r\n public shouldCollectDuration(...durations: number[]): boolean {\r\n var _navigator = getNavigator() || {} as any;\r\n // a full list of Google crawlers user agent strings - https://support.google.com/webmasters/answer/1061943?hl=en\r\n const botAgentNames = ['googlebot', 'adsbot-google', 'apis-google', 'mediapartners-google'];\r\n const userAgent = _navigator.userAgent;\r\n let isGoogleBot = false;\r\n\r\n if (userAgent) {\r\n for (let i = 0; i < botAgentNames.length; i++) {\r\n isGoogleBot = isGoogleBot || userAgent.toLowerCase().indexOf(botAgentNames[i]) !== -1;\r\n }\r\n }\r\n\r\n if (isGoogleBot) {\r\n // Don't report durations for GoogleBot, it is returning invalid values in performance.timing API.\r\n return false;\r\n } else {\r\n // for other page views, don't report if it's outside of a reasonable range\r\n for (let i = 0; i < durations.length; i++) {\r\n if (durations[i] >= this.MAX_DURATION_ALLOWED) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n}\r\n","/**\r\n * ApplicationInsights.ts\r\n * @copyright Microsoft 2018\r\n */\r\n\r\nimport {\r\n IConfig, Util, PageViewPerformance, IAppInsights, PageView, RemoteDependencyData, Event as EventTelemetry, IEventTelemetry,\r\n TelemetryItemCreator, Metric, Exception, SeverityLevel, Trace, IDependencyTelemetry,\r\n IExceptionTelemetry, ITraceTelemetry, IMetricTelemetry, IAutoExceptionTelemetry,\r\n IPageViewTelemetryInternal, IPageViewTelemetry, IPageViewPerformanceTelemetry, IPageViewPerformanceTelemetryInternal,\r\n DateTimeUtils, IExceptionInternal, PropertiesPluginIdentifier\r\n} from \"@microsoft/applicationinsights-common\";\r\n\r\nimport {\r\n IPlugin, IConfiguration, IAppInsightsCore,\r\n BaseTelemetryPlugin, CoreUtils, ITelemetryItem, IProcessTelemetryContext, ITelemetryPluginChain,\r\n IDiagnosticLogger, LoggingSeverity, _InternalMessageId, ICustomProperties,\r\n getWindow, getDocument, getHistory, getLocation, EventHelper\r\n} from \"@microsoft/applicationinsights-core-js\";\r\nimport { PageViewManager, IAppInsightsInternal } from \"./Telemetry/PageViewManager\";\r\nimport { PageVisitTimeManager } from \"./Telemetry/PageVisitTimeManager\";\r\nimport { PageViewPerformanceManager } from './Telemetry/PageViewPerformanceManager';\r\nimport { ITelemetryConfig } from \"../JavaScriptSDK.Interfaces/ITelemetryConfig\";\r\n\r\n// For types only\r\nimport * as properties from \"@microsoft/applicationinsights-properties-js\";\r\n\r\n\"use strict\";\r\n\r\nconst durationProperty: string = \"duration\";\r\n\r\nfunction _dispatchEvent(target:EventTarget, evnt: Event) {\r\n if (target && target.dispatchEvent && evnt) {\r\n target.dispatchEvent(evnt);\r\n }\r\n}\r\n\r\nexport class ApplicationInsights extends BaseTelemetryPlugin implements IAppInsights, IAppInsightsInternal {\r\n public static Version = \"2.4.4\"; // Not currently used anywhere\r\n\r\n public static getDefaultConfig(config?: IConfig): IConfig {\r\n if (!config) {\r\n config = {};\r\n }\r\n\r\n // set default values\r\n config.sessionRenewalMs = 30 * 60 * 1000;\r\n config.sessionExpirationMs = 24 * 60 * 60 * 1000;\r\n config.disableExceptionTracking = Util.stringToBoolOrDefault(config.disableExceptionTracking);\r\n config.autoTrackPageVisitTime = Util.stringToBoolOrDefault(config.autoTrackPageVisitTime);\r\n config.overridePageViewDuration = Util.stringToBoolOrDefault(config.overridePageViewDuration);\r\n config.enableUnhandledPromiseRejectionTracking = Util.stringToBoolOrDefault(config.enableUnhandledPromiseRejectionTracking);\r\n\r\n if (isNaN(config.samplingPercentage) || config.samplingPercentage <= 0 || config.samplingPercentage >= 100) {\r\n config.samplingPercentage = 100;\r\n }\r\n\r\n config.isCookieUseDisabled = Util.stringToBoolOrDefault(config.isCookieUseDisabled);\r\n config.isStorageUseDisabled = Util.stringToBoolOrDefault(config.isStorageUseDisabled);\r\n config.isBrowserLinkTrackingEnabled = Util.stringToBoolOrDefault(config.isBrowserLinkTrackingEnabled);\r\n config.enableAutoRouteTracking = Util.stringToBoolOrDefault(config.enableAutoRouteTracking);\r\n config.namePrefix = config.namePrefix || \"\";\r\n\r\n return config;\r\n }\r\n\r\n public identifier: string = \"ApplicationInsightsAnalytics\"; // do not change name or priority\r\n public priority: number = 180; // take from reserved priority range 100- 200\r\n public config: IConfig;\r\n public queue: Array<() => void>;\r\n public autoRoutePVDelay = 500; // ms; Time to wait after a route change before triggering a pageview to allow DOM changes to take place\r\n\r\n protected _telemetryInitializers: Array<(envelope: ITelemetryItem) => boolean | void>; // Internal telemetry initializers.\r\n protected _pageViewManager: PageViewManager;\r\n protected _pageViewPerformanceManager: PageViewPerformanceManager;\r\n protected _pageVisitTimeManager: PageVisitTimeManager;\r\n\r\n private _globalconfig: IConfiguration;\r\n private _eventTracking: Timing;\r\n private _pageTracking: Timing;\r\n private _properties: properties.PropertiesPlugin;\r\n\r\n // Counts number of trackAjax invokations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n private _trackAjaxAttempts: number = 0;\r\n\r\n // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n private _prevUri: string; // Assigned in the constructor\r\n private _currUri: string;\r\n\r\n constructor() {\r\n super();\r\n let location = getLocation();\r\n this._prevUri = location && location.href || \"\";\r\n }\r\n\r\n public processTelemetry(env: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n let doNotSendItem = false;\r\n const telemetryInitializersCount = this._telemetryInitializers.length;\r\n itemCtx = this._getTelCtx(itemCtx);\r\n for (let i = 0; i < telemetryInitializersCount; ++i) {\r\n const telemetryInitializer = this._telemetryInitializers[i];\r\n if (telemetryInitializer) {\r\n try {\r\n if (telemetryInitializer.apply(null, [env]) === false) {\r\n doNotSendItem = true;\r\n break;\r\n }\r\n } catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n itemCtx.diagLog().throwInternal(\r\n LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"One of telemetry initializers failed, telemetry item will not be sent: \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) }, true);\r\n }\r\n }\r\n }\r\n\r\n if (!doNotSendItem) {\r\n this.processNext(env, itemCtx);\r\n }\r\n }\r\n\r\n public trackEvent(event: IEventTelemetry, customProperties?: ICustomProperties): void {\r\n try {\r\n const telemetryItem = TelemetryItemCreator.create(\r\n event,\r\n EventTelemetry.dataType,\r\n EventTelemetry.envelopeType,\r\n this.diagLog(),\r\n customProperties\r\n );\r\n\r\n this.core.track(telemetryItem);\r\n } catch (e) {\r\n this.diagLog().throwInternal(LoggingSeverity.WARNING,\r\n _InternalMessageId.TrackTraceFailed,\r\n \"trackTrace failed, trace will not be collected: \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n }\r\n\r\n /**\r\n * Start timing an extended event. Call `stopTrackEvent` to log the event when it ends.\r\n * @param name A string that identifies this event uniquely within the document.\r\n */\r\n public startTrackEvent(name: string) {\r\n try {\r\n this._eventTracking.start(name);\r\n } catch (e) {\r\n this.diagLog().throwInternal(LoggingSeverity.CRITICAL,\r\n _InternalMessageId.StartTrackEventFailed,\r\n \"startTrackEvent failed, event will not be collected: \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n }\r\n\r\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n public stopTrackEvent(name: string, properties?: { [key: string]: string }, measurements?: { [key: string]: number }) {\r\n try {\r\n this._eventTracking.stop(name, undefined, properties); // Todo: Fix to pass measurements once type is updated\r\n } catch (e) {\r\n this.diagLog().throwInternal(LoggingSeverity.CRITICAL,\r\n _InternalMessageId.StopTrackEventFailed,\r\n \"stopTrackEvent failed, event will not be collected: \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n }\r\n\r\n /**\r\n * @description Log a diagnostic message\r\n * @param {ITraceTelemetry} trace\r\n * @param ICustomProperties.\r\n * @memberof ApplicationInsights\r\n */\r\n public trackTrace(trace: ITraceTelemetry, customProperties?: ICustomProperties): void {\r\n try {\r\n const telemetryItem = TelemetryItemCreator.create(\r\n trace,\r\n Trace.dataType,\r\n Trace.envelopeType,\r\n this.diagLog(),\r\n customProperties);\r\n\r\n this.core.track(telemetryItem);\r\n } catch (e) {\r\n this.diagLog().throwInternal(LoggingSeverity.WARNING,\r\n _InternalMessageId.TrackTraceFailed,\r\n \"trackTrace failed, trace will not be collected: \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n }\r\n\r\n /**\r\n * @description Log a numeric value that is not associated with a specific event. Typically\r\n * used to send regular reports of performance indicators. To send single measurement, just\r\n * use the name and average fields of {@link IMetricTelemetry}. If you take measurements\r\n * frequently, you can reduce the telemetry bandwidth by aggregating multiple measurements\r\n * and sending the resulting average at intervals\r\n * @param {IMetricTelemetry} metric input object argument. Only name and average are mandatory.\r\n * @param {{[key: string]: any}} customProperties additional data used to filter metrics in the\r\n * portal. Defaults to empty.\r\n * @memberof ApplicationInsights\r\n */\r\n public trackMetric(metric: IMetricTelemetry, customProperties?: ICustomProperties): void {\r\n try {\r\n const telemetryItem = TelemetryItemCreator.create(\r\n metric,\r\n Metric.dataType,\r\n Metric.envelopeType,\r\n this.diagLog(),\r\n customProperties\r\n );\r\n\r\n this.core.track(telemetryItem);\r\n } catch (e) {\r\n this.diagLog().throwInternal(LoggingSeverity.CRITICAL,\r\n _InternalMessageId.TrackMetricFailed,\r\n \"trackMetric failed, metric will not be collected: \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n }\r\n\r\n /**\r\n * Logs that a page or other item was viewed.\r\n * @param IPageViewTelemetry The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param customProperties Additional data used to filter events and metrics. Defaults to empty.\r\n * If a user wants to provide duration for pageLoad, it'll have to be in pageView.properties.duration\r\n */\r\n public trackPageView(pageView?: IPageViewTelemetry, customProperties?: ICustomProperties) {\r\n try {\r\n const inPv = pageView || {};\r\n this._pageViewManager.trackPageView(inPv, {...inPv.properties, ...inPv.measurements, ...customProperties});\r\n\r\n if (this.config.autoTrackPageVisitTime) {\r\n this._pageVisitTimeManager.trackPreviousPageVisit(inPv.name, inPv.uri);\r\n }\r\n } catch (e) {\r\n this.diagLog().throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.TrackPVFailed,\r\n \"trackPageView failed, page view will not be collected: \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n }\r\n\r\n /**\r\n * Create a page view telemetry item and send it to the SDK pipeline through the core.track API\r\n * @param pageView Page view item to be sent\r\n * @param properties Custom properties (Part C) that a user can add to the telemetry item\r\n * @param systemProperties System level properties (Part A) that a user can add to the telemetry item\r\n */\r\n public sendPageViewInternal(pageView: IPageViewTelemetryInternal, properties?: { [key: string]: any }, systemProperties?: { [key: string]: any }) {\r\n let doc = getDocument();\r\n if (doc) {\r\n pageView.refUri = pageView.refUri === undefined ? doc.referrer : pageView.refUri;\r\n }\r\n\r\n const telemetryItem = TelemetryItemCreator.create(\r\n pageView,\r\n PageView.dataType,\r\n PageView.envelopeType,\r\n this.diagLog(),\r\n properties,\r\n systemProperties);\r\n\r\n this.core.track(telemetryItem);\r\n\r\n // reset ajaxes counter\r\n this._trackAjaxAttempts = 0;\r\n }\r\n\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param pageViewPerformance\r\n * @param properties\r\n */\r\n public sendPageViewPerformanceInternal(pageViewPerformance: IPageViewPerformanceTelemetryInternal, properties?: { [key: string]: any }, systemProperties?: { [key: string]: any }) {\r\n const telemetryItem = TelemetryItemCreator.create(\r\n pageViewPerformance,\r\n PageViewPerformance.dataType,\r\n PageViewPerformance.envelopeType,\r\n this.diagLog(),\r\n properties,\r\n systemProperties);\r\n\r\n this.core.track(telemetryItem);\r\n }\r\n\r\n /**\r\n * Send browser performance metrics.\r\n * @param pageViewPerformance\r\n * @param customProperties\r\n */\r\n public trackPageViewPerformance(pageViewPerformance: IPageViewPerformanceTelemetry, customProperties?: ICustomProperties): void {\r\n try {\r\n this._pageViewPerformanceManager.populatePageViewPerformanceEvent(pageViewPerformance);\r\n this.sendPageViewPerformanceInternal(pageViewPerformance, customProperties);\r\n } catch (e) {\r\n this.diagLog().throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.TrackPVFailed,\r\n \"trackPageViewPerformance failed, page view will not be collected: \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n }\r\n\r\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\r\n public startTrackPage(name?: string) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n let doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n\r\n this._pageTracking.start(name);\r\n } catch (e) {\r\n this.diagLog().throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.StartTrackFailed,\r\n \"startTrackPage failed, page view may not be collected: \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n public stopTrackPage(name?: string, url?: string, properties?: { [key: string]: string }, measurement?: { [key: string]: number }) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n let doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n\r\n if (typeof url !== \"string\") {\r\n let loc = getLocation();\r\n url = loc && loc.href || \"\";\r\n }\r\n\r\n this._pageTracking.stop(name, url, properties, measurement);\r\n\r\n if (this.config.autoTrackPageVisitTime) {\r\n this._pageVisitTimeManager.trackPreviousPageVisit(name, url);\r\n }\r\n } catch (e) {\r\n this.diagLog().throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.StopTrackFailed,\r\n \"stopTrackPage failed, page view will not be collected: \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n }\r\n\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param exception\r\n * @param properties\r\n * @param systemProperties\r\n */\r\n public sendExceptionInternal(exception: IExceptionTelemetry, customProperties?: { [key: string]: any }, systemProperties?: { [key: string]: any }) {\r\n const exceptionPartB = new Exception(\r\n this.diagLog(),\r\n exception.exception || new Error(Util.NotSpecified),\r\n exception.properties,\r\n exception.measurements,\r\n exception.severityLevel,\r\n exception.id\r\n ).toInterface();\r\n\r\n const telemetryItem: ITelemetryItem = TelemetryItemCreator.create(\r\n exceptionPartB,\r\n Exception.dataType,\r\n Exception.envelopeType,\r\n this.diagLog(),\r\n customProperties,\r\n systemProperties\r\n );\r\n this.core.track(telemetryItem);\r\n }\r\n\r\n /**\r\n * Log an exception you have caught.\r\n *\r\n * @param {IExceptionTelemetry} exception Object which contains exception to be sent\r\n * @param {{[key: string]: any}} customProperties Additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n *\r\n * Any property of type double will be considered a measurement, and will be treated by Application Insights as a metric.\r\n * @memberof ApplicationInsights\r\n */\r\n public trackException(exception: IExceptionTelemetry, customProperties?: ICustomProperties): void {\r\n try {\r\n this.sendExceptionInternal(exception, customProperties);\r\n } catch (e) {\r\n this.diagLog().throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.TrackExceptionFailed,\r\n \"trackException failed, exception will not be collected: \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n }\r\n\r\n /**\r\n * @description Custom error handler for Application Insights Analytics\r\n * @param {IAutoExceptionTelemetry} exception\r\n * @memberof ApplicationInsights\r\n */\r\n public _onerror(exception: IAutoExceptionTelemetry): void {\r\n try {\r\n const properties = {\r\n url: (exception && exception.url) || (getDocument()||{} as any).URL,\r\n lineNumber: exception.lineNumber,\r\n columnNumber: exception.columnNumber,\r\n message: exception.message\r\n };\r\n\r\n if (Util.isCrossOriginError(exception.message, exception.url, exception.lineNumber, exception.columnNumber, exception.error)) {\r\n this._sendCORSException(properties.url);\r\n } else {\r\n if (!Util.isError(exception.error)) {\r\n const stack = \"window.onerror@\" + properties.url + \":\" + exception.lineNumber + \":\" + (exception.columnNumber || 0);\r\n exception.error = new Error(exception.message);\r\n exception.error.stack = stack;\r\n }\r\n this.trackException({ exception: exception.error, severityLevel: SeverityLevel.Error }, properties);\r\n }\r\n } catch (e) {\r\n const errorString = exception.error ?\r\n (exception.error.name + \", \" + exception.error.message)\r\n : \"null\";\r\n\r\n this.diagLog().throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.ExceptionWhileLoggingError,\r\n \"_onError threw exception while logging error, error will not be collected: \"\r\n + Util.getExceptionName(e),\r\n { exception: Util.dump(e), errorString }\r\n );\r\n }\r\n }\r\n\r\n public addTelemetryInitializer(telemetryInitializer: (item: ITelemetryItem) => boolean | void) {\r\n this._telemetryInitializers.push(telemetryInitializer);\r\n }\r\n\r\n public initialize(config: IConfiguration & IConfig, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?:ITelemetryPluginChain) {\r\n if (this.isInitialized()) {\r\n return;\r\n }\r\n\r\n if (CoreUtils.isNullOrUndefined(core)) {\r\n throw Error(\"Error initializing\");\r\n }\r\n\r\n super.initialize(config, core, extensions, pluginChain);\r\n this.setInitialized(false); // resetting the initialized state, just in case the following fails\r\n let ctx = this._getTelCtx();\r\n let identifier = this.identifier;\r\n\r\n this._globalconfig = {\r\n instrumentationKey: config.instrumentationKey,\r\n endpointUrl: config.endpointUrl || \"https://dc.services.visualstudio.com/v2/track\"\r\n };\r\n\r\n this.config = ctx.getExtCfg(identifier);\r\n\r\n // load default values if specified\r\n const defaults: IConfig = ApplicationInsights.getDefaultConfig();\r\n if (defaults !== undefined) {\r\n for (const field in defaults) {\r\n // for each unspecified field, set the default value\r\n this.config[field] = ctx.getConfig(identifier, field, defaults[field]);\r\n }\r\n\r\n if (this._globalconfig) {\r\n for (const field in defaults) {\r\n if (this._globalconfig[field] === undefined) {\r\n this._globalconfig[field] = defaults[field];\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Todo: move this out of static state\r\n if (this.config.isCookieUseDisabled) {\r\n Util.disableCookies();\r\n }\r\n\r\n // Todo: move this out of static state\r\n if (this.config.isStorageUseDisabled) {\r\n Util.disableStorage();\r\n }\r\n\r\n const configGetters: ITelemetryConfig = {\r\n instrumentationKey: () => config.instrumentationKey,\r\n accountId: () => this.config.accountId || config.accountId,\r\n sessionRenewalMs: () => this.config.sessionRenewalMs || config.sessionRenewalMs,\r\n sessionExpirationMs: () => this.config.sessionExpirationMs || config.sessionExpirationMs,\r\n sampleRate: () => this.config.samplingPercentage || config.samplingPercentage,\r\n cookieDomain: () => this.config.cookieDomain || config.cookieDomain,\r\n sdkExtension: () => this.config.sdkExtension || config.sdkExtension,\r\n isBrowserLinkTrackingEnabled: () => this.config.isBrowserLinkTrackingEnabled || config.isBrowserLinkTrackingEnabled,\r\n appId: () => this.config.appId || config.appId\r\n }\r\n\r\n this._pageViewPerformanceManager = new PageViewPerformanceManager(this.core);\r\n this._pageViewManager = new PageViewManager(this, this.config.overridePageViewDuration, this.core, this._pageViewPerformanceManager);\r\n this._pageVisitTimeManager = new PageVisitTimeManager(this.diagLog(), (pageName, pageUrl, pageVisitTime) => this.trackPageVisitTime(pageName, pageUrl, pageVisitTime))\r\n\r\n this._telemetryInitializers = this._telemetryInitializers || [];\r\n this._addDefaultTelemetryInitializers(configGetters);\r\n\r\n\r\n this._eventTracking = new Timing(this.diagLog(), \"trackEvent\");\r\n this._eventTracking.action =\r\n (name?: string, url?: string, duration?: number, properties?: { [key: string]: string }) => {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n\r\n properties[durationProperty] = duration.toString();\r\n this.trackEvent({ name, properties } as IEventTelemetry);\r\n }\r\n\r\n // initialize page view timing\r\n this._pageTracking = new Timing(this.diagLog(), \"trackPageView\");\r\n this._pageTracking.action = (name, url, duration, properties, measurements) => {\r\n\r\n // duration must be a custom property in order for the collector to extract it\r\n if (CoreUtils.isNullOrUndefined(properties)) {\r\n properties = {};\r\n }\r\n properties[durationProperty] = duration.toString();\r\n\r\n const pageViewItem: IPageViewTelemetry = {\r\n name,\r\n uri: url,\r\n properties,\r\n measurements\r\n };\r\n\r\n this.sendPageViewInternal(pageViewItem);\r\n }\r\n\r\n let _window = getWindow();\r\n let _history = getHistory();\r\n let _location = getLocation();\r\n\r\n const instance: IAppInsights = this;\r\n if (this.config.disableExceptionTracking === false &&\r\n !this.config.autoExceptionInstrumented && _window) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n const onerror = \"onerror\";\r\n const originalOnError = _window[onerror];\r\n _window.onerror = (message, url, lineNumber, columnNumber, error) => {\r\n const handled = originalOnError && (originalOnError(message, url, lineNumber, columnNumber, error) as any);\r\n if (handled !== true) { // handled could be typeof function\r\n instance._onerror({\r\n message,\r\n url,\r\n lineNumber,\r\n columnNumber,\r\n error\r\n });\r\n }\r\n\r\n return handled;\r\n }\r\n this.config.autoExceptionInstrumented = true;\r\n }\r\n\r\n if (this.config.disableExceptionTracking === false &&\r\n this.config.enableUnhandledPromiseRejectionTracking === true &&\r\n !this.config.autoUnhandledPromiseInstrumented && _window) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n const onunhandledrejection = \"onunhandledrejection\";\r\n const originalOnUnhandledRejection = _window[onunhandledrejection];\r\n _window[onunhandledrejection] = (error: PromiseRejectionEvent) => {\r\n const handled = originalOnUnhandledRejection && (originalOnUnhandledRejection.call(_window, error) as any);\r\n if (handled !== true) { // handled could be typeof function\r\n instance._onerror({\r\n message: error.reason.toString(),\r\n error: error.reason instanceof Error ? error.reason : new Error(error.reason.toString()),\r\n url: _location ? _location.href : \"\",\r\n lineNumber: 0,\r\n columnNumber: 0\r\n });\r\n }\r\n\r\n return handled;\r\n }\r\n this.config.autoUnhandledPromiseInstrumented = true;\r\n }\r\n\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n if (this.config.enableAutoRouteTracking === true\r\n && _history && CoreUtils.isFunction(_history.pushState) && CoreUtils.isFunction(_history.replaceState)\r\n && _window\r\n && typeof Event !== \"undefined\") {\r\n const _self = this;\r\n // Find the properties plugin\r\n CoreUtils.arrForEach(extensions, extension => {\r\n if (extension.identifier === PropertiesPluginIdentifier) {\r\n this._properties = extension as properties.PropertiesPlugin;\r\n }\r\n });\r\n\r\n _history.pushState = ( f => function pushState() {\r\n const ret = f.apply(this, arguments);\r\n _dispatchEvent(_window, Util.createDomEvent(_self.config.namePrefix + \"pushState\"));\r\n _dispatchEvent(_window, Util.createDomEvent(_self.config.namePrefix + \"locationchange\"));\r\n return ret;\r\n })(_history.pushState);\r\n\r\n _history.replaceState = ( f => function replaceState(){\r\n const ret = f.apply(this, arguments);\r\n _dispatchEvent(_window, Util.createDomEvent(_self.config.namePrefix + \"replaceState\"));\r\n _dispatchEvent(_window, Util.createDomEvent(_self.config.namePrefix + \"locationchange\"));\r\n return ret;\r\n })(_history.replaceState);\r\n\r\n if (_window.addEventListener) {\r\n _window.addEventListener(_self.config.namePrefix + \"popstate\",()=>{\r\n _dispatchEvent(_window, Util.createDomEvent(_self.config.namePrefix + \"locationchange\"));\r\n });\r\n\r\n _window.addEventListener(_self.config.namePrefix + \"locationchange\", () => {\r\n if (_self._properties && _self._properties.context && _self._properties.context.telemetryTrace) {\r\n _self._properties.context.telemetryTrace.traceID = Util.generateW3CId();\r\n _self._properties.context.telemetryTrace.name = _location && _location.pathname || \"_unknown_\";\r\n }\r\n if (this._currUri) {\r\n this._prevUri = this._currUri;\r\n this._currUri = _location && _location.href || \"\";\r\n } else {\r\n this._currUri = _location && _location.href || \"\";\r\n }\r\n setTimeout(((uri: string) => {\r\n // todo: override start time so that it is not affected by autoRoutePVDelay\r\n _self.trackPageView({ refUri: uri, properties: { duration: 0 } }); // SPA route change loading durations are undefined, so send 0\r\n }).bind(this, this._prevUri), _self.autoRoutePVDelay);\r\n });\r\n }\r\n }\r\n\r\n this.setInitialized(true);\r\n }\r\n\r\n /**\r\n * Log a page visit time\r\n * @param pageName Name of page\r\n * @param pageVisitDuration Duration of visit to the page in milleseconds\r\n */\r\n private trackPageVisitTime(pageName: string, pageUrl: string, pageVisitTime: number) {\r\n const properties = { PageName: pageName, PageUrl: pageUrl };\r\n this.trackMetric({\r\n name: \"PageVisitTime\",\r\n average: pageVisitTime,\r\n max: pageVisitTime,\r\n min: pageVisitTime,\r\n sampleCount: 1\r\n }, properties);\r\n }\r\n\r\n private _addDefaultTelemetryInitializers(configGetters: ITelemetryConfig) {\r\n if (!configGetters.isBrowserLinkTrackingEnabled()) {\r\n const browserLinkPaths = ['/browserLinkSignalR/', '/__browserLink/'];\r\n const dropBrowserLinkRequests = (envelope: ITelemetryItem) => {\r\n if (envelope.baseType === RemoteDependencyData.dataType) {\r\n const remoteData = envelope.baseData as IDependencyTelemetry;\r\n if (remoteData) {\r\n for (let i = 0; i < browserLinkPaths.length; i++) {\r\n if (remoteData.target && remoteData.target.indexOf(browserLinkPaths[i]) >= 0) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n this._addTelemetryInitializer(dropBrowserLinkRequests)\r\n }\r\n }\r\n\r\n private _addTelemetryInitializer(telemetryInitializer: (envelope: ITelemetryItem) => boolean | void) {\r\n this._telemetryInitializers.push(telemetryInitializer);\r\n }\r\n\r\n private _sendCORSException(url: string) {\r\n const exception: IAutoExceptionTelemetry = {\r\n message: \"Script error: The browser's same-origin policy prevents us from getting the details of this exception. Consider using the 'crossorigin' attribute.\",\r\n url,\r\n lineNumber: 0,\r\n columnNumber: 0,\r\n error: undefined\r\n };\r\n const telemetryItem: ITelemetryItem = TelemetryItemCreator.create(\r\n exception,\r\n Exception.dataType,\r\n Exception.envelopeType,\r\n this.diagLog(),\r\n { url }\r\n );\r\n\r\n this.core.track(telemetryItem);\r\n }\r\n}\r\n\r\n/**\r\n * Used to record timed events and page views.\r\n */\r\nclass Timing {\r\n\r\n public action: (name?: string, url?: string, duration?: number, properties?: { [key: string]: string }, measurements?: { [key: string]: number }) => void;\r\n private _name;\r\n private _events: {\r\n [key: string]: number;\r\n };\r\n private _logger: IDiagnosticLogger;\r\n\r\n constructor(logger: IDiagnosticLogger, name: string) {\r\n this._name = name;\r\n this._events = {};\r\n this._logger = logger;\r\n }\r\n\r\n public start(name: string) {\r\n if (typeof this._events[name] !== \"undefined\") {\r\n this._logger.throwInternal(\r\n LoggingSeverity.WARNING, _InternalMessageId.StartCalledMoreThanOnce, \"start was called more than once for this event without calling stop.\",\r\n { name: this._name, key: name }, true);\r\n }\r\n\r\n this._events[name] = +new Date;\r\n }\r\n\r\n public stop(name: string, url: string, properties?: { [key: string]: string }, measurements?: { [key: string]: number }) {\r\n const start = this._events[name];\r\n if (isNaN(start)) {\r\n this._logger.throwInternal(\r\n LoggingSeverity.WARNING, _InternalMessageId.StopCalledWithoutStart, \"stop was called without a corresponding start.\",\r\n { name: this._name, key: name }, true);\r\n } else {\r\n const end = +new Date;\r\n const duration = DateTimeUtils.GetDuration(start, end);\r\n this.action(name, url, duration, properties, measurements);\r\n }\r\n\r\n delete this._events[name];\r\n this._events[name] = undefined;\r\n }\r\n}\r\n","import { Util } from '@microsoft/applicationinsights-common';\r\nimport { IDiagnosticLogger, LoggingSeverity, _InternalMessageId, getJSON } from '@microsoft/applicationinsights-core-js';\r\nimport { ISenderConfig } from './Interfaces';\r\n\r\nexport interface ISendBuffer {\r\n /**\r\n * Enqueue the payload\r\n */\r\n enqueue: (payload: string) => void;\r\n\r\n /**\r\n * Returns the number of elements in the buffer\r\n */\r\n count: () => number;\r\n\r\n /**\r\n * Clears the buffer\r\n */\r\n clear: () => void;\r\n\r\n /**\r\n * Returns items stored in the buffer\r\n */\r\n getItems: () => string[];\r\n\r\n /**\r\n * Build a batch of all elements in the payload array\r\n */\r\n batchPayloads: (payload: string[]) => string;\r\n\r\n /**\r\n * Moves items to the SENT_BUFFER.\r\n * The buffer holds items which were sent, but we haven't received any response from the backend yet.\r\n */\r\n markAsSent: (payload: string[]) => void;\r\n\r\n /**\r\n * Removes items from the SENT_BUFFER. Should be called on successful response from the backend.\r\n */\r\n clearSent: (payload: string[]) => void;\r\n}\r\n\r\n/*\r\n * An array based send buffer.\r\n */\r\nexport class ArraySendBuffer implements ISendBuffer {\r\n private _config: ISenderConfig;\r\n private _buffer: string[];\r\n\r\n constructor(config: ISenderConfig) {\r\n this._config = config;\r\n\r\n this._buffer = [];\r\n }\r\n\r\n public enqueue(payload: string) {\r\n this._buffer.push(payload);\r\n }\r\n\r\n public count(): number {\r\n return this._buffer.length;\r\n }\r\n\r\n public clear() {\r\n this._buffer.length = 0;\r\n }\r\n\r\n public getItems(): string[] {\r\n return this._buffer.slice(0);\r\n }\r\n\r\n public batchPayloads(payload: string[]): string {\r\n if (payload && payload.length > 0) {\r\n const batch = this._config.emitLineDelimitedJson() ?\r\n payload.join(\"\\n\") :\r\n \"[\" + payload.join(\",\") + \"]\";\r\n\r\n return batch;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public markAsSent(payload: string[]) {\r\n this.clear();\r\n }\r\n\r\n public clearSent(payload: string[]) {\r\n // not supported\r\n }\r\n}\r\n\r\n/*\r\n * Session storege buffer holds a copy of all unsent items in the browser session storage.\r\n */\r\nexport class SessionStorageSendBuffer implements ISendBuffer {\r\n static BUFFER_KEY = \"AI_buffer\";\r\n static SENT_BUFFER_KEY = \"AI_sentBuffer\";\r\n\r\n // Maximum number of payloads stored in the buffer. If the buffer is full, new elements will be dropped.\r\n static MAX_BUFFER_SIZE = 2000;\r\n private _bufferFullMessageSent = false;\r\n\r\n // An in-memory copy of the buffer. A copy is saved to the session storage on enqueue() and clear().\r\n // The buffer is restored in a constructor and contains unsent events from a previous page.\r\n private _buffer: string[];\r\n private _config: ISenderConfig;\r\n\r\n private _logger: IDiagnosticLogger;\r\n\r\n constructor(logger: IDiagnosticLogger, config: ISenderConfig) {\r\n this._logger = logger;\r\n this._config = config;\r\n\r\n const bufferItems = this.getBuffer(SessionStorageSendBuffer.BUFFER_KEY);\r\n const notDeliveredItems = this.getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\r\n\r\n this._buffer = bufferItems.concat(notDeliveredItems);\r\n\r\n // If the buffer has too many items, drop items from the end.\r\n if (this._buffer.length > SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\r\n this._buffer.length = SessionStorageSendBuffer.MAX_BUFFER_SIZE;\r\n }\r\n\r\n // update DataLossAnalyzer with the number of recovered items\r\n // Uncomment if you want to use DataLossanalyzer\r\n // DataLossAnalyzer.itemsRestoredFromSessionBuffer = this._buffer.length;\r\n\r\n this.setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, []);\r\n this.setBuffer(SessionStorageSendBuffer.BUFFER_KEY, this._buffer);\r\n }\r\n\r\n public enqueue(payload: string) {\r\n if (this._buffer.length >= SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\r\n // sent internal log only once per page view\r\n if (!this._bufferFullMessageSent) {\r\n this._logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.SessionStorageBufferFull,\r\n \"Maximum buffer size reached: \" + this._buffer.length,\r\n true);\r\n this._bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n\r\n this._buffer.push(payload);\r\n this.setBuffer(SessionStorageSendBuffer.BUFFER_KEY, this._buffer);\r\n }\r\n\r\n public count(): number {\r\n return this._buffer.length;\r\n }\r\n\r\n public clear() {\r\n this._buffer.length = 0;\r\n this.setBuffer(SessionStorageSendBuffer.BUFFER_KEY, []);\r\n this.setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, []);\r\n\r\n this._bufferFullMessageSent = false;\r\n }\r\n\r\n public getItems(): string[] {\r\n return this._buffer.slice(0)\r\n }\r\n\r\n public batchPayloads(payload: string[]): string {\r\n if (payload && payload.length > 0) {\r\n const batch = this._config.emitLineDelimitedJson() ?\r\n payload.join(\"\\n\") :\r\n \"[\" + payload.join(\",\") + \"]\";\r\n\r\n return batch;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public markAsSent(payload: string[]) {\r\n this._buffer = this.removePayloadsFromBuffer(payload, this._buffer);\r\n this.setBuffer(SessionStorageSendBuffer.BUFFER_KEY, this._buffer);\r\n\r\n let sentElements = this.getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\r\n if (sentElements instanceof Array && payload instanceof Array) {\r\n sentElements = sentElements.concat(payload);\r\n\r\n if (sentElements.length > SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\r\n // We send telemetry normally. If the SENT_BUFFER is too big we don't add new elements\r\n // until we receive a response from the backend and the buffer has free space again (see clearSent method)\r\n this._logger.throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.SessionStorageBufferFull,\r\n \"Sent buffer reached its maximum size: \" + sentElements.length,\r\n true);\r\n\r\n sentElements.length = SessionStorageSendBuffer.MAX_BUFFER_SIZE;\r\n }\r\n\r\n this.setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, sentElements);\r\n }\r\n }\r\n\r\n public clearSent(payload: string[]) {\r\n let sentElements = this.getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\r\n sentElements = this.removePayloadsFromBuffer(payload, sentElements);\r\n\r\n this.setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, sentElements);\r\n }\r\n\r\n private removePayloadsFromBuffer(payloads: string[], buffer: string[]): string[] {\r\n const remaining: string[] = [];\r\n\r\n for (const i in buffer) {\r\n let contains = false;\r\n for (const j in payloads) {\r\n if (payloads[j] === buffer[i]) {\r\n contains = true;\r\n break;\r\n }\r\n }\r\n\r\n if (!contains) {\r\n remaining.push(buffer[i]);\r\n }\r\n };\r\n\r\n return remaining;\r\n }\r\n\r\n private getBuffer(key: string): string[] {\r\n let prefixedKey = key;\r\n try {\r\n prefixedKey = this._config.namePrefix && this._config.namePrefix() ? this._config.namePrefix() + \"_\" + prefixedKey : prefixedKey;\r\n const bufferJson = Util.getSessionStorage(this._logger, prefixedKey);\r\n if (bufferJson) {\r\n const buffer: string[] = getJSON().parse(bufferJson);\r\n if (buffer) {\r\n return buffer;\r\n }\r\n }\r\n } catch (e) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL,\r\n _InternalMessageId.FailedToRestoreStorageBuffer,\r\n \" storage key: \" + prefixedKey + \", \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n\r\n return [];\r\n }\r\n\r\n private setBuffer(key: string, buffer: string[]) {\r\n let prefixedKey = key;\r\n try {\r\n prefixedKey = this._config.namePrefix && this._config.namePrefix() ? this._config.namePrefix() + \"_\" + prefixedKey : prefixedKey;\r\n const bufferJson = JSON.stringify(buffer);\r\n Util.setSessionStorage(this._logger, prefixedKey, bufferJson);\r\n } catch (e) {\r\n // if there was an error, clear the buffer\r\n // telemetry is stored in the _buffer array so we won't loose any items\r\n Util.setSessionStorage(this._logger, prefixedKey, JSON.stringify([]));\r\n\r\n this._logger.throwInternal(LoggingSeverity.WARNING,\r\n _InternalMessageId.FailedToSetStorageBuffer,\r\n \" storage key: \" + prefixedKey + \", \" + Util.getExceptionName(e) + \". Buffer cleared\",\r\n { exception: Util.dump(e) });\r\n }\r\n }\r\n}","import {\r\n IEnvelope, Data, Envelope,\r\n RemoteDependencyData, Event, Exception,\r\n Metric, PageView, Trace, PageViewPerformance, IDependencyTelemetry,\r\n IPageViewPerformanceTelemetry, CtxTagKeys,\r\n HttpMethod, IPageViewTelemetryInternal, IWeb,\r\n Util,\r\n IExceptionTelemetry,\r\n IExceptionInternal,\r\n SampleRate\r\n} from '@microsoft/applicationinsights-common';\r\nimport {\r\n ITelemetryItem, CoreUtils,\r\n IDiagnosticLogger, LoggingSeverity, _InternalMessageId,\r\n hasJSON, getJSON\r\n} from '@microsoft/applicationinsights-core-js';\r\n\r\n// these two constants are used to filter out properties not needed when trying to extract custom properties and measurements from the incoming payload\r\nconst baseType: string = \"baseType\";\r\nconst baseData: string = \"baseData\";\r\n\r\nexport abstract class EnvelopeCreator {\r\n public static Version = \"2.4.4\";\r\n\r\n protected static extractPropsAndMeasurements(data: { [key: string]: any }, properties: { [key: string]: any }, measurements: { [key: string]: any }) {\r\n if (!CoreUtils.isNullOrUndefined(data)) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n const value = data[key];\r\n if (CoreUtils.isNumber(value)) {\r\n measurements[key] = value;\r\n } else if (CoreUtils.isString(value)) {\r\n properties[key] = value;\r\n } else if (hasJSON()) {\r\n properties[key] = getJSON().stringify(value);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // TODO: Do we want this to take logger as arg or use this._logger as nonstatic?\r\n protected static createEnvelope(logger: IDiagnosticLogger, envelopeType: string, telemetryItem: ITelemetryItem, data: Data): IEnvelope {\r\n const envelope = new Envelope(logger, data, envelopeType);\r\n if (telemetryItem[SampleRate]) {\r\n envelope.sampleRate = telemetryItem[SampleRate];\r\n }\r\n envelope.iKey = telemetryItem.iKey;\r\n const iKeyNoDashes = telemetryItem.iKey.replace(/-/g, \"\");\r\n envelope.name = envelope.name.replace(\"{0}\", iKeyNoDashes);\r\n\r\n // extract all extensions from ctx\r\n EnvelopeCreator.extractPartAExtensions(telemetryItem, envelope);\r\n\r\n // loop through the envelope tags (extension of Part A) and pick out the ones that should go in outgoing envelope tags\r\n if (!telemetryItem.tags) {\r\n telemetryItem.tags = [];\r\n }\r\n\r\n return envelope;\r\n }\r\n\r\n /*\r\n * Maps Part A data from CS 4.0\r\n */\r\n private static extractPartAExtensions(item: ITelemetryItem, env: IEnvelope) {\r\n // todo: switch to keys from common in this method\r\n if (!env.tags) {\r\n env.tags = {};\r\n }\r\n\r\n if (!item.ext) {\r\n item.ext = {};\r\n }\r\n\r\n if (!item.tags) {\r\n item.tags = [];\r\n }\r\n\r\n if (item.ext.user) {\r\n if (item.ext.user.authId) {\r\n env.tags[CtxTagKeys.userAuthUserId] = item.ext.user.authId;\r\n }\r\n\r\n const userId = item.ext.user.id || item.ext.user.localId;\r\n if (userId) {\r\n env.tags[CtxTagKeys.userId] = userId;\r\n }\r\n }\r\n\r\n if (item.ext.app) {\r\n if (item.ext.app.sesId) {\r\n env.tags[CtxTagKeys.sessionId] = item.ext.app.sesId;\r\n }\r\n }\r\n\r\n if (item.ext.device) {\r\n if (item.ext.device.id || item.ext.device.localId) {\r\n env.tags[CtxTagKeys.deviceId] = item.ext.device.id || item.ext.device.localId;\r\n }\r\n\r\n if (item.ext.device.deviceClass) {\r\n env.tags[CtxTagKeys.deviceType] = item.ext.device.deviceClass;\r\n }\r\n\r\n if (item.ext.device.ip) {\r\n env.tags[CtxTagKeys.deviceIp] = item.ext.device.ip;\r\n }\r\n }\r\n\r\n\r\n if (item.ext.web) {\r\n const web: IWeb = item.ext.web as IWeb;\r\n\r\n if (web.browserLang) {\r\n env.tags[CtxTagKeys.deviceLanguage] = web.browserLang;\r\n }\r\n if (web.browserVer) {\r\n env.tags[CtxTagKeys.deviceBrowserVersion] = web.browserVer;\r\n }\r\n\r\n if (web.browser) {\r\n env.tags[CtxTagKeys.deviceBrowser] = web.browser;\r\n }\r\n env.data = env.data || {};\r\n env.data.baseData = env.data.baseData || {};\r\n env.data.baseData.properties = env.data.baseData.properties || {};\r\n\r\n if (web.domain) {\r\n env.data.baseData.properties['domain'] = web.domain;\r\n }\r\n\r\n if (web.isManual) {\r\n env.data.baseData.properties['isManual'] = web.isManual.toString();\r\n }\r\n\r\n if (web.screenRes) {\r\n env.data.baseData.properties['screenRes'] = web.screenRes;\r\n }\r\n\r\n if (web.userConsent) {\r\n env.data.baseData.properties['userConsent'] = web.userConsent.toString();\r\n }\r\n }\r\n\r\n if (item.ext.device) {\r\n if (item.ext.device.model) {\r\n env.tags[CtxTagKeys.deviceModel] = item.ext.device.model;\r\n }\r\n }\r\n\r\n if (item.ext.os && item.ext.os.name) {\r\n env.tags[CtxTagKeys.deviceOS] = item.ext.os.name;\r\n }\r\n\r\n if (item.ext.device) {\r\n if (item.ext.device.deviceType) {\r\n env.tags[CtxTagKeys.deviceType] = item.ext.device.deviceType;\r\n }\r\n }\r\n\r\n // No support for mapping Trace.traceState to 2.0 as it is currently empty\r\n\r\n if (item.ext.trace) {\r\n if (item.ext.trace.parentID) {\r\n env.tags[CtxTagKeys.operationParentId] = item.ext.trace.parentID;\r\n }\r\n\r\n if (item.ext.trace.name) {\r\n env.tags[CtxTagKeys.operationName] = item.ext.trace.name;\r\n }\r\n\r\n if (item.ext.trace.traceID) {\r\n env.tags[CtxTagKeys.operationId] = item.ext.trace.traceID;\r\n }\r\n }\r\n\r\n // Sample 4.0 schema\r\n // {\r\n // \"time\" : \"2018-09-05T22:51:22.4936Z\",\r\n // \"name\" : \"MetricWithNamespace\",\r\n // \"iKey\" : \"ABC-5a4cbd20-e601-4ef5-a3c6-5d6577e4398e\",\r\n // \"ext\": { \"cloud\": {\r\n // \"role\": \"WATSON3\",\r\n // \"roleInstance\": \"CO4AEAP00000260\"\r\n // },\r\n // \"device\": {}, \"correlation\": {} },\r\n // \"tags\": [\r\n // { \"amazon.region\" : \"east2\" },\r\n // { \"os.expid\" : \"wp:02df239\" }\r\n // ]\r\n // }\r\n\r\n const tgs = {};\r\n // deals with tags.push({object})\r\n for(let i = item.tags.length - 1; i >= 0; i--){\r\n const tg = item.tags[i];\r\n // CoreUtils.objKeys returns an array of keys\r\n CoreUtils.arrForEach(CoreUtils.objKeys(tg), key => {\r\n tgs[key] = tg[key];\r\n })\r\n item.tags.splice(i, 1);\r\n }\r\n // deals with tags[key]=value\r\n for(const tg in item.tags){\r\n tgs[tg] = item.tags[tg];\r\n }\r\n\r\n env.tags = { ...env.tags, ...tgs };\r\n if(!env.tags[CtxTagKeys.internalSdkVersion]) {\r\n // Append a version in case it is not already set\r\n env.tags[CtxTagKeys.internalSdkVersion] = `javascript:${EnvelopeCreator.Version}`;\r\n }\r\n }\r\n protected _logger: IDiagnosticLogger;\r\n\r\n abstract Create(logger: IDiagnosticLogger, telemetryItem: ITelemetryItem): IEnvelope;\r\n}\r\n\r\nexport class DependencyEnvelopeCreator extends EnvelopeCreator {\r\n static DependencyEnvelopeCreator = new DependencyEnvelopeCreator();\r\n\r\n Create(logger: IDiagnosticLogger, telemetryItem: ITelemetryItem): IEnvelope {\r\n this._logger = logger;\r\n if (CoreUtils.isNullOrUndefined(telemetryItem.baseData)) {\r\n this._logger.throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.TelemetryEnvelopeInvalid, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n\r\n const customMeasurements = telemetryItem.baseData.measurements || {};\r\n const customProperties = telemetryItem.baseData.properties || {};\r\n EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);\r\n const bd = telemetryItem.baseData as IDependencyTelemetry;\r\n if (CoreUtils.isNullOrUndefined(bd)) {\r\n logger.warnToConsole(\"Invalid input for dependency data\");\r\n return null;\r\n }\r\n\r\n const id = bd.id;\r\n const absoluteUrl = bd.target;\r\n const command = bd.name;\r\n const duration = bd.duration;\r\n const success = bd.success;\r\n const resultCode = bd.responseCode;\r\n const requestAPI = bd.type;\r\n const correlationContext = bd.correlationContext;\r\n const method = bd.properties && bd.properties[HttpMethod] ? bd.properties[HttpMethod] : \"GET\";\r\n const baseData = new RemoteDependencyData(logger, id, absoluteUrl, command, duration, success, resultCode, method, requestAPI, correlationContext, customProperties, customMeasurements);\r\n const data = new Data(RemoteDependencyData.dataType, baseData);\r\n return EnvelopeCreator.createEnvelope(logger, RemoteDependencyData.envelopeType, telemetryItem, data);\r\n }\r\n}\r\n\r\nexport class EventEnvelopeCreator extends EnvelopeCreator {\r\n static EventEnvelopeCreator = new EventEnvelopeCreator();\r\n\r\n Create(logger: IDiagnosticLogger, telemetryItem: ITelemetryItem): IEnvelope {\r\n this._logger = logger;\r\n if (CoreUtils.isNullOrUndefined(telemetryItem.baseData)) {\r\n this._logger.throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.TelemetryEnvelopeInvalid, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n\r\n let customProperties = {};\r\n let customMeasurements = {};\r\n if (telemetryItem.baseType !== Event.dataType) {\r\n customProperties['baseTypeSource'] = telemetryItem.baseType; // save the passed in base type as a property\r\n }\r\n\r\n if (telemetryItem.baseType === Event.dataType) { // take collection\r\n customProperties = telemetryItem.baseData.properties || {};\r\n customMeasurements = telemetryItem.baseData.measurements || {};\r\n } else { // if its not a known type, convert to custom event\r\n if (telemetryItem.baseData) {\r\n EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.baseData, customProperties, customMeasurements);\r\n }\r\n }\r\n\r\n // Exract root level properties from part C telemetryItem.data\r\n EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);\r\n const eventName = telemetryItem.baseData.name;\r\n const baseData = new Event(logger, eventName, customProperties, customMeasurements);\r\n const data = new Data(Event.dataType, baseData);\r\n return EnvelopeCreator.createEnvelope(logger, Event.envelopeType, telemetryItem, data);\r\n }\r\n}\r\n\r\nexport class ExceptionEnvelopeCreator extends EnvelopeCreator {\r\n static ExceptionEnvelopeCreator = new ExceptionEnvelopeCreator();\r\n\r\n Create(logger: IDiagnosticLogger, telemetryItem: ITelemetryItem): IEnvelope {\r\n this._logger = logger;\r\n if (CoreUtils.isNullOrUndefined(telemetryItem.baseData)) {\r\n this._logger.throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.TelemetryEnvelopeInvalid, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n const bd = telemetryItem.baseData as IExceptionInternal;\r\n const baseData = Exception.CreateFromInterface(logger, bd);\r\n const data = new Data(Exception.dataType, baseData);\r\n return EnvelopeCreator.createEnvelope(logger, Exception.envelopeType, telemetryItem, data);\r\n }\r\n}\r\n\r\nexport class MetricEnvelopeCreator extends EnvelopeCreator {\r\n static MetricEnvelopeCreator = new MetricEnvelopeCreator();\r\n\r\n Create(logger: IDiagnosticLogger, telemetryItem: ITelemetryItem): IEnvelope {\r\n this._logger = logger;\r\n if (CoreUtils.isNullOrUndefined(telemetryItem.baseData)) {\r\n this._logger.throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.TelemetryEnvelopeInvalid, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n\r\n const props = telemetryItem.baseData.properties || {};\r\n const measurements = telemetryItem.baseData.measurements || {};\r\n EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, props, measurements);\r\n const name = telemetryItem.baseData.name;\r\n const average = telemetryItem.baseData.average;\r\n const sampleCount = telemetryItem.baseData.sampleCount;\r\n const min = telemetryItem.baseData.min;\r\n const max = telemetryItem.baseData.max;\r\n const baseData = new Metric(logger, name, average, sampleCount, min, max, props, measurements);\r\n const data = new Data(Metric.dataType, baseData);\r\n return EnvelopeCreator.createEnvelope(logger, Metric.envelopeType, telemetryItem, data);\r\n }\r\n}\r\n\r\nexport class PageViewEnvelopeCreator extends EnvelopeCreator {\r\n static PageViewEnvelopeCreator = new PageViewEnvelopeCreator();\r\n\r\n Create(logger: IDiagnosticLogger, telemetryItem: ITelemetryItem): IEnvelope {\r\n this._logger = logger;\r\n if (CoreUtils.isNullOrUndefined(telemetryItem.baseData)) {\r\n this._logger.throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.TelemetryEnvelopeInvalid, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n\r\n // Since duration is not part of the domain properties in Common Schema, extract it from part C\r\n let duration;\r\n if (!CoreUtils.isNullOrUndefined(telemetryItem.baseData) &&\r\n !CoreUtils.isNullOrUndefined(telemetryItem.baseData.properties) &&\r\n !CoreUtils.isNullOrUndefined(telemetryItem.baseData.properties.duration)) { // from part B properties\r\n duration = telemetryItem.baseData.properties.duration;\r\n delete telemetryItem.baseData.properties.duration;\r\n } else if (!CoreUtils.isNullOrUndefined(telemetryItem.data) &&\r\n !CoreUtils.isNullOrUndefined(telemetryItem.data[\"duration\"])) { // from custom properties\r\n duration = telemetryItem.data[\"duration\"];\r\n delete telemetryItem.data[\"duration\"];\r\n }\r\n\r\n const bd = telemetryItem.baseData as IPageViewTelemetryInternal;\r\n\r\n // special case: pageview.id is grabbed from current operation id. Analytics plugin is decoupled from properties plugin, so this is done here instead. This can be made a default telemetry intializer instead if needed to be decoupled from channel\r\n let currentContextId;\r\n if (telemetryItem.ext && telemetryItem.ext.trace && telemetryItem.ext.trace.traceID) {\r\n currentContextId = telemetryItem.ext.trace.traceID;\r\n }\r\n const id = bd.id || currentContextId\r\n const name = bd.name;\r\n const url = bd.uri;\r\n const properties = bd.properties || {};\r\n const measurements = bd.measurements || {};\r\n\r\n // refUri is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!CoreUtils.isNullOrUndefined(bd.refUri)) {\r\n properties[\"refUri\"] = bd.refUri;\r\n }\r\n\r\n // pageType is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!CoreUtils.isNullOrUndefined(bd.pageType)) {\r\n properties[\"pageType\"] = bd.pageType;\r\n }\r\n\r\n // isLoggedIn is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!CoreUtils.isNullOrUndefined(bd.isLoggedIn)) {\r\n properties[\"isLoggedIn\"] = bd.isLoggedIn.toString();\r\n }\r\n\r\n // pageTags is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!CoreUtils.isNullOrUndefined(bd.properties)) {\r\n const pageTags = bd.properties;\r\n for (const key in pageTags) {\r\n if (pageTags.hasOwnProperty(key)) {\r\n properties[key] = pageTags[key];\r\n }\r\n }\r\n }\r\n\r\n EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, properties, measurements);\r\n const baseData = new PageView(logger, name, url, duration, properties, measurements, id);\r\n const data = new Data(PageView.dataType, baseData);\r\n return EnvelopeCreator.createEnvelope(logger, PageView.envelopeType, telemetryItem, data);\r\n }\r\n}\r\n\r\nexport class PageViewPerformanceEnvelopeCreator extends EnvelopeCreator {\r\n static PageViewPerformanceEnvelopeCreator = new PageViewPerformanceEnvelopeCreator();\r\n\r\n Create(logger: IDiagnosticLogger, telemetryItem: ITelemetryItem): IEnvelope {\r\n this._logger = logger;\r\n if (CoreUtils.isNullOrUndefined(telemetryItem.baseData)) {\r\n this._logger.throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.TelemetryEnvelopeInvalid, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n\r\n const bd = telemetryItem.baseData as IPageViewPerformanceTelemetry;\r\n const name = bd.name;\r\n const url = bd.uri || (bd as any).url;\r\n const properties = bd.properties || {};\r\n const measurements = bd.measurements || {};\r\n EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, properties, measurements);\r\n const baseData = new PageViewPerformance(logger, name, url, undefined, properties, measurements, bd);\r\n const data = new Data(PageViewPerformance.dataType, baseData);\r\n return EnvelopeCreator.createEnvelope(logger, PageViewPerformance.envelopeType, telemetryItem, data);\r\n }\r\n}\r\n\r\nexport class TraceEnvelopeCreator extends EnvelopeCreator {\r\n static TraceEnvelopeCreator = new TraceEnvelopeCreator();\r\n\r\n Create(logger: IDiagnosticLogger, telemetryItem: ITelemetryItem): IEnvelope {\r\n this._logger = logger;\r\n if (CoreUtils.isNullOrUndefined(telemetryItem.baseData)) {\r\n this._logger.throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.TelemetryEnvelopeInvalid, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n\r\n const message = telemetryItem.baseData.message;\r\n const severityLevel = telemetryItem.baseData.severityLevel;\r\n const props = telemetryItem.baseData.properties || {};\r\n const measurements = telemetryItem.baseData.measurements || {};\r\n EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, props, measurements);\r\n const baseData = new Trace(logger, message, severityLevel, props, measurements);\r\n const data = new Data(Trace.dataType, baseData);\r\n return EnvelopeCreator.createEnvelope(logger, Trace.envelopeType, telemetryItem, data);\r\n }\r\n}\r\n","import { Util, ISerializable, FieldType } from '@microsoft/applicationinsights-common';\r\nimport { IDiagnosticLogger, LoggingSeverity, _InternalMessageId, CoreUtils, getJSON } from '@microsoft/applicationinsights-core-js';\r\n\r\nexport class Serializer {\r\n\r\n private _logger: IDiagnosticLogger;\r\n\r\n constructor(logger: IDiagnosticLogger) {\r\n this._logger = logger;\r\n }\r\n\r\n /**\r\n * Serializes the current object to a JSON string.\r\n */\r\n public serialize(input: ISerializable): string {\r\n const output = this._serializeObject(input, \"root\");\r\n try {\r\n return getJSON().stringify(output);\r\n } catch (e) {\r\n // if serialization fails return an empty string\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSerializeObject, (e && CoreUtils.isFunction(e.toString)) ? e.toString() : \"Error serializing object\", null, true);\r\n }\r\n }\r\n\r\n private _serializeObject(source: ISerializable, name: string): any {\r\n const circularReferenceCheck = \"__aiCircularRefCheck\";\r\n let output = {};\r\n\r\n if (!source) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSerializeObject, \"cannot serialize object because it is null or undefined\", { name }, true);\r\n return output;\r\n }\r\n\r\n if (source[circularReferenceCheck]) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CircularReferenceDetected, \"Circular reference detected while serializing object\", { name }, true);\r\n return output;\r\n }\r\n\r\n if (!source.aiDataContract) {\r\n // special case for measurements/properties/tags\r\n if (name === \"measurements\") {\r\n output = this._serializeStringMap(source, \"number\", name);\r\n } else if (name === \"properties\") {\r\n output = this._serializeStringMap(source, \"string\", name);\r\n } else if (name === \"tags\") {\r\n output = this._serializeStringMap(source, \"string\", name);\r\n } else if (Util.isArray(source)) {\r\n output = this._serializeArray(source as any, name);\r\n } else {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CannotSerializeObjectNonSerializable, \"Attempting to serialize an object which does not implement ISerializable\", { name }, true);\r\n\r\n try {\r\n // verify that the object can be stringified\r\n getJSON().stringify(source);\r\n output = source;\r\n } catch (e) {\r\n // if serialization fails return an empty string\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSerializeObject, (e && CoreUtils.isFunction(e.toString)) ? e.toString() : \"Error serializing object\", null, true);\r\n }\r\n }\r\n\r\n return output;\r\n }\r\n\r\n source[circularReferenceCheck] = true;\r\n for (const field in source.aiDataContract) {\r\n\r\n const contract = source.aiDataContract[field];\r\n const isRequired = (CoreUtils.isFunction(contract)) ? (contract() & FieldType.Required) : (contract & FieldType.Required);\r\n const isHidden = (CoreUtils.isFunction(contract)) ? (contract() & FieldType.Hidden) : (contract & FieldType.Hidden);\r\n const isArray = contract & FieldType.Array;\r\n\r\n const isPresent = source[field] !== undefined;\r\n const isObject = CoreUtils.isObject(source[field]) && source[field] !== null;\r\n\r\n if (isRequired && !isPresent && !isArray) {\r\n this._logger.throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.MissingRequiredFieldSpecification,\r\n \"Missing required field specification. The field is required but not present on source\",\r\n { field, name });\r\n\r\n // If not in debug mode, continue and hope the error is permissible\r\n continue;\r\n }\r\n\r\n if (isHidden) {\r\n // Don't serialize hidden fields\r\n continue;\r\n }\r\n\r\n let value;\r\n if (isObject) {\r\n if (isArray) {\r\n // special case; resurse on each object in the source array\r\n value = this._serializeArray(source[field], field);\r\n } else {\r\n // recurse on the source object in this field\r\n value = this._serializeObject(source[field], field);\r\n }\r\n } else {\r\n // assign the source field to the output even if undefined or required\r\n value = source[field];\r\n }\r\n\r\n // only emit this field if the value is defined\r\n if (value !== undefined) {\r\n output[field] = value;\r\n }\r\n }\r\n\r\n delete source[circularReferenceCheck];\r\n return output;\r\n }\r\n\r\n private _serializeArray(sources: ISerializable[], name: string): any[] {\r\n let output;\r\n\r\n if (!!sources) {\r\n if (!Util.isArray(sources)) {\r\n this._logger.throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.ItemNotInArray,\r\n \"This field was specified as an array in the contract but the item is not an array.\\r\\n\",\r\n { name }, true);\r\n } else {\r\n output = [];\r\n for (let i = 0; i < sources.length; i++) {\r\n const source = sources[i];\r\n const item = this._serializeObject(source, name + \"[\" + i + \"]\");\r\n output.push(item);\r\n }\r\n }\r\n }\r\n\r\n return output;\r\n }\r\n\r\n private _serializeStringMap(map, expectedType, name) {\r\n let output;\r\n if (map) {\r\n output = {};\r\n for (const field in map) {\r\n const value = map[field];\r\n if (expectedType === \"string\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n } else if (value === null) {\r\n output[field] = \"null\";\r\n } else if (!value.toString) {\r\n output[field] = \"invalid field: toString() is not defined.\";\r\n }\r\n else {\r\n output[field] = value.toString();\r\n }\r\n }\r\n else if (expectedType === \"number\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n } else if (value === null) {\r\n output[field] = \"null\";\r\n } else {\r\n const num = parseFloat(value);\r\n if (isNaN(num)) {\r\n output[field] = \"NaN\";\r\n }\r\n else {\r\n output[field] = num;\r\n }\r\n }\r\n }\r\n else {\r\n output[field] = \"invalid field: \" + name + \" is of unknown type.\";\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL, output[field], null, true);\r\n }\r\n }\r\n }\r\n\r\n return output;\r\n }\r\n}","import { CoreUtils, EventHelper, getWindow, getDocument, getNavigator } from '@microsoft/applicationinsights-core-js';\r\n\r\n/**\r\n * @description Monitors browser for offline events\r\n * @export default - Offline: Static instance of OfflineListener\r\n * @class OfflineListener\r\n */\r\nexport class OfflineListener {\r\n public static Offline = new OfflineListener;\r\n public isListening: boolean;\r\n private _onlineStatus: boolean = true;\r\n \r\n constructor() {\r\n let _window = getWindow();\r\n let _document = getDocument();\r\n let isListening = false;\r\n let _this = this;\r\n\r\n try {\r\n if (_window) {\r\n if (EventHelper.Attach(_window, 'online', this._setOnline.bind(_this))) {\r\n EventHelper.Attach(_window, 'offline', this._setOffline.bind(_this));\r\n isListening = true;\r\n }\r\n }\r\n \r\n if (_document) {\r\n // Also attach to the document.body or document\r\n let target:any = _document.body || _document;\r\n\r\n if (!CoreUtils.isUndefined(target.ononline)) {\r\n target.ononline = this._setOnline.bind(_this);\r\n target.onoffline = this._setOffline.bind(_this)\r\n isListening = true;\r\n }\r\n }\r\n } catch (e) {\r\n\r\n // this makes react-native less angry\r\n isListening = false;\r\n }\r\n\r\n this.isListening = isListening;\r\n }\r\n\r\n public isOnline(): boolean {\r\n var _navigator = getNavigator();\r\n if (this.isListening) {\r\n return this._onlineStatus\r\n } else if (_navigator && !CoreUtils.isNullOrUndefined(_navigator.onLine)) { // navigator.onLine is undefined in react-native\r\n return _navigator.onLine;\r\n } else {\r\n // Cannot determine online status - report as online\r\n return true;\r\n }\r\n }\r\n\r\n public isOffline(): boolean {\r\n return !this.isOnline();\r\n }\r\n\r\n private _setOnline() {\r\n this._onlineStatus = true;\r\n }\r\n private _setOffline() {\r\n this._onlineStatus = false;\r\n }\r\n}\r\n\r\nexport const Offline = OfflineListener.Offline;\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nexport class HashCodeScoreGenerator {\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n public static INT_MAX_VALUE: number = 2147483647;\r\n\r\n // (Magic number) DJB algorithm can't work on shorter strings (results in poor distribution\r\n private static MIN_INPUT_LENGTH: number = 8;\r\n\r\n public getHashCodeScore(key: string): number {\r\n const score = this.getHashCode(key) / HashCodeScoreGenerator.INT_MAX_VALUE;\r\n return score * 100;\r\n }\r\n\r\n public getHashCode(input: string): number {\r\n if (input === \"\") { return 0; }\r\n\r\n while (input.length < HashCodeScoreGenerator.MIN_INPUT_LENGTH) {\r\n input = input.concat(input);\r\n }\r\n\r\n // 5381 is a magic number: http://stackoverflow.com/questions/10696223/reason-for-5381-number-in-djb-hash-function\r\n let hash: number = 5381;\r\n\r\n for (let i: number = 0; i < input.length; ++i) {\r\n hash = ((hash << 5) + hash) + input.charCodeAt(i);\r\n // 'hash' is of number type which means 53 bit integer (http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types-number-type)\r\n // 'hash & hash' will keep it 32 bit integer - just to make it clearer what the result is.\r\n hash = hash & hash;\r\n }\r\n\r\n return Math.abs(hash);\r\n }\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { HashCodeScoreGenerator } from './HashCodeScoreGenerator';\r\nimport { ITelemetryItem } from '@microsoft/applicationinsights-core-js';\r\nimport { ContextTagKeys } from '@microsoft/applicationinsights-common';\r\n\r\nexport class SamplingScoreGenerator {\r\n private hashCodeGeneragor: HashCodeScoreGenerator;\r\n private keys: ContextTagKeys;\r\n\r\n constructor() {\r\n this.hashCodeGeneragor = new HashCodeScoreGenerator();\r\n this.keys = new ContextTagKeys();\r\n }\r\n\r\n public getSamplingScore(item: ITelemetryItem): number {\r\n let score: number = 0;\r\n if (item.tags && item.tags[this.keys.userId]) { // search in tags first, then ext\r\n score = this.hashCodeGeneragor.getHashCodeScore(item.tags[this.keys.userId]);\r\n } else if (item.ext && item.ext.user && item.ext.user.id) {\r\n score = this.hashCodeGeneragor.getHashCodeScore(item.ext.user.id);\r\n } else if (item.tags && item.tags[this.keys.operationId]) { // search in tags first, then ext\r\n score = this.hashCodeGeneragor.getHashCodeScore(item.tags[this.keys.operationId]);\r\n } else if (item.ext && item.ext.telemetryTrace && item.ext.telemetryTrace.traceID) {\r\n score = this.hashCodeGeneragor.getHashCodeScore(item.ext.telemetryTrace.traceID);\r\n } else {\r\n // tslint:disable-next-line:insecure-random\r\n score = (Math.random() * 100);\r\n }\r\n\r\n return score;\r\n }\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { SamplingScoreGenerator } from './SamplingScoreGenerators/SamplingScoreGenerator';\r\nimport { ISample, Metric } from '@microsoft/applicationinsights-common';\r\nimport { ITelemetryItem, IDiagnosticLogger, _InternalMessageId, LoggingSeverity, DiagnosticLogger, CoreUtils } from '@microsoft/applicationinsights-core-js';\r\n\r\nexport class Sample implements ISample {\r\n public sampleRate: number;\r\n\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n public INT_MAX_VALUE: number = 2147483647;\r\n private samplingScoreGenerator: SamplingScoreGenerator;\r\n private _logger: IDiagnosticLogger;\r\n\r\n constructor(sampleRate: number, logger?: IDiagnosticLogger) {\r\n this._logger = CoreUtils.isNullOrUndefined(logger) ? new DiagnosticLogger() : logger;\r\n \r\n if (sampleRate > 100 || sampleRate < 0) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING,\r\n _InternalMessageId.SampleRateOutOfRange,\r\n \"Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.\",\r\n { samplingRate: sampleRate }, true);\r\n this.sampleRate = 100;\r\n }\r\n\r\n this.sampleRate = sampleRate;\r\n this.samplingScoreGenerator = new SamplingScoreGenerator();\r\n }\r\n\r\n /**\r\n * Determines if an envelope is sampled in (i.e. will be sent) or not (i.e. will be dropped).\r\n */\r\n public isSampledIn(envelope: ITelemetryItem): boolean {\r\n const samplingPercentage = this.sampleRate; // 0 - 100\r\n let isSampledIn = false;\r\n\r\n if (samplingPercentage === null || samplingPercentage === undefined || samplingPercentage >= 100) {\r\n return true;\r\n } else if (envelope.baseType === Metric.dataType) {\r\n // exclude MetricData telemetry from sampling\r\n return true;\r\n }\r\n\r\n isSampledIn = this.samplingScoreGenerator.getSamplingScore(envelope) < samplingPercentage;\r\n return isSampledIn;\r\n }\r\n}","import { ISenderConfig, XDomainRequest as IXDomainRequest, IBackendResponse } from './Interfaces';\r\nimport { ISendBuffer, SessionStorageSendBuffer, ArraySendBuffer } from './SendBuffer';\r\nimport {\r\n EnvelopeCreator, DependencyEnvelopeCreator, EventEnvelopeCreator,\r\n ExceptionEnvelopeCreator, MetricEnvelopeCreator, PageViewEnvelopeCreator,\r\n PageViewPerformanceEnvelopeCreator, TraceEnvelopeCreator\r\n} from './EnvelopeCreator';\r\nimport { Serializer } from './Serializer'; // todo move to channel\r\nimport {\r\n DisabledPropertyName, RequestHeaders, Util,\r\n IEnvelope, PageView, Event,\r\n Trace, Exception, Metric,\r\n PageViewPerformance, RemoteDependencyData,\r\n IChannelControlsAI,\r\n IConfig,\r\n ProcessLegacy,\r\n BreezeChannelIdentifier,\r\n SampleRate\r\n} from '@microsoft/applicationinsights-common';\r\nimport {\r\n ITelemetryItem, IProcessTelemetryContext, IConfiguration, CoreUtils,\r\n _InternalMessageId, LoggingSeverity, IDiagnosticLogger, IAppInsightsCore, IPlugin,\r\n getWindow, getNavigator, getJSON, BaseTelemetryPlugin, ITelemetryPluginChain\r\n} from '@microsoft/applicationinsights-core-js';\r\nimport { Offline } from './Offline';\r\nimport { Sample } from './TelemetryProcessors/Sample'\r\n\r\ndeclare var XDomainRequest: {\r\n prototype: IXDomainRequest;\r\n new(): IXDomainRequest;\r\n};\r\n\r\nexport type SenderFunction = (payload: string[], isAsync: boolean) => void;\r\n\r\nexport class Sender extends BaseTelemetryPlugin implements IChannelControlsAI {\r\n\r\n public static constructEnvelope(orig: ITelemetryItem, iKey: string, logger: IDiagnosticLogger): IEnvelope {\r\n let envelope: ITelemetryItem;\r\n if (iKey !== orig.iKey && !CoreUtils.isNullOrUndefined(iKey)) {\r\n envelope = {\r\n ...orig,\r\n iKey\r\n };\r\n } else {\r\n envelope = orig;\r\n }\r\n\r\n switch (envelope.baseType) {\r\n case Event.dataType:\r\n return EventEnvelopeCreator.EventEnvelopeCreator.Create(logger, envelope);\r\n case Trace.dataType:\r\n return TraceEnvelopeCreator.TraceEnvelopeCreator.Create(logger, envelope);\r\n case PageView.dataType:\r\n return PageViewEnvelopeCreator.PageViewEnvelopeCreator.Create(logger, envelope);\r\n case PageViewPerformance.dataType:\r\n return PageViewPerformanceEnvelopeCreator.PageViewPerformanceEnvelopeCreator.Create(logger, envelope);\r\n case Exception.dataType:\r\n return ExceptionEnvelopeCreator.ExceptionEnvelopeCreator.Create(logger, envelope);\r\n case Metric.dataType:\r\n return MetricEnvelopeCreator.MetricEnvelopeCreator.Create(logger, envelope);\r\n case RemoteDependencyData.dataType:\r\n return DependencyEnvelopeCreator.DependencyEnvelopeCreator.Create(logger, envelope);\r\n default:\r\n\r\n return EventEnvelopeCreator.EventEnvelopeCreator.Create(logger, envelope);\r\n }\r\n }\r\n\r\n private static _getDefaultAppInsightsChannelConfig(): ISenderConfig {\r\n // set default values\r\n return {\r\n endpointUrl: () => \"https://dc.services.visualstudio.com/v2/track\",\r\n emitLineDelimitedJson: () => false,\r\n maxBatchInterval: () => 15000,\r\n maxBatchSizeInBytes: () => 102400, // 100kb\r\n disableTelemetry: () => false,\r\n enableSessionStorageBuffer: () => true,\r\n isRetryDisabled: () => false,\r\n isBeaconApiDisabled: () => true,\r\n onunloadDisableBeacon: () => false,\r\n instrumentationKey: () => undefined, // Channel doesn't need iKey, it should be set already\r\n namePrefix: () => undefined,\r\n samplingPercentage: () => 100\r\n }\r\n }\r\n\r\n private static _getEmptyAppInsightsChannelConfig(): ISenderConfig {\r\n return {\r\n endpointUrl: undefined,\r\n emitLineDelimitedJson: undefined,\r\n maxBatchInterval: undefined,\r\n maxBatchSizeInBytes: undefined,\r\n disableTelemetry: undefined,\r\n enableSessionStorageBuffer: undefined,\r\n isRetryDisabled: undefined,\r\n isBeaconApiDisabled: undefined,\r\n onunloadDisableBeacon: undefined,\r\n instrumentationKey: undefined,\r\n namePrefix: undefined,\r\n samplingPercentage: undefined\r\n };\r\n }\r\n \r\n public priority: number = 1001;\r\n\r\n public identifier: string = BreezeChannelIdentifier;\r\n\r\n /**\r\n * The configuration for this sender instance\r\n */\r\n public _senderConfig: ISenderConfig;\r\n\r\n /**\r\n * A method which will cause data to be send to the url\r\n */\r\n public _sender: SenderFunction;\r\n /**\r\n * A send buffer object\r\n */\r\n public _buffer: ISendBuffer;\r\n\r\n /**\r\n * AppId of this component parsed from some backend response.\r\n */\r\n public _appId: string;\r\n\r\n /**\r\n * Whether XMLHttpRequest object is supported. Older version of IE (8,9) do not support it.\r\n */\r\n public _XMLHttpRequestSupported: boolean = false;\r\n\r\n protected _sample: Sample;\r\n /**\r\n * How many times in a row a retryable error condition has occurred.\r\n */\r\n private _consecutiveErrors: number;\r\n\r\n /**\r\n * The time to retry at in milliseconds from 1970/01/01 (this makes the timer calculation easy).\r\n */\r\n private _retryAt: number;\r\n\r\n /**\r\n * The time of the last send operation.\r\n */\r\n private _lastSend: number;\r\n\r\n /**\r\n * Handle to the timer for delayed sending of batches of data.\r\n */\r\n private _timeoutHandle: any;\r\n\r\n private _serializer: Serializer;\r\n\r\n public pause(): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n public resume(): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n public flush() {\r\n try {\r\n this.triggerSend();\r\n } catch (e) {\r\n this.diagLog().throwInternal(LoggingSeverity.CRITICAL,\r\n _InternalMessageId.FlushFailed,\r\n \"flush failed, telemetry will not be collected: \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n }\r\n\r\n public onunloadFlush() {\r\n if ((this._senderConfig.onunloadDisableBeacon() === false || this._senderConfig.isBeaconApiDisabled() === false) && Util.IsBeaconApiSupported()) {\r\n try {\r\n this.triggerSend(true, this._beaconSender);\r\n } catch (e) {\r\n this.diagLog().throwInternal(LoggingSeverity.CRITICAL,\r\n _InternalMessageId.FailedToSendQueuedTelemetry,\r\n \"failed to flush with beacon sender on page unload, telemetry will not be collected: \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n } else {\r\n this.flush();\r\n }\r\n }\r\n\r\n public teardown(): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n public initialize(config: IConfiguration & IConfig, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?:ITelemetryPluginChain): void {\r\n super.initialize(config, core, extensions, pluginChain);\r\n let ctx = this._getTelCtx();\r\n let identifier = this.identifier;\r\n this._serializer = new Serializer(core.logger);\r\n\r\n this._consecutiveErrors = 0;\r\n this._retryAt = null;\r\n this._lastSend = 0;\r\n this._sender = null;\r\n const defaultConfig = Sender._getDefaultAppInsightsChannelConfig();\r\n this._senderConfig = Sender._getEmptyAppInsightsChannelConfig();\r\n for (const field in defaultConfig) {\r\n this._senderConfig[field] = () => ctx.getConfig(identifier, field, defaultConfig[field]());\r\n }\r\n\r\n this._buffer = (this._senderConfig.enableSessionStorageBuffer && Util.canUseSessionStorage())\r\n ? new SessionStorageSendBuffer(this.diagLog(), this._senderConfig) : new ArraySendBuffer(this._senderConfig);\r\n this._sample = new Sample(this._senderConfig.samplingPercentage(), this.diagLog());\r\n\r\n if (!this._senderConfig.isBeaconApiDisabled() && Util.IsBeaconApiSupported()) {\r\n this._sender = this._beaconSender;\r\n } else {\r\n if (!CoreUtils.isUndefined(XMLHttpRequest)) {\r\n const testXhr = new XMLHttpRequest();\r\n if (\"withCredentials\" in testXhr) {\r\n this._sender = this._xhrSender;\r\n this._XMLHttpRequestSupported = true;\r\n } else if (!CoreUtils.isUndefined(XDomainRequest)) {\r\n this._sender = this._xdrSender; // IE 8 and 9\r\n }\r\n }\r\n }\r\n }\r\n\r\n public processTelemetry(telemetryItem: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n itemCtx = this._getTelCtx(itemCtx);\r\n \r\n try {\r\n // if master off switch is set, don't send any data\r\n if (this._senderConfig.disableTelemetry()) {\r\n // Do not send/save data\r\n return;\r\n }\r\n\r\n // validate input\r\n if (!telemetryItem) {\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSendEmptyTelemetry, \"Cannot send empty telemetry\");\r\n return;\r\n }\r\n\r\n // validate event\r\n if (telemetryItem.baseData && !telemetryItem.baseType) {\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.InvalidEvent, \"Cannot send telemetry without baseData and baseType\");\r\n return;\r\n }\r\n\r\n if (!telemetryItem.baseType) {\r\n // Default\r\n telemetryItem.baseType = \"EventData\";\r\n }\r\n\r\n // ensure a sender was constructed\r\n if (!this._sender) {\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.SenderNotInitialized, \"Sender was not initialized\");\r\n return;\r\n }\r\n \r\n // check if this item should be sampled in, else add sampleRate tag\r\n if (!this._isSampledIn(telemetryItem)) {\r\n // Item is sampled out, do not send it\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TelemetrySampledAndNotSent,\r\n \"Telemetry item was sampled out and not sent\", { SampleRate: this._sample.sampleRate });\r\n return;\r\n } else {\r\n telemetryItem[SampleRate] = this._sample.sampleRate;\r\n }\r\n\r\n // construct an envelope that Application Insights endpoint can understand\r\n const aiEnvelope = Sender.constructEnvelope(telemetryItem, this._senderConfig.instrumentationKey(), itemCtx.diagLog());\r\n if (!aiEnvelope) {\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CreateEnvelopeError, \"Unable to create an AppInsights envelope\");\r\n return;\r\n }\r\n\r\n let doNotSendItem = false;\r\n // this is for running in legacy mode, where customer may already have a custom initializer present\r\n if (telemetryItem.tags && telemetryItem.tags[ProcessLegacy]) {\r\n CoreUtils.arrForEach(telemetryItem.tags[ProcessLegacy], (callBack: (env: IEnvelope) => boolean | void) => {\r\n try {\r\n if (callBack && callBack(aiEnvelope) === false) {\r\n doNotSendItem = true;\r\n itemCtx.diagLog().warnToConsole(\"Telemetry processor check returns false\");\r\n }\r\n } catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n itemCtx.diagLog().throwInternal(\r\n LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"One of telemetry initializers failed, telemetry item will not be sent: \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) }, true);\r\n }\r\n });\r\n\r\n delete telemetryItem.tags[ProcessLegacy];\r\n }\r\n if (doNotSendItem) {\r\n return; // do not send, no need to execute next plugin\r\n }\r\n\r\n // check if the incoming payload is too large, truncate if necessary\r\n const payload: string = this._serializer.serialize(aiEnvelope);\r\n\r\n // flush if we would exceed the max-size limit by adding this item\r\n const bufferPayload = this._buffer.getItems();\r\n const batch = this._buffer.batchPayloads(bufferPayload);\r\n\r\n if (batch && (batch.length + payload.length > this._senderConfig.maxBatchSizeInBytes())) {\r\n this.triggerSend();\r\n }\r\n\r\n // enqueue the payload\r\n this._buffer.enqueue(payload);\r\n\r\n // ensure an invocation timeout is set\r\n this._setupTimer();\r\n\r\n } catch (e) {\r\n itemCtx.diagLog().throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.FailedAddingTelemetryToBuffer,\r\n \"Failed adding telemetry to the sender's buffer, some telemetry will be lost: \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n\r\n // hand off the telemetry item to the next plugin\r\n this.processNext(telemetryItem, itemCtx);\r\n }\r\n\r\n /**\r\n * xhr state changes\r\n */\r\n public _xhrReadyStateChange(xhr: XMLHttpRequest, payload: string[], countOfItemsInPayload: number) {\r\n if (xhr.readyState === 4) {\r\n let response: IBackendResponse = null;\r\n if (!this._appId) {\r\n response = this._parseResponse(xhr.responseText || xhr.response);\r\n if (response && response.appId) {\r\n this._appId = response.appId;\r\n }\r\n }\r\n\r\n if ((xhr.status < 200 || xhr.status >= 300) && xhr.status !== 0) {\r\n if (!this._senderConfig.isRetryDisabled() && this._isRetriable(xhr.status)) {\r\n this._resendPayload(payload);\r\n\r\n this.diagLog().throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.TransmissionFailed, \". \" +\r\n \"Response code \" + xhr.status + \". Will retry to send \" + payload.length + \" items.\");\r\n } else {\r\n this._onError(payload, this._formatErrorMessageXhr(xhr));\r\n }\r\n } else if (Offline.isOffline()) { // offline\r\n // Note: Don't check for staus == 0, since adblock gives this code\r\n if (!this._senderConfig.isRetryDisabled()) {\r\n const offlineBackOffMultiplier = 10; // arbritrary number\r\n this._resendPayload(payload, offlineBackOffMultiplier);\r\n\r\n this.diagLog().throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.TransmissionFailed, `. Offline - Response Code: ${xhr.status}. Offline status: ${Offline.isOffline()}. Will retry to send ${payload.length} items.`);\r\n }\r\n } else {\r\n if (xhr.status === 206) {\r\n if (!response) {\r\n response = this._parseResponse(xhr.responseText || xhr.response);\r\n }\r\n\r\n if (response && !this._senderConfig.isRetryDisabled()) {\r\n this._onPartialSuccess(payload, response);\r\n } else {\r\n this._onError(payload, this._formatErrorMessageXhr(xhr));\r\n }\r\n } else {\r\n this._consecutiveErrors = 0;\r\n this._onSuccess(payload, countOfItemsInPayload);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Immediately send buffered data\r\n * @param async {boolean} - Indicates if the events should be sent asynchronously\r\n * @param forcedSender {SenderFunction} - Indicates the forcedSender, undefined if not passed\r\n */\r\n public triggerSend(async = true, forcedSender?: SenderFunction) {\r\n try {\r\n // Send data only if disableTelemetry is false\r\n if (!this._senderConfig.disableTelemetry()) {\r\n\r\n if (this._buffer.count() > 0) {\r\n const payload = this._buffer.getItems();\r\n\r\n // invoke send\r\n if (forcedSender) {\r\n forcedSender.call(this, payload, async);\r\n } else {\r\n this._sender(payload, async);\r\n }\r\n }\r\n\r\n // update lastSend time to enable throttling\r\n this._lastSend = +new Date;\r\n } else {\r\n this._buffer.clear();\r\n }\r\n\r\n clearTimeout(this._timeoutHandle);\r\n this._timeoutHandle = null;\r\n this._retryAt = null;\r\n } catch (e) {\r\n /* Ignore this error for IE under v10 */\r\n if (!Util.getIEVersion() || Util.getIEVersion() > 9) {\r\n this.diagLog().throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.TransmissionFailed,\r\n \"Telemetry transmission failed, some telemetry will be lost: \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * error handler\r\n */\r\n public _onError(payload: string[], message: string, event?: ErrorEvent) {\r\n this.diagLog().throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.OnError,\r\n \"Failed to send telemetry.\",\r\n { message });\r\n\r\n this._buffer.clearSent(payload);\r\n }\r\n\r\n /**\r\n * partial success handler\r\n */\r\n public _onPartialSuccess(payload: string[], results: IBackendResponse) {\r\n const failed = [];\r\n const retry = [];\r\n\r\n // Iterate through the reversed array of errors so that splicing doesn't have invalid indexes after the first item.\r\n const errors = results.errors.reverse();\r\n for (const error of errors) {\r\n const extracted = payload.splice(error.index, 1)[0];\r\n if (this._isRetriable(error.statusCode)) {\r\n retry.push(extracted);\r\n } else {\r\n // All other errors, including: 402 (Monthly quota exceeded) and 439 (Too many requests and refresh cache).\r\n failed.push(extracted);\r\n }\r\n }\r\n\r\n if (payload.length > 0) {\r\n this._onSuccess(payload, results.itemsAccepted);\r\n }\r\n\r\n if (failed.length > 0) {\r\n this._onError(failed, this._formatErrorMessageXhr(null, ['partial success', results.itemsAccepted, 'of', results.itemsReceived].join(' ')));\r\n }\r\n\r\n if (retry.length > 0) {\r\n this._resendPayload(retry);\r\n\r\n this.diagLog().throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.TransmissionFailed, \"Partial success. \" +\r\n \"Delivered: \" + payload.length + \", Failed: \" + failed.length +\r\n \". Will retry to send \" + retry.length + \" our of \" + results.itemsReceived + \" items\");\r\n }\r\n }\r\n\r\n /**\r\n * success handler\r\n */\r\n public _onSuccess(payload: string[], countOfItemsInPayload: number) {\r\n this._buffer.clearSent(payload);\r\n }\r\n\r\n /**\r\n * xdr state changes\r\n */\r\n public _xdrOnLoad(xdr: IXDomainRequest, payload: string[]) {\r\n if (xdr && (xdr.responseText + \"\" === \"200\" || xdr.responseText === \"\")) {\r\n this._consecutiveErrors = 0;\r\n this._onSuccess(payload, 0);\r\n } else {\r\n const results = this._parseResponse(xdr.responseText);\r\n\r\n if (results && results.itemsReceived && results.itemsReceived > results.itemsAccepted\r\n && !this._senderConfig.isRetryDisabled()) {\r\n this._onPartialSuccess(payload, results);\r\n } else {\r\n this._onError(payload, this._formatErrorMessageXdr(xdr));\r\n }\r\n }\r\n }\r\n\r\n private _isSampledIn(envelope: ITelemetryItem): boolean {\r\n return this._sample.isSampledIn(envelope);\r\n }\r\n\r\n /**\r\n * Send Beacon API request\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - not used\r\n * Note: Beacon API does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n private _beaconSender(payload: string[], isAsync: boolean) {\r\n const url = this._senderConfig.endpointUrl();\r\n const batch = this._buffer.batchPayloads(payload);\r\n\r\n // Chrome only allows CORS-safelisted values for the sendBeacon data argument\r\n // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\r\n const plainTextBatch = new Blob([batch], { type: 'text/plain;charset=UTF-8' });\r\n\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n const queued = getNavigator().sendBeacon(url, plainTextBatch);\r\n\r\n if (queued) {\r\n this._buffer.markAsSent(payload);\r\n // no response from beaconSender, clear buffer\r\n this._onSuccess(payload, payload.length);\r\n } else {\r\n this._xhrSender(payload, true);\r\n this.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" + \"Failed to send telemetry with Beacon API, retried with xhrSender.\");\r\n }\r\n }\r\n\r\n /**\r\n * Send XMLHttpRequest\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - Indicates if the request should be sent asynchronously\r\n */\r\n private _xhrSender(payload: string[], isAsync: boolean) {\r\n const xhr = new XMLHttpRequest();\r\n xhr[DisabledPropertyName] = true;\r\n xhr.open(\"POST\", this._senderConfig.endpointUrl(), isAsync);\r\n xhr.setRequestHeader(\"Content-type\", \"application/json\");\r\n\r\n // append Sdk-Context request header only in case of breeze endpoint\r\n if (Util.isInternalApplicationInsightsEndpoint(this._senderConfig.endpointUrl())) {\r\n xhr.setRequestHeader(RequestHeaders.sdkContextHeader, RequestHeaders.sdkContextHeaderAppIdRequest);\r\n }\r\n\r\n xhr.onreadystatechange = () => this._xhrReadyStateChange(xhr, payload, payload.length);\r\n xhr.onerror = (event: ErrorEvent) => this._onError(payload, this._formatErrorMessageXhr(xhr), event);\r\n\r\n // compose an array of payloads\r\n const batch = this._buffer.batchPayloads(payload);\r\n xhr.send(batch);\r\n\r\n this._buffer.markAsSent(payload);\r\n }\r\n\r\n /**\r\n * Parses the response from the backend.\r\n * @param response - XMLHttpRequest or XDomainRequest response\r\n */\r\n private _parseResponse(response: any): IBackendResponse {\r\n try {\r\n if (response && response !== \"\") {\r\n const result = getJSON().parse(response);\r\n\r\n if (result && result.itemsReceived && result.itemsReceived >= result.itemsAccepted &&\r\n result.itemsReceived - result.itemsAccepted === result.errors.length) {\r\n return result;\r\n }\r\n }\r\n } catch (e) {\r\n this.diagLog().throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.InvalidBackendResponse,\r\n \"Cannot parse the response. \" + Util.getExceptionName(e),\r\n {\r\n response\r\n });\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Resend payload. Adds payload back to the send buffer and setup a send timer (with exponential backoff).\r\n * @param payload\r\n */\r\n private _resendPayload(payload: string[], linearFactor: number = 1) {\r\n if (!payload || payload.length === 0) {\r\n return;\r\n }\r\n\r\n this._buffer.clearSent(payload);\r\n this._consecutiveErrors++;\r\n\r\n for (const item of payload) {\r\n this._buffer.enqueue(item);\r\n }\r\n\r\n // setup timer\r\n this._setRetryTime(linearFactor);\r\n this._setupTimer();\r\n }\r\n\r\n /** \r\n * Calculates the time to wait before retrying in case of an error based on\r\n * http://en.wikipedia.org/wiki/Exponential_backoff\r\n */\r\n private _setRetryTime(linearFactor: number) {\r\n const SlotDelayInSeconds = 10;\r\n let delayInSeconds: number;\r\n\r\n if (this._consecutiveErrors <= 1) {\r\n delayInSeconds = SlotDelayInSeconds;\r\n } else {\r\n const backOffSlot = (Math.pow(2, this._consecutiveErrors) - 1) / 2;\r\n // tslint:disable-next-line:insecure-random\r\n let backOffDelay = Math.floor(Math.random() * backOffSlot * SlotDelayInSeconds) + 1;\r\n backOffDelay = linearFactor * backOffDelay;\r\n delayInSeconds = Math.max(Math.min(backOffDelay, 3600), SlotDelayInSeconds);\r\n }\r\n\r\n // TODO: Log the backoff time like the C# version does.\r\n const retryAfterTimeSpan = Date.now() + (delayInSeconds * 1000);\r\n\r\n // TODO: Log the retry at time like the C# version does.\r\n this._retryAt = retryAfterTimeSpan;\r\n }\r\n\r\n /**\r\n * Sets up the timer which triggers actually sending the data.\r\n */\r\n private _setupTimer() {\r\n if (!this._timeoutHandle) {\r\n const retryInterval = this._retryAt ? Math.max(0, this._retryAt - Date.now()) : 0;\r\n const timerValue = Math.max(this._senderConfig.maxBatchInterval(), retryInterval);\r\n\r\n this._timeoutHandle = setTimeout(() => {\r\n this.triggerSend();\r\n }, timerValue);\r\n }\r\n }\r\n\r\n /**\r\n * Checks if the SDK should resend the payload after receiving this status code from the backend.\r\n * @param statusCode\r\n */\r\n private _isRetriable(statusCode: number): boolean {\r\n return statusCode === 408 // Timeout\r\n || statusCode === 429 // Too many requests.\r\n || statusCode === 500 // Internal server error.\r\n || statusCode === 503; // Service unavailable.\r\n }\r\n\r\n private _formatErrorMessageXhr(xhr: XMLHttpRequest, message?: string): string {\r\n if (xhr) {\r\n return \"XMLHttpRequest,Status:\" + xhr.status + \",Response:\" + xhr.responseText || xhr.response || \"\";\r\n }\r\n\r\n return message;\r\n }\r\n\r\n /**\r\n * Send XDomainRequest\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - Indicates if the request should be sent asynchronously\r\n *\r\n * Note: XDomainRequest does not support sync requests. This 'isAsync' parameter is added\r\n * to maintain consistency with the xhrSender's contract\r\n * Note: XDomainRequest does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n private _xdrSender(payload: string[], isAsync: boolean) {\r\n let _window = getWindow();\r\n const xdr = new XDomainRequest();\r\n xdr.onload = () => this._xdrOnLoad(xdr, payload);\r\n xdr.onerror = (event: ErrorEvent) => this._onError(payload, this._formatErrorMessageXdr(xdr), event);\r\n\r\n // XDomainRequest requires the same protocol as the hosting page.\r\n // If the protocol doesn't match, we can't send the telemetry :(.\r\n const hostingProtocol = _window && _window.location && _window.location.protocol || \"\";\r\n if (this._senderConfig.endpointUrl().lastIndexOf(hostingProtocol, 0) !== 0) {\r\n this.diagLog().throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.TransmissionFailed, \". \" +\r\n \"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.\");\r\n\r\n this._buffer.clear();\r\n return;\r\n }\r\n\r\n const endpointUrl = this._senderConfig.endpointUrl().replace(/^(https?:)/, \"\");\r\n xdr.open('POST', endpointUrl);\r\n\r\n // compose an array of payloads\r\n const batch = this._buffer.batchPayloads(payload);\r\n xdr.send(batch);\r\n\r\n this._buffer.markAsSent(payload);\r\n }\r\n\r\n private _formatErrorMessageXdr(xdr: IXDomainRequest, message?: string): string {\r\n if (xdr) {\r\n return \"XDomainRequest,Response:\" + xdr.responseText || \"\";\r\n }\r\n\r\n return message;\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { ISession, Util, DateTimeUtils } from '@microsoft/applicationinsights-common';\r\nimport { IDiagnosticLogger, _InternalMessageId, LoggingSeverity, CoreUtils, DiagnosticLogger } from '@microsoft/applicationinsights-core-js';\r\n\r\nexport interface ISessionConfig {\r\n sessionRenewalMs?: () => number;\r\n sessionExpirationMs?: () => number;\r\n cookieDomain?: () => string;\r\n namePrefix?: () => string;\r\n}\r\n\r\nexport class Session implements ISession {\r\n /**\r\n * The session ID.\r\n */\r\n public id?: string;\r\n\r\n /**\r\n * The date at which this guid was genereated.\r\n * Per the spec the ID will be regenerated if more than acquisitionSpan milliseconds ellapse from this time.\r\n */\r\n public acquisitionDate?: number;\r\n\r\n /**\r\n * The date at which this session ID was last reported.\r\n * This value should be updated whenever telemetry is sent using this ID.\r\n * Per the spec the ID will be regenerated if more than renewalSpan milliseconds elapse from this time with no activity.\r\n */\r\n public renewalDate?: number;\r\n}\r\n\r\nexport class _SessionManager {\r\n\r\n public static acquisitionSpan = 86400000; // 24 hours in ms\r\n public static renewalSpan = 1800000; // 30 minutes in ms\r\n public static cookieUpdateInterval = 60000 // 1 minute in ms\r\n private static cookieNameConst = 'ai_session';\r\n public automaticSession: Session;\r\n public config: ISessionConfig;\r\n\r\n private cookieUpdatedTimestamp: number;\r\n private _logger: IDiagnosticLogger;\r\n private _storageNamePrefix: () => string;\r\n\r\n constructor(config: ISessionConfig, logger?: IDiagnosticLogger) {\r\n if(CoreUtils.isNullOrUndefined(logger)) {\r\n this._logger = new DiagnosticLogger();\r\n } else {\r\n this._logger = logger;\r\n }\r\n\r\n if (!config) {\r\n config = ({} as any);\r\n }\r\n\r\n if (!(typeof config.sessionExpirationMs === \"function\")) {\r\n config.sessionExpirationMs = () => _SessionManager.acquisitionSpan;\r\n }\r\n\r\n if (!(typeof config.sessionRenewalMs === \"function\")) {\r\n config.sessionRenewalMs = () => _SessionManager.renewalSpan;\r\n }\r\n\r\n this.config = config;\r\n this._storageNamePrefix = () => this.config.namePrefix && this.config.namePrefix() ? _SessionManager.cookieNameConst + this.config.namePrefix() : _SessionManager.cookieNameConst;\r\n\r\n this.automaticSession = new Session();\r\n }\r\n\r\n public update() {\r\n if (!this.automaticSession.id) {\r\n this.initializeAutomaticSession();\r\n }\r\n\r\n const now = DateTimeUtils.Now();\r\n\r\n const acquisitionExpired = this.config.sessionExpirationMs() === 0 ? false : now - this.automaticSession.acquisitionDate > this.config.sessionExpirationMs();\r\n const renewalExpired = this.config.sessionExpirationMs() === 0 ? false : now - this.automaticSession.renewalDate > this.config.sessionRenewalMs();\r\n\r\n // renew if acquisitionSpan or renewalSpan has ellapsed\r\n if (acquisitionExpired || renewalExpired) {\r\n // update automaticSession so session state has correct id\r\n this.renew();\r\n } else {\r\n // do not update the cookie more often than cookieUpdateInterval\r\n if (!this.cookieUpdatedTimestamp || now - this.cookieUpdatedTimestamp > _SessionManager.cookieUpdateInterval) {\r\n this.automaticSession.renewalDate = now;\r\n this.setCookie(this.automaticSession.id, this.automaticSession.acquisitionDate, this.automaticSession.renewalDate);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Record the current state of the automatic session and store it in our cookie string format\r\n * into the browser's local storage. This is used to restore the session data when the cookie\r\n * expires.\r\n */\r\n public backup() {\r\n this.setStorage(this.automaticSession.id, this.automaticSession.acquisitionDate, this.automaticSession.renewalDate);\r\n }\r\n\r\n /**\r\n * Use config.namePrefix + ai_session cookie data or local storage data (when the cookie is unavailable) to\r\n * initialize the automatic session.\r\n */\r\n private initializeAutomaticSession() {\r\n const cookie = Util.getCookie(this._logger, this._storageNamePrefix());\r\n if (cookie && typeof cookie.split === \"function\") {\r\n this.initializeAutomaticSessionWithData(cookie);\r\n } else {\r\n // There's no cookie, but we might have session data in local storage\r\n // This can happen if the session expired or the user actively deleted the cookie\r\n // We only want to recover data if the cookie is missing from expiry. We should respect the user's wishes if the cookie was deleted actively.\r\n // The User class handles this for us and deletes our local storage object if the persistent user cookie was removed.\r\n const storage = Util.getStorage(this._logger, this._storageNamePrefix());\r\n if (storage) {\r\n this.initializeAutomaticSessionWithData(storage);\r\n }\r\n }\r\n\r\n if (!this.automaticSession.id) {\r\n this.renew();\r\n }\r\n }\r\n\r\n /**\r\n * Extract id, aquisitionDate, and renewalDate from an ai_session payload string and\r\n * use this data to initialize automaticSession.\r\n *\r\n * @param {string} sessionData - The string stored in an ai_session cookie or local storage backup\r\n */\r\n private initializeAutomaticSessionWithData(sessionData: string) {\r\n const params = sessionData.split(\"|\");\r\n\r\n if (params.length > 0) {\r\n this.automaticSession.id = params[0];\r\n }\r\n\r\n try {\r\n if (params.length > 1) {\r\n const acq = +params[1];\r\n this.automaticSession.acquisitionDate = +new Date(acq);\r\n this.automaticSession.acquisitionDate = this.automaticSession.acquisitionDate > 0 ? this.automaticSession.acquisitionDate : 0;\r\n }\r\n\r\n if (params.length > 2) {\r\n const renewal = +params[2];\r\n this.automaticSession.renewalDate = +new Date(renewal);\r\n this.automaticSession.renewalDate = this.automaticSession.renewalDate > 0 ? this.automaticSession.renewalDate : 0;\r\n }\r\n } catch (e) {\r\n this._logger.throwInternal(LoggingSeverity.CRITICAL,\r\n\r\n _InternalMessageId.ErrorParsingAISessionCookie,\r\n \"Error parsing ai_session cookie, session will be reset: \" + Util.getExceptionName(e),\r\n { exception: Util.dump(e) });\r\n }\r\n\r\n if (this.automaticSession.renewalDate === 0) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING,\r\n _InternalMessageId.SessionRenewalDateIsZero,\r\n \"AI session renewal date is 0, session will be reset.\");\r\n }\r\n }\r\n\r\n private renew() {\r\n const now = DateTimeUtils.Now();\r\n\r\n this.automaticSession.id = Util.newId();\r\n this.automaticSession.acquisitionDate = now;\r\n this.automaticSession.renewalDate = now;\r\n\r\n this.setCookie(this.automaticSession.id, this.automaticSession.acquisitionDate, this.automaticSession.renewalDate);\r\n\r\n // If this browser does not support local storage, fire an internal log to keep track of it at this point\r\n if (!Util.canUseLocalStorage()) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING,\r\n _InternalMessageId.BrowserDoesNotSupportLocalStorage,\r\n \"Browser does not support local storage. Session durations will be inaccurate.\");\r\n }\r\n }\r\n\r\n private setCookie(guid: string, acq: number, renewal: number) {\r\n // Set cookie to expire after the session expiry time passes or the session renewal deadline, whichever is sooner\r\n // Expiring the cookie will cause the session to expire even if the user isn't on the page\r\n const acquisitionExpiry = acq + this.config.sessionExpirationMs();\r\n const renewalExpiry = renewal + this.config.sessionRenewalMs();\r\n const cookieExpiry = new Date();\r\n const cookie = [guid, acq, renewal];\r\n\r\n if (acquisitionExpiry < renewalExpiry) {\r\n cookieExpiry.setTime(acquisitionExpiry);\r\n } else {\r\n cookieExpiry.setTime(renewalExpiry);\r\n }\r\n\r\n const cookieDomnain = this.config.cookieDomain ? this.config.cookieDomain() : null;\r\n\r\n // if sessionExpirationMs is set to 0, it means the expiry is set to 0 for this session cookie\r\n // A cookie with 0 expiry in the session cookie will never expire for that browser session. If the browser is closed the cookie expires. \r\n // Another browser instance does not inherit this cookie.\r\n const UTCString = this.config.sessionExpirationMs() === 0 ? '0' : cookieExpiry.toUTCString();\r\n Util.setCookie(this._logger, this._storageNamePrefix(), cookie.join('|') + ';expires=' + UTCString, cookieDomnain);\r\n\r\n this.cookieUpdatedTimestamp = DateTimeUtils.Now();\r\n }\r\n\r\n private setStorage(guid: string, acq: number, renewal: number) {\r\n // Keep data in local storage to retain the last session id, allowing us to cleanly end the session when it expires\r\n // Browsers that don't support local storage won't be able to end sessions cleanly from the client\r\n // The server will notice this and end the sessions itself, with loss of accurate session duration\r\n Util.setStorage(this._logger, this._storageNamePrefix(), [guid, acq, renewal].join('|'));\r\n }\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { IApplication } from '@microsoft/applicationinsights-common';\r\n\r\nexport class Application implements IApplication {\r\n /**\r\n * The application version.\r\n */\r\n public ver: string;\r\n\r\n /**\r\n * The application build version.\r\n */\r\n public build: string;\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { IDevice } from '@microsoft/applicationinsights-common';\r\n\r\nexport class Device implements IDevice {\r\n\r\n /**\r\n * The type for the current device.\r\n */\r\n public deviceClass: string;\r\n\r\n /**\r\n * A device unique ID.\r\n */\r\n public id: string;\r\n\r\n /**\r\n * The application screen resolution.\r\n */\r\n resolution: string;\r\n\r\n /**\r\n * The device model for the current device.\r\n */\r\n public model: string;\r\n\r\n /**\r\n * Device identifier known at instrumentation time\r\n */\r\n public localId: string;\r\n\r\n /**\r\n * Device identifier known at instrumentation time\r\n */\r\n public ip: string;\r\n\r\n /**\r\n * Constructs a new instance of the Device class\r\n */\r\n constructor() {\r\n // don't attempt to fingerprint browsers\r\n this.id = \"browser\";\r\n\r\n // Device type is a dimension in our data platform\r\n // Setting it to 'Browser' allows to separate client and server dependencies/exceptions\r\n this.deviceClass = \"Browser\";\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { IInternal } from '@microsoft/applicationinsights-common';\r\nimport { ITelemetryConfig } from '../Interfaces/ITelemetryConfig';\r\n\r\nconst Version = \"2.4.4\";\r\n\r\nexport class Internal implements IInternal {\r\n\r\n /**\r\n * The SDK version used to create this telemetry item.\r\n */\r\n public sdkVersion: string;\r\n\r\n /**\r\n * The SDK agent version.\r\n */\r\n public agentVersion: string;\r\n\r\n /**\r\n * Constructs a new instance of the internal telemetry data class.\r\n */\r\n constructor(config: ITelemetryConfig) {\r\n this.sdkVersion = (config.sdkExtension && config.sdkExtension() ? config.sdkExtension() + \"_\" : \"\") + \"javascript:\" + Version;\r\n }\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { ITelemetryConfig } from '../Interfaces/ITelemetryConfig';\r\nimport { Util, IUser } from '@microsoft/applicationinsights-common';\r\nimport { IDiagnosticLogger, _InternalMessageId, LoggingSeverity, CoreUtils } from '@microsoft/applicationinsights-core-js';\r\n\r\nexport class User implements IUser {\r\n\r\n static cookieSeparator: string = '|';\r\n static userCookieName: string = 'ai_user';\r\n static authUserCookieName: string = 'ai_authUser';\r\n\r\n /**\r\n * The telemetry configuration.\r\n */\r\n public config: ITelemetryConfig;\r\n\r\n /**\r\n * The user ID.\r\n */\r\n public id: string;\r\n\r\n /**\r\n * Authenticated user id\r\n */\r\n public authenticatedId: string;\r\n\r\n /**\r\n * The localId\r\n */\r\n public localId: string;\r\n\r\n /**\r\n * The account ID.\r\n */\r\n public accountId: string;\r\n\r\n /**\r\n * The account acquisition date.\r\n */\r\n public accountAcquisitionDate: string;\r\n\r\n public isNewUser = false;\r\n\r\n private _logger: IDiagnosticLogger;\r\n\r\n constructor(config: ITelemetryConfig, logger: IDiagnosticLogger) {\r\n this._logger = logger;\r\n\r\n // get userId or create new one if none exists\r\n const cookie = Util.getCookie(this._logger, User.userCookieName);\r\n if (cookie) {\r\n this.isNewUser = false;\r\n const params = cookie.split(User.cookieSeparator);\r\n if (params.length > 0) {\r\n this.id = params[0];\r\n }\r\n }\r\n\r\n this.config = config;\r\n\r\n if (!this.id) {\r\n this.id = Util.newId();\r\n const date = new Date();\r\n const acqStr = CoreUtils.toISOString(date);\r\n this.accountAcquisitionDate = acqStr;\r\n this.isNewUser = true;\r\n // without expiration, cookies expire at the end of the session\r\n // set it to 365 days from now\r\n // 365 * 24 * 60 * 60 * 1000 = 31536000000 \r\n date.setTime(date.getTime() + 31536000000);\r\n const newCookie = [this.id, acqStr];\r\n const cookieDomain = this.config.cookieDomain ? this.config.cookieDomain() : undefined;\r\n\r\n Util.setCookie(this._logger, User.userCookieName, newCookie.join(User.cookieSeparator) + ';expires=' + date.toUTCString(), cookieDomain);\r\n\r\n // If we have an config.namePrefix() + ai_session in local storage this means the user actively removed our cookies.\r\n // We should respect their wishes and clear ourselves from local storage\r\n const name = config.namePrefix && config.namePrefix() ? config.namePrefix() + 'ai_session' : 'ai_session';\r\n Util.removeStorage(this._logger, name);\r\n }\r\n\r\n // We still take the account id from the ctor param for backward compatibility. \r\n // But if the the customer set the accountId through the newer setAuthenticatedUserContext API, we will override it.\r\n this.accountId = config.accountId ? config.accountId() : undefined;\r\n\r\n // Get the auth user id and account id from the cookie if exists\r\n // Cookie is in the pattern: |\r\n let authCookie = Util.getCookie(this._logger, User.authUserCookieName);\r\n if (authCookie) {\r\n authCookie = decodeURI(authCookie);\r\n const authCookieString = authCookie.split(User.cookieSeparator);\r\n if (authCookieString[0]) {\r\n this.authenticatedId = authCookieString[0];\r\n }\r\n if (authCookieString.length > 1 && authCookieString[1]) {\r\n this.accountId = authCookieString[1];\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Sets the authenticated user id and the account id in this session.\r\n * \r\n * @param authenticatedUserId {string} - The authenticated user id. A unique and persistent string that represents each authenticated user in the service.\r\n * @param accountId {string} - An optional string to represent the account associated with the authenticated user.\r\n */\r\n public setAuthenticatedUserContext(authenticatedUserId: string, accountId?: string, storeInCookie = false) {\r\n\r\n // Validate inputs to ensure no cookie control characters.\r\n const isInvalidInput = !this.validateUserInput(authenticatedUserId) || (accountId && !this.validateUserInput(accountId));\r\n if (isInvalidInput) {\r\n this._logger.throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.SetAuthContextFailedAccountName,\r\n \"Setting auth user context failed. \" +\r\n \"User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars.\",\r\n true);\r\n return;\r\n }\r\n\r\n // Create cookie string.\r\n this.authenticatedId = authenticatedUserId;\r\n let authCookie = this.authenticatedId;\r\n if (accountId) {\r\n this.accountId = accountId;\r\n authCookie = [this.authenticatedId, this.accountId].join(User.cookieSeparator);\r\n }\r\n\r\n if (storeInCookie) {\r\n // Set the cookie. No expiration date because this is a session cookie (expires when browser closed).\r\n // Encoding the cookie to handle unexpected unicode characters.\r\n Util.setCookie(this._logger, User.authUserCookieName, encodeURI(authCookie), this.config.cookieDomain());\r\n }\r\n }\r\n\r\n /**\r\n * Clears the authenticated user id and the account id from the user context.\r\n * @returns {} \r\n */\r\n public clearAuthenticatedUserContext() {\r\n this.authenticatedId = null;\r\n this.accountId = null;\r\n Util.deleteCookie(this._logger, User.authUserCookieName);\r\n }\r\n\r\n private validateUserInput(id: string): boolean {\r\n // Validate:\r\n // 1. Id is a non-empty string.\r\n // 2. It does not contain special characters for cookies.\r\n if (typeof id !== 'string' ||\r\n !id ||\r\n id.match(/,|;|=| |\\|/)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { ILocation } from '@microsoft/applicationinsights-common';\r\n\r\nexport class Location implements ILocation {\r\n\r\n /**\r\n * Client IP address for reverse lookup\r\n */\r\n public ip: string;\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { Util, ITelemetryTrace, ITraceState } from '@microsoft/applicationinsights-common';\r\nimport { getLocation } from '@microsoft/applicationinsights-core-js';\r\n\r\nexport class TelemetryTrace implements ITelemetryTrace {\r\n\r\n public traceID: string;\r\n public parentID: string;\r\n public traceState: ITraceState;\r\n public name: string;\r\n\r\n constructor(id?: string, parentId?: string, name?: string) {\r\n this.traceID = id || Util.generateW3CId();\r\n this.parentID = parentId;\r\n this.name = name;\r\n let location = getLocation();\r\n if (!name && location && location.pathname) {\r\n this.name = location.pathname;\r\n }\r\n }\r\n}","/**\r\n * PropertiesPlugin.ts\r\n * @copyright Microsoft 2018\r\n */\r\n\r\nimport { ITelemetryItem, IProcessTelemetryContext, IDiagnosticLogger, CoreUtils, hasWindow } from '@microsoft/applicationinsights-core-js';\r\nimport { Session, _SessionManager } from './Context/Session';\r\nimport { Extensions, ITelemetryContext, IOperatingSystem, ITelemetryTrace, IWeb, SampleRate, CtxTagKeys } from '@microsoft/applicationinsights-common';\r\nimport { Application } from './Context/Application';\r\nimport { Device } from './Context/Device';\r\nimport { Internal } from './Context/Internal';\r\nimport { User } from './Context/User';\r\nimport { Location } from './Context/Location';\r\nimport { ITelemetryConfig } from './Interfaces/ITelemetryConfig';\r\nimport { TelemetryTrace } from './Context/TelemetryTrace';\r\n\r\nexport class TelemetryContext implements ITelemetryContext {\r\n\r\n public application: Application; // The object describing a component tracked by this object - legacy\r\n public device: Device; // The object describing a device tracked by this object.\r\n public location: Location; // The object describing a location tracked by this object -legacy\r\n public telemetryTrace: TelemetryTrace; // The object describing a operation tracked by this object.\r\n public user: User; // The object describing a user tracked by this object.\r\n public internal: Internal; // legacy\r\n public session: Session; // The object describing a session tracked by this object.\r\n public sessionManager: _SessionManager; // The session manager that manages session on the base of cookies.\r\n public os: IOperatingSystem;\r\n public web: IWeb;\r\n public appId: () => string;\r\n\r\n constructor(logger: IDiagnosticLogger, defaultConfig: ITelemetryConfig) {\r\n if (hasWindow()) {\r\n this.sessionManager = new _SessionManager(defaultConfig, logger);\r\n this.application = new Application();\r\n this.device = new Device();\r\n this.internal = new Internal(defaultConfig);\r\n this.location = new Location();\r\n this.user = new User(defaultConfig, logger);\r\n this.telemetryTrace = new TelemetryTrace();\r\n this.session = new Session();\r\n }\r\n this.appId = () => null;\r\n }\r\n\r\n public applySessionContext(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n const sessionContext = this.session || (this.sessionManager && this.sessionManager.automaticSession);\r\n if (sessionContext) {\r\n if (typeof sessionContext.id === \"string\") {\r\n event.ext.app.sesId = sessionContext.id;\r\n }\r\n }\r\n\r\n if (this.session) {\r\n // If customer set session info, apply his context; otherwise apply context automatically generated\r\n if (typeof this.session.id === \"string\") {\r\n event.ext.app.sesId = this.session.id;\r\n } else {\r\n event.ext.app.sesId = this.sessionManager.automaticSession.id;\r\n }\r\n }\r\n }\r\n\r\n public applyOperatingSystemContxt(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n if (this.os && this.os.name) {\r\n event.ext.os = this.os;\r\n }\r\n }\r\n\r\n public applyApplicationContext(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n if (this.application) {\r\n\r\n if (typeof this.application.ver === \"string\") {\r\n event.tags[CtxTagKeys.applicationVersion] = this.application.ver;\r\n }\r\n if (typeof this.application.build === \"string\") {\r\n event.tags[CtxTagKeys.applicationBuild] = this.application.build;\r\n }\r\n }\r\n }\r\n\r\n public applyDeviceContext(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n\r\n if (this.device) {\r\n if (typeof this.device.id === \"string\") {\r\n event.ext.device.localId = this.device.id;\r\n }\r\n\r\n if (typeof this.device.ip === \"string\") {\r\n event.ext.device.ip = this.device.ip;\r\n }\r\n\r\n if (typeof this.device.model === \"string\") {\r\n event.ext.device.model = this.device.model;\r\n }\r\n\r\n if (typeof this.device.deviceClass === \"string\") {\r\n event.ext.device.deviceClass = this.device.deviceClass;\r\n }\r\n }\r\n }\r\n\r\n public applyInternalContext(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n if (this.internal) {\r\n if (typeof this.internal.agentVersion === \"string\") {\r\n event.tags[CtxTagKeys.internalAgentVersion] = this.internal.agentVersion; // not mapped in CS 4.0\r\n }\r\n if (typeof this.internal.sdkVersion === \"string\") {\r\n event.tags[CtxTagKeys.internalSdkVersion] = this.internal.sdkVersion;\r\n }\r\n }\r\n }\r\n\r\n public applyLocationContext(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n if (this.location) {\r\n if (typeof this.location.ip === \"string\") {\r\n event.tags[CtxTagKeys.locationIp] = this.location.ip;\r\n }\r\n }\r\n }\r\n\r\n public applyOperationContext(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n if (this.telemetryTrace) {\r\n const trace = event.ext.trace || ({traceID: undefined, parentID: undefined} as ITelemetryTrace);\r\n if (typeof this.telemetryTrace.traceID === \"string\") {\r\n trace.traceID = this.telemetryTrace.traceID;\r\n }\r\n\r\n if (typeof this.telemetryTrace.name === \"string\") {\r\n trace.name = this.telemetryTrace.name;\r\n }\r\n\r\n if (typeof this.telemetryTrace.parentID === \"string\") {\r\n trace.parentID = this.telemetryTrace.parentID;\r\n }\r\n\r\n event.ext.trace = trace;\r\n }\r\n }\r\n\r\n public applyWebContext(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n if (this.web) {\r\n event.ext.web = event.ext.web || {};\r\n event.ext.web = this.web;\r\n }\r\n }\r\n\r\n public applyUserContext(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n if (this.user) {\r\n if (!event.tags) {\r\n event.tags = [];\r\n }\r\n\r\n // stays in tags\r\n if (typeof this.user.accountId === \"string\") {\r\n const item = {};\r\n event.tags[CtxTagKeys.userAccountId] = this.user.accountId;\r\n }\r\n\r\n // CS 4.0\r\n if (typeof this.user.id === \"string\") {\r\n event.ext.user.id = this.user.id;\r\n }\r\n\r\n if (typeof this.user.authenticatedId === \"string\") {\r\n event.ext.user.authId = this.user.authenticatedId;\r\n }\r\n }\r\n }\r\n\r\n public cleanUp(event:ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n if (event.ext[Extensions.DeviceExt] && CoreUtils.objKeys(event.ext[Extensions.DeviceExt]).length === 0) {\r\n delete event.ext[Extensions.DeviceExt];\r\n }\r\n if (event.ext[Extensions.UserExt] && CoreUtils.objKeys(event.ext[Extensions.UserExt]).length === 0) {\r\n delete event.ext[Extensions.UserExt];\r\n }\r\n if (event.ext[Extensions.WebExt] && CoreUtils.objKeys(event.ext[Extensions.WebExt]).length === 0) {\r\n delete event.ext[Extensions.WebExt];\r\n }\r\n if (event.ext[Extensions.OSExt] && CoreUtils.objKeys(event.ext[Extensions.OSExt]).length === 0) {\r\n delete event.ext[Extensions.OSExt];\r\n }\r\n if (event.ext[Extensions.AppExt] && CoreUtils.objKeys(event.ext[Extensions.AppExt]).length === 0) {\r\n delete event.ext[Extensions.AppExt];\r\n }\r\n if (event.ext[Extensions.TraceExt] && CoreUtils.objKeys(event.ext[Extensions.TraceExt]).length === 0) {\r\n delete event.ext[Extensions.TraceExt];\r\n }\r\n }\r\n}","/**\r\n * PropertiesPlugin.ts\r\n * @copyright Microsoft 2018\r\n */\r\n\r\nimport {\r\n BaseTelemetryPlugin, IConfiguration, CoreUtils,\r\n IAppInsightsCore, IPlugin, ITelemetryItem, IProcessTelemetryContext, _InternalLogMessage, LoggingSeverity, _InternalMessageId, getNavigator,\r\n ITelemetryPluginChain \r\n} from '@microsoft/applicationinsights-core-js';\r\nimport { TelemetryContext } from './TelemetryContext';\r\nimport { PageView, ConfigurationManager,\r\n IConfig, BreezeChannelIdentifier, PropertiesPluginIdentifier, IPropertiesPlugin, Extensions, Util } from '@microsoft/applicationinsights-common';\r\nimport { ITelemetryConfig } from './Interfaces/ITelemetryConfig';\r\n\r\nexport default class PropertiesPlugin extends BaseTelemetryPlugin implements IPropertiesPlugin {\r\n\r\n public static getDefaultConfig(): ITelemetryConfig {\r\n const defaultConfig: ITelemetryConfig = {\r\n instrumentationKey: () => undefined,\r\n accountId: () => null,\r\n sessionRenewalMs: () => 30 * 60 * 1000,\r\n samplingPercentage: () => 100,\r\n sessionExpirationMs: () => 24 * 60 * 60 * 1000,\r\n cookieDomain: () => null,\r\n sdkExtension: () => null,\r\n isBrowserLinkTrackingEnabled: () => false,\r\n appId: () => null,\r\n namePrefix: () => undefined\r\n }\r\n return defaultConfig;\r\n }\r\n public context: TelemetryContext;\r\n\r\n public priority = 110;\r\n public identifier = PropertiesPluginIdentifier;\r\n private _breezeChannel: IPlugin; // optional. If exists, grab appId from it\r\n\r\n private _extensionConfig: ITelemetryConfig;\r\n\r\n initialize(config: IConfiguration & IConfig, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?:ITelemetryPluginChain) {\r\n super.initialize(config, core, extensions, pluginChain);\r\n let ctx = this._getTelCtx();\r\n let identifier = this.identifier;\r\n const defaultConfig: ITelemetryConfig = PropertiesPlugin.getDefaultConfig();\r\n this._extensionConfig = this._extensionConfig || PropertiesPlugin.getDefaultConfig();\r\n for (const field in defaultConfig) {\r\n this._extensionConfig[field] = () => ctx.getConfig(identifier, field, defaultConfig[field]());\r\n }\r\n\r\n this.context = new TelemetryContext(core.logger, this._extensionConfig);\r\n this._breezeChannel = Util.getExtension(extensions, BreezeChannelIdentifier);\r\n this.context.appId = () => this._breezeChannel ? this._breezeChannel[\"_appId\"] : null;\r\n }\r\n\r\n /**\r\n * Add Part A fields to the event\r\n * @param event The event that needs to be processed\r\n */\r\n processTelemetry(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n if (CoreUtils.isNullOrUndefined(event)) {\r\n // TODO(barustum): throw an internal event once we have support for internal logging\r\n } else {\r\n itemCtx = this._getTelCtx(itemCtx);\r\n // If the envelope is PageView, reset the internal message count so that we can send internal telemetry for the new page.\r\n if (event.name === PageView.envelopeType) {\r\n itemCtx.diagLog().resetInternalMessageCount();\r\n }\r\n\r\n if (this.context.session) {\r\n // If customer did not provide custom session id update the session manager\r\n if (typeof this.context.session.id !== \"string\") {\r\n this.context.sessionManager.update();\r\n }\r\n }\r\n\r\n this._processTelemetryInternal(event, itemCtx);\r\n\r\n if (this.context && this.context.user && this.context.user.isNewUser) {\r\n this.context.user.isNewUser = false;\r\n const message = new _InternalLogMessage(_InternalMessageId.SendBrowserInfoOnUserInit, ((getNavigator()||{} as any).userAgent||\"\"));\r\n itemCtx.diagLog().logInternalMessage(LoggingSeverity.CRITICAL, message);\r\n }\r\n\r\n this.processNext(event, itemCtx);\r\n }\r\n }\r\n\r\n private _processTelemetryInternal(event: ITelemetryItem, itemCtx: IProcessTelemetryContext) {\r\n // set part A fields\r\n if (!event.tags) {\r\n event.tags = [];\r\n }\r\n\r\n if (!event.ext) {\r\n event.ext = {};\r\n }\r\n\r\n let ext = event.ext;\r\n ext[Extensions.DeviceExt] = ext[Extensions.DeviceExt] || {};\r\n ext[Extensions.WebExt] = ext[Extensions.WebExt] || {};\r\n ext[Extensions.UserExt] = ext[Extensions.UserExt] || {};\r\n ext[Extensions.OSExt] = ext[Extensions.OSExt] || {};\r\n ext[Extensions.AppExt] = ext[Extensions.AppExt] || {};\r\n ext[Extensions.TraceExt] = ext[Extensions.TraceExt] || {};\r\n\r\n let context = this.context;\r\n context.applySessionContext(event, itemCtx);\r\n context.applyApplicationContext(event, itemCtx);\r\n context.applyDeviceContext(event, itemCtx);\r\n context.applyOperationContext(event, itemCtx);\r\n context.applyUserContext(event, itemCtx);\r\n context.applyOperatingSystemContxt(event, itemCtx);\r\n context.applyWebContext(event, itemCtx);\r\n\r\n context.applyLocationContext(event, itemCtx); // legacy tags\r\n context.applyInternalContext(event, itemCtx); // legacy tags\r\n context.cleanUp(event, itemCtx);\r\n }\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { DataSanitizer, UrlHelper, DateTimeUtils } from '@microsoft/applicationinsights-common';\r\nimport { IDiagnosticLogger } from '@microsoft/applicationinsights-core-js';\r\n\r\nexport class XHRMonitoringState {\r\n public openDone: boolean = false;\r\n public setRequestHeaderDone: boolean = false;\r\n public sendDone: boolean = false;\r\n public abortDone: boolean = false;\r\n\r\n // True, if onreadyStateChangeCallback function attached to xhr, otherwise false\r\n public onreadystatechangeCallbackAttached = false;\r\n}\r\n\r\nexport class ajaxRecord {\r\n public completed = false;\r\n public requestHeadersSize = null;\r\n public requestHeaders = null;\r\n public ttfb = null;\r\n public responseReceivingDuration = null;\r\n public callbackDuration = null;\r\n public ajaxTotalDuration = null;\r\n public aborted = null;\r\n public pageUrl = null;\r\n public requestUrl = null;\r\n public requestSize = 0;\r\n public method = null;\r\n\r\n /// Returns the HTTP status code.\r\n public status = null;\r\n\r\n // The timestamp when open method was invoked\r\n public requestSentTime = null;\r\n\r\n // The timestamps when first byte was received\r\n public responseStartedTime = null;\r\n\r\n // The timestamp when last byte was received\r\n public responseFinishedTime = null;\r\n\r\n // The timestamp when onreadystatechange callback in readyState 4 finished\r\n public callbackFinishedTime = null;\r\n\r\n // The timestamp at which ajax was ended\r\n public endTime = null;\r\n\r\n // The original xhr onreadystatechange event\r\n public originalOnreadystatechage = null;\r\n\r\n public xhrMonitoringState: XHRMonitoringState = new XHRMonitoringState();\r\n\r\n // Determines whether or not JavaScript exception occured in xhr.onreadystatechange code. 1 if occured, otherwise 0.\r\n public clientFailure = 0;\r\n\r\n\r\n public traceID: string;\r\n public spanID: string;\r\n\r\n private _logger: IDiagnosticLogger;\r\n\r\n constructor(traceID: string, spanID: string, logger: IDiagnosticLogger) {\r\n this.traceID = traceID;\r\n this.spanID = spanID;\r\n this._logger = logger;\r\n }\r\n\r\n public getAbsoluteUrl() {\r\n return this.requestUrl ? UrlHelper.getAbsoluteUrl(this.requestUrl) : null;\r\n }\r\n\r\n public getPathName() {\r\n return this.requestUrl ? DataSanitizer.sanitizeUrl(this._logger, UrlHelper.getCompleteUrl(this.method, this.requestUrl)) : null;\r\n }\r\n\r\n public CalculateMetrics = function () {\r\n const self = this;\r\n // round to 3 decimal points\r\n self.ajaxTotalDuration = Math.round(DateTimeUtils.GetDuration(self.requestSentTime, self.responseFinishedTime) * 1000) / 1000;\r\n }\r\n};\r\n\r\n","import { Util } from '@microsoft/applicationinsights-common';\r\n\r\nexport class Traceparent {\r\n\r\n public static isValidTraceId(id: string): boolean {\r\n return id.match(/^[0-9a-f]{32}$/) && id !== \"00000000000000000000000000000000\";\r\n }\r\n\r\n public static isValidSpanId(id: string): boolean {\r\n return id.match(/^[0-9a-f]{16}$/) && id !== \"0000000000000000\";\r\n }\r\n private static DEFAULT_TRACE_FLAG = \"01\";\r\n private static DEFAULT_VERSION = \"00\";\r\n public spanId: string;\r\n public traceFlag: string = Traceparent.DEFAULT_TRACE_FLAG;\r\n public traceId: string;\r\n public version: string = Traceparent.DEFAULT_VERSION;\r\n\r\n constructor(traceId?: string, spanId?: string) {\r\n if (traceId && Traceparent.isValidTraceId(traceId)) {\r\n this.traceId = traceId;\r\n } else {\r\n this.traceId = Util.generateW3CId();\r\n }\r\n if (spanId && Traceparent.isValidSpanId(spanId)) {\r\n this.spanId = spanId;\r\n } else {\r\n this.spanId = Util.generateW3CId().substr(0, 16);\r\n }\r\n }\r\n\r\n public toString(): string {\r\n return `${this.version}-${this.traceId}-${this.spanId}-${this.traceFlag}`;\r\n }\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport {\r\n RequestHeaders, Util, CorrelationIdHelper, TelemetryItemCreator, ICorrelationConfig,\r\n RemoteDependencyData, DateTimeUtils, DisabledPropertyName, Data, IDependencyTelemetry,\r\n IConfig, ConfigurationManager, ITelemetryContext, PropertiesPluginIdentifier, IPropertiesPlugin, DistributedTracingModes\r\n} from '@microsoft/applicationinsights-common';\r\nimport {\r\n CoreUtils, LoggingSeverity, _InternalMessageId,\r\n IAppInsightsCore, BaseTelemetryPlugin, ITelemetryPluginChain, IConfiguration, IPlugin, ITelemetryItem, IProcessTelemetryContext,\r\n getLocation, getGlobal\r\n} from '@microsoft/applicationinsights-core-js';\r\nimport { ajaxRecord } from './ajaxRecord';\r\nimport { EventHelper } from './ajaxUtils';\r\nimport { Traceparent } from './TraceParent';\r\n\r\nlet _isNullOrUndefined = CoreUtils.isNullOrUndefined;\r\n\r\nexport interface XMLHttpRequestInstrumented extends XMLHttpRequest {\r\n ajaxData: ajaxRecord;\r\n}\r\n\r\nexport interface IDependenciesPlugin {\r\n trackDependencyData(dependency: IDependencyTelemetry);\r\n}\r\n\r\nexport interface IInstrumentationRequirements extends IDependenciesPlugin {\r\n includeCorrelationHeaders: (ajaxData: ajaxRecord, input?: Request | string, init?: RequestInit, xhr?: XMLHttpRequestInstrumented) => any;\r\n}\r\n\r\nexport class AjaxMonitor extends BaseTelemetryPlugin implements IDependenciesPlugin, IInstrumentationRequirements {\r\n\r\n public static identifier: string = \"AjaxDependencyPlugin\";\r\n\r\n public static getDefaultConfig(): ICorrelationConfig {\r\n const config: ICorrelationConfig = {\r\n maxAjaxCallsPerView: 500,\r\n disableAjaxTracking: false,\r\n disableFetchTracking: true,\r\n disableCorrelationHeaders: false,\r\n distributedTracingMode: DistributedTracingModes.AI,\r\n correlationHeaderExcludedDomains: [\r\n \"*.blob.core.windows.net\",\r\n \"*.blob.core.chinacloudapi.cn\",\r\n \"*.blob.core.cloudapi.de\",\r\n \"*.blob.core.usgovcloudapi.net\"],\r\n correlationHeaderDomains: undefined,\r\n appId: undefined,\r\n enableCorsCorrelation: false,\r\n enableRequestHeaderTracking: false,\r\n enableResponseHeaderTracking: false,\r\n enableAjaxErrorStatusText: false\r\n }\r\n return config;\r\n }\r\n\r\n public static getEmptyConfig(): ICorrelationConfig {\r\n return {\r\n maxAjaxCallsPerView: undefined,\r\n disableAjaxTracking: undefined,\r\n disableFetchTracking: undefined,\r\n disableCorrelationHeaders: undefined,\r\n distributedTracingMode: undefined,\r\n correlationHeaderExcludedDomains: undefined,\r\n appId: undefined,\r\n enableCorsCorrelation: undefined,\r\n correlationHeaderDomains: undefined,\r\n enableRequestHeaderTracking: undefined,\r\n enableResponseHeaderTracking: undefined,\r\n enableAjaxErrorStatusText: undefined\r\n }\r\n }\r\n\r\n private static getFailedAjaxDiagnosticsMessage(xhr: XMLHttpRequestInstrumented): string {\r\n let result = \"\";\r\n try {\r\n if (!_isNullOrUndefined(xhr) &&\r\n !_isNullOrUndefined(xhr.ajaxData) &&\r\n !_isNullOrUndefined(xhr.ajaxData.requestUrl)) {\r\n result += \"(url: '\" + xhr.ajaxData.requestUrl + \"')\";\r\n }\r\n } catch (e) { }\r\n\r\n return result;\r\n }\r\n public identifier: string = AjaxMonitor.identifier;\r\n\r\n priority: number = 120;\r\n protected initialized: boolean; // ajax monitoring initialized\r\n protected _fetchInitialized: boolean; // fetch monitoring initialized\r\n protected _config: ICorrelationConfig = AjaxMonitor.getEmptyConfig();\r\n protected _trackAjaxAttempts: number = 0;\r\n private currentWindowHost: string;\r\n private _context?: ITelemetryContext;\r\n private _isUsingW3CHeaders: boolean;\r\n private _isUsingAIHeaders: boolean;\r\n\r\n constructor() {\r\n super();\r\n let location = getLocation();\r\n this.currentWindowHost = location && location.host && location.host.toLowerCase();\r\n this.initialized = false;\r\n this._fetchInitialized = false;\r\n }\r\n\r\n trackDependencyData(dependency: IDependencyTelemetry, properties?: { [key: string]: any }) {\r\n this.trackDependencyDataInternal(dependency, properties);\r\n }\r\n\r\n public processTelemetry(item: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n this.processNext(item, itemCtx);\r\n }\r\n\r\n public includeCorrelationHeaders(ajaxData: ajaxRecord, input?: Request | string, init?: RequestInit, xhr?: XMLHttpRequestInstrumented): any {\r\n let _self = this;\r\n if (input) { // Fetch\r\n if (CorrelationIdHelper.canIncludeCorrelationHeader(_self._config, ajaxData.getAbsoluteUrl(), _self.currentWindowHost)) {\r\n if (!init) {\r\n init = {};\r\n }\r\n // init headers override original request headers\r\n // so, if they exist use only them, otherwise use request's because they should have been applied in the first place\r\n // not using original request headers will result in them being lost\r\n init.headers = new Headers(init.headers || (input instanceof Request ? (input.headers || {}) : {}));\r\n if (_self._isUsingAIHeaders) {\r\n const id = \"|\" + ajaxData.traceID + \".\" + ajaxData.spanID;\r\n init.headers.set(RequestHeaders.requestIdHeader, id);\r\n if (_self._config.enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.requestIdHeader] = id;\r\n }\r\n }\r\n const appId: string = _self._config.appId ||(_self._context && _self._context.appId());\r\n if (appId) {\r\n init.headers.set(RequestHeaders.requestContextHeader, RequestHeaders.requestContextAppIdFormat + appId);\r\n if (_self._config.enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.requestContextHeader] = RequestHeaders.requestContextAppIdFormat + appId;\r\n }\r\n }\r\n if (_self._isUsingW3CHeaders) {\r\n const traceparent = new Traceparent(ajaxData.traceID, ajaxData.spanID);\r\n init.headers.set(RequestHeaders.traceParentHeader, traceparent.toString());\r\n if (_self._config.enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.traceParentHeader] = traceparent.toString();\r\n }\r\n }\r\n return init;\r\n }\r\n return init;\r\n } else if (xhr) { // XHR\r\n if (CorrelationIdHelper.canIncludeCorrelationHeader(_self._config, xhr.ajaxData.getAbsoluteUrl(),\r\n _self.currentWindowHost)) {\r\n if (_self._isUsingAIHeaders) {\r\n const id = \"|\" + xhr.ajaxData.traceID + \".\" + xhr.ajaxData.spanID;\r\n xhr.setRequestHeader(RequestHeaders.requestIdHeader, id);\r\n if (_self._config.enableRequestHeaderTracking) {\r\n xhr.ajaxData.requestHeaders[RequestHeaders.requestIdHeader] = id;\r\n }\r\n }\r\n const appId = _self._config.appId || (_self._context && _self._context.appId());\r\n if (appId) {\r\n xhr.setRequestHeader(RequestHeaders.requestContextHeader, RequestHeaders.requestContextAppIdFormat + appId);\r\n if (_self._config.enableRequestHeaderTracking) {\r\n xhr.ajaxData.requestHeaders[RequestHeaders.requestContextHeader] = RequestHeaders.requestContextAppIdFormat + appId;\r\n }\r\n }\r\n if (_self._isUsingW3CHeaders) {\r\n const traceparent = new Traceparent(xhr.ajaxData.traceID, xhr.ajaxData.spanID);\r\n xhr.setRequestHeader(RequestHeaders.traceParentHeader, traceparent.toString());\r\n if (_self._config.enableRequestHeaderTracking) {\r\n xhr.ajaxData.requestHeaders[RequestHeaders.traceParentHeader] = traceparent.toString();\r\n }\r\n }\r\n }\r\n\r\n return xhr;\r\n }\r\n return undefined;\r\n }\r\n\r\n public initialize(config: IConfiguration & IConfig, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?:ITelemetryPluginChain) {\r\n let _self = this;\r\n super.initialize(config, core, extensions, pluginChain);\r\n let ctx = _self._getTelCtx();\r\n if (!_self.initialized && !_self._fetchInitialized) {\r\n const defaultConfig = AjaxMonitor.getDefaultConfig();\r\n for (const field in defaultConfig) {\r\n _self._config[field] = ctx.getConfig(AjaxMonitor.identifier, field, defaultConfig[field]);\r\n }\r\n\r\n _self._isUsingAIHeaders = _self._config.distributedTracingMode === DistributedTracingModes.AI || _self._config.distributedTracingMode === DistributedTracingModes.AI_AND_W3C;\r\n _self._isUsingW3CHeaders = _self._config.distributedTracingMode === DistributedTracingModes.AI_AND_W3C || _self._config.distributedTracingMode === DistributedTracingModes.W3C;\r\n\r\n if (_self._config.disableAjaxTracking === false) {\r\n _self.instrumentXhr();\r\n }\r\n\r\n if (_self._config.disableFetchTracking === false) {\r\n _self.instrumentFetch();\r\n }\r\n\r\n if (extensions.length > 0 && extensions) {\r\n let propExt, extIx = 0;\r\n while (!propExt && extIx < extensions.length) {\r\n if (extensions[extIx] && extensions[extIx].identifier === PropertiesPluginIdentifier) {\r\n propExt = extensions[extIx]\r\n }\r\n extIx++;\r\n }\r\n if (propExt) {\r\n _self._context = propExt.context; // we could move IPropertiesPlugin to common as well\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Logs dependency call\r\n * @param dependencyData dependency data object\r\n */\r\n protected trackDependencyDataInternal(dependency: IDependencyTelemetry, properties?: { [key: string]: any }, systemProperties?: { [key: string]: any }) {\r\n let _self = this;\r\n if (_self._config.maxAjaxCallsPerView === -1 || _self._trackAjaxAttempts < _self._config.maxAjaxCallsPerView) {\r\n const item = TelemetryItemCreator.create(\r\n dependency,\r\n RemoteDependencyData.dataType,\r\n RemoteDependencyData.envelopeType,\r\n _self.diagLog(),\r\n properties,\r\n systemProperties);\r\n\r\n _self.core.track(item);\r\n } else if (_self._trackAjaxAttempts === _self._config.maxAjaxCallsPerView) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL,\r\n _InternalMessageId.MaxAjaxPerPVExceeded,\r\n \"Maximum ajax per page view limit reached, ajax monitoring is paused until the next trackPageView(). In order to increase the limit set the maxAjaxCallsPerView configuration parameter.\",\r\n true);\r\n }\r\n\r\n ++_self._trackAjaxAttempts;\r\n }\r\n\r\n // Fetch Stuff\r\n protected instrumentFetch(): void {\r\n let _self = this;\r\n if (!_self.supportsFetch() || _self._fetchInitialized) {\r\n return;\r\n }\r\n\r\n // Getting the global instance tp support web workers (which don't have window)\r\n let global = getGlobal();\r\n const originalFetch: (input?: Request | string, init?: RequestInit) => Promise = global.fetch;\r\n const fetchMonitorInstance: AjaxMonitor = _self;\r\n global.fetch = function fetch(input?: Request | string, init?: RequestInit): Promise {\r\n let fetchData: ajaxRecord;\r\n if (fetchMonitorInstance.isFetchInstrumented(input) && fetchMonitorInstance.isMonitoredInstance(undefined, undefined, input, init)) {\r\n try {\r\n fetchData = fetchMonitorInstance.createFetchRecord(input, init);\r\n init = fetchMonitorInstance.includeCorrelationHeaders(fetchData, input, init);\r\n } catch (e) {\r\n fetchMonitorInstance.diagLog().throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.FailedMonitorAjaxOpen,\r\n \"Failed to monitor Window.fetch, monitoring data for this fetch call may be incorrect.\",\r\n {\r\n ajaxDiagnosticsMessage: _self.getFailedFetchDiagnosticsMessage(input),\r\n exception: Util.dump(e)\r\n });\r\n }\r\n }\r\n return originalFetch(input, init)\r\n .then(response => {\r\n fetchMonitorInstance.onFetchComplete(response, fetchData);\r\n return response;\r\n })\r\n .catch(reason => {\r\n fetchMonitorInstance.onFetchFailed(input, fetchData, reason);\r\n throw reason;\r\n });\r\n }\r\n _self._fetchInitialized = true;\r\n }\r\n\r\n protected instrumentXhr() {\r\n let _self = this;\r\n if (_self.supportsAjaxMonitoring() && !_self.initialized) {\r\n _self.instrumentOpen();\r\n _self.instrumentSend();\r\n _self.instrumentAbort();\r\n _self.instrumentSetRequestHeader();\r\n _self.initialized = true;\r\n }\r\n }\r\n\r\n /// Verifies that particalar instance of XMLHttpRequest needs to be monitored\r\n /// Optional parameter. True if ajaxData must be excluded from verification\r\n /// True if instance needs to be monitored, otherwise false\r\n private isMonitoredInstance(xhr?: XMLHttpRequestInstrumented, excludeAjaxDataValidation?: boolean, request?: Request | string, init?: RequestInit): boolean {\r\n\r\n let disabledProperty = false;\r\n let ajaxValidation = true;\r\n let initialized = false;\r\n if (typeof request !== 'undefined') { // fetch\r\n initialized = this._fetchInitialized;\r\n // Look for DisabledPropertyName in either Request or RequestInit\r\n disabledProperty = (typeof request === 'object' ? request[DisabledPropertyName] === true : false) ||\r\n (init ? init[DisabledPropertyName] === true : false);\r\n } else if (typeof xhr !== 'undefined') {\r\n initialized = this.initialized;\r\n disabledProperty = xhr[DisabledPropertyName] === true;\r\n ajaxValidation = excludeAjaxDataValidation === true || !_isNullOrUndefined(xhr.ajaxData);\r\n }\r\n\r\n // checking to see that all interested functions on xhr were instrumented\r\n return initialized\r\n\r\n // checking on ajaxData to see that it was not removed in user code\r\n && ajaxValidation\r\n\r\n // check that this instance is not not used by ajax call performed inside client side monitoring to send data to collector\r\n && !disabledProperty;\r\n\r\n }\r\n\r\n /// Determines whether ajax monitoring can be enabled on this document\r\n /// True if Ajax monitoring is supported on this page, otherwise false\r\n private supportsAjaxMonitoring(): boolean {\r\n let result = true;\r\n\r\n if (typeof XMLHttpRequest === 'undefined' ||\r\n _isNullOrUndefined(XMLHttpRequest) ||\r\n _isNullOrUndefined(XMLHttpRequest.prototype) ||\r\n _isNullOrUndefined(XMLHttpRequest.prototype.open) ||\r\n _isNullOrUndefined(XMLHttpRequest.prototype.send) ||\r\n _isNullOrUndefined(XMLHttpRequest.prototype.abort)) {\r\n result = false;\r\n }\r\n\r\n // disable in IE8 or older (https://www.w3schools.com/jsref/jsref_trim_string.asp)\r\n try {\r\n \" a \".trim();\r\n } catch (ex) {\r\n result = false;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private instrumentOpen() {\r\n const originalOpen = XMLHttpRequest.prototype.open;\r\n const ajaxMonitorInstance = this;\r\n XMLHttpRequest.prototype.open = function (method:string, url:string, async?:boolean) {\r\n let funcThis = this;\r\n try {\r\n if (ajaxMonitorInstance.isMonitoredInstance(funcThis, true) &&\r\n (\r\n !(funcThis as XMLHttpRequestInstrumented).ajaxData ||\r\n !(funcThis as XMLHttpRequestInstrumented).ajaxData.xhrMonitoringState.openDone\r\n )) {\r\n ajaxMonitorInstance.openHandler(funcThis, method, url, async);\r\n }\r\n } catch (e) {\r\n ajaxMonitorInstance.diagLog().throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.FailedMonitorAjaxOpen,\r\n \"Failed to monitor XMLHttpRequest.open, monitoring data for this ajax call may be incorrect.\",\r\n {\r\n ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(funcThis),\r\n exception: Util.dump(e)\r\n });\r\n }\r\n\r\n return originalOpen.apply(funcThis, arguments);\r\n };\r\n }\r\n\r\n private openHandler(xhr: XMLHttpRequestInstrumented, method, url, async) {\r\n let _self = this;\r\n const traceID = (_self._context && _self._context.telemetryTrace && _self._context.telemetryTrace.traceID) || Util.generateW3CId();\r\n const spanID = Util.generateW3CId().substr(0, 16);\r\n\r\n const ajaxData = new ajaxRecord(traceID, spanID, _self.diagLog());\r\n ajaxData.method = method;\r\n ajaxData.requestUrl = url;\r\n ajaxData.xhrMonitoringState.openDone = true;\r\n ajaxData.requestHeaders = {};\r\n xhr.ajaxData = ajaxData;\r\n\r\n _self.attachToOnReadyStateChange(xhr);\r\n }\r\n\r\n private instrumentSend() {\r\n const originalSend = XMLHttpRequest.prototype.send;\r\n const ajaxMonitorInstance = this;\r\n XMLHttpRequest.prototype.send = function (content) {\r\n let funcThis = this;\r\n try {\r\n if (ajaxMonitorInstance.isMonitoredInstance(funcThis) && !(funcThis as XMLHttpRequestInstrumented).ajaxData.xhrMonitoringState.sendDone) {\r\n ajaxMonitorInstance.sendHandler(funcThis, content);\r\n }\r\n } catch (e) {\r\n ajaxMonitorInstance.diagLog().throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.FailedMonitorAjaxSend,\r\n \"Failed to monitor XMLHttpRequest, monitoring data for this ajax call may be incorrect.\",\r\n {\r\n ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(funcThis),\r\n exception: Util.dump(e)\r\n });\r\n }\r\n\r\n return originalSend.apply(funcThis, arguments);\r\n };\r\n }\r\n\r\n private sendHandler(xhr: XMLHttpRequestInstrumented, content) {\r\n xhr.ajaxData.requestSentTime = DateTimeUtils.Now();\r\n xhr = this.includeCorrelationHeaders(xhr.ajaxData, undefined, undefined, xhr);\r\n xhr.ajaxData.xhrMonitoringState.sendDone = true;\r\n }\r\n\r\n private instrumentAbort() {\r\n const originalAbort = XMLHttpRequest.prototype.abort;\r\n const ajaxMonitorInstance = this;\r\n XMLHttpRequest.prototype.abort = function () {\r\n let funcThis = this;\r\n try {\r\n if (ajaxMonitorInstance.isMonitoredInstance(funcThis) && !(funcThis as XMLHttpRequestInstrumented).ajaxData.xhrMonitoringState.abortDone) {\r\n (funcThis as XMLHttpRequestInstrumented).ajaxData.aborted = 1;\r\n (funcThis as XMLHttpRequestInstrumented).ajaxData.xhrMonitoringState.abortDone = true;\r\n }\r\n } catch (e) {\r\n ajaxMonitorInstance.diagLog().throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.FailedMonitorAjaxAbort,\r\n \"Failed to monitor XMLHttpRequest.abort, monitoring data for this ajax call may be incorrect.\",\r\n {\r\n ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(funcThis),\r\n exception: Util.dump(e)\r\n });\r\n }\r\n\r\n return originalAbort.apply(funcThis, arguments);\r\n };\r\n }\r\n\r\n private instrumentSetRequestHeader() {\r\n if (!this._config.enableRequestHeaderTracking) {\r\n return;\r\n }\r\n const originalSetRequestHeader = XMLHttpRequest.prototype.setRequestHeader;\r\n const ajaxMonitorInstance = this;\r\n XMLHttpRequest.prototype.setRequestHeader = function (header, value) {\r\n let funcThis = this;\r\n try {\r\n if (ajaxMonitorInstance.isMonitoredInstance(funcThis)) {\r\n funcThis.ajaxData.requestHeaders[header] = value;\r\n }\r\n } catch (e) {\r\n ajaxMonitorInstance.diagLog().throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.FailedMonitorAjaxSetRequestHeader,\r\n \"Failed to monitor XMLHttpRequest.setRequestHeader, monitoring data for this ajax call may be incorrect.\",\r\n {\r\n ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(funcThis),\r\n exception: Util.dump(e)\r\n });\r\n }\r\n\r\n return originalSetRequestHeader.apply(funcThis, arguments);\r\n }\r\n }\r\n\r\n private attachToOnReadyStateChange(xhr: XMLHttpRequestInstrumented) {\r\n const ajaxMonitorInstance = this;\r\n xhr.ajaxData.xhrMonitoringState.onreadystatechangeCallbackAttached = EventHelper.Attach(xhr, \"readystatechange\", () => {\r\n try {\r\n if (ajaxMonitorInstance.isMonitoredInstance(xhr)) {\r\n if (xhr.readyState === 4) {\r\n ajaxMonitorInstance.onAjaxComplete(xhr);\r\n }\r\n }\r\n } catch (e) {\r\n const exceptionText = Util.dump(e);\r\n\r\n // ignore messages with c00c023f, as this a known IE9 XHR abort issue\r\n if (!exceptionText || exceptionText.toLowerCase().indexOf(\"c00c023f\") === -1) {\r\n ajaxMonitorInstance.diagLog().throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.FailedMonitorAjaxRSC,\r\n \"Failed to monitor XMLHttpRequest 'readystatechange' event handler, monitoring data for this ajax call may be incorrect.\",\r\n {\r\n ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(xhr),\r\n exception: Util.dump(e)\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n private onAjaxComplete(xhr: XMLHttpRequestInstrumented) {\r\n let _self = this;\r\n xhr.ajaxData.responseFinishedTime = DateTimeUtils.Now();\r\n xhr.ajaxData.status = xhr.status;\r\n xhr.ajaxData.CalculateMetrics();\r\n\r\n if (xhr.ajaxData.ajaxTotalDuration < 0) {\r\n _self.diagLog().throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.FailedMonitorAjaxDur,\r\n \"Failed to calculate the duration of the ajax call, monitoring data for this ajax call won't be sent.\",\r\n {\r\n ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(xhr),\r\n requestSentTime: xhr.ajaxData.requestSentTime,\r\n responseFinishedTime: xhr.ajaxData.responseFinishedTime\r\n });\r\n } else {\r\n const dependency = {\r\n id: \"|\" + xhr.ajaxData.traceID + \".\" + xhr.ajaxData.spanID,\r\n target: xhr.ajaxData.getAbsoluteUrl(),\r\n name: xhr.ajaxData.getPathName(),\r\n type: \"Ajax\",\r\n duration: xhr.ajaxData.ajaxTotalDuration,\r\n success: (+(xhr.ajaxData.status)) >= 200 && (+(xhr.ajaxData.status)) < 400,\r\n responseCode: +xhr.ajaxData.status,\r\n method: xhr.ajaxData.method\r\n } as IDependencyTelemetry;\r\n\r\n // enrich dependency target with correlation context from the server\r\n const correlationContext = _self.getAjaxCorrelationContext(xhr);\r\n if (correlationContext) {\r\n dependency.correlationContext = /* dependency.target + \" | \" + */ correlationContext;\r\n }\r\n\r\n if (_self._config.enableRequestHeaderTracking) {\r\n if (CoreUtils.objKeys(xhr.ajaxData.requestHeaders).length > 0) {\r\n dependency.properties = dependency.properties || {};\r\n dependency.properties.requestHeaders = {};\r\n dependency.properties.requestHeaders = xhr.ajaxData.requestHeaders;\r\n }\r\n }\r\n\r\n if (_self._config.enableResponseHeaderTracking) {\r\n const headers = xhr.getAllResponseHeaders();\r\n if (headers) {\r\n // xhr.getAllResponseHeaders() method returns all the response headers, separated by CRLF, as a string or null\r\n // the regex converts the header string into an array of individual headers\r\n const arr = headers.trim().split(/[\\r\\n]+/);\r\n const responseHeaderMap = {};\r\n CoreUtils.arrForEach(arr, (line) => {\r\n const parts = line.split(': ');\r\n const header = parts.shift();\r\n const value = parts.join(': ');\r\n responseHeaderMap[header] = value;\r\n });\r\n if (CoreUtils.objKeys(responseHeaderMap).length > 0) {\r\n dependency.properties = dependency.properties || {};\r\n dependency.properties.responseHeaders = {};\r\n dependency.properties.responseHeaders = responseHeaderMap;\r\n }\r\n }\r\n }\r\n\r\n if (_self._config.enableAjaxErrorStatusText && xhr.status >= 400) {\r\n dependency.properties = dependency.properties || {};\r\n dependency.properties.responseText = xhr.statusText + \" - \" + xhr.responseText;\r\n }\r\n\r\n _self.trackDependencyDataInternal(dependency);\r\n\r\n xhr.ajaxData = null;\r\n }\r\n }\r\n\r\n private getAjaxCorrelationContext(xhr: XMLHttpRequestInstrumented) {\r\n try {\r\n const responseHeadersString = xhr.getAllResponseHeaders();\r\n if (responseHeadersString !== null) {\r\n const index = responseHeadersString.toLowerCase().indexOf(RequestHeaders.requestContextHeaderLowerCase);\r\n if (index !== -1) {\r\n const responseHeader = xhr.getResponseHeader(RequestHeaders.requestContextHeader);\r\n return CorrelationIdHelper.getCorrelationContext(responseHeader);\r\n }\r\n }\r\n } catch (e) {\r\n this.diagLog().throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.FailedMonitorAjaxGetCorrelationHeader,\r\n \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\",\r\n {\r\n ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(xhr),\r\n exception: Util.dump(e)\r\n });\r\n }\r\n }\r\n\r\n private isFetchInstrumented(input: Request | string): boolean {\r\n return this._fetchInitialized && input[DisabledPropertyName] !== true;\r\n }\r\n\r\n private supportsFetch(): boolean {\r\n let result: boolean = true;\r\n let _global = getGlobal();\r\n if (!_global || _isNullOrUndefined((_global as any).Request) ||\r\n _isNullOrUndefined((_global as any).Request.prototype) ||\r\n _isNullOrUndefined(_global.fetch)) {\r\n result = false;\r\n }\r\n return result;\r\n }\r\n\r\n private createFetchRecord(input?: Request | string, init?: RequestInit): ajaxRecord {\r\n let _self = this;\r\n const traceID = (_self._context && _self._context.telemetryTrace && _self._context.telemetryTrace.traceID) || Util.generateW3CId();\r\n const spanID = Util.generateW3CId().substr(0, 16);\r\n\r\n const ajaxData = new ajaxRecord(traceID, spanID, _self.diagLog());\r\n ajaxData.requestSentTime = DateTimeUtils.Now();\r\n\r\n if (input instanceof Request) {\r\n ajaxData.requestUrl = input ? input.url : \"\";\r\n } else {\r\n ajaxData.requestUrl = input;\r\n }\r\n\r\n if (init && init.method) {\r\n ajaxData.method = init.method;\r\n } else if (input && input instanceof Request) {\r\n ajaxData.method = input.method;\r\n } else {\r\n ajaxData.method = \"GET\";\r\n }\r\n\r\n if (init && init.headers && _self._config.enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders = init.headers;\r\n } else {\r\n ajaxData.requestHeaders = {};\r\n }\r\n return ajaxData;\r\n }\r\n\r\n private getFailedFetchDiagnosticsMessage(input: Request | Response | string): string {\r\n let result: string = \"\";\r\n try {\r\n if (!_isNullOrUndefined(input)) {\r\n if (typeof (input) === \"string\") {\r\n result += `(url: '${input}')`;\r\n } else {\r\n result += `(url: '${input.url}')`;\r\n }\r\n }\r\n } catch (e) {\r\n this.diagLog().throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.FailedMonitorAjaxOpen,\r\n \"Failed to grab failed fetch diagnostics message\",\r\n { exception: Util.dump(e) }\r\n );\r\n }\r\n return result;\r\n }\r\n\r\n private onFetchComplete(response: Response, ajaxData: ajaxRecord): void {\r\n let _self = this;\r\n if (!ajaxData) {\r\n return;\r\n }\r\n try {\r\n ajaxData.responseFinishedTime = DateTimeUtils.Now();\r\n ajaxData.CalculateMetrics();\r\n\r\n if (ajaxData.ajaxTotalDuration < 0) {\r\n _self.diagLog().throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.FailedMonitorAjaxDur,\r\n \"Failed to calculate the duration of the fetch call, monitoring data for this fetch call won't be sent.\",\r\n {\r\n fetchDiagnosticsMessage: _self.getFailedFetchDiagnosticsMessage(response),\r\n requestSentTime: ajaxData.requestSentTime,\r\n responseFinishedTime: ajaxData.responseFinishedTime\r\n });\r\n } else {\r\n const dependency: IDependencyTelemetry = {\r\n id: \"|\" + ajaxData.traceID + \".\" + ajaxData.spanID,\r\n target: ajaxData.getAbsoluteUrl(),\r\n name: ajaxData.getPathName(),\r\n type: \"Fetch\",\r\n duration: ajaxData.ajaxTotalDuration,\r\n success: response.status >= 200 && response.status < 400,\r\n responseCode: response.status,\r\n properties: { HttpMethod: ajaxData.method }\r\n };\r\n\r\n // enrich dependency target with correlation context from the server\r\n const correlationContext: string = _self.getFetchCorrelationContext(response);\r\n if (correlationContext) {\r\n dependency.correlationContext = correlationContext;\r\n }\r\n\r\n if (_self._config.enableRequestHeaderTracking) {\r\n if (CoreUtils.objKeys(ajaxData.requestHeaders).length > 0) {\r\n dependency.properties = dependency.properties || {};\r\n dependency.properties.requestHeaders = ajaxData.requestHeaders;\r\n }\r\n }\r\n\r\n if (_self._config.enableResponseHeaderTracking) {\r\n const responseHeaderMap = {};\r\n response.headers.forEach((value, name) => {\r\n responseHeaderMap[name] = value;\r\n });\r\n if (CoreUtils.objKeys(responseHeaderMap).length > 0) {\r\n dependency.properties = dependency.properties || {};\r\n dependency.properties.responseHeaders = responseHeaderMap;\r\n }\r\n }\r\n _self.trackDependencyDataInternal(dependency);\r\n }\r\n } catch (e) {\r\n _self.diagLog().throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.FailedMonitorAjaxGetCorrelationHeader,\r\n \"Failed to calculate the duration of the fetch call, monitoring data for this fetch call won't be sent.\",\r\n {\r\n fetchDiagnosticsMessage: _self.getFailedFetchDiagnosticsMessage(response),\r\n exception: Util.dump(e)\r\n }\r\n );\r\n }\r\n }\r\n\r\n private onFetchFailed(input: Request | string, ajaxData: ajaxRecord, reason: any): void {\r\n let _self = this;\r\n if (!ajaxData) {\r\n return;\r\n }\r\n try {\r\n ajaxData.responseFinishedTime = DateTimeUtils.Now();\r\n ajaxData.CalculateMetrics();\r\n\r\n if (ajaxData.ajaxTotalDuration < 0) {\r\n _self.diagLog().throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.FailedMonitorAjaxDur,\r\n \"Failed to calculate the duration of the failed fetch call, monitoring data for this fetch call won't be sent.\",\r\n {\r\n fetchDiagnosticsMessage: _self.getFailedFetchDiagnosticsMessage(input),\r\n requestSentTime: ajaxData.requestSentTime,\r\n responseFinishedTime: ajaxData.responseFinishedTime\r\n });\r\n } else {\r\n const dependency: IDependencyTelemetry = {\r\n id: \"|\" + ajaxData.traceID + \".\" + ajaxData.spanID,\r\n target: ajaxData.getAbsoluteUrl(),\r\n name: ajaxData.getPathName(),\r\n type: \"Fetch\",\r\n duration: ajaxData.ajaxTotalDuration,\r\n success: false,\r\n responseCode: 0,\r\n properties: { HttpMethod: ajaxData.method }\r\n };\r\n\r\n _self.trackDependencyDataInternal(dependency, { error: reason.message });\r\n }\r\n } catch (e) {\r\n _self.diagLog().throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.FailedMonitorAjaxGetCorrelationHeader,\r\n \"Failed to calculate the duration of the failed fetch call, monitoring data for this fetch call won't be sent.\",\r\n {\r\n fetchDiagnosticsMessage: _self.getFailedFetchDiagnosticsMessage(input),\r\n exception: Util.dump(e)\r\n });\r\n }\r\n }\r\n\r\n private getFetchCorrelationContext(response: Response): string {\r\n try {\r\n const responseHeader: string = response.headers.get(RequestHeaders.requestContextHeader);\r\n return CorrelationIdHelper.getCorrelationContext(responseHeader);\r\n } catch (e) {\r\n this.diagLog().throwInternal(\r\n LoggingSeverity.WARNING,\r\n _InternalMessageId.FailedMonitorAjaxGetCorrelationHeader,\r\n \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\",\r\n {\r\n fetchDiagnosticsMessage: this.getFailedFetchDiagnosticsMessage(response),\r\n exception: Util.dump(e)\r\n });\r\n }\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { CoreUtils, IConfiguration, AppInsightsCore, IAppInsightsCore, LoggingSeverity, _InternalMessageId, ITelemetryItem, ICustomProperties, IChannelControls, EventHelper, hasWindow, hasDocument } from \"@microsoft/applicationinsights-core-js\";\r\nimport { ApplicationInsights } from \"@microsoft/applicationinsights-analytics-js\";\r\nimport { Sender } from \"@microsoft/applicationinsights-channel-js\";\r\nimport { PropertiesPlugin, TelemetryContext } from \"@microsoft/applicationinsights-properties-js\";\r\nimport { AjaxPlugin as DependenciesPlugin, IDependenciesPlugin } from '@microsoft/applicationinsights-dependencies-js';\r\nimport * as Common from \"@microsoft/applicationinsights-common\"\r\n\r\n\"use strict\";\r\n\r\n/**\r\n *\r\n * @export\r\n * @interface Snippet\r\n */\r\nexport interface Snippet {\r\n config: IConfiguration & Common.IConfig;\r\n queue?: Array<() => void>;\r\n version?: number;\r\n}\r\n\r\nexport interface IApplicationInsights extends Common.IAppInsights, IDependenciesPlugin, Common.IPropertiesPlugin {\r\n appInsights: ApplicationInsights;\r\n flush: (async?: boolean) => void;\r\n onunloadFlush: (async?: boolean) => void;\r\n};\r\n\r\n/**\r\n * Telemetry type classes, e.g. PageView, Exception, etc\r\n */\r\nexport const Telemetry = Common;\r\n\r\n/**\r\n * Application Insights API\r\n * @class Initialization\r\n * @implements {IApplicationInsights}\r\n */\r\nexport class Initialization implements IApplicationInsights {\r\n public snippet: Snippet;\r\n public config: IConfiguration & Common.IConfig;\r\n public appInsights: ApplicationInsights;\r\n public core: IAppInsightsCore;\r\n public context: TelemetryContext;\r\n\r\n private dependencies: DependenciesPlugin;\r\n private properties: PropertiesPlugin;\r\n\r\n constructor(snippet: Snippet) {\r\n // initialize the queue and config in case they are undefined\r\n snippet.queue = snippet.queue || [];\r\n snippet.version = snippet.version || 2.0; // Default to new version\r\n let config: IConfiguration & Common.IConfig = snippet.config || ({} as any);\r\n\r\n if (config.connectionString) {\r\n const cs = Common.ConnectionStringParser.parse(config.connectionString);\r\n const ingest = cs.ingestionendpoint;\r\n config.endpointUrl = ingest ? `${ingest}/v2/track` : config.endpointUrl; // only add /v2/track when from connectionstring\r\n config.instrumentationKey = cs.instrumentationkey || config.instrumentationKey;\r\n }\r\n\r\n this.appInsights = new ApplicationInsights();\r\n\r\n this.properties = new PropertiesPlugin();\r\n this.dependencies = new DependenciesPlugin();\r\n this.core = new AppInsightsCore();\r\n\r\n this.snippet = snippet;\r\n this.config = config;\r\n this.getSKUDefaults();\r\n }\r\n\r\n // Analytics Plugin\r\n /**\r\n * Log a user action or other occurrence.\r\n * @param {IEventTelemetry} event\r\n * @param {ICustomProperties} [customProperties]\r\n * @memberof Initialization\r\n */\r\n public trackEvent(event: Common.IEventTelemetry, customProperties?: ICustomProperties) {\r\n this.appInsights.trackEvent(event, customProperties);\r\n }\r\n\r\n /**\r\n * Logs that a page, or similar container was displayed to the user.\r\n * @param {IPageViewTelemetry} pageView\r\n * @memberof Initialization\r\n */\r\n public trackPageView(pageView?: Common.IPageViewTelemetry) {\r\n const inPv = pageView || {};\r\n this.appInsights.trackPageView(inPv);\r\n }\r\n\r\n /**\r\n * Log a bag of performance information via the customProperties field.\r\n * @param {IPageViewPerformanceTelemetry} pageViewPerformance\r\n * @memberof Initialization\r\n */\r\n public trackPageViewPerformance(pageViewPerformance: Common.IPageViewPerformanceTelemetry): void {\r\n const inPvp = pageViewPerformance || {};\r\n this.appInsights.trackPageViewPerformance(inPvp);\r\n }\r\n\r\n /**\r\n * Log an exception that you have caught.\r\n * @param {IExceptionTelemetry} exception\r\n * @memberof Initialization\r\n */\r\n public trackException(exception: Common.IExceptionTelemetry): void {\r\n if (!exception.exception && (exception as any).error) {\r\n exception.exception = (exception as any).error;\r\n }\r\n this.appInsights.trackException(exception);\r\n }\r\n\r\n /**\r\n * Manually send uncaught exception telemetry. This method is automatically triggered\r\n * on a window.onerror event.\r\n * @param {IAutoExceptionTelemetry} exception\r\n * @memberof Initialization\r\n */\r\n public _onerror(exception: Common.IAutoExceptionTelemetry): void {\r\n this.appInsights._onerror(exception);\r\n }\r\n\r\n /**\r\n * Log a diagnostic scenario such entering or leaving a function.\r\n * @param {ITraceTelemetry} trace\r\n * @param {ICustomProperties} [customProperties]\r\n * @memberof Initialization\r\n */\r\n public trackTrace(trace: Common.ITraceTelemetry, customProperties?: ICustomProperties): void {\r\n this.appInsights.trackTrace(trace, customProperties);\r\n }\r\n\r\n /**\r\n * Log a numeric value that is not associated with a specific event. Typically used\r\n * to send regular reports of performance indicators.\r\n *\r\n * To send a single measurement, just use the `name` and `average` fields\r\n * of {@link IMetricTelemetry}.\r\n *\r\n * If you take measurements frequently, you can reduce the telemetry bandwidth by\r\n * aggregating multiple measurements and sending the resulting average and modifying\r\n * the `sampleCount` field of {@link IMetricTelemetry}.\r\n * @param {IMetricTelemetry} metric input object argument. Only `name` and `average` are mandatory.\r\n * @param {ICustomProperties} [customProperties]\r\n * @memberof Initialization\r\n */\r\n public trackMetric(metric: Common.IMetricTelemetry, customProperties?: ICustomProperties): void {\r\n this.appInsights.trackMetric(metric, customProperties);\r\n }\r\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\r\n public startTrackPage(name?: string): void {\r\n this.appInsights.startTrackPage(name);\r\n }\r\n\r\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n public stopTrackPage(name?: string, url?: string, customProperties?: { [key: string]: any; }, measurements?: { [key: string]: number; }) {\r\n this.appInsights.stopTrackPage(name, url, customProperties, measurements);\r\n }\r\n\r\n public startTrackEvent(name?: string): void {\r\n this.appInsights.startTrackEvent(name);\r\n }\r\n\r\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n public stopTrackEvent(name: string, properties?: { [key: string]: string; }, measurements?: { [key: string]: number; }) {\r\n this.appInsights.stopTrackEvent(name, properties, measurements); // Todo: Fix to pass measurements once type is updated\r\n }\r\n\r\n public addTelemetryInitializer(telemetryInitializer: (item: ITelemetryItem) => boolean | void) {\r\n return this.appInsights.addTelemetryInitializer(telemetryInitializer);\r\n }\r\n\r\n // Properties Plugin\r\n\r\n /**\r\n * Set the authenticated user id and the account id. Used for identifying a specific signed-in user. Parameters must not contain whitespace or ,;=|\r\n *\r\n * The method will only set the `authenicatedUserId` and `accountId` in the curent page view. To set them for the whole sesion, you should set `storeInCookie = true`\r\n * @param {string} authenticatedUserId\r\n * @param {string} [accountId]\r\n * @param {boolean} [storeInCookie=false]\r\n * @memberof Initialization\r\n */\r\n public setAuthenticatedUserContext(authenticatedUserId: string, accountId?: string, storeInCookie = false): void {\r\n this.properties.context.user.setAuthenticatedUserContext(authenticatedUserId, accountId, storeInCookie);\r\n }\r\n\r\n /**\r\n * Clears the authenticated user id and account id. The associated cookie is cleared, if present.\r\n * @memberof Initialization\r\n */\r\n public clearAuthenticatedUserContext(): void {\r\n this.properties.context.user.clearAuthenticatedUserContext();\r\n }\r\n\r\n // Dependencies Plugin\r\n\r\n /**\r\n * Log a dependency call (e.g. ajax)\r\n * @param {IDependencyTelemetry} dependency\r\n * @memberof Initialization\r\n */\r\n public trackDependencyData(dependency: Common.IDependencyTelemetry): void {\r\n this.dependencies.trackDependencyData(dependency);\r\n }\r\n\r\n // Misc\r\n\r\n /**\r\n * Manually trigger an immediate send of all telemetry still in the buffer.\r\n * @param {boolean} [async=true]\r\n * @memberof Initialization\r\n */\r\n public flush(async: boolean = true) {\r\n CoreUtils.arrForEach(this.core.getTransmissionControls(), channels => {\r\n CoreUtils.arrForEach(channels, channel => {\r\n channel.flush(async);\r\n })\r\n })\r\n }\r\n\r\n /**\r\n * Manually trigger an immediate send of all telemetry still in the buffer using beacon Sender.\r\n * Fall back to xhr sender if beacon is not supported.\r\n * @param {boolean} [async=true]\r\n * @memberof Initialization\r\n */\r\n public onunloadFlush(async: boolean = true) {\r\n CoreUtils.arrForEach(this.core.getTransmissionControls(), channels => {\r\n CoreUtils.arrForEach(channels, (channel: IChannelControls & Sender) => {\r\n if (channel.onunloadFlush) {\r\n channel.onunloadFlush();\r\n } else {\r\n channel.flush(async);\r\n }\r\n })\r\n })\r\n }\r\n\r\n /**\r\n * Initialize this instance of ApplicationInsights\r\n * @returns {IApplicationInsights}\r\n * @memberof Initialization\r\n */\r\n public loadAppInsights(legacyMode: boolean = false): IApplicationInsights {\r\n let _this = this;\r\n\r\n // dont allow additional channels/other extensions for legacy mode; legacy mode is only to allow users to switch with no code changes!\r\n if (legacyMode && _this.config.extensions && _this.config.extensions.length > 0) {\r\n throw new Error(\"Extensions not allowed in legacy mode\");\r\n }\r\n\r\n const extensions = [];\r\n const appInsightsChannel: Sender = new Sender();\r\n\r\n extensions.push(appInsightsChannel);\r\n extensions.push(_this.properties);\r\n extensions.push(_this.dependencies);\r\n extensions.push(_this.appInsights);\r\n\r\n // initialize core\r\n _this.core.initialize(_this.config, extensions);\r\n\r\n // Empty queue of all api calls logged prior to sdk download\r\n _this.emptyQueue();\r\n _this.pollInternalLogs();\r\n _this.addHousekeepingBeforeUnload(this);\r\n _this.context = _this.properties.context;\r\n\r\n return _this;\r\n }\r\n\r\n /**\r\n * Overwrite the lazy loaded fields of global window snippet to contain the\r\n * actual initialized API methods\r\n * @param {Snippet} snippet\r\n * @memberof Initialization\r\n */\r\n public updateSnippetDefinitions(snippet: Snippet) {\r\n // apply full appInsights to the global instance\r\n // Note: This must be called before loadAppInsights is called\r\n for (const field in this) {\r\n if (CoreUtils.isString(field)) {\r\n snippet[field as string] = this[field];\r\n }\r\n }\r\n\r\n }\r\n\r\n /**\r\n * Call any functions that were queued before the main script was loaded\r\n * @memberof Initialization\r\n */\r\n public emptyQueue() {\r\n let _this = this;\r\n // call functions that were queued before the main script was loaded\r\n try {\r\n if (Common.Util.isArray(_this.snippet.queue)) {\r\n // note: do not check length in the for-loop conditional in case something goes wrong and the stub methods are not overridden.\r\n const length = _this.snippet.queue.length;\r\n for (let i = 0; i < length; i++) {\r\n const call = _this.snippet.queue[i];\r\n call();\r\n }\r\n\r\n _this.snippet.queue = undefined;\r\n delete _this.snippet.queue;\r\n }\r\n } catch (exception) {\r\n const properties: any = {};\r\n if (exception && CoreUtils.isFunction(exception.toString)) {\r\n properties.exception = exception.toString();\r\n }\r\n\r\n // need from core\r\n // Microsoft.ApplicationInsights._InternalLogging.throwInternal(\r\n // LoggingSeverity.WARNING,\r\n // _InternalMessageId.FailedToSendQueuedTelemetry,\r\n // \"Failed to send queued telemetry\",\r\n // properties);\r\n }\r\n }\r\n\r\n public pollInternalLogs(): void {\r\n this.core.pollInternalLogs();\r\n }\r\n\r\n public addHousekeepingBeforeUnload(appInsightsInstance: IApplicationInsights): void {\r\n // Add callback to push events when the user navigates away\r\n\r\n if (hasWindow() || hasDocument()) {\r\n const performHousekeeping = () => {\r\n // Adds the ability to flush all data before the page unloads.\r\n // Note: This approach tries to push a sync request with all the pending events onbeforeunload.\r\n // Firefox does not respect this.Other browsers DO push out the call with < 100% hit rate.\r\n // Telemetry here will help us analyze how effective this approach is.\r\n // Another approach would be to make this call sync with a acceptable timeout to reduce the\r\n // impact on user experience.\r\n\r\n // appInsightsInstance.context._sender.triggerSend();\r\n appInsightsInstance.onunloadFlush(false);\r\n\r\n // Back up the current session to local storage\r\n // This lets us close expired sessions after the cookies themselves expire\r\n const ext = appInsightsInstance.appInsights.core['_extensions'][Common.PropertiesPluginIdentifier];\r\n if (ext && ext.context && ext.context._sessionManager) {\r\n ext.context._sessionManager.backup();\r\n }\r\n };\r\n\r\n if (!appInsightsInstance.appInsights.config.disableFlushOnBeforeUnload) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigations.\r\n let added = CoreUtils.addEventHandler('beforeunload', performHousekeeping);\r\n added = CoreUtils.addEventHandler('pagehide', performHousekeeping) || added;\r\n if (!added) {\r\n appInsightsInstance.appInsights.core.logger.throwInternal(\r\n LoggingSeverity.CRITICAL,\r\n _InternalMessageId.FailedToAddHandlerForOnBeforeUnload,\r\n 'Could not add handler for beforeunload and pagehide');\r\n }\r\n }\r\n\r\n // We also need to hook the pagehide event as not all versions of Safari support load/unload events.\r\n if (!appInsightsInstance.appInsights.config.disableFlushOnUnload) {\r\n // Not adding any telemetry as pagehide as it's not supported on all browsers\r\n CoreUtils.addEventHandler('pagehide', performHousekeeping);\r\n }\r\n }\r\n }\r\n\r\n private getSKUDefaults() {\r\n let _this = this;\r\n _this.config.diagnosticLogInterval =\r\n _this.config.diagnosticLogInterval && _this.config.diagnosticLogInterval > 0 ? _this.config.diagnosticLogInterval : 10000;\r\n }\r\n}\r\n"],"sourceRoot":""}