{"version":3,"sources":["../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../../src/utils/validation.ts","../../src/create-custom-action.ts","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/xstate/es/actions.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/classnames/index.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/components/connectAdvanced.js","../node_modules/react-redux/es/utils/shallowEqual.js","../node_modules/react-redux/es/connect/wrapMapToProps.js","../node_modules/react-redux/es/connect/mapDispatchToProps.js","../node_modules/react-redux/es/utils/bindActionCreators.js","../node_modules/react-redux/es/connect/mapStateToProps.js","../node_modules/react-redux/es/connect/mergeProps.js","../node_modules/react-redux/es/connect/selectorFactory.js","../node_modules/react-redux/es/connect/connect.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/index.js","../node_modules/xstate/es/utils.js","../node_modules/prop-types/index.js","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/xstate/es/_virtual/_tslib.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/dayjs/dayjs.min.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/reselect/es/index.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/redux/es/redux.js","../../src/index.ts","../../src/Channel.ts","../../src/tools/all.ts","../../node_modules/babel-plugin-transform-async-to-promises/helpers.js","../../src/tools/takeEvery.ts","../../src/tools/take.ts","../../src/createSagaMiddleware.ts","../../src/typedTools.ts","../../src/common.js","../../src/scope.js","../../src/es5.js","../../src/proxy.js","../../src/patches.js","../../src/immer.js","../../src/index.js","../node_modules/webrtc-client-janus/dist/webrtc-client-janus.esm.js","../node_modules/xstate/es/types.js","../node_modules/xstate/es/actionTypes.js","../../modules/createNamedContext.js","../../modules/HistoryContext.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/hooks.js","../../src/action.ts","../../src/create-action.ts","../../src/get-type.ts","../../src/deprecated/create-custom-action.ts","../../src/deprecated/index.ts","../../src/deprecated/create-action.ts","../../src/deprecated/create-standard-action.ts","../../src/create-async-action.ts","../../src/create-reducer.ts","../../src/is-action-of.ts","../../src/is-of-type.ts","../../src/cache/util/isStringOrNumber.js","../../src/cache/FlatObjectCache.js","../../src/createCachedSelector.js","../../src/createStructuredCachedSelector.js","../../src/cache/util/validateCacheSize.js","../../src/cache/FifoObjectCache.js","../../src/cache/LruObjectCache.js","../../src/cache/FlatMapCache.js","../../src/cache/FifoMapCache.js","../../src/cache/LruMapCache.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/react-device-detect/main.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/xstate/es/environment.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../src/utils.js","../../src/lifecycle.js","../../src/methods.js","../../src/pagination.js","../../src/defaultProps.js","../../src/propTypes.js","../node_modules/xstate/es/stateUtils.js","../node_modules/date-fns/esm/_lib/defaultOptions/index.js","../node_modules/kefir/dist/kefir.esm.js","../node_modules/connected-react-router/esm/actions.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.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/react-dom/index.js","../node_modules/webpack/buildin/global.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/connected-react-router/esm/selectors.js","../node_modules/connected-react-router/esm/reducer.js","../node_modules/connected-react-router/esm/structure/plain/index.js","../node_modules/connected-react-router/esm/structure/plain/getIn.js","../node_modules/connected-react-router/esm/index.js","../node_modules/xstate/es/State.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/react-dnd/dist/esm/hooks/internal/useIsomorphicLayoutEffect.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/createClass.js","../../index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../node_modules/date-fns/esm/startOfWeek/index.js","../node_modules/xstate/es/constants.js","../node_modules/lodash/isArray.js","../node_modules/core-js/library/modules/_core.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../node_modules/react-chartjs-2/es/index.js","../node_modules/@babel/runtime/helpers/inherits.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/lodash/_root.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../node_modules/date-fns/esm/constants/index.js","../node_modules/xstate/es/index.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime-corejs2/helpers/esm/extends.js","../node_modules/use-memo-one/dist/use-memo-one.esm.js","../node_modules/@babel/runtime-corejs2/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime-corejs2/helpers/esm/inheritsLoose.js","../node_modules/css-box-model/dist/css-box-model.esm.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/raf-schd/dist/raf-schd.esm.js","../node_modules/react-beautiful-dnd/dist/react-beautiful-dnd.esm.js","../node_modules/xstate/es/serviceScope.js","../node_modules/@microsoft/teams-js/dist/MicrosoftTeams.min.js","../node_modules/lodash/_getNative.js","../node_modules/core-js/library/modules/_export.js","../node_modules/core-js/library/modules/_descriptors.js","../node_modules/date-fns/esm/startOfDay/index.js","../node_modules/@babel/runtime/helpers/interopRequireWildcard.js","../node_modules/kefir-bus/index.js","../node_modules/xstate/es/Machine.js","../node_modules/@babel/runtime/helpers/inheritsLoose.js","../node_modules/date-fns/esm/addMilliseconds/index.js","../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../node_modules/sdp/sdp.js","../node_modules/xstate/es/Actor.js","../node_modules/react-dnd/dist/esm/hooks/internal/useDragDropManager.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/isObjectLike.js","../node_modules/core-js/library/modules/_is-object.js","../node_modules/xstate/es/interpreter.js","../node_modules/date-fns/esm/addDays/index.js","../node_modules/date-fns/esm/addMonths/index.js","../node_modules/xstate/es/invokeUtils.js","../node_modules/xstate/es/StateNode.js","../node_modules/react-modal/lib/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime-corejs2/core-js/object/assign.js","../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../node_modules/react-dnd/dist/esm/utils/isRef.js","../node_modules/dnd-core/dist/esm/actions/dragDrop/types.js","../node_modules/dnd-core/dist/esm/utils/equality.js","../node_modules/dnd-core/dist/esm/reducers/dragOffset.js","../node_modules/dnd-core/dist/esm/actions/registry.js","../node_modules/dnd-core/dist/esm/utils/js_utils.js","../node_modules/dnd-core/dist/esm/reducers/dragOperation.js","../node_modules/dnd-core/dist/esm/reducers/refCount.js","../node_modules/dnd-core/dist/esm/utils/dirtiness.js","../node_modules/dnd-core/dist/esm/reducers/dirtyHandlerIds.js","../node_modules/dnd-core/dist/esm/reducers/stateId.js","../node_modules/dnd-core/dist/esm/reducers/index.js","../node_modules/dnd-core/dist/esm/actions/dragDrop/local/setClientOffset.js","../node_modules/dnd-core/dist/esm/actions/dragDrop/beginDrag.js","../node_modules/dnd-core/dist/esm/actions/dragDrop/publishDragSource.js","../node_modules/dnd-core/dist/esm/utils/matchesType.js","../node_modules/dnd-core/dist/esm/actions/dragDrop/hover.js","../node_modules/dnd-core/dist/esm/actions/dragDrop/drop.js","../node_modules/dnd-core/dist/esm/actions/dragDrop/endDrag.js","../node_modules/dnd-core/dist/esm/utils/coords.js","../node_modules/dnd-core/dist/esm/DragDropMonitorImpl.js","../node_modules/dnd-core/dist/esm/interfaces.js","../node_modules/dnd-core/dist/esm/utils/getNextUniqueId.js","../node_modules/dnd-core/dist/esm/contracts.js","../node_modules/dnd-core/dist/esm/HandlerRegistryImpl.js","../node_modules/dnd-core/dist/esm/DragDropManagerImpl.js","../node_modules/dnd-core/dist/esm/actions/dragDrop/index.js","../node_modules/dnd-core/dist/esm/factories.js","../node_modules/react-dnd/dist/esm/common/DndContext.js","../node_modules/xstate/es/registry.js","../node_modules/react-table/index.js","../../src/MenuListInspector.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_getMapData.js","../node_modules/webpack/buildin/module.js","../node_modules/core-js/library/modules/_global.js","../node_modules/core-js/library/modules/_an-object.js","../node_modules/core-js/library/modules/_fails.js","../node_modules/core-js/library/modules/_object-keys.js","../node_modules/core-js/library/modules/_to-iobject.js","../node_modules/lodash/_toKey.js","../node_modules/warning/warning.js","../node_modules/reselect/es/defaultMemoize.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/date-fns/esm/subMilliseconds/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../node_modules/date-fns/esm/startOfQuarter/index.js","../node_modules/react-dnd/dist/esm/common/registration.js","../node_modules/recordrtc/RecordRTC.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/en-US/_lib/localize/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/_lib/defaultLocale/index.js","../node_modules/react-dnd/dist/esm/hooks/internal/useCollector.js","../node_modules/react-dnd/dist/esm/hooks/internal/useMonitorOutput.js","../node_modules/react-dnd/dist/esm/utils/cloneWithRef.js","../node_modules/react-dnd/dist/esm/common/wrapConnectorHooks.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/@babel/runtime-corejs2/core-js/object/keys.js","../node_modules/react-modal/lib/helpers/safeHTMLElement.js","../node_modules/process/browser.js","../node_modules/@babel/runtime/helpers/typeof.js","../../../src/events/ChosenEvent.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/isObject.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/keys.js","../node_modules/lodash/isLength.js","../node_modules/core-js/library/modules/_has.js","../node_modules/core-js/library/modules/_object-pie.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/isSymbol.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/date-fns/esm/isDate/index.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/moment/moment.js","../node_modules/react-popper/lib/esm/Manager.js","../node_modules/react-popper/lib/esm/utils.js","../node_modules/react-popper/lib/esm/Popper.js","../node_modules/react-popper/lib/esm/Reference.js","../node_modules/date-fns/esm/getDaysInMonth/index.js","../node_modules/date-fns/esm/setMonth/index.js","../node_modules/md5/md5.js","../node_modules/xstate/es/scheduler.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/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/methods/defaults.js","../../../src/index.js","../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js","../node_modules/@babel/runtime-corejs2/core-js/date/now.js","../node_modules/path-to-regexp/index.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/object-assign/index.js","../node_modules/react-modal/lib/helpers/tabbable.js","../node_modules/react-modal/lib/helpers/ariaAppHider.js","../node_modules/react-modal/lib/helpers/portalOpenInstances.js","../node_modules/webpack/buildin/harmony-module.js","../node_modules/charenc/charenc.js","../node_modules/xstate/lib/types.js","../node_modules/xstate/lib/environment.js","../node_modules/webrtc-client-janus/dist/sounds/dtmf-star.mp3","../node_modules/webrtc-client-janus/dist/sounds/dtmf-hash.mp3","../node_modules/webrtc-client-janus/dist/sounds/incoming-call.wav","../node_modules/webpack/buildin/amd-options.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../src/MenuList.js","../../../src/lib/fromEventsCapture.js","../../../src/events/MenuEvent.js","../../src/MenuItem.js","../../../src/lib/setRef.js","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/eq.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_Set.js","../node_modules/lodash/isEqual.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/core-js/library/modules/_ctx.js","../node_modules/core-js/library/modules/_object-dp.js","../node_modules/core-js/library/modules/_ie8-dom-define.js","../node_modules/core-js/library/modules/_dom-create.js","../node_modules/core-js/library/modules/_to-primitive.js","../node_modules/core-js/library/modules/_property-desc.js","../node_modules/core-js/library/modules/_iobject.js","../node_modules/core-js/library/modules/_defined.js","../node_modules/core-js/library/modules/_to-integer.js","../node_modules/core-js/library/modules/_shared-key.js","../node_modules/core-js/library/modules/_enum-bug-keys.js","../node_modules/core-js/library/modules/_to-object.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_castPath.js","../../../src/AsapQueue.ts","../../../src/TaskFactory.ts","../node_modules/connected-react-router/esm/middleware.js","../node_modules/dayjs/plugin/customParseFormat.js","../node_modules/dayjs/plugin/localizedFormat.js","../node_modules/dayjs/plugin/utc.js","../node_modules/react-redux/node_modules/react-is/index.js","../node_modules/redux-logger/dist/redux-logger.js","../node_modules/rtcpeerconnection-shim/rtcpeerconnection.js","../node_modules/xstate/es/devTools.js","../node_modules/xstate/lib/actions.js","../node_modules/create-react-context/lib/index.js","../node_modules/@babel/runtime-corejs2/core-js/object/create.js","../node_modules/@babel/runtime-corejs2/core-js/object/values.js","../node_modules/@babel/runtime-corejs2/core-js/number/is-integer.js","../node_modules/is-firefox/index.js","../node_modules/react-datepicker/dist/react-datepicker.min.js","../../../src/index.ts","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/lodash.isequalwith/index.js","../node_modules/webrtc-adapter/src/js/utils.js","../node_modules/webrtc-adapter/src/js/chrome/getusermedia.js","../node_modules/webrtc-adapter/src/js/chrome/getdisplaymedia.js","../node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js","../node_modules/webrtc-adapter/src/js/edge/getusermedia.js","../node_modules/webrtc-adapter/src/js/edge/getdisplaymedia.js","../node_modules/webrtc-adapter/src/js/edge/edge_shim.js","../node_modules/webrtc-adapter/src/js/edge/filtericeservers.js","../node_modules/webrtc-adapter/src/js/firefox/getusermedia.js","../node_modules/webrtc-adapter/src/js/firefox/getdisplaymedia.js","../node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js","../node_modules/webrtc-adapter/src/js/safari/safari_shim.js","../node_modules/webrtc-adapter/src/js/common_shim.js","../node_modules/webrtc-adapter/src/js/adapter_core.js","../node_modules/webrtc-adapter/src/js/adapter_factory.js","../node_modules/react-dnd-html5-backend/dist/esm/utils/js_utils.js","../node_modules/react-dnd-html5-backend/dist/esm/EnterLeaveCounter.js","../node_modules/react-dnd-html5-backend/dist/esm/BrowserDetector.js","../node_modules/react-dnd-html5-backend/dist/esm/MonotonicInterpolant.js","../node_modules/react-dnd-html5-backend/dist/esm/OffsetUtils.js","../node_modules/react-dnd-html5-backend/dist/esm/NativeTypes.js","../node_modules/react-dnd-html5-backend/dist/esm/NativeDragSources/nativeTypesConfig.js","../node_modules/react-dnd-html5-backend/dist/esm/NativeDragSources/getDataFromDataTransfer.js","../node_modules/react-dnd-html5-backend/dist/esm/NativeDragSources/NativeDragSource.js","../node_modules/react-dnd-html5-backend/dist/esm/NativeDragSources/index.js","../node_modules/react-dnd-html5-backend/dist/esm/OptionsReader.js","../node_modules/react-dnd-html5-backend/dist/esm/HTML5Backend.js","../node_modules/react-dnd-html5-backend/dist/esm/index.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/dayjs/locale/en-nz.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/react-modal/lib/components/Modal.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-modal/lib/components/ModalPortal.js","../node_modules/react-modal/lib/helpers/focusManager.js","../node_modules/react-modal/lib/helpers/scopeTab.js","../node_modules/exenv/index.js","../node_modules/react-modal/lib/helpers/classList.js","../node_modules/react-modal/lib/helpers/bodyTrap.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/crypt/crypt.js","../node_modules/is-buffer/index.js","../node_modules/xstate/lib/actionTypes.js","../node_modules/xstate/lib/utils.js","../node_modules/xstate/lib/constants.js","../node_modules/webrtc-client-janus/dist/sounds/dtmf-0.mp3","../node_modules/webrtc-client-janus/dist/sounds/dtmf-1.mp3","../node_modules/webrtc-client-janus/dist/sounds/dtmf-2.mp3","../node_modules/webrtc-client-janus/dist/sounds/dtmf-3.mp3","../node_modules/webrtc-client-janus/dist/sounds/dtmf-4.mp3","../node_modules/webrtc-client-janus/dist/sounds/dtmf-5.mp3","../node_modules/webrtc-client-janus/dist/sounds/dtmf-6.mp3","../node_modules/webrtc-client-janus/dist/sounds/dtmf-7.mp3","../node_modules/webrtc-client-janus/dist/sounds/dtmf-8.mp3","../node_modules/webrtc-client-janus/dist/sounds/dtmf-9.mp3","../node_modules/webrtc-client-janus/dist/sounds/ringback-tone-nz.mp3","../node_modules/webrtc-client-janus/dist/sounds/reorder-tone-nz.mp3","../node_modules/webrtc-client-janus/dist/sounds/busy-tone-nz.mp3","../node_modules/webrtc-client-janus/dist/sounds/nu-tone-nz.mp3","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/ua-parser-js/dist/ua-parser.min.js","../node_modules/create-react-context/lib/implementation.js","../node_modules/gud/index.js","../node_modules/array-find-index/index.js","../../src/Dropdown.js","../../src/MenuButton.js","../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/@babel/runtime/regenerator/index.js","../../../src/lib/fromEventsWithOptions.js","../../src/supportsCaptureOption.js","../../src/LifecycleHelper.js","../node_modules/lodash/flatten.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/uniq.js","../node_modules/lodash/_baseUniq.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.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/_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/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_arrayIncludes.js","../node_modules/lodash/_baseIndexOf.js","../node_modules/lodash/_baseFindIndex.js","../node_modules/lodash/_baseIsNaN.js","../node_modules/lodash/_strictIndexOf.js","../node_modules/lodash/_arrayIncludesWith.js","../node_modules/lodash/_createSet.js","../node_modules/lodash/noop.js","../node_modules/lodash/_baseIsEqualDeep.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/_arraySome.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_mapToArray.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/_baseUnary.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/_WeakMap.js","../../src/SubMenuItem.js","../../../src/lib/pointRectDistance.js","../../src/publicUtils.js","../../src/makeDefaultPluginHooks.js","../../src/hooks/useColumnVisibility.js","../../src/hooks/useTable.js","../../src/plugin-hooks/useExpanded.js","../../src/filterTypes.js","../../src/plugin-hooks/useFilters.js","../../src/plugin-hooks/useGlobalFilter.js","../../src/aggregations.js","../../src/plugin-hooks/useGroupBy.js","../../src/sortTypes.js","../../src/plugin-hooks/useSortBy.js","../../src/plugin-hooks/usePagination.js","../../src/plugin-hooks/_UNSTABLE_usePivotColumns.js","../../src/plugin-hooks/useRowSelect.js","../../src/plugin-hooks/useRowState.js","../../src/plugin-hooks/useColumnOrder.js","../../src/plugin-hooks/useResizeColumns.js","../../src/plugin-hooks/useAbsoluteLayout.js","../../src/plugin-hooks/useBlockLayout.js","../../src/plugin-hooks/useFlexLayout.js","../../src/plugin-hooks/useGridLayout.js","../node_modules/core-js/library/fn/object/assign.js","../node_modules/core-js/library/modules/es6.object.assign.js","../node_modules/core-js/library/modules/_a-function.js","../node_modules/core-js/library/modules/_hide.js","../node_modules/core-js/library/modules/_object-assign.js","../node_modules/core-js/library/modules/_object-keys-internal.js","../node_modules/core-js/library/modules/_cof.js","../node_modules/core-js/library/modules/_array-includes.js","../node_modules/core-js/library/modules/_to-length.js","../node_modules/core-js/library/modules/_to-absolute-index.js","../node_modules/core-js/library/modules/_shared.js","../node_modules/core-js/library/modules/_library.js","../node_modules/core-js/library/modules/_uid.js","../node_modules/core-js/library/modules/_object-gops.js","../node_modules/core-js/library/fn/object/create.js","../node_modules/core-js/library/modules/es6.object.create.js","../node_modules/core-js/library/modules/_object-create.js","../node_modules/core-js/library/modules/_object-dps.js","../node_modules/core-js/library/modules/_html.js","../node_modules/core-js/library/fn/object/set-prototype-of.js","../node_modules/core-js/library/modules/es6.object.set-prototype-of.js","../node_modules/core-js/library/modules/_set-proto.js","../node_modules/core-js/library/modules/_object-gopd.js","../node_modules/core-js/library/fn/object/values.js","../node_modules/core-js/library/modules/es7.object.values.js","../node_modules/core-js/library/modules/_object-to-array.js","../node_modules/core-js/library/fn/object/keys.js","../node_modules/core-js/library/modules/es6.object.keys.js","../node_modules/core-js/library/modules/_object-sap.js","../node_modules/core-js/library/fn/date/now.js","../node_modules/core-js/library/modules/es6.date.now.js","../node_modules/core-js/library/fn/number/is-integer.js","../node_modules/core-js/library/modules/es6.number.is-integer.js","../node_modules/core-js/library/modules/_is-integer.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/chart.js/dist/Chart.js","../node_modules/lodash/keyBy.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_createAggregator.js","../node_modules/lodash/_arrayAggregator.js","../node_modules/lodash/_baseAggregator.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/_baseIteratee.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseIsMatch.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/_arrayMap.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/identity.js","../node_modules/lodash/property.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../../../src/asap.ts","../../../src/makeRequestCall.ts","../../../src/RawTask.ts","../node_modules/isarray/index.js","../node_modules/react-router/node_modules/react-is/index.js","../node_modules/react-router/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/date-fns/esm/parse/_lib/Setter.js","../node_modules/date-fns/esm/parse/_lib/Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js","../node_modules/date-fns/esm/parse/_lib/constants.js","../node_modules/date-fns/esm/parse/_lib/utils.js","../node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js","../node_modules/date-fns/esm/_lib/setUTCWeek/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js","../node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js","../node_modules/date-fns/esm/_lib/setUTCDay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js","../node_modules/date-fns/esm/_lib/setUTCISODay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/index.js","../node_modules/date-fns/esm/parse/index.js","../node_modules/date-fns/esm/_lib/getUTCDayOfYear/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/format/index.js","../node_modules/date-fns/esm/getWeekYear/index.js","../node_modules/date-fns/esm/startOfWeekYear/index.js","../node_modules/date-fns/esm/getWeek/index.js","../node_modules/react-dnd/dist/esm/common/DndProvider.js","../node_modules/react-dnd/dist/esm/common/DragSourceMonitorImpl.js","../node_modules/react-dnd/dist/esm/common/SourceConnector.js","../node_modules/react-dnd/dist/esm/hooks/internal/drag.js","../node_modules/react-dnd/dist/esm/hooks/useDrag.js","../node_modules/react-dnd/dist/esm/common/TargetConnector.js","../node_modules/react-dnd/dist/esm/common/DropTargetMonitorImpl.js","../node_modules/react-dnd/dist/esm/hooks/internal/drop.js","../node_modules/react-dnd/dist/esm/hooks/useDrop.js"],"names":["module","exports","require","_regeneratorRuntime","Op","Object","prototype","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","obj","key","value","defineProperty","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","_invoke","state","method","arg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","type","done","fn","call","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","this","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","AsyncIterator","PromiseImpl","invoke","resolve","reject","result","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","undefined","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","apply","_objectSpread2","target","arguments","source","getOwnPropertyDescriptors","defineProperties","throwIsEmpty","checkInvalidActionCreatorInArray","createCustomAction","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","_slicedToArray","arr","arrayWithHoles","_i","_s","_e","_arr","_n","_d","unsupportedIterableToArray","nonIterableRest","initEvent","toSCXMLEvent","init","getActionFunction","actionType","actionFunctionMap","toActionObject","action","actionObject","isString","exec","isFunction","toString","__assign","toActionObjects","isArray","map","subAction","toActivityDefinition","id","raise","event","raise$1","send","to","SpecialTargets","Internal","options","send$1","toEventObject","delay","getEventType","sendParent","Parent","sendUpdate","update","respond","_","__","_a","_event","origin","defaultLogExpr","log","expr","label","log$1","cancel","sendId","cancel$1","start","activity","activityDef","ActionTypes","Start","Stop","assign","assignment","assign$1","after","delayRef","idSuffix","After","data","DoneState","eventObject","doneInvoke","DoneInvoke","ErrorPlatform","pure","getActions","Pure","get","forwardTo","escalate","errorData","meta","error$1","choose","conds","Choose","resolveActions","machine","currentState","currentContext","actions","__read","partition","assignActions","otherActions","updatedContext","updateContext","resolvedActions","flatten","sendAction","ctx","delaysMap","resolvedDelay","resolvedEvent","configDelay","resolvedTarget","resolveSend","delays","IS_PRODUCTION","warn","resolveLog","choose$1","matchedActions","find","condition","guard","toGuard","cond","guards","evaluateGuard","resolved","toArray","pure$1","_defineProperty","classNames","classes","argType","Array","inner","join","default","ReactReduxContext","React","createContext","batch","callback","createListenerCollection","first","last","clear","notify","listener","listeners","subscribe","isSubscribed","nullListeners","createSubscription","store","parentSub","unsubscribe","handleChangeWrapper","subscription","onStateChange","trySubscribe","addNestedSub","notifyNestedSubs","Boolean","tryUnsubscribe","getListeners","useIsomorphicLayoutEffect","window","document","createElement","useLayoutEffect","useEffect","Provider","_ref","children","contextValue","useMemo","previousState","getState","_excluded","_excluded2","EMPTY_ARRAY","NO_SUBSCRIPTION_ARRAY","storeStateUpdatesReducer","updateCount","payload","useIsomorphicLayoutEffectWithArgs","effectFunc","effectArgs","dependencies","captureWrapperProps","lastWrapperProps","lastChildProps","renderIsScheduled","wrapperProps","actualChildProps","childPropsFromStoreUpdate","current","subscribeUpdates","shouldHandleStateChanges","childPropsSelector","forceComponentUpdateDispatch","didUnsubscribe","lastThrownError","checkForUpdates","newChildProps","latestStoreState","e","initStateUpdates","connectAdvanced","selectorFactory","_ref2","_ref2$getDisplayName","getDisplayName","_ref2$methodName","methodName","_ref2$renderCountProp","renderCountProp","_ref2$shouldHandleSta","_ref2$storeKey","storeKey","_ref2$forwardRef","withRef","forwardRef","_ref2$context","connectOptions","_objectWithoutPropertiesLoose","WrappedComponent","wrappedComponentName","selectorFactoryOptions","_extends","usePureOnlyMemo","ConnectFunction","props","_useMemo","reactReduxForwardedRef","propsContext","ContextToUse","Consumer","isContextConsumer","useContext","didStoreComeFromProps","dispatch","createChildSelector","_useMemo2","bind","overriddenContextValue","_useReducer","useReducer","previousStateUpdateResult","useRef","renderedWrappedComponent","ref","Connect","memo","forwarded","hoistStatics","is","x","y","shallowEqual","objA","objB","keysA","keysB","wrapMapToPropsConstant","getConstant","constant","constantSelector","dependsOnOwnProps","getDependsOnOwnProps","mapToProps","wrapMapToPropsFunc","proxy","stateOrDispatch","ownProps","mapDispatchToProps","actionCreators","boundActionCreators","_loop","actionCreator","bindActionCreators","mapStateToProps","defaultMergeProps","stateProps","dispatchProps","mergeProps","mergedProps","areMergedPropsEqual","hasRunOnce","nextMergedProps","wrapMergePropsFunc","impureFinalPropsSelectorFactory","pureFinalPropsSelectorFactory","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","hasRunAtLeastOnce","handleSubsequentCalls","nextState","nextOwnProps","propsChanged","stateChanged","nextStateProps","statePropsChanged","handleNewState","finalPropsSelectorFactory","initMapStateToProps","initMapDispatchToProps","initMergeProps","match","factories","strictEqual","a","b","createConnect","_temp","_ref$connectHOC","connectHOC","_ref$mapStateToPropsF","mapStateToPropsFactories","defaultMapStateToPropsFactories","_ref$mapDispatchToPro","mapDispatchToPropsFactories","defaultMapDispatchToPropsFactories","_ref$mergePropsFactor","mergePropsFactories","defaultMergePropsFactories","_ref$selectorFactory","defaultSelectorFactory","_ref3","_ref3$pure","_ref3$areStatesEqual","_ref3$areOwnPropsEqua","_ref3$areStatePropsEq","_ref3$areMergedPropsE","extraOptions","useReduxContext","createStoreHook","useDefaultReduxContext","useStore","createDispatchHook","useDefaultStore","useDispatch","refEquality","createSelectorHook","selector","equalityFn","_useReduxContext","selectedState","contextSub","forceRender","s","latestSubscriptionCallbackError","latestSelector","latestSelectedState","storeState","newSelectedState","message","stack","newStoreState","_newSelectedState","useSelectorWithStoreAndSubscription","useDebugValue","newBatch","useSelector","matchesState","parentStateId","childStateId","delimiter","STATE_DELIMITER","parentStateValue","toStateValue","childStateValue","every","toStatePath","stateId","split","stateValue","pathToStateValue","statePath","marker","mapValues","collection","iteratee","collectionKeys","mapFilterValues","predicate","e_1","_b","__values","_c","item","e_1_1","return","path","e_2","props_1","props_1_1","e_2_1","nestedPath","accessorProp","e_3","props_2","props_2_1","prop","e_3_1","toStatePaths","subStateValue","subPath","concat","array","__spread","toArrayStrict","mapContext","mapper","e_5","subMapper","e_5_1","isBuiltInEvent","eventType","test","isPromiseLike","items","e_6","truthy","falsy","items_1","items_1_1","e_6_1","updateHistoryStates","hist","states","subHist","updateHistoryValue","reduce","acc","assignAction","e_7","partialUpdate","propAssignment","e_7_1","guardMap","DEFAULT_GUARD_TYPE","isObservable","console","symbolObservable","observable","isMachine","uniqueId","currentId","scxmlEvent","$$type","toTransitionConfigArray","configLike","transitionLike","normalizeTarget","TARGETLESS_KEY","reportUnhandledExceptionOnInvocation","originalError","currentError","originalStackTrace","stackTrace","guardMeta","condFn","toInvokeSource","src","requiredArgs","required","t","n","p","__rest","indexOf","propertyIsEnumerable","o","m","r","ar","prefix","invariant","toDate","argument","argStr","Date","getTime","NaN","_toConsumableArray","arrayLikeToArray","iterableToArray","_assertThisInitialized","ReferenceError","u","f","h","c","d","$","l","M","weekdays","months","String","g","z","utcOffset","Math","abs","floor","date","year","month","clone","add","ceil","w","D","ms","Q","toLowerCase","replace","v","S","O","locale","$L","utc","$u","$x","$offset","parse","$d","substring","UTC","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","valueOf","$locale","weekStart","$set","min","daysInMonth","Number","round","subtract","format","invalidDate","meridiem","YY","YYYY","MM","MMM","monthsShort","MMMM","DD","dd","weekdaysMin","ddd","weekdaysShort","dddd","H","HH","hh","A","mm","ss","SSS","Z","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","T","extend","$i","isDayjs","en","Ls","toInteger","dirtyNumber","number","_defineProperties","descriptor","_createClass","Constructor","protoProps","staticProps","_classCallCheck","instance","_objectWithoutProperties","excluded","sourceSymbolKeys","getDependencies","funcs","dep","dependencyTypes","createSelectorCreator","memoize","_len","memoizeOptionsFromArgs","_key","createSelector","_len2","_key2","_lastResult","_recomputations","directlyPassedOptions","memoizeOptions","resultFunc","_directlyPassedOption","_directlyPassedOption2","finalMemoizeOptions","memoizedResultFunc","params","lastResult","recomputations","resetRecomputations","defaultMemoize","createStructuredSelector","selectors","selectorCreator","objectKeys","resultSelector","_len3","_key3","composition","index","_inherits","subClass","superClass","_possibleConstructorReturn","assertThisInitialized","_createSuper","Derived","hasNativeReflectConstruct","isNativeReflectConstruct","Super","NewTarget","Reflect","construct","_createForOfIteratorHelper","allowArrayLike","it","F","normalCompletion","didErr","step","_e2","formatProdErrorMessage","code","$$observable","randomString","random","INIT","REPLACE","PROBE_UNKNOWN_ACTION","isPlainObject","proto","createStore","reducer","preloadedState","enhancer","currentReducer","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","splice","replaceReducer","nextReducer","outerSubscribe","observer","observeState","combineReducers","reducers","reducerKeys","finalReducers","process","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","previousStateForKey","nextStateForKey","bindActionCreator","compose","applyMiddleware","middlewares","_dispatch","middlewareAPI","chain","middleware","_objectSpread","argIndex","Channel","recreate","put","setTimeout","promise","all","handlers","handler","_Pact","onFulfilled","onRejected","_settle","_this","pact","_isSettledPact","thenable","_for","body","stage","shouldContinue","updateValue","_resumeAfterTest","_resumeAfterBody","_resumeAfterUpdate","takeEvery","take","ctxCopy","prevState","createSagaMiddleware","rootHandler","actionChannel","prevStates","sagaMidlleware","getPrevState","takeAny","run","getTypedTools","getType","takeEveryRaw","waitForState","func","res","NOTHING","DRAFTABLE","DRAFT_STATE","const","let","has","base","desc","cb","isDraftable","cloned","ImmerScope","draft","usePatches","revoke","leave","descriptors","clonePotentialDraft","each","assertUnrevoked","peek","prepareCopy","createProxy","markChanged","proxyProperty","isEnumerable","scope","parent","modified","finalizing","finalized","assigned","copy","revoked","shallowCopy","JSON","drafts","hasArrayChanges","hasObjectChanges","markChangesRecursively","baseValue","isDraft","markChangesSweep","Proxy","objectTraps","owner","arrayTraps","parseInt","patches","inversePatches","delta","end","basePath","op","replaceCount","generateArrayPatches","origValue","generateObjectPatches","applyPatches","patch","configDefaults","useProxies","autoFreeze","verifyMinified","onAssign","onDelete","onCopy","Immer","produce","defaultBase","recipe","patchListener","hasError","produceWithPatches","arg1","createDraft","finishDraft","setAutoFreeze","setUseProxies","processResult","baseDraft","isReplaced","finalize","generatePatches","finalizeTree","root","needPatches","finalizeProperty","isDraftProp","rootPath","immer","initApp","createAction","endpointStatusChanged","connectEndpoint","extension","pin","connectEndpointGuest","guestId","guestPasskey","disconnectEndpoint","configureEndpoint","lineStatusChanged","configureMediaConstraints","configureSecondaryRinger","callStatusChanged","focusCallIndex","calls","dial","hangUp","muteMicrophone","mute","muteSpeaker","dtmf","answer","hold","resume","toggleVideo","enable","videoSource","setVideoPan","setVideoTilt","setVideoZoom","transfer","getCallStats","secondaryRingerDeviceId","devices","selectSecondaryRingerDeviceId","janus","endpoint","canConnect","canDisconnect","status","line","canRegister","canUnregister","noCalls","callId","peerUsername","peerDisplayName","canDial","canRingOut","canHangUp","canAnswer","answerRequested","featureHoldResume","canHold","canResume","canBlindXfer","canXfer","canSendDtmf","isMuted","hasRemoteVideo","hasLocalVideo","canPlayBusyTone","canPlayReorderTone","canPlayNuTone","lastHangupCode","isSlowAudioDownlink","isSlowAudioUplink","isScreenSharing","empty","sipDomain","turnServer","turnServerUdpPort","turnServerTcpPort","settings","mediaConstraint","autoGainControl","echoCancellation","noiseSuppression","sampleRate","sampleSize","channelCount","getRoot","selectEndpoint","selectLine","selectCall","selectSettings","createRootReducer","selectJanus","_inheritsLoose","_setPrototypeOf","_unsupportedIterableToArray","minLen","_arrayLikeToArray","from","len","arr2","_createForOfIteratorHelperLoose","createCommonjsModule","runtime_1","runtime","undefined$1","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","GenStateSuspendedYield","makeInvokeMethod","regeneratorRuntime","accidentalStrictMode","Function","_getTypedTools","Janus","sessions","isExtensionEnabled","navigator","mediaDevices","getDisplayMedia","userAgent","chromever","maxver","isInstalled","defaultExtension","extensionId","querySelector","getScreen","pending","cache","postMessage","addEventListener","location","sourceId","clearTimeout","gatewayCallbacks","success","noop","destroyed","initDone","isWebrtcSupported","server","websockets","ws","wsHandlers","wsKeepaliveTimeoutId","servers","serversIndex","debug","iceServers","urls","iceTransportPolicy","bundlePolicy","withCredentials","maxev","max_poll_events","token","apisecret","janusServerUsername","janusServerPassword","destroyOnUnload","keepAlivePeriod","longPollTimeout","getMaxBitrates","simulcastMaxBitrates","maxBitrates","high","medium","low","connected","sessionId","pluginHandles","that","retries","transactions","eventHandler","longpoll","encodeURIComponent","httpAPICall","verb","handleEvent","timeout","textStatus","errorThrown","json","skipTimeout","sender","pluginHandle","candidate","config","webrtcStuff","pc","remoteSdp","completed","addIceCandidate","endOfCandidates","candidates","_sender","_pluginHandle","webrtcState","_sender2","_pluginHandle2","hangup","_sender3","_pluginHandle3","ondetached","detach","_sender4","_pluginHandle4","mediaState","_sender5","_pluginHandle5","slowLink","_sender6","_pluginHandle6","inLinkStatus","reason","transaction","reportSuccess","_sender7","plugindata","_pluginHandle7","jsep","onmessage","keepAlive","close","_transaction3","_reportSuccess3","handleId","onreconnect","_transaction2","_reportSuccess2","_transaction","_reportSuccess","vdebug","request","stringify","createSession","callbacks","onopen","onerror","onclose","eventName","newWebSocket","sendMessage","sdp","e2ee","rid_order","force_relay","sendTrickleCandidate","createDataChannel","dclabel","dcprotocol","incoming","pendingData","onDataChannelStateChange","protocol","dcState","dataChannel","readyState","_step4","_iterator4","ondataopen","dcoptions","dataChannelOptions","ondata","sendData","text","dataChanDefaultLabel","sendDtmf","dtmfSender","audioSender","getSenders","track","kind","ontonechange","tone","tones","duration","gap","insertDTMF","destroyHandle","noRequest","cleanupWebrtc","detached","streamsDone","media","stream","stopAllTracks","webrtcConfig","getAudioTracks","getVideoTracks","addTracks","myStream","streamExternal","replaceAudio","replaceVideo","isAudioSendEnabled","addAudio","addTrack","unifiedPlan","audioTransceiver","transceivers","getTransceivers","_step5","_iterator5","receiver","replaceTrack","isVideoSendEnabled","addVideo","videoTransceiver","_transceivers","_step6","_iterator6","_t","pc_config","citrixVdaSupport","enableDtlsSrtp","webRTCAdapter","browserDetails","browser","version","pc_constraints","RTCRtpSender","createEncodedStreams","createEncodedAudioStreams","createEncodedVideoStreams","senderTransforms","receiverTransforms","RTCPeerConnection","getStats","volume","bitrate","trickle","oniceconnectionstatechange","iceState","iceConnectionState","onicecandidate","iceDone","mySdp","localDescription","sdpSent","sendSDP","sdpMid","sdpMLineIndex","ontrack","streams","remoteStream","remoteTransceiver","transceiver","onremotestream","onended","receiverStreams","createAudioEncodedStreams","readableStream","writableStream","pipeThrough","pipeTo","readable","trackMutedTimeoutId","ev","removeTrack","onmute","onunmute","onaddstream","active","simulcast","simulcast2","svc","getTracks","tr","addTransceiver","direction","sendEncodings","rid","maxBitrate","scaleResolutionDownBy","_tr","scalabilityMode","senderStreams","isDataEnabled","ondatachannel","channel","onlocalstream","setRemoteDescription","customizeSdp","mediaConstraints","_step10","_iterator10","audioSend","audioRecv","isAudioRecvEnabled","setDirection","removeAudio","videoSend","videoRecv","isVideoRecvEnabled","removeVideo","offerToReceiveAudio","offerToReceiveVideo","mandatory","OfferToReceiveAudio","OfferToReceiveVideo","sendVideo","parameters","getParameters","setParameters","encodings","createAnswer","includes","sdp_","setLocalDescription","dtx","_step9","_iterator9","iceRestart","createOffer","offer","lines","video","ssrc","ssrc_fid","cname","msid","mslabel","insertAt","mline","fid","_i2","_mline","_match","endsWith","mungeSdpForSimulcasting","prepareWebrtc","webrtcError","audio","keepAudio","keepVideo","addData","consentDialog","at","ra","_step7","_iterator7","asnd","vt","rv","_step8","_iterator8","vsnd","isGetUserMediaAvailable","constraints","optional","audioSupport","videoSupport","width","height","screenshareFrameRate","frameRate","screenshareHeight","screenshareWidth","captureDesktopAudio","getUserMedia","audioStream","desktopAudioTrack","srAudioContext","AudioContext","srDesktopAudioStream","MediaStream","source1","createMediaStreamSource","source2","merger","createChannelMerger","connect","combinedStream","createMediaStreamDestination","callbackUserMedia","getScreenMedia","gsmCallback","useAudio","googLeakyBucket","maxWidth","screen","maxHeight","minFrameRate","maxFrameRate","chromeMediaSource","googTemporalLayeredScreencast","chromeMediaSourceId","mozMediaSource","mediaSource","lastTime","currentTime","polly","setInterval","clearInterval","enumerateDevices","audioExist","some","device","videoExist","isScreenSendEnabled","needAudioDevice","failIfNoAudio","isAudioSendRequired","needVideoDevice","failIfNoVideo","isVideoSendRequired","haveAudioDevice","haveVideoDevice","gumConstraints","audioInput","deviceId","videoInput","pan","tilt","zoom","prepareWebrtcPeer","_getVolume","remote","timer","stats","remoteSource","audioLevel","enabled","_getBitrate","inStats","mediaType","bytesReceived","googCodecName","bsnow","tsnow","timestamp","bsbefore","tsbefore","timePassed","bitRate","hangupRequest","oncleanup","getServer","isConnected","reconnect","getSessionId","getInfo","destroy","unload","notifyDestroyed","cleanupHandles","sendBeacon","unbindWebSocket","removeEventListener","onUnbindMessage","onUnbindError","session_id","destroySession","attach","ordered","plugin","opaqueId","loopIndex","handleToken","session","started","getId","getPlugin","getVolume","getRemoteVolume","getLocalVolume","isAudioMuted","muteAudio","unmuteAudio","isVideoMuted","muteVideo","unmuteVideo","getBitrate","handleRemoteJsep","sendRequest","createHandle","useDefaultDependencies","deps","fetch","socketCls","WebSocket","adapter","url","fetchOptions","headers","credentials","fetching","timerId","race","response","ok","parsed","useOldDependencies","jq","jQuery","contentType","xhrFields","ajax","dataType","xhr","_step","_iterator","mst","trace","_step2","_iterator2","usedDependencies","listDevices","attachMediaStream","element","srcObject","URL","createObjectURL","reattachMediaStream","platform","oldOBF","safariVp8","getCapabilities","codecs","_step3","_iterator3","codec","mimeType","testpc","RTCRtpTransceiver","tempPc","charSet","randomPoz","setUnifiedPlan","isElectronClient","ipcRenderer","sipCtiSubscribeStates","initial","inactive","on","SUBSCRIBE","instanceId","pbxPlaform","notAllowed","unsubscribed","tryingSubscribe","subscribeAction","SUBSCRIBING","SUBSCRIBE_FAILED","sendParent$1","SUBSCRIBE_SUCCEEDED","subscribed","onReceive","processNotifyAction","UNSUBSCRIBE","unsubscribeAction","NOTIFY","forwardTo$1","CTI_MWI","CANCEL_PENDING_CALL","CTI_ANSWER","CTI_HOLD","CTI_RESUME","CTI_DIAL","START_CAPTURE","STOP_CAPTURE","SUSPEND_CAPTURE","RESUME_CAPTURE","removeToken","pushToken","_unsubscribe","event_package","content_type","content","xmlDoc","DOMParser","parseFromString","notifyHelperId","getElementsByTagName","fullHelperId","childNodes","nodeValue","mwlValue","hasMwlvalue","dialTargetUri","cancelCallId","captureNode","captureTarget","screenWidth","screenHeight","notifyAction","mwi","dialUri","sipRegisterStates","DO_AUTOREGISTER","registerHeaders","autoregister","DO_REGISTER","registerSipserver","sipserver","registerUsername","username","registerSecret","secret","registerIsHa1Secret","is_ha1_secret","registerDisplayname","smTarget","unregistered","DO_UNREGISTER","tryingRegister","registerAction","REGISTERING","REGISTRATION_FAILED","REGISTERED","masterId","tryingUnregister","unregisterAction","UNREGISTERED","retryingRegister","registered","CallStatusErrorCode","register","startsWith","alertPushToken","pushPlatformName","monitorTarget","actions$1","defaultMediaConstraints","callStateMachine","Machine","sip_call_id","call_id","remote_uri","queuedHangup","makeCallTargetUri","incomingCallJsep","doVideoProcessed","doVideo","videoSourceProcessed","enabledVideoSource","isVideoProcessingComplete","preferSendVideo","preferRecvVideo","preferSendAudio","preferRecvAudio","canSendVideo","canRecvVideo","canSendAudio","canRecvAudio","isHolding","isLastXferBlind","isLastXferSuper","incomingCallUserName","incomingCallDisplayName","isCallee","retry491Count","isIceRestartRequired","srRequested","srCallId","srFrameRate","srScreenWidth","srScreenHeight","srTarget","srRetryCount","DO_START_SR","DO_STOP_SR","DO_ENABLE_VIDEO","DO_POST_ENABLE_VIDEO","DO_REJECT_REFER","DO_BLIND_XFER","DO_XFER","TRANSFERRING","JANUS_SESSION_ENDED","CLEANUP","idle","enabledVideo","exit","DO_START_SR_IF","DO_MAKE_CALL","INCOMINGCALL","CALLING","RINGING","PROCEEDING","PROGRESS","ACCEPTED","hangingup","HANGUP","DECLINED","handlingIncomingCall","onError","calculateUserName","calculateDisplayName","callerUsername","callerDisplay","replaces","DO_ACCEPT","DO_DECLINE","DO_HANGUP","DO_ACCEPT_SUCCEEDED","DO_ACCEPT_FAILED","errorCode","GetErrorMessage","ERROR_ANSWER_CALL_PERMISSION","ERROR_ANSWER_CALL","errorMessage","DO_DECLINE_SUCCEEDED","DO_DECLINE_FAILED","ERROR_HANG_UP","DECLINING","ACCEPTING","isInitial","remoteUri","remoteDisplay","hasLocalAudio","hasRemoteAudio","localVideoSource","HANGINGUP","tryingMakeCallTimeout","always","callingOutTimeout","tryingMakeCall","DO_MAKE_CALL_SUCCEEDED","DO_MAKE_CALL_FAILED","ERROR_MAKE_CALL_PERMISSION","ERROR_MAKE_CALL","ERROR_MAKE_CALL_NOT_FOUND","ERROR_MAKE_CALL_MEDIA_REJECTED","ERROR_MAKE_CALL_BUSY","ERROR_MAKE_CALL_DECLINED","SIP_ERROR","ringingOut","progressOut","REMOTE_SDP_HANDLING_SUCCEEDED","REMOTE_SDP_HANDLING_FAILED","DO_ICE_RESTART","DO_SEND_DTMF","UPDATINGCALL","UPDATINGCALL_WRAPPED","ACCEPTED_WRAPPED","UPDATING","UPDATINGCALL_SUCCEEDED","UPDATINGCALL_FAILED","ERROR_MIDCALL_PERMISSION","ERROR_MIDCALL","TRANSFER","notHold","DO_CHECK_VIDEO","DO_HOLD","DO_RESUME","refer_event","restartingIce","RETRY_491","internal","error_code","INVITE_ERROR","max","ICE_RESTART_FAILED","updatingVideo","UPDATING_MEDIA","UPDATE_MEDIA_FAILED","tryingHold","HOLDING","DO_HOLD_FAILED","ERROR_HOLD_PERMISSION","ERROR_HOLD","holding","tryingResume","RESUMING","DO_RESUME_FAILED","ERROR_RESUME_PERMISSION","ERROR_RESUME","xferOk","splitContent","blindXferFailed","xferFailed","xferProgress","doHangupAction","doSendDtmfAction","logEvent","declineTransferAction","refer_id","messageAckIncomingCallAction","logDoMakeCallAction","logJanusSessionEnded","logContext","services","restartIceService","_defaultMediaConstrai","_defaultMediaConstrai2","_defaultMediaConstrai3","_defaultMediaConstrai4","_defaultMediaConstrai5","_defaultMediaConstrai6","_defaultMediaConstrai7","_defaultMediaConstrai8","_defaultMediaConstrai9","sendAudio","recvAudio","recvVideo","FixInactiveSdpAttr","EnableStereoAudio","updateVideoService","_defaultMediaConstrai10","_defaultMediaConstrai11","_defaultMediaConstrai12","_defaultMediaConstrai13","_defaultMediaConstrai14","_defaultMediaConstrai15","_defaultMediaConstrai16","_defaultMediaConstrai17","_defaultMediaConstrai18","holdCallService","resumeCallService","_defaultMediaConstrai19","_defaultMediaConstrai20","_defaultMediaConstrai21","_defaultMediaConstrai22","_defaultMediaConstrai23","_defaultMediaConstrai24","_defaultMediaConstrai25","_defaultMediaConstrai26","_defaultMediaConstrai27","makeCallService","_defaultMediaConstrai28","_defaultMediaConstrai29","_defaultMediaConstrai30","_defaultMediaConstrai31","_defaultMediaConstrai32","_defaultMediaConstrai33","_defaultMediaConstrai34","_defaultMediaConstrai35","_defaultMediaConstrai36","uri","referId","handleRemoteMediaService","local_context","offerless","AdjustMediaMode","handleIncomingCallService","_defaultMediaConstrai37","_defaultMediaConstrai38","_defaultMediaConstrai39","_defaultMediaConstrai40","_defaultMediaConstrai41","_defaultMediaConstrai42","_defaultMediaConstrai43","_defaultMediaConstrai44","_defaultMediaConstrai45","autoaccept_reinvites","executeXferService","refer_to","_body","replaces_call_id","_DETACH","newSdp","maudio_index","mvideo_index","maudio","mvideo","mindex","pbxPlatform","header","callerId","trimmed","setDefaultAudioConstraints","attrContext","answerSend","answerRecv","DetermineAnswerMediaAttr","mediaLine","mediaIndex","fromIndex","mCount","end_of_md","sendOnlyModeIndex","recvOnlyModeIndex","inactiveModeIndex","sendrecvModeIndex","escalate$1","sipPluginSession","sessionService","janusSession","queuedDetach","isCallAnswered","disabledPlugin","unknown","DETACH","waitingForMasterId","ATTACH","DETACHED","attaching","ATTACHED","SERVICE_ERROR","attached","onDone","DO_GET_STATS","_context$pluginHandle","_context$pluginHandle2","OnStatsUpdate","CALL_STATE_IDLE","CALL_STATE_DEEP_IDLE","CALL_STATE_TRYING_OUT","CALL_STATE_CALLING_OUT","CALL_STATE_RINGING_OUT","CALL_STATE_PROCEEDING_OUT","CALL_STATE_PROGRESS_OUT","CALL_STATE_CONNECTING","CALL_STATE_CONNECTED","CALL_STATE_HANGINGUP","CALL_STATE_ONHOLD","CALL_STATE_INCOMING_CALL","CALL_STATE_DO_XFERRING","CALL_STATE_ERROR","HANDLE_REFER","DO_BLIND_XFER_FAILED","DO_BLIND_XFER_SUCCEEDED","DO_XFER_FAILED","DO_XFER_SUCCEEDED","MEDIA_ON_LOCAL_STREAM","MEDIA_ON_REMOTE_STREAM","SLOWLINK","ON_STATS_UPDATED","UPDATED","DTMFSENT","REQUEST_TO_RECONNECT","pluginAttachService","_error","msg","OnMessage","OnLocalStream","OnRemoteStream","uplink","lost","OnSlowLink","OnInLinkStatus","OnPluginCleanup","OnPluginDetached","OnReconnectRequested","detachAction","onPluginStartedAction","this_plugin","callControl","size","history","endpointView","ForwardEventToServiceInstance","serviceId","service","toUpperCase","_x","_x2","_OnStatsUpdate","_callee","_context","CallView","uiCallbacks","referInstanceId","localStream","stateDesc","statusErrorCode","statusErrorDescription","peerDisplay","lastCallerUsername","lastCallerDisplay","lastCalleeUsername","lastCalleeDisplay","localStreamActive","remoteStreamActive","videoRequested","lastHangupReason","lastHangupTone","lastDirection","lineRegistered","xferInstanceId","slowAudioUplinkTimer","slowAudioDownlinkTimer","canMakeCall","canHangup","_proto","ToDialUri","userpart","doMakeCall","clearError","targetUri","_sessionService","onCallStatusError","onCallStatusChange","doAnswer","JanusAnswerCall","doHangup","_this2","JanusHangupCall","doIceRestart","doHold","_this3","doResume","_this4","doBlindXfer","_this5","sip_refer_to","ERROR_TRANSFER","doXfer","_this6","JanusCompleteTransfer","doSendDtmf","digit","_this7","ERROR_DTMF","doEnableVideo","_this8","ERROR_VIDEO","doGetStats","_this9","ERROR_STATS","doMuteMicrophone","_this10","tracks","ERROR_AUDIO","onLineRegistered","onLineUnregistered","onLocalStream","isActive","_this11","videoTrack","SetupCallCaps","onMediaStatusChange","onRemoteStream","onStatsUpdated","onSlowLink","_this12","onSlowAudioUpLink","onSlowAudioDownLink","onCallStatusIdle","onCallStatusDeepIdle","callState","callStateDesc","media_caps","oldState","SrCallView","_CallView","_this13","_proto2","doStartScreenRecording","_this14","ERROR_SCREEN_RECORDING","doStopScreenRecording","_this15","SmCallView","_CallView2","_proto3","LineView","bgCalls","srCall","canSrStart","canSrStop","callIndex","registerStatus","registerStatusError","mwiStatus","canRequestRegister","canRequestUnregister","canToogle","_proto4","doRequestRegister","_this16","JanusActivateSipRegistration","onLineRegisterRequested","onLineRequestRegisterFailed","doRequestUnregister","_this17","JanusDeactivateSipRegistration","onLineUnregisterRequested","onLineRequestUnregisterFailed","doToogle","_this18","ERROR_TOGGLE_CALL","doMaintainCallFocus","_this19","activeCallIndex","findIndex","onEndpointReconnecting","onUnregistered","onEndpointConnected","onLineRequestegisterFailed","onRegistrationError","onLineRegisterStatusChange","onRegistrationTrying","onUnregistrationTrying","_call2","_call3","onRegistered","_call4","onMwiStatusChange","onPendingCallCanceled","callTemp","fgIdleCallIndex","bgActiveCallIndex","_callTemp","_callTemp2","isCallConnected","onCallIdUpdate","onReferHandled","SmLineView","_LineView","_this20","_proto5","_this21","_this22","EndpointView","janusServerUri","lineView","statusError","_proto6","_this23","onEndpointStatusChange","doConnectGuest","turnServers","pbxPlatformId","sipRealm","doConnect","password","turnUsername","turnPassword","_this24","onEndpointConnectFailed","addLine","setupSessionService","doConnectScreenMonitor","_this25","addScreenMonitorLine","interpret","onTransition","janusServer","doDisconnect","removeLine","md5","_step11","_iterator11","_call5","ideal","_step12","_iterator12","error1","_step13","_iterator13","_step14","_iterator14","_call6","onEndpointDisconnected","_this26","lineViewCopy","onEndpointLineRemoved","_this27","onEndpointConnecting","_this28","_this29","onEndpointRemoveLineFailed","onEndpointLineAdded","CreateEndpointView","queuedStop","idlePlugins","Set","idleSrPlugins","serverRequestToReconnect","isMonitorSession","DO_CONNECT","DO_DISCONNECT","reconnecting","DO_RECONNECT","JANUS_SESSION_ERROR","JANUS_SESSION_DESTROYED","opaqueSessionId","JANUS_SESSION_SUCCESS","JANUS_SESSION_PROGRESS","disconnecting","destroying_session","destroying_session_expired","PLUGIN_REGISTRATION_FAILED","PLUGIN_RETRYING_REGISTER","PLUGIN_TRYING_UNREGISTER","PLUGIN_UNREGISTERED","PLUGIN_REGISTERED","sort","FORWARD_TO_PLUGIN","canReconnect","onJanusSessionStoppedAction","onJanusSessionReconnectingAction","onJanusSessionStartedAction","plugins","masterPlugin","helperPlugin1","helperPlugin2","helperPlugin3","srPlugin","_plugins","onJanusSessionErrorAction","stopJanusSessionAction","onMasterPluginError","notifyRegistrationFailedAction","notifyRetryingRegistrationAction","notifyTryingUnregistrationAction","notifyUnregisteredAction","notifyRegisteredAction","notifyMwiAction","cancelPendingCallAction","notifyCallStateErrorAction","notifyCallStateIdleAction","notifyCallStateDeepIdleAction","notifyCallStateTryingOutAction","notifyCallStateCallingOutAction","notifyCallStateRingingOutAction","notifyCallStateProceedingOutAction","notifyCallStateProgressOutAction","notifyCallStateConnectingAction","notifyCallStateConnectedAction","notifyCallStateHangingUpAction","notifyCallStateOnHoldAction","setPluginBusyAction","handleCallStateIncomingCallAction","_step15","replaces_plugin","replacing_plugin","_iterator15","_step16","_iterator16","_value","JanusDeclineCall","notifyMediaOnLocalStreamAction","notifyMediaOnRemoteStreamAction","notifyOnStatsUpdatedAction","notifySlowLinkAction","handleReferAction","idleArr","notifyBlindXferFailedAction","notifyXferFailedAction","notifyBlindXferSucceededAction","notifyXferSucceededAction","handleCallStateXferringtAction","notifyStartMediaCapture","notifyStopMediaCapture","notifySuspendMediaCapture","notifyResumeMediaCapture","sessionControlService","endpointView$1","_step17","_iterator17","callView","getActiveCallView","lv","onInit","onLineStatusChanged","onCallStatusChanged","tsCalls","getCall","getLine","adapter$1","getEndpoint","onLineRequestUregisterFailed","_sipserver","_username","_errorCode","_errorMessage","_stats","_slow","connectEndpoint$1","_callee2","serverUsername","serverPassword","_context2","_x3","connectEndpointGuest$1","_ref5","_callee3","_ref4","_context3","_x4","_x5","disconnectEndpoint$1","_ref6","_callee4","_ctx","_context4","_x6","configureMediaConstraints$1","_ref7","_callee5","_context5","_x7","_x8","dial$1","_ref8","_callee6","_context6","_x9","_x10","hangUp$1","_callee7","_context7","muteMicrophone$1","_ref10","_callee8","_context8","_x11","_x12","dtmf$1","_ref11","_callee9","_context9","_x13","_x14","answer$1","_callee10","_context10","hold$1","_callee11","_context11","resume$1","_callee12","_context12","toggleVideo$1","_ref15","_callee13","_context13","_x15","_x16","setPtz","ptz","_call$localStream","_constraintSet","constraintSet","applyConstraints","advanced","ex","setVideoPan$1","_ref16","_callee14","_context14","_x17","_x18","setVideoTilt$1","_ref17","_callee15","_context15","_x19","_x20","setVideoZoom$1","_ref18","_callee16","_context16","_x21","_x22","transfer$1","_callee17","_context17","lineStatusChanged$1","_ref20","_callee18","_context18","_x23","_x24","getCallStats$1","_callee19","_context19","_endpointView","_lineView","trimQuotes","constructPtzCapability","caps","getSettings","_localStream$getVideo","_ref22","_remoteStream$getVide","_callView","janus$1","TrimQuotesRegExp","script","_script","onIncomingCall","ac","_ac","_ac2","URLSearchParams","search","parseScript","t0","abort","AbortController","signal","cmd","substr","_run","aborted","useSelector$1","css","Audio","audioRef","_call$remoteStream","React__default","autoPlay","loop","css$1","ConnectScreen","_useState","useState","triedAutoConnect","setTriedAutoConnect","_useState2","setExtension","_useState3","setPin","autoComplete","className","connectScreen","onSubmit","preventDefault","onChange","currentTarget","disabled","_extends$1","sourceKeys","fill","SvgBack","svgRef","title","titleId","xmlns","xmlnsXlink","viewBox","ForwardRef","_extends$2","_objectWithoutProperties$1","_objectWithoutPropertiesLoose$1","_ref2$1","SvgBackspace","role","ForwardRef$1","_extends$3","_objectWithoutProperties$2","_objectWithoutPropertiesLoose$2","_ref2$2","SvgConnectionDownLink","style","ForwardRef$2","_extends$4","_objectWithoutProperties$3","_objectWithoutPropertiesLoose$3","_ref2$3","SvgConnectionStatus","ForwardRef$3","_extends$5","_objectWithoutProperties$4","_objectWithoutPropertiesLoose$4","_ref2$4","SvgConnectionUpLink","ForwardRef$4","_extends$6","_objectWithoutProperties$5","_objectWithoutPropertiesLoose$5","_ref2$5","SvgLogOut","ForwardRef$5","_extends$7","_objectWithoutProperties$6","_objectWithoutPropertiesLoose$6","_ref2$6","SvgPhoneDial","ForwardRef$6","_extends$8","_objectWithoutProperties$7","_objectWithoutPropertiesLoose$7","_ref2$7","SvgPhoneDialVideo","ForwardRef$7","_extends$9","_objectWithoutProperties$8","_objectWithoutPropertiesLoose$8","_ref2$8","SvgPhoneHangUp","ForwardRef$8","_extends$a","_objectWithoutProperties$9","_objectWithoutPropertiesLoose$9","_ref2$9","SvgPhoneHold","ForwardRef$9","_extends$b","_objectWithoutProperties$a","_objectWithoutPropertiesLoose$a","_ref2$a","SvgPhoneKeypad","ForwardRef$a","_extends$c","_objectWithoutProperties$b","_objectWithoutPropertiesLoose$b","_ref2$b","SvgPhoneMicrophone","ForwardRef$b","_extends$d","_objectWithoutProperties$c","_objectWithoutPropertiesLoose$c","_ref2$c","SvgPhoneMicrophoneMuted","ForwardRef$c","_extends$e","_objectWithoutProperties$d","_objectWithoutPropertiesLoose$d","_ref2$d","SvgPhoneResume","ForwardRef$d","_extends$f","_objectWithoutProperties$e","_objectWithoutPropertiesLoose$e","_ref2$e","transform","_ref3$1","SvgPhoneShareScreen","ForwardRef$e","_extends$g","_objectWithoutProperties$f","_objectWithoutPropertiesLoose$f","_ref2$f","SvgPhoneVideo","ForwardRef$f","css$2","mapAudio","audioObject","css$3","Keypad","renderButton","footer","bigFooter","onClick","onKeyPressed","handleDtmfClick","big","dialpad","InCallControl","prevCanDial","showDialpad","setShowDialpad","keypadDismiss","buttons","callButtons","css$4","css$5","css$6","Toggle","useCallback","toggle","checked","icon","MediaConstraintSetup","input","inputProps","_extends2","numberValue","_extends3","mediaConstraintsContainer","audioQualityContainer","css$7","css$8","Video","remoteVideoClassName","localVideoClassName","remoteVideoRef","localVideoRef","videoContainer","muted","local","callStatusMap","Map","PhoneDisplay","_call$peerDisplayName","display","loggedInUser","caller","connectionStatusContainer","connectionIcon","slow","connectionStatusIcon","Phone","setNumber","inputRef","showStats","onBackspace","onDigit","phone","phoneNumber","backspace","statsContainer","statsOutput","report","statName","stringifyStats","Ringer","setSyncId","supportsSinkApi","setSinkId","Fragment","initCitrixWebRTC","__esModule","outShimSdkIntSdkAudioelementJs","__webpack_require__","eval","outShimSdkIntSdkEnginecontrolJs","outShimSdkIntSdkFrametrackerJs","outShimSdkIntSdkGarbagecollectorJs","outShimSdkIntSdkHdxmsJs","outShimSdkIntSdkIcecandidateJs","outShimSdkIntSdkLoggerJs","outShimSdkIntSdkPeerconnectionJs","outShimSdkIntSdkProxyobjectJs","outShimSdkIntSdkRemotemediaJs","outShimSdkIntSdkRemotesessionJs","outShimSdkIntSdkRtpsenderJs","outShimSdkIntSdkRtptransceiverJs","outShimSdkIntSdkStatsJs","outShimSdkIntSdkTelemetryJs","outShimSdkIntSdkVdiCitrixWebRTC_sdkJs","outShimSdkIntSdkVideoelementJs","outShimSdkIntSdkWebrpcclassinfoJs","outShimSdkIntSdkWsjsonutilJs","CitrixWebRTC","vdiCitrix","originalGetUserMedia","originalEnumerateDevices","originalPeerConnection","registerWebRtcGlobals","global","setVMEventCallback","handleCitrixEventCallback","restoreOriginalWebRtc","replaceWebRtcWithCitrix","AsyncPeerConnection","_vdiCitrix$CitrixPeer","description","CitrixPeerConnection","WebRtcClient","initialised","setInitialised","app","logout","renderApp","css$9","_window$ipcRenderer","ChannelName","ActionType","getRandomInt","AutomationTest","endpointOnline","setEndpointOnline","nextAction","setNextAction","nextActionRemainingTime","setNextActionRemainingTime","_useState4","isRunning","setIsRunning","retryCount","_useState5","allowableActions","setAllowableActions","_useState6","autoDialNumber","setAutoDialNumber","_useState7","autoAnswer","setAutoAnswer","_useState8","allowHoldResume","setAllowHoldResume","_useState9","allowHangUp","setAllowHangUp","_useState10","allowIdle","setAllowIdle","_useState11","minDelayMs","setMinDelayMs","_useState12","maxDelayMs","setMaxDelayMs","scheduleNextAction","work","delayMs","workAction","Action","PerformWork","DelayMs","configureAutoAnswerMode","queryParams","autoAnswerMode","onAutomationTestCommandEvent","Command","Settings","Extension","Pin","Result","removeListener","isOnline","interval","Idle","Dial","Answer","Hold","Resume","HangUp","minDelay","maxDelay","automationTestContainer","valueAsNumber","allowActionsList","startStopContainer","css$a","DeviceSelection","setDevices","deviceSelectionContainer","css$b","WebRtcClientConfigurator","_useSelector","settingsState","setSettingsState","webRtcClientConfiguratorContainer","applyContainer","setWindowHandlerAccessor","accessor","getWindowHandleAsHex","Raise","Send","Cancel","nullEvent","NullEvent","Assign","Log","Init","Invoke","errorPlatform","ErrorExecution","ErrorCustom","Update","createNamedContext","historyContext","Router","computeRootMatch","isExact","pathname","componentDidMount","listen","_pendingLocation","componentWillUnmount","render","RouterContext","staticContext","HistoryContext","Component","Lifecycle","onMount","componentDidUpdate","onUpdate","prevProps","onUnmount","cacheCount","generatePath","pathToRegexp","compilePath","pretty","Redirect","computedMatch","createLocation","prevLocation","locationsAreEqual","matchPath","exact","strict","sensitive","matched","cacheKey","pathCache","regexp","Route","component","isEmptyChildren","addLeadingSlash","stripBasename","basename","createURL","createPath","staticHandler","Switch","child","useHistory","useParams","useRouteMatch","checkIsEmpty","argPosition","checkValidActionCreator","throwInvalidActionCreator","idx","checkValidActionType","checkInvalidActionType","throwInvalidActionType","checkInvalidActionTypeInArray","createHandler","customProps","payloadCreator","metaCreator","createStandardAction","_type","requestArg","successArg","failureArg","cancelArg","results","throwInvalidAsyncActionArgument","failure","createReducer","initialState","initialHandlers","reducerHandler","singleOrMultipleCreatorsAndTypes","creatorsAndTypes","newHandlers","acOrType","throwInvalidActionTypeOrActionCreator","handleAction","handleType","actionCreatorOrCreators","assertFn","_action","actionTypeOrTypes","actionTypes","isStringOrNumber","FlatObjectCache","_cache","selectorFn","remove","isValidCacheKey","defaultCacheCreator","defaultCacheKeyValidator","createCachedSelector","legacyOptions","polymorphicOptions","keySelector","resultFuncWithRecomputations","inputSelectors","cacheResponse","createStructuredCachedSelector","validateCacheSize","cacheSize","FifoObjectCache","_cacheOrdering","_cacheSize","earliest","LruObjectCache","_registerCacheHit","_deleteCacheHit","FlatMapCache","FifoMapCache","LruMapCache","UA","getBrowser","getCPU","getDevice","engine","getEngine","os","getOS","ua","getUA","setDefaults","getNavigatorInstance","isIOS13Check","nav","maxTouchPoints","MSStream","_typeof","_getPrototypeOf","DeviceTypes","BrowserTypes","Chrome","Firefox","Opera","Yandex","Safari","InternetExplorer","Edge","Chromium","Ie","MobileSafari","EdgeChromium","MIUI","SamsungBrowser","OsTypes","IOS","Android","WindowsPhone","Windows","MAC_OS","initialData","isMobile","isTablet","isBrowser","isSmartTV","isConsole","isWearable","mobilePayload","vendor","model","osVersion","checkType","isEdgeChromiumType","isBrowserType","isEdgeType","getIPad13","isMobileSafari","isChromium","isMobileAndTabletType","isMobileOnly","isDesktop","isAndroid","isWinPhone","isIOS","isChrome","isFirefox","isSafari","isOpera","isIE","osName","fullBrowserVersion","browserVersion","major","browserName","mobileVendor","mobileModel","engineName","engineVersion","isEdge","isYandex","deviceType","isIOS13","getIOS13","isIPad13","isIPhone13","isIPod13","isElectron","isElectronType","isEdgeChromium","isLegacyEdge","isWindows","isMacOs","isMIUI","isSamsungBrowser","AndroidView","renderWithFragment","viewClassName","BrowserView","ConsoleView","CustomView","_ref12","IEView","IOSView","MobileOnlyView","MobileView","SmartTVView","_ref9","TabletView","WearableView","WinPhoneView","deviceDetect","browserMajorVersion","browserFullVersion","broPayload","stvPayload","consolePayload","wearPayload","withOrientationChange","_React$Component","_class","isEventListenerAdded","handleOrientationChange","onOrientationChange","onPageLoad","isLandscape","isPortrait","orientation","innerWidth","innerHeight","setState","_toPropertyKey","hint","prim","toPrimitive","pathObj","makePathArray","val","keyPart","cursor","takeRight","orderBy","comp","dirs","sortInt","rowA","rowB","range","getFirstDefined","sum","makeTemplateComponent","cmp","rest","classnames","groupBy","resKey","splitProps","compactObject","newObj","isSortingDesc","normalizeComponent","fallback","Comp","isReactComponent","asPx","flattenDeep","newArr","isClassComponent","isFunctionComponent","defaultButton","ReactTablePagination","page","nextProps","pages","getSafePage","onPageChange","changePage","onKeyPress","onBlur","inputType","pageJumpText","showPageSizeOptions","pageSizeOptions","pageSize","showPageJump","canPrevious","canNext","onPageSizeChange","PreviousComponent","NextComponent","renderPageJump","renderCurrentPage","renderTotalPagesCount","renderPageSizeOptions","previousText","rowsSelectorText","rowsText","nextText","defaultProps","option","emptyObj","resolveData","loading","showPagination","showPaginationTop","showPaginationBottom","defaultPage","defaultPageSize","collapseOnSortingChange","collapseOnPageChange","collapseOnDataChange","freezeWhenExpanded","sortable","multiSort","resizable","filterable","defaultSortDesc","defaultSorted","defaultFiltered","defaultResized","defaultExpanded","defaultFilterMethod","row","defaultSortMethod","onSortedChange","onFilteredChange","onResizedChange","onExpandedChange","pivotBy","pivotValKey","pivotIDKey","subRowsKey","aggregatedKey","nestingLevelKey","originalKey","indexKey","groupedByPivotKey","onFetchData","getProps","getTableProps","getTheadGroupProps","getTheadGroupTrProps","getTheadGroupThProps","getTheadProps","getTheadTrProps","getTheadThProps","getTheadFilterProps","getTheadFilterTrProps","getTheadFilterThProps","getTbodyProps","getTrGroupProps","getTrProps","getTdProps","getTfootProps","getTfootTrProps","getTfootTdProps","getPaginationProps","getLoadingProps","getNoDataProps","getResizerProps","column","Cell","Header","Footer","Aggregated","Pivot","PivotValue","Expander","Filter","Placeholder","show","minWidth","minResizeWidth","aggregate","headerClassName","headerStyle","getHeaderProps","footerClassName","footerStyle","getFooterProps","filterMethod","filterAll","sortMethod","expanderDefaults","pivotDefaults","loadingText","noDataText","pageText","ofText","TableComponent","TheadComponent","TbodyComponent","TrGroupComponent","TrComponent","ThComponent","toggleSort","tabIndex","TdComponent","TfootComponent","FilterComponent","placeholder","ExpanderComponent","isExpanded","PivotValueComponent","subRows","AggregatedComponent","previewValues","PivotComponent","PaginationComponent","LoadingComponent","NoDataComponent","ResizerComponent","PadRowComponent","PropTypes","columns","elementType","ReactTable","sorted","expanded","filtered","resized","currentlyResizing","skipNextSort","resolvedState","manual","SubComponent","resolvedData","allVisibleColumns","headerGroups","hasHeaderGroups","sortedData","startRow","endRow","pageRows","minRows","padRows","hasColumnFooter","hasFilters","recurseRowsViewIndex","_viewIndex","newPath","rowWithViewIndex","rowMinWidth","resizedColumn","rowIndex","rootProps","tableProps","tBodyProps","loadingProps","noDataProps","makeHeaderGroup","resizedValue","col","flex","theadGroupThProps","columnHeaderProps","styles","flexStyles","makeHeader","resizedCol","theadThProps","isResizable","resizer","isSortable","makeFilter","theadFilterThProps","ResolvedFilterComponent","isFilterable","makePageRow","rowInfo","original","viewIndex","level","nestingPath","aggregated","groupedByPivot","trGroupProps","trProps","tdProps","columnProps","pivoted","expander","cellInfo","useOnExpanderClick","isBranch","isPreview","resolvedCell","ResolvedAggregatedComponent","ResolvedExpanderComponent","ResolvedPivotValueComponent","DefaultResolvedPivotComponent","ResolvedPivotComponent","resolvedOnExpanderClick","newExpanded","interactionProps","i2","makePadColumn","makePadRow","makeColumnFooter","tFootTdProps","columnFooterProps","makePagination","paginationProps","isTop","makeTable","theadGroupProps","theadGroupTrProps","makeHeaderGroups","theadProps","theadTrProps","makeHeaders","theadFilterProps","theadFilterTrProps","makeFilters","tFootProps","tFootTrProps","makeColumnFooters","Base","newState","columnsWithExpander","expanderColumn","col2","allDecoratedColumns","decorateAndAddToAll","parentColumn","decoratedColumn","dcol","accessorString","makeDecoratedColumn","visibleColumns","pivotIndex","visibleSubColumns","pivotColumns","pivotID","found","PivotParentColumn","PivotGroupHeader","pivotColumnGroup","currentSpan","addHeader","accessRow","aggregatingColumns","rows","aggregationValues","groupRecursively","groupedRows","entries","rowGroup","sortMethodsByColumnID","sortData","filterData","getStateOrProp","filteredData","nextFilter","filteredSoFar","orderByMethod","setStateWithData","currentRow","newPage","firstSortDirection","secondSortDirection","newSorted","existingIndex","existing","additive","newFiltering","parentWidth","pageX","isTouch","trapEvents","startX","currentColumn","newResized","newWidth","Methods","getDataModel","fireFetchData","getResolvedState","defaultableOptions","defaultName","resettableOptions","optionName","newResolvedState","getSortedData","propTypes","isLeafNode","stateNode","getChildren","getAllStateNodes","stateNodes","getConfiguration","prevStateNodes","e_4","prevAdjList","getAdjList","configuration","configuration_1","configuration_1_1","adjList","configuration_2","configuration_2_1","_f","sn","initialStateNodes","configuration_3","configuration_3_1","e_4_1","getValueFromAdj","baseNode","childStateNodes","childStateNode","csn","configuration_4","configuration_4_1","getValue","rootNode","member","nextEvents","ownEvents","isInFinalState","defaultOptions","getDefaultOptions","createObj","inherit","Child","END","VALUE","ERROR","ANY","j","findByPred","pred","cloneArray","callSubscriber","Dispatcher","_items","_spies","_inLoop","_removedItems","Observable","_dispatcher","_active","_alive","_activating","_logHandlers","_spyHandlers","Stream","Property","_currentEvent","addSpy","removeSpy","spies","cleanup","_name","_onActivation","_onDeactivation","_setActive","_clear","_emit","_emitValue","_emitError","_emitEnd","_on","_off","onValue","onEnd","onAny","offValue","offError","offEnd","offAny","observe","observerOrOnValue","closed","_ofSameType","B","setName","sourceObs","selfName","isCurrent","offLog","handlerIndex","spy","offSpy","neverS","never","timeBased","mixin","AnonymousStream","wait","_wait","_intervalId","_$onTick","_onTick","_init","_free","later","S$1","S$2","xs","_xs","shift","sequentially","S$3","_fn","fromPoll","emitter","obs","emit","emitEvent","S$4","_emitter","withInterval","S$5","fromCallback","callbackConsumer","called","fromNodeCallback","spread","aLength","_callUnsubscribe","pairs","fromEvents","transformer","sub","unsub","fromSubUnsub","P","P$1","constantError","createConstructor","BaseClass","_source","_$handleAny","_handleAny","createClassMethods","_handleValue","_handleError","_handleEnd","createStream","createProperty","P$2","_getInitialCurrent","getInitial","toProperty","S$6","fromPromise","_promise","getGlodalPromise","symbolObservablePonyfill","fromESObservable","_observable","ESObservable","takeErrors","toESObservable","collect","Combine","passive","combinator","_activeCount","_sources","_combinator","_aliveCount","_latestValues","_latestErrors","fillArray","_emitAfterActivation","_endAfterActivation","_latestErrorIndex","_$handlers","combine","combineAsArray","activeObservables","passiveObservables","objectify","combineAsObject","observerOrOnNext","onComplete","_emitIfFull","hasAllValues","hasErrors","valuesCopy","errorsCopy","errors","latestError","defaultErrorsCombinator","Observable$2","merge","of","bimap","fnErr","fnVal","mapErrors","ap","obsFn","obsVal","flatMap","staticLand","freeze","S$7","P$3","map$1","mixin$1","S$8","P$4","id$1","mixin$2","S$9","P$5","mixin$3","S$10","P$6","mixin$4","S$11","P$7","id$2","mixin$5","_lastValue","S$12","P$8","mixin$6","S$13","P$9","mixin$7","S$14","P$10","id$3","mixin$8","_prev","S$15","P$11","eq","skipDuplicates","mixin$9","seed","S$16","P$12","defaultFn","P$13","_seed","S$17","id$4","END_MARKER","mixin$11","_buff","_$shiftBuff","S$18","P$14","now","mixin$12","leading","trailing","_leading","_trailing","_trailingValue","_timeoutId","_endLater","_lastCallTime","_$trailingCall","_trailingCall","curTime","remaining","_cancelTrailing","S$19","P$15","mixin$13","immediate","_immediate","_lastAttempt","_laterValue","_$later","_later","S$20","P$16","mixin$14","S$21","P$17","id$5","mixin$15","S$22","P$18","id$6","mixin$16","S$23","P$19","mixin$17","S$24","P$20","mixin$18","S$25","P$21","mixin$19","S$26","P$22","mixin$20","_max","_min","cur","offset","slide","S$27","P$23","mixin$21","flushOnEnd","_flushOnEnd","_flush","S$28","P$24","id$7","mixin$22","count","_count","S$29","P$25","mixin$23","S$30","P$26","mixin$24","transducer","_xform","S$31","P$27","mixin$25","_handler","S$32","P$28","Zip","sources","_buffers","zip","observables","_isFull","id$8","AbstractPool","_ref$queueLim","queueLim","_ref$concurLim","concurLim","_ref$drop","drop","_queueLim","_concurLim","_drop","_queue","_curSources","_$handleSubAny","_handleSubAny","_$endHandlers","_currentlyAdding","Merge","_addAll","_initialised","S$33","_generator","_iteration","_add","toObs","_addToCur","_addToQueue","_removeOldest","obss","_remove","_removeCur","_removeQueue","_pullQueue","_onEmpty","_subToEnd","_subscribe","onEndI","_isEmpty","_getSource","repeat","concat$1","Pool","FlatMap","_mainEnded","_lastCurrent","_$handleMain","_handleMain","FlatMapErrors","createConstructor$1","primary","secondary","_primary","_secondary","_lastSecondary","_$handleSecondaryAny","_handleSecondaryAny","_$handlePrimaryAny","_handlePrimaryAny","createClassMethods$1","_handlePrimaryValue","_handlePrimaryError","_handlePrimaryEnd","_handleSecondaryValue","_handleSecondaryError","_handleSecondaryEnd","_removeSecondary","createStream$1","createProperty$1","plug","unplug","_hadNoEvSinceDeact","mixin$26","S$34","P$29","id2","mixin$27","S$35","P$30","mixin$28","S$36","P$31","mixin$29","_ref$flushOnEnd","S$37","P$32","mixin$30","_ref$flushOnChange","flushOnChange","_flushOnChange","S$38","P$33","mixin$31","convert","S$39","P$34","defFn","mixin$32","S$40","P$35","defFn$1","mixin$33","S$41","P$36","changes","toPromise","takeWhile","skip","skipWhile","scan","throttle","_ref2$leading","_ref2$trailing","debounce","_ref2$immediate","filterErrors","ignoreValues","ignoreErrors","ignoreEnd","beforeEnd","slidingWindow","bufferWhile","_ref2$flushOnEnd","bufferWithCount","bufferWhile$1","bufferWithTimeOrCount","transduce","withHandler","thru","other","pool","flatMapLatest","flatMapFirst","flatMapConcat","flatMapConcurLimit","limit","flatMapErrors","filterBy","sampledBy","skipUntilBy","takeUntilBy","bufferBy","bufferWhileBy","DEPRECATION_WARNINGS","dissableDeprecationWarnings","awaiting","valuesToErrors","errorsToValues","endOnError","Kefir","LOCATION_CHANGE","onLocationChanged","isFirstRendering","CALL_HISTORY_METHOD","updateLocation","routerActions","go","goBack","goForward","isAbsolute","spliceOne","list","k","resolvePathname","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","part","unshift","valueEqual","aValue","bValue","stripLeadingSlash","hasBasename","stripTrailingSlash","hash","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","notifyListeners","canUseDOM","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_window$location","createKey","transitionManager","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","fromLocation","toLocation","toIndex","allKeys","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","href","pushState","prevIndex","nextKeys","replaceState","block","unblock","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","allPaths","lastIndexOf","baseTag","getAttribute","pushHashPath","nextPaths","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","nextIndex","nextEntries","canGo","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","createSelectors","structure","getIn","toJS","getRouter","router","getLocation","getAction","getSearch","getHash","createMatchSelector","lastPathname","lastMatch","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","injectQuery","query","searchQuery","currentQuery","_currentQuery$split2","createConnectRouter","fromJS","initialRouterState","connectRouter","plainStructure","_createSelectors","stateValuesEqual","aKeys","bKeys","isState","bindActionToState","State","activities","EMPTY_ACTIVITY_MAP","events","_sessionid","historyValue","matches","toStrings","transitions","inert","valueKeys","getWait","defer","deferred","lastCallAt","pendingArgs","currentWait","isCold","accumulate","flush","argsIndex","thisDeferred","startOfUTCWeek","dirtyDate","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","weekStartsOn","RangeError","day","getUTCDay","setUTCDate","getUTCDate","setUTCHours","startOfUTCISOWeek","startOfWeek","setDate","setHours","core","__e","getTimezoneOffsetInMilliseconds","utcDate","setUTCFullYear","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","_chart","defaults","Scatter","Bubble","Polar","Radar","HorizontalBar","Bar","Line","Pie","Doughnut","_react","_interopRequireDefault","_propTypes","_isEqual","_keyBy","sham","_isNativeReflectConstruct","NODE_ENV","ChartComponent","_super","chartInstance","_this$props","getDatasetAtEvent","getElementAtEvent","getElementsAtEvent","onElementsClick","renderChart","redraw","destroyChart","updateChart","_this$props2","legend","nextData","transformDataProp","shadowDataProp","datasets","saveCurrentDatasets","isDev","usingCustomKeyProvider","datasetKeyProvider","getLabelAsKey","multipleDatasets","shouldWarn","dataset","getCurrentDatasets","memoizeDataProps","helpers","configMerge","currentDatasets","nextDatasets","checkDatasets","currentDatasetsIndexed","point","pid","otherProps","_this$props3","node","_this$props4","handleOnClick","oneOfType","isRequired","arrayOf","bool","propName","componentName","controllers","position","_default","_React$Component2","_super2","_React$Component3","_super3","_React$Component4","_super4","_React$Component5","_super5","_React$Component6","_super6","_React$Component7","_super7","_React$Component8","_super8","_React$Component9","_super9","_React$Component10","_super10","freeGlobal","freeSelf","resolveToLocation","normalizeToLocation","forwardRefShim","C","LinkAnchor","innerRef","navigate","isModifiedEvent","forwardedRef","Link","isDuplicateNavigation","NavLink","ariaCurrent","activeClassName","activeStyle","classNameProp","isActiveProp","locationProp","styleProp","escapedPath","joinClassnames","pow","millisecondsInMinute","millisecondsInHour","millisecondsInSecond","useMemoOne","getResult","inputs","isFirstRun","committed","newInputs","lastInputs","areInputsEqual","getRect","top","right","bottom","left","center","expand","expandBy","shrink","shrinkBy","noSpacing","createBox","borderBox","_ref2$margin","margin","_ref2$border","border","_ref2$padding","padding","marginBox","paddingBox","contentBox","raw","change","shiftBy","shifted","withScroll","scroll","pageXOffset","pageYOffset","calculateBox","marginTop","marginRight","marginBottom","marginLeft","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","getBox","el","getBoundingClientRect","getComputedStyle","safeIsNaN","second","memoizeOne","resultFn","isEqual","lastThis","lastArgs","calledOnce","newArgs","rafSchd","frameId","wrapperFn","requestAnimationFrame","cancelAnimationFrame","shouldRecover","ErrorBoundary","setOnError","onFatalError","componentDidCatch","point1","point2","negate","otherValue","distance","sqrt","closest","points","offsetByPosition","spacing","getCorners","clip","frame","shouldClipSubject","subject","executeClip","pageMarginBox","getSubject","withPlaceholder","axis","scrolled","displacement","increased","increasedBy","increase","scrollDroppable","droppable","newScroll","scrollable","scrollDiff","scrollDisplacement","whatIsDraggedOver","impact","destination","droppableId","_Object$values","toDroppableMap","droppables","previous","toDraggableMap","draggables","toDroppableList","toDraggableList","isWithin","isPositionInFrame","isWithinVertical","isWithinHorizontal","getDraggablesInsideDroppable","draggable","vertical","crossAxisLine","crossAxisStart","crossAxisEnd","crossAxisSize","horizontal","isUserMovingForward","didStartDisplaced","draggableId","onLift","wasDisplaced","getCombinedItemDisplacement","displaced","combineWith","displacedBy","isDisplaced","getWhenEntered","oldMerge","whenEntered","getCombineImpact","currentCenter","pageBorderBoxCenterWithDroppableScrollChange","previousImpact","insideDestinationWithoutDraggable","userDirection","isCombineEnabled","movement","canBeDisplacedBy","displaceBy","currentUserDirection","twoThirdsOfSize","isMovingForward","targetCenter","isCombiningWith","isPartiallyVisibleThroughFrame","isPartiallyVisibleVertically","isPartiallyVisibleHorizontally","isBiggerVertically","isBiggerHorizontally","isTotallyVisibleThroughFrame","isVisible","toBeDisplaced","viewport","withDroppableDisplacement","isVisibleThroughFrameFn","displacedTarget","getDroppableDisplaced","isVisibleInDroppable","isVisibleInViewport","isPartiallyVisible","isTotallyVisible","getDisplacement","forceShouldAnimate","getTarget","shouldAnimate","getShouldAnimate","getDisplacementMap","getDisplacedBy","noMovement","noImpact","removeDraggableFromList","getDragImpact","pageBorderBoxCenter","destinationId","maybe","isEnabled","getDroppableOver","insideDestination","withDroppableScroll","withMerge","didStartDisplaced$1","dimension","newIndex","getReorderImpact","getHomeOnLift","home","originallyDisplaced","offsetDraggable","offset$1","initialWindowScroll","client","updateDraggables","updatedDroppables","criticalId","unmodifiedExisting","unmodifiedAdditions","additions","removals","addedDraggables","removedDraggables","toShift","addShift","indexChange","withRemovals","sibling","withAdditions","additionMap","moved","updated","adjustExistingForAdditionsAndRemovals","dragging","scrolledAdditions","windowScrollChange","droppableScrollChange","totalChange","adjustAdditionsForScrollChanges","adjustAdditionsForCollapsedHome","getMaxScroll","scrollHeight","scrollWidth","maxScroll","getDroppableDimension","isFixedOnPage","scrollSize","frameClient","isHomeOf","withMaxScroll","addPlaceholder","placeholderSize","requiredGrowth","availableSpace","needsToGrowBy","getRequiredGrowthForPlaceholder","added","oldFrameMaxScroll","newFrame","removePlaceholder","oldMaxScroll","getFrame","patchDroppableMap","recomputePlaceholders","cleaned","lastDroppable","clearUnusedPlaceholder","isOver","patched","publishWhileDragging","published","adjusted","provided","old","fresh","oldClient","newClient","oldScrollable","newScrollable","withSizeChanged","updateDroppables","dimensions","critical","_getDragPositions","oldInitial","oldCurrent","oldClientBorderBoxCenter","newClientBorderBoxCenter","selection","borderBoxCenter","getDragPositions","_getHomeOnLift","homeImpact","withoutAnimation","withNoAnimatedDisplacement","movementMode","draggingState","phase","onLiftImpact","isWaiting","forward","backward","moveToNextIndex","isInHomeList","instruction","initialInside","currentIndex","proposedIndex","modifyDisplacement","fromReorder","combineId","combineIndex","fromCombine","lastDisplaced","removeClosest","addClosest","distanceFromStartToBorderBoxCenter","box","getCrossAxisBorderBoxCenter","isMoving","goAfter","moveRelativeTo","goBefore","distanceFromEndToBorderBoxCenter","whenReordering","draggablePage","moveInto","goIntoStart","closestAfter","withDisplacement","getResultWithoutDroppableDisplacement","whenCombining","getPageBorderBoxCenterFromImpact","withoutDisplacement","scrollViewport","withNewDisplacement","getClientFromPageBorderBoxCenter","withoutPageScrollChange","withViewportDisplacement","isTotallyVisibleInNewLocation","newPageBorderBoxCenter","_ref$onlyOnMainAxis","onlyOnMainAxis","changeNeeded","isTotallyVisibleOnAxis","moveToNextPlace","previousPageBorderBoxCenter","previousClientSelection","originalInsideDestination","currentInsideDestination","shallow","targetIndex","moveToNextCombine","clientSelection","scrollJumpRequest","cautious","maxScrollChange","scrolledViewport","scrolledDroppable","withScrolledViewport","withScrolledDroppable","speculativelyIncrease","getKnownActive","rect","getCurrentPageBorderBoxCenter","getCurrentPageBorderBox","moveCrossAxis","isBetweenSourceClipped","activeOfTarget","isBetweenDestinationClipped","contains","isWithinDroppable","getBestCrossAxisDroppable","distanceToA","distanceToB","getClosestDraggable","proposed","proposedPageBorderBoxCenter","isGoingBeforeTarget","moveToNewDroppable","moveInDirection","isActuallyOver","getDroppableOver$1","isMainAxisMovementAllowed","isMovingOnMainAxis","_state$dimensions","isMovementAllowed","getVertical","getHorizontal","forcedClientSelection","forcedDimensions","forcedViewport","forcedImpact","currentWindowScroll","oldPageBorderBoxCenter","getUserDirection","newImpact","withUpdatedPlaceholders","recompute","getClientBorderBoxCenter","refreshSnap","needsVisibilityCheck","isSnapping","postDroppableChange","isEnabledChanging","patchDimensionMap","shouldFlush","_action$payload","isWindowScrollAllowed","isDragging","_clientSelection","_action$payload2","_action$payload3","_id","_target","_action$payload4","_id2","_target2","_updated","_viewport","_result2","_action$payload5","dropDuration","newHomeClientOffset","_action$payload6","publishWhileDragging$1","collectionStarting","updateDroppableScroll","updateDroppableIsEnabled","updateDroppableIsCombineEnabled","move","completeDrop","curves","combining","outOfTheWayTiming","fluid","snap","timing","outOfTheWay","moveTo","transforms","isCombining","translate","minDropTime","maxDropTime","dropTimeRange","drop$1","_getDropImpact","lastImpact","didDropInsideDroppable","getDropImpact","mode","newClientCenter","getNewHomeClientOffset","distance$1","toFixed","getDropDuration","animateDrop","dropPending","withLocation","startPosition","endPosition","withCombine","returnedToStart","preset","getAsyncMarshal","execute","withTimings","getDragStart","responder","announce","getDefaultMessage","willExpire","wasCalled","isExpired","timeoutId","getExpiringAnnounce","responders","getResponders","publisher","asyncMarshal","onDragEnd","beforeStart","onBeforeDragStart","lastCritical","lastLocation","lastCombine","onDragStart","hasCriticalChanged","isDraggableEqual","isDroppableEqual","isCriticalEqual","hasLocationChanged","hasGroupingChanged","isCombineEqual","onDragUpdate","getPublisher","dropAnimationFinish","pendingDrop","postActionState","composeEnhancers","marshal","dimensionMarshal","styleMarshal","autoScroller","createStore$1","dropping","resting","stopPublishing","dimensionMarshalStopper","scrollOptions","shouldPublishImmediately","_marshal$startPublish","startPublishing","lift$1","shouldEnd","shouldCancelPending","cancelPending","autoScroll","getWindowScroll","getDocumentElement","doc","documentElement","getMaxWindowScroll","clientWidth","clientHeight","getInitialPublish","getViewport","windowScroll","getDimensionAndWatchScroll","getDimension","throwIfAddOrRemoveOfWrongType","createDimensionMarshal","getEntries","advancedUsageWarning","staging","getCritical","_staging","_Object$keys","withoutPlaceholder","recollect","publish","createPublisher","registerDraggable","updateDraggable","unregisterDraggable","registerDroppable","droppableCallbacks","unregisterDroppable","dragStopped","scrollWindow","scrollBy","getScrollableDroppables","getBestScrollableDroppable","_dimension","getScrollableDroppableOver","percentage","stopDampeningAt","accelerateAt","getPercentage","startOfRange","endOfRange","stopAt","distanceToEdge","thresholds","dragStartTime","shouldUseTimeDampening","startScrollingFrom","maxScrollValueAt","percentageFromMaxScrollValueAt","getValueFromDistance","proposedScroll","runTime","_Date$now","betweenAccelerateAtAndStopAtPercentage","dampenValueByTime","getScrollOnAxis","container","distanceToEdges","getDistanceThresholds","clean$3","getScroll","limited","isTooBigVertically","isTooBigHorizontally","adjustForSizeLimits","smallestSigned","getOverlap","getRemainder","targetScroll","overlap","canPartiallyScroll","rawMax","smallestChange","canScrollWindow","canScrollDroppable","scroll$1","_change","getWindowScrollChange","getDroppableScrollChange","createJumpScroller","scrollDroppableAsMuchAsItCan","getDroppableOverlap","whatTheDroppableCanScroll","scrollWindowAsMuchAsItCan","getWindowOverlap","whatTheWindowCanScroll","droppableRemainder","windowRemainder","moveByOffset","createAutoScroller","fluidScroller","scheduleWindowScroll","scheduleDroppableScroll","tryScroll","_dragging","wasScrollNeeded","fakeScrollCallback","createFluidScroller","jumpScroll","dragHandle","getStyles","rules","property","rule","getHead","head","createStyleEl","useStyleMarshal","uniqueContext","getSelector","attribute","dragHandle$1","grabCursor","dropAnimating","transition","userCancel","getStyles$1","alwaysRef","dynamicRef","setDynamicStyle","textContent","setAlwaysStyle","dynamic","setAttribute","appendChild","removeChild","styleContext","StoreContext","getBodyElement","visuallyHidden","overflow","AppContext","useStartupValidation","usePrevious","getStore","lazyRef","App","lazyStoreRef","lastPropsRef","createResponders","_Object$assign","toBeRemoved","useAnnouncer","lazyDispatch","tryResetStore","getCanLift","canStartDrag","getIsMovementAllowed","appContext","canLift","instanceCount","DragDropContext","isEqual$2","isScroll","isAuto","isEither","overflowX","overflowY","isElementScrollable","getClosestScrollable","parentElement","getScroll$1","scrollLeft","scrollTop","getIsFixed","getEnv","closestScrollable","env","isDropDisabled","targetRef","getClient","delayed","getListenerOptions","useRequiredContext","getClosestScrollableFromDrag","getStyle","isAnimatingOpenOnMount","animate","getSize","boxSizing","flexShrink","flexGrow","pointerEvents","Placeholder$1","animateOpenTimerRef","tryClearAnimateOpenTimer","onTransitionEnd","onClose","setIsAnimatingOpenOnMount","onSizeChangeEnd","propertyName","tagName","DroppableContext","getWindowFromEl","ownerDocument","defaultView","isHtmlElement","HTMLElement","AnimateInOut","_React$PureComponent","getDerivedStateFromProps","PureComponent","isStrictEqual","whatIsDraggedOverFromResult","isMatchingType","getDraggable","updateViewportMaxScroll","ConnectedDroppable","shouldAnimatePlaceholder","snapshot","isDraggingOver","draggingOverWith","draggingFromThisWith","idleWithoutAnimation","getMapProps","getSnapshot","_snapshot","_completed","wasOver","wasCombining","droppableRef","placeholderRef","ignoreContainerClipping","getDroppableRef","getPlaceholderRef","setDroppableRef","setPlaceholderRef","onPlaceholderTransitionEnd","whileDraggingRef","previousRef","publishedDescriptorRef","memoizedUpdateScroll","getClosestScroll","updateScroll","scheduleScrollUpdate","onClosestScroll","useDroppableDimensionPublisher","droppableProps","droppableContext","zIndexOptions","getDraggingTransition","shouldAnimateDragMovement","getDraggingOpacity","isDropAnimating","getStyle$1","mapped","getShouldDraggingAnimate","opacity","zIndex","getDraggingStyle","shouldAnimateDisplacement","_preventedKeys","createEventMarshal","isMouseDownHandled","isHandled","getOptions","shared","fromBinding","bindEvents","bindings","sharedOptions","binding","unbindEvents","createScheduler","memoizedMove","onMove","moveUp","onMoveUp","moveDown","onMoveDown","moveRight","onMoveRight","moveLeft","onMoveLeft","windowScrollMove","onWindowScroll","supportedEventName","capture","createPostDragEventPreventer","getWindow","isBound","unbind","preventNext","preventedKeys","preventStandardKeyEvents","keyCode","noop$1","mouseDownMarshal","useMouseSensor","canStartCapturing","onCaptureStart","onCaptureEnd","pendingRef","isDraggingRef","unbindWindowEventsRef","getIsCapturing","schedule","postDragEventPreventer","shouldBlockClick","wasDragging","onCancel","startDragging","windowBindings","button","clientX","clientY","onDrop","bindWindowEvents","win","startPendingDrag","ctrlKey","metaKey","shiftKey","altKey","isElement","Element","_scrollJumpKeys","interactiveTagNames","textarea","select","optgroup","isAnInteractiveElement","shouldAllowDraggingFromTarget","canDragInteractiveElements","scrollJumpKeys","noop$2","useKeyboardSensor","getDraggableRef","getIsDragging","defaultPrevented","touchStartMarshal","noop$3","throwIfSVG","SVGElement","isSvgElement","getDragHandleRef","draggableRef","hasAttribute","retainingFocusFor","listenerOptions","clearRetentionOnFocusChange","onWindowFocusChange","retainer","dragHandleRef","focus","noop$4","preventHtml5Dnd","useDragHandle","capturingRef","abortCapture","_useRequiredContext","getShouldRespectForcePress","lastArgsRef","useValidation$1","_useFocusRetainer","isFocusedRef","onFocus","lastDraggableRef","useFocusRetainer","onMouseDown","onKeyDown","onTouchStart","hasMovedRef","postDragClickPreventer","longPressTimerId","touch","touches","force","shouldRespect","useTouchSensor","useDraggableDimensionPublisher","makeDimension","latest","computedStyles","getDimension$1","mapDispatchToProps$1","lift","moveByWindowScroll","dropAnimationFinished","ConnectedDraggable","getDraggingSnapshot","draggingOver","dropAnimation","combineTargetFor","getSecondarySnapshot","defaultMapProps","memoizedOffset","getDraggingProps","getSecondaryProps","getSecondaryMovement","ownId","draggingId","isCombinedWith","_mode","_draggingOver","_combineWith","getCombineWithFromResult","curve","scale","draggingSelector","secondarySelector","setRef","getRef","isDragDisabled","shouldRespectForcePress","disableInteractiveElementBlocking","moveUpAction","moveAction","dropAction","moveDownAction","moveRightAction","moveLeftAction","moveByWindowScrollAction","liftAction","dropAnimationFinishedAction","dragHandleProps","onMoveEnd","draggableProps","serviceStack","provide","consume","__spreadArray","sendMessageEventToChild","waitForMessageQueue","sendMessageToParent","uninitializeCommunication","initializeCommunication","Communication","parentMessageQueue","childMessageQueue","nextMessageId","parentWindow","GlobalVars","isFramelessWindow","currentWindow","nativeInterface","framelessPostMessage","originalEvent","childWindow","validOriginRegExp","additionalValidOriginsRegexp","childOrigin","parentOrigin","isPartialResponse","callHandler","messageListener","opener","onNativeMessage","processAdditionalValidOrigins","isApiSupportedOnMobile","isHostClientMobile","isAPISupportedByPlatform","ensureInitialized","defaultSDKVersionForCompatCheck","compareSDKVersions","clientSupportedSDKVersion","hostClientType","HostClientType","android","ios","initializeCalled","frameContext","ErrorCode","OLD_PLATFORM","NOT_SUPPORTED_ON_PLATFORM","additionalValidOrigins","userOriginUrlValidationRegExp","generateRegExpFromUrls","ChannelType","TaskModuleDimension","UserTeamRole","TeamType","FrameContexts","desktop","web","ipados","rigel","surfaceHub","teamsRoomsWindows","teamsRoomsAndroid","teamsPhones","teamsDisplays","authentication","task","sidePanel","meetingStage","Standard","Edu","Class","Plc","Staff","Admin","User","Guest","Large","Medium","Small","Regular","Private","Shared","registerBeforeUnloadHandler","registerOnLoadHandler","registerFocusEnterHandler","registerBackButtonHandler","handleThemeChange","registerOnThemeChangeHandler","removeHandler","registerHandler","initializeHandlers","themeChangeHandler","backButtonPressHandler","navigateBack","focusEnterHandler","loadHandler","beforeUnloadHandler","themeChange","backButtonPress","load","beforeUnload","focusEnter","validOrigins","scanBarCodeAPIMobileSupportVersion","getMediaCallbackSupportVersion","mediaAPISupportVersion","captureImageMobileSupportVersion","peoplePickerRequiredVersion","locationAPIsRequiredVersion","getUserJoinedTeamsSupportedAndroidClientVersion","imageOutputFormatsAPISupportVersion","nonFullScreenVideoModeAPISupportVersion","videoAndImageMediaAPISupportVersion","generateGUID","getGenericOnCompleteHandler","RegExp","v4","FileOpenPreference","Inline","Desktop","Web","INTERNAL_ERROR","NOT_SUPPORTED_IN_CURRENT_CONTEXT","PERMISSION_DENIED","NETWORK_ERROR","NO_HW_SUPPORT","INVALID_ARGUMENTS","UNAUTHORIZED_USER_OPERATION","INSUFFICIENT_RESOURCES","THROTTLE","USER_ABORT","OPERATION_TIMED_OUT","FILE_NOT_FOUND","SIZE_EXCEEDED","initializeCompleted","initializeCallbacks","printCapabilityEnabled","stageView","sharing","people","monetization","meeting","menus","ParentAppWindow","ChildAppWindow","tasks","navigateToTab","navigateCrossDomain","returnFocus","shareDeepLink","setFrameContext","registerAppButtonHoverLeaveHandler","registerAppButtonHoverEnterHandler","registerAppButtonClickHandler","registerFullScreenHandler","registerChangeSettingsHandler","print","initializeWithFrameContext","initialize","getTabInstances","getMruTabInstances","getContext","executeDeepLink","enablePrintCapability","appInitialization","crypto","getRandomValues","msCrypto","Uint8Array","outerWidth","outerHeight","screenLeft","screenX","screenTop","screenY","open","successCallback","failureCallback","decodeURIComponent","host","registerAuthenticationHandlers","authenticate","isExternal","getAuthToken","resources","claims","silent","getUser","notifySuccess","notifyFailure","setValidityState","setSettings","registerOnSaveHandler","registerOnRemoveHandler","notified","ensureNotNotified","logs","registerGetLogHandler","registerUserSettingsChangeHandler","getConfigSetting","getChatMembers","registerCustomHandler","sendCustomEvent","sendCustomMessage","uploadCustomApp","showNotification","openFilePreview","exitFullscreen","enterFullscreen","getUserJoinedTeams","initializePrivateApis","entityId","objectUrl","downloadUrl","webPreviewUrl","webEditUrl","baseUrl","editFile","subEntityId","viewerAction","fileOpenPreference","conversationId","notificationType","ifRoom","overflowOnly","DisplayMode","selected","MenuItem","dropDown","popOver","MenuListType","setUpViews","setNavBarMenu","showActionMenu","_instance","__extends","Base64","ID","FileFormat","File","captureImage","preview","getMedia","validateGetMediaInputs","getMediaViaCallback","getMediaViaHandler","mediaMimeType","assembleAttachment","mediaChunk","chunkSequence","createFile","decodeAttachment","Media","getMediaType","notifyEventToApp","controllerCallback","StartRecording","onRecordingStarted","notifyEventToHost","mediaControllerEvent","StopRecording","VideoController","Photo","Document","Whiteboard","BusinessCard","CameraStartMode","Camera","Gallery","Source","Image","VideoAndImage","MediaType","ImageUriType","IMAGE","PDF","ImageOutputFormats","selectMedia","isMediaCallSupportedOnMobile","validateSelectMediaInputs","isVideoControllerRegistered","videoProps","videoController","viewImages","validateViewImagesInput","scanBarCode","validateScanBarCodeInput","validatePeoplePickerInput","isMediaCallForNonFullScreenVideoMode","isMediaCallForVideoAndImageInputs","isMediaCallForImageOutputFormats","imageProps","imageOutputFormats","videoAndImageProps","isFullScreenMode","sequence","Blob","file","atob","chunk","charCodeAt","maxMediaCount","timeOutIntervalInSec","setSelected","openOrgWideSearchInChatOrChannel","singleSelect","__createBinding","__exportStar","teams","appEntity","files","remoteCamera","meetingRoom","conversations","UserSettingTypes","ViewerActionTypes","NotificationTypes","bot","sendQuery","getSupportedCommands","Results","Auth","ResponseType","v1","clockseq","msecs","nsecs","rng","Messages","AppLoaded","Success","Failure","ExpectedFailure","AuthFailed","Timeout","Other","FailedReason","PermissionError","NotFound","Throttling","Offline","ExpectedFailureReason","notifyAppLoaded","notifyExpectedFailure","_uninitialize","_initialize","cancelBubble","stopImmediatePropagation","subEntityLabel","subEntityWebUrl","startTask","updateTask","submitTask","showLocation","Unknown","Adhoc","Scheduled","Recurring","Broadcast","MeetNow","MeetingType","OneOnOneCall","GroupCall","CallType","getIncomingClientAudioState","toggleIncomingClientAudio","getMeetingDetails","getAuthenticationTokenForAnonymousUser","getLiveStreamState","requestStartLiveStreaming","requestStopLiveStreaming","registerLiveStreamChangedHandler","shareAppContentToStage","getAppContentStageSharingCapabilities","stopSharingAppContentToStage","getAppContentStageSharingState","registerSpeakingStateChangeHandler","openPurchaseExperience","selectPeople","NV12","VideoFrameFormat","EffectChanged","EffectDisabled","EffectChangeType","registerForVideoFrame","notifySelectedVideoEffectChanged","registerForVideoEffect","SharingAPIMessages","shareWebContent","fileDownloadStart","fileDownloadComplete","view","edit","editNew","theme","openConversation","channelId","onStartConversation","onCloseConversation","closeConversation","toggleMute","toggleCamera","toggleCaptions","showVideoGallery","showContent","showVideoGalleryAndContent","showLargeGallery","showTogether","leaveMeeting","Capability","getPairedMeetingRoomInfo","sendCommandToPairedMeetingRoom","registerMeetingRoomCapabilitiesUpdateHandler","registerMeetingRoomStatesUpdateHandler","Reset","ZoomIn","ZoomOut","PanLeft","PanRight","TiltUp","TiltDown","ControlCommand","CommandResetError","CommandZoomInError","CommandZoomOutError","CommandPanLeftError","CommandPanRightError","CommandTiltUpError","CommandTiltDownError","SendDataError","ErrorReason","None","ControlDenied","ControlNoResponse","ControlBusy","AckTimeout","ControlTerminated","ControllerTerminated","DataChannelError","ControllerCancelled","ControlDisabled","ControlTerminatedToAllowOtherController","SessionTerminatedReason","getCapableParticipants","requestControl","sendControlCommand","terminateSession","registerOnCapableParticipantsChangeHandler","registerOnErrorHandler","registerOnDeviceStateChangeHandler","registerOnSessionStatusChangeHandler","Dropbox","Box","Sharefile","GoogleDrive","Egnyte","SharePoint","CloudStorageProvider","Sharepoint","WopiIntegration","Google","OneDrive","Recent","Aggregate","FileSystem","Search","AllFiles","SharedWithMe","CloudStorageProviderType","SpecialDocumentLibraryType","ClassMaterials","DocumentLibraryAccessType","Readonly","Downloaded","Downloading","Failed","FileDownloadStatus","getCloudStorageFolders","addCloudStorageFolder","deleteCloudStorageFolder","getCloudStorageFolderContents","isSubdirectory","openCloudStorageFile","getExternalProviders","copyMoveFiles","getFileDownloads","openDownloadFolder","selectAppEntity","getTeamChannels","refreshSiteUrl","baseIsNative","hide","$export","own","out","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","IS_WRAP","W","expProto","virtual","R","U","startOfDay","compare","compareContext","compareResult","bHasOwnProperty","valueA","valueB","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","hasPropertyDescriptor","dummyPool","kefirBus","ended","initialContext","resolvedInitialContext","StateNode","addMilliseconds","dirtyAmount","amount","getUTCWeekYear","_options$firstWeekCon","getUTCFullYear","firstWeekContainsDate","firstWeekOfNextYear","startOfNextYear","firstWeekOfThisYear","startOfThisYear","SDPUtils","localCName","generateIdentifier","splitLines","blob","trim","splitSections","getDescription","sections","getMediaSections","matchPrefix","parseCandidate","parts","foundation","priority","ip","address","port","relatedAddress","relatedPort","tcpType","ufrag","usernameFragment","writeCandidate","parseIceOptions","parseRtpMap","payloadType","clockRate","channels","numChannels","writeRtpMap","pt","preferredPayloadType","parseExtmap","writeExtmap","headerExtension","preferredId","parseFmtp","kv","writeFmtp","param","parseRtcpFb","parameter","writeRtcpFb","rtcpFeedback","fb","parseSsrcMedia","sp","colon","parseSsrcGroup","semantics","ssrcs","getMid","mediaSection","mid","parseFingerprint","algorithm","getDtlsParameters","sessionpart","fingerprints","writeDtlsParameters","setupType","fp","parseCryptoLine","tag","cryptoSuite","keyParams","sessionParams","writeCryptoLine","writeCryptoKeyParams","parseCryptoKeyParams","keyMethod","keySalt","lifeTime","mkiValue","mkiLength","getCryptoParameters","getIceParameters","pwd","writeIceParameters","parseRtpParameters","headerExtensions","fecMechanisms","rtcp","rtpmapline","fmtps","writeRtpDescription","maxptime","parseRtpEncodingParameters","secondarySsrc","encodingParameters","hasRed","hasUlpfec","primarySsrc","flows","apt","encParam","codecPayloadType","rtx","fec","mechanism","bandwidth","parseRtcpParameters","rtcpParameters","remoteSsrc","rsize","reducedSize","compound","mux","parseMsid","spec","planB","msidParts","parseSctpDescription","maxMessageSize","parseMLine","maxSizeLine","sctpPort","fmt","writeSctpDescription","sctp","output","generateSessionId","writeSessionBoilerplate","sessId","sessVer","sessUser","writeMediaSection","iceGatherer","getLocalParameters","dtlsTransport","rtpSender","rtpReceiver","sendEncodingParameters","getDirection","getKind","isRejected","parseOLine","sessionVersion","netType","addressType","isValidSDP","createNullActor","createInvocableActor","invokeDefinition","invokeSrc","serviceCreator","tempActor","createDeferredActor","entity","withContext","isActor","useDragDropManager","dragDropManager","DndContext","getRawTag","objectToString","symToStringTag","InterpreterStatus","DEFAULT_SPAWN_OPTIONS","sync","autoForward","Interpreter","scheduler","Scheduler","delayedEventsMap","contextListeners","stopListeners","doneListeners","eventListeners","sendListeners","initialized","_status","NotStarted","Stopped","deferEvents","Running","_state","sendTo","isParent","registry","resolvedOptions","clock","logger","resolvedId","bookId","_initialState","actionsConfig","devTools","_g","_h","_j","_k","contextListener","isDone","finalChildStateNode","doneData","_l","_m","nextListenerOrObserver","completeListener","resolvedCompleteListener","delete","onEvent","onSend","onStop","off","resolveState","attachDev","e_8","e_9","e_10","e_8_1","_o","e_9_1","_p","_q","e_10_1","free","e_11","batchChanged","batchedActions","_loop_1","event_1","changed","events_1","events_1_1","e_11_1","nextEvent","e_12","e_12_1","actionOrExec","invokeSource","spawnPromise","spawnCallback","spawnObservable","spawnMachine","spawnActivity","stopChild","childId","spawn","spawnActor","childService","actor","doneEvent","canceled","errorEvent","handleError","callbackStop","receivers","newListener","implementation","dispose","spawnEffect","__REDUX_DEVTOOLS_EXTENSION__","devToolsOptions","autoPause","stateSanitizer","features","jump","registerService","addDays","addMonths","dayOfMonth","endOfDesiredMonth","setMonth","setFullYear","simpleSrc","toInvokeDefinition","invokeConfig","invokeDef","WILDCARD","EMPTY_OBJECT","isStateId","str","order","__xstatenode","__cache","relativeValue","initialStateValue","delayedTransitions","idMap","_parent","parallel","stateConfig","dfs","_transient","onEntry","onExit","withConfig","definition","getDelayedTransitions","formatTransitions","getCandidates","transient","sameEventType","afterConfig","mutateEntryExit","configTransition","resolvedTransition","delayedTransition","formatTransition","getStateNodes","getStateNode","subStateKeys","subStateKey","allSubStateNodes","subStateNode","handles","transitionLeafNode","transitionCompoundNode","_transition","transitionParallelNode","transitionMap","stateTransitions","enabledTransitions","st","entryNodes","entrySet","exitSet","selectedTransition","nextStateNodes","stateIn","in","resolvedContext","isInState","getStateNodeById","guardPassed","allNextStateNodes","getRelativeStateNodes","isInternal","nodesFromChild","escapes","nodes","prevConfig","resolvedConfig","resolvedConfig_1","resolvedConfig_1_1","prevConfig_1","prevConfig_1_1","doneEvents","grandparent","parentNode","entryStates","exitStates","entryActions","exitActions","resolvedStateValue","getResolvedPath","stateTransition","resolveTransition","resolveRaisedTransition","currentActions","actions_1","actions_1_1","start$1","stop$1","raisedEvents","nonRaisedActions","invokeActions","resolvedConfiguration","didUpdateContext","maybeNextState","raisedEvent","stateKey","resolvedStateId","getStateNodeByPath","arrayStatePath","currentStateNode","stateIdentifier","getInitialState","historyConfig","relativeStateId","resolveHistory","initialStateNodePaths","initialPath","getFromRelativePath","relativePath","childStatePath","relativeStateValue","historyTarget","relativeChildPath","subHistoryValue","subStatePath","childStateIds","stateIds","resolveTarget","isInternalTarget","transitionConfig","normalizedTarget","onConfig","wildcardConfigs","strictTransitionConfigs_1","transitionConfigArray","hasNonLastUnguardedTarget","eventText","validateArrayifiedTransitions","eventlessConfig","doneConfig","settleTransitions","formattedTransitions","delayedTransitions_1","delayedTransitions_1_1","_Modal","_Modal2","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","getDefaultProps","getDerivedStateFromError","mixins","KNOWN_STATICS","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","Memo","getOwnPropertyNames","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","dateLongFormatter","pattern","formatLong","timeLongFormatter","time","longFormatters","dateTimeFormat","matchResult","datePattern","timePattern","dateTime","isRef","INIT_COORDS","BEGIN_DRAG","PUBLISH_DRAG_SOURCE","HOVER","DROP","END_DRAG","strictEquality","areCoordsEqual","offsetA","offsetB","areArraysEqual","initialSourceClientOffset","initialClientOffset","clientOffset","dragOffset","sourceClientOffset","ADD_SOURCE","ADD_TARGET","REMOVE_SOURCE","REMOVE_TARGET","defaultValue","without","isObject","xor","itemsA","itemsB","insertItem","itemType","targetIds","dropResult","didDrop","isSourcePublic","dragOperation","targetId","refCount","NONE","ALL","areDirty","dirtyIds","handlerIds","dirtyHandlerIds","_action$payload$targe","_action$payload$prevT","prevTargetIds","didChange","prevInnermostTargetId","innermostTargetId","__IS_NONE__","__IS_ALL__","setClientOffset","ResetCoordinatesAction","createBeginDrag","manager","sourceIds","publishSource","_options$publishSourc","getSourceClientOffset","monitor","getMonitor","getRegistry","verifyInvariants","getDraggableSource","verifyGetSourceClientOffsetIsFunction","getSource","beginDrag","verifyItemIsObject","pinSource","getSourceType","canDragSource","createPublishDragSource","matchesType","targetType","draggedItemType","createHover","targetIdsArg","verifyTargetIdsIsArray","checkInvariants","getItemType","removeNonMatchingTargetIds","hoverAllTargets","getTargetType","hover","createDrop","getDroppableTargets","determineDropResult","verifyDropResultType","getDropResult","getTargetIds","canDropOnTarget","createEndDrag","verifyIsDragging","getSourceId","endDrag","unpinSource","HandlerRole","DragDropMonitorImpl","prevStateId","handleChange","currentStateId","canDrag","canDrop","_getSourceClientOffset","_getDifferenceFromInitialOffset","nextUniqueId","validateType","allowArray","getNextHandlerId","SOURCE","TARGET","parseRoleFromHandlerId","handlerId","mapContainsValue","searchValue","_entries$next","HandlerRegistryImpl","types","dragSources","dropTargets","pinnedSourceId","pinnedSource","validateSourceContract","addHandler","_addSource","validateTargetContract","_addTarget","includePinned","isSourceId","isPinned","isTargetId","_removeSource","asap","_removeTarget","makeStoreInstance","debugMode","reduxDevTools","DragDropManagerImpl","isSetUp","handleRefCountChange","shouldSetUp","backend","setup","teardown","publishDragSource","dragDropActions","boundActions","createDragDropManager","backendFactory","globalContext","backendOptions","receiveBackend","createDndContext","sessionIdIndex","MenuListInspectorContext","MenuListInspector","registerMenuList","unregisterMenuList","dispatchEvent","parentCtx","prevCursorLocation","menuList","_descendantMenuLists","_menuListInspectorContext","onItemChosen","onLeftPushed","onRightPushed","nativeCreate","getNative","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","isKeyable","__data__","webpackPolyfill","deprecate","paths","__g","$keys","enumBugKeys","IObject","defined","isSymbol","warning","NOT_FOUND","defaultEqualityCheck","equalityCheckOrOptions","providedOptions","equalityCheck","_providedOptions$equa","_providedOptions$maxS","maxSize","resultEqualityCheck","comparator","createCacheKeyComparator","equals","createSingletonCache","cacheIndex","createLruCache","memoized","matchingEntry","clearCache","stopper","_iterableToArray","subMilliseconds","getUTCISOWeekYear","fourthOfJanuaryOfNextYear","fourthOfJanuaryOfThisYear","startOfQuarter","currentMonth","registerTarget","addTarget","removeTarget","registerSource","addSource","removeSource","RecordRTC","mediaStream","RecordRTCConfiguration","initRecorder","initCallback","Recorder","GetRecorderType","mediaRecorder","disableLogs","stopRecording","resumeRecording","_callback","warningLog","__blob","bytesToSize","autoWriteToDisk","getDataURL","dataURL","DiskStorage","Store","readFile","_blob","FileReaderSync","readAsDataURL","_mediaRecorder","Worker","mozGetUserMedia","reader","FileReader","onload","webWorker","_function","worker","revokeObjectURL","processInWebWorker","handleRecordingDuration","counter","recordingDuration","onRecordingStopped","onStateChanged","WARNING","returnObject","startRecording","config2","clearRecordedData","pauseRecording","pause","setRecordingDuration","getBlob","toURL","getInternalRecorder","save","fileName","invokeSaveAsDialog","getFromDisk","setAdvertisementArray","arrayOfWebPImages","advertisement","image","bufferSize","buffer","disableLogsCache","Storage","AudioContextConstructor","recorderType","WhammyRecorder","CanvasRecorder","WebAssemblyRecorder","GifRecorder","StereoAudioRecorder","MediaStreamRecorder","MediaRecorder","bitsPerSecond","recorder","ReadableStream","isMediaRecorderCompatible","isTypeSupported","MultiStreamRecorder","MRecordRTC","addStream","_mediaStream","gif","audioRecorder","numberOfAudioChannels","timeSlice","onTimeStamp","newStream","videoRecorder","canvas","frameInterval","workerPath","webAssemblyPath","isSingleRecorder","gifRecorder","quality","blobURL","callback00","webkitURL","_audioDataURL","_videoDataURL","writeToDisk","Fetch","audioDataURL","videoDataURL","gifDataURL","audioBlob","videoBlob","gifBlob","captureStream","mozCaptureStream","play","drawImage","toDataURL","HTMLVideoElement","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","currTime","timeToCall","webkitCancelAnimationFrame","mozCancelAnimationFrame","msCancelAnimationFrame","webkitAudioContext","mozAudioContext","webkitGetUserMedia","msSaveBlob","msSaveOrOpenBlob","opera","bytes","toPrecision","fileExtension","splitted","fileFullName","hyperlink","download","click","MouseEvent","bubbles","cancelable","versions","electron","setSrcObject","mozSrcObject","webkitMediaStream","getSeekableBlob","inputBlob","EBML","Reader","decoder","Decoder","tools","fileReader","decode","read","refinedMetadataBuf","makeMetadataSeekable","metadatas","cues","metadataSize","newBlob","readAsArrayBuffer","appVersion","verOffset","ix","nAgt","fullVersion","parseFloat","majorVersion","arrayOfBlobs","updateTimeStamp","timestamps","getMimeType","secondObject","clearRecordedDataCB","getArrayOfBlobs","allStates","recorderHints","canRecordMimeType","ondataavailable","recordingCallback","getNativeBlob","onstart","onpause","onresume","onstop","looper","manuallyStopped","timeslice","getAllStates","checkForInactiveTracks","isMediaStreamActive","jsAudioNode","leftchannel","rightchannel","recording","recordingLength","desiredSampRate","mergeLeftRightBuffers","mergeAudioBuffers","interleaved","leftBuffers","rightBuffers","internalInterleavedLength","interpolateArray","newSampleRate","oldSampleRate","fitCount","newData","springFactor","tmp","before","atPoint","linearInterpolate","mergeBuffers","channelBuffer","rLength","Float64Array","lng","writeUTFBytes","string","setUint8","leftChannel","rightChannel","inputIndex","interleave","interleavedLength","ArrayBuffer","DataView","setUint32","setUint16","setInt16","noWorker","workerURL","terminate","resetVariables","isAudioProcessStarted","isPaused","byteLength","legalBufferValues","createJavaScriptNode","createScriptProcessor","intervalsBasedBuffers","onaudioprocess","disconnect","onAudioProcessStarted","inputBuffer","getChannelData","chLeft","Float32Array","chRight","htmlElement","html2canvas","isCanvasSupportsStreamCapturing","globalCanvas","mediaStreamRecorder","isRecording","_isChrome","webkitRTCPeerConnection","chrome","chromeVersion","matchArray","useWhammyRecorder","HTMLCanvasElement","CanvasRenderingContext2D","canvasMediaStream","webkitCaptureStream","mdStream","whammy","frames","drawCanvasFrame","getWebPImages","nodeName","framesLength","framesRemaining","onEncodingCallback","webp","compile","isPausedRecording","cloneCanvas","newCanvas","grabMouse","showMousePointer","onrendered","Whammy","drawFrames","paused","isStopDrawing","dropBlackFrames","_frames","_framesToCheck","_pixTolerance","_frameTolerance","localCanvas","context2d","resultFrames","checkUntilNotBlack","endCheckFrame","sampleColor","maxColorDifference","pixTolerance","frameTolerance","doNotCheckNext","functionToLoop","asyncLoop","matchPixCount","endPixCheck","maxPixCount","finishImage","imageData","getImageData","pix","currentColor","cloneNode","onloadedmetadata","WhammyVideo","whammyInWebWorker","getClusterData","clusterTimecode","clusterCounter","clusterFrames","flags","keyframe","invisible","lacing","discardable","trackNum","timecode","fromCharCode","makeSimpleBlock","numToBuffer","num","bitsToBuffer","bits","generateEBML","ebml","zeroes","sizeToString","padded","getStrLength","unpadded","parseRIFF","chunks","webm","checkFrames","frameNumber","clusterDuration","cluster","riff","VP8","RIFF","WEBP","frameStart","parseWebP","indexedDB","db","dbName","onsuccess","setVersion","createObjectStore","putInDB","onupgradeneeded","dataBase","dataStoreName","getFromStore","portionName","objectStore","GIFEncoder","isHTMLObject","isLoadedMetaData","offsetWidth","offsetHeight","gifEncoder","setRepeat","setDelay","setQuality","onGifRecordingStarted","lastAnimationFrame","drawVideoFrame","clearedRecordedData","lastFrameTime","onGifPreview","addFrame","bin","autoplay","playsInline","MultiStreamsMixer","arrayOfMediaStreams","elementClass","videos","isStopDrawingFrames","useGainNode","drawVideosToCanvas","videosLength","fullcanvas","onRender","getVideo","resetVideoStreams","startDrawingFrames","appendStreams","audioSource","audioContext","audioDestination","releaseStreams","gainNode","audioSources","clearRect","getMixedStream","mixedVideoStream","capturedStream","videoStream","getMixedVideoStream","mixedAudioStream","createGain","gain","audioTracksLength","getMixedAudioStream","mixer","getAllVideoTracks","previewStream","addStreams","getMixer","finished","cameraStream","controller","cvs","onplaying","frameTimeout","cameraTimer","onVideoProcessStarted","_controlledReadableStream","enqueue","arrayBuffer","timebaseDen","realtime","WritableStream","write","arrayOfBuffers","RecordRTCPromisesHandler","recordRTC","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","tokenValue","addSuffix","comparison","buildFormatLongFn","defaultWidth","formats","full","long","short","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","formatRelative","_date","_baseDate","_options","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","localize","ordinalNumber","rem100","era","narrow","abbreviated","wide","quarter","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","findKey","valueCallback","parsePattern","parseResult","any","defaultLocale","useMonitorOutput","onCollect","_useCollector","collected","setCollected","updateCollected","nextValue","useCollector","_useCollector2","getHandlerId","subscribeToStateChange","cloneWithRef","newRef","cloneElement","throwIfCompositeComponentElement","wrapConnectorHooks","hooks","wrappedHooks","hook","wrappedHook","elementOrNode","isValidElement","wrapHookToRecognizeElement","startOfUTCWeekYear","firstWeek","MILLISECONDS_IN_WEEK","getUTCWeek","startOfUTCISOWeekYear","fourthOfJanuary","getUTCISOWeek","SafeNodeList","SafeHTMLCollection","_exenv","EE","SafeHTMLElement","HTMLCollection","NodeList","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","Item","nextTick","argv","addListener","once","removeAllListeners","prependListener","prependOnceListener","cwd","chdir","dir","umask","ChosenEvent","MenuEvent","baseIsArguments","isObjectLike","objectProto","isArguments","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","baseIsEqualDeep","baseIsEqual","bitmask","customizer","arrayLikeKeys","baseKeys","isArrayLike","reIsDeepProp","reIsPlainProp","baseGetTag","isDate","addMinutes","MILLISECONDS_IN_HOUR","addHours","addWeeks","days","addYears","hookCallback","setHookCallback","hasOwnProp","isObjectEmpty","isUndefined","isNumber","arrLen","createUTC","createLocalOrUTC","defaultParsingFlags","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","rfc2822","weekdayMismatch","getParsingFlags","_pf","_isValid","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","momentProperties","updateInProgress","copyConfig","momentPropertiesLen","_isAMomentObject","_tzm","_isUTC","_offset","_locale","Moment","updateOffset","isMoment","suppressDeprecationWarnings","firstTime","deprecationHandler","argLen","deprecations","deprecateSimple","_config","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","lastDay","sameElse","calendar","mom","_calendar","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","ordinal","localeData","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","replaceLongDateFormatTokens","longDateFormat","lastIndex","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","_longDateFormat","formatUpper","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","future","past","ww","yy","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","aliases","addUnitAlias","unit","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","getPrioritizedUnits","unitsObj","isLeapYear","absFloor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","keepTime","set$1","stringGet","stringSet","prioritized","prioritizedLen","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","p1","p2","p3","p4","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","mod","modMonth","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","parseTwoDigitYear","getSetYear","getIsLeapYear","createDate","createUTCDate","firstWeekOffset","dow","doy","fwd","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","hours","kFormat","lowercase","minutes","matchMeridiem","_meridiemParse","localeIsPM","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","globalLocale","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","commonPrefix","arr1","minl","normalizeLocale","chooseLocale","names","loadLocale","isLocaleNameSane","oldLocale","_abbr","aliasedRequire","getSetGlobalLocale","getLocale","defineLocale","abbr","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","createFromInputFallback","currentDateArray","nowValue","_useUTC","getUTCMonth","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","temp","weekdayOverflow","curWeek","GG","E","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","hour","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","minute","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","isValid$1","createInvalid$1","createDuration","Duration","years","quarters","weeks","isoWeek","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","separator","sign","offsetFromString","chunkOffset","matcher","cloneWithOffset","setTime","getDateOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","createAdder","period","isAdding","invalid","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","properties","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","sod","calendarFormat","localInput","isBetween","inclusivity","localFrom","localTo","inputMs","isSameOrAfter","isSameOrBefore","asFloat","zoneDelta","monthDiff","wholeMonthDiff","anchor","keepOffset","inspect","datetime","suffix","zone","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","toObject","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","localeErasParse","eraName","localeErasConvertYear","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","isoWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","eraYearOrdinalParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","createUnix","createInZone","parseZone","preParsePostFormat","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","get$1","field","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","proto$2","toIsoString","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","factory","ManagerContext","setReferenceNode","referenceNode","Manager","unwrapArray","safeInvoke","initialStyle","initialArrowStyle","InnerPopper","placement","popperNode","updatePopperInstance","arrowNode","eventsEnabled","positionFixed","modifiers","arrow","applyStyle","updateStateModifier","offsets","popper","arrowStyles","popperInstance","destroyPopperInstance","referenceElement","PopperJS","scheduleUpdate","enableEventListeners","disableEventListeners","setPopperNode","getPopperStyle","getPopperPlacement","outOfBoundaries","getOutOfBoundariesState","arrowProps","setArrowNode","getArrowStyle","placements","Popper","InnerReference","refHandler","Reference","monthIndex","lastDayOfMonth","dirtyMonth","dateWithDesiredMonth","crypt","utf8","isBuffer","encoding","stringToBytes","bytesToWords","FF","_ff","_gg","_hh","II","_ii","aa","bb","cc","endian","_blocksize","_digestsize","digestbytes","wordsToBytes","asBytes","asString","bytesToString","bytesToHex","processingEvent","flushEvents","nextCallback","timeoutDuration","longerTimeoutBrowsers","scheduled","functionToCheck","getStyleComputedProperty","getParentNode","getScrollParent","getReferenceNode","reference","isIE11","isIE10","getOffsetParent","noOffsetParent","offsetParent","findCommonOffsetParent","element1","element2","Node","commonAncestorContainer","isOffsetContainer","element1root","side","upperSide","html","scrollingElement","includeScroll","modifier","getBordersSize","sideA","sideB","computedStyle","getWindowSizes","getClientRect","sizes","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","runIsIE","isHTML","childrenRect","parentRect","scrollParent","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","isFixed","getFixedPositionOffsetParent","getBoundaries","boundaries","boundariesElement","boundariesNode","isPaddingNumber","getArea","computeAutoPlacement","rects","refRect","sortedAreas","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","getOppositePlacement","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","check","runModifiers","ends","flip","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","toCheck","attachToScrollParents","scrollParents","isBody","setupEventListeners","scrollElement","removeEventListeners","isNumeric","setStyles","isModifierRequired","requesting","requested","validPlacements","clockwise","BEHAVIORS","parseOffset","useHeight","basePlacement","fragments","frag","divider","splitRegex","ops","mergeWithPrevious","toValue","index2","shiftvariation","isVertical","shiftOffsets","transformProp","popperStyles","opSide","arrowElement","sideCapitalized","altSide","arrowElementSize","popperMarginSide","popperBorderSide","sideValue","placementOpposite","flipOrder","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flippedVariationByContent","flippedVariation","getOppositeVariation","subtractLength","bound","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","bothOddWidth","getRoundedOffsets","prefixedProperty","invertTop","invertLeft","attributes","modifierOptions","Utils","PopperUtils","Defaults","isarray","tokensToFunction","tokensToRegExp","PATH_REGEXP","defaultDelimiter","escaped","group","asterisk","partial","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","opts","encode","segment","attachKeys","re","route","endsWithDelimiter","groups","regexpToRegexp","arrayToRegexp","stringToRegexp","_toArray","propIsEnumerable","test1","test2","test3","letter","shouldUseNative","findTabbableDescendants","descendants","querySelectorAll","shadowRoot","tabbable","tabbableNode","hidesContents","zeroSize","innerHTML","getPropertyValue","focusable","isTabIndexNotNaN","getRootNode","visible","isTabIndexNaN","resetState","globalElement","removeAttribute","assertNodeList","setElement","useElement","_safeHTMLElement","validateElement","appElement","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","documentNotReadyOrSSRTesting","_warning","_warning2","nodeList","portalOpenInstances","openInstances","PortalOpenInstances","openInstance","deregister","subscribers","subscriber","originalModule","charenc","unescape","escape","__webpack_amd_options__","MenuListContext","MenuList","registerItem","control","_item","menuListHandle","highlight","unhighlight","itemChosen","takeKeyboard","releaseKeyboard","lockHighlight","unlockHighlight","moveCursor","updateProps","newProps","oldIndex","isNaturalHighlightIndex","isLockedHighlightIndex","isKeyboardTakenByIndex","unregister","_lockedHighlightedIndex","isEnterOrArrowKey","_elRef","ReactDOM","_stopper","byKeyboard","visibleHighlightedIndex","_naturalHighlightedIndex","_listItems","notifyHighlighted","newVisibleHighlightedIndex","_keyboardTakenByIndex","mEvent","_dispatchEvent","_naturalHighlight","_getVisibleHighlightedIndex","_menuListContext","highlighted","_menuListHandle","notifyEvent","onMouseLeave","onMouseEnter","onHighlightChange","highlightedClassName","highlightedStyle","domRef","FloatAnchorContext","FloatAnchor","choice","floatNode","repositionEvents","repositionAsyncQueued","repositionAsyncEvents","portalEl","anchorRef","portalEl_firstCheck","float","floatPortal","_childContext","_mountPortalEl","anchorElement","floatContainerClassName","setCacheAdd","setCacheHas","SetCache","funcToString","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","arraySome","cacheHas","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","stubFalse","freeExports","nodeType","freeModule","Buffer","reIsUint","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","isTypedArray","isLength","aFunction","anObject","IE8_DOM_DEFINE","dP","Attributes","bitmap","cof","uid","srcValue","castPath","toKey","isKey","stringToPath","AsapQueue","pendingErrors","flushing","capacity","q","newLength","registerPendingError","requestErrorThrow","requestFlush","makeRequestCall","makeRequestCallFromTimer","enqueueTask","TaskFactory","freeTasks","RawTask","_arrayWithoutHoles","_nonIterableSpread","routerMiddleware","SS","Do","Y","ZZ","parser","customParseFormat","getUTCHours","getUTCSeconds","getUTCMilliseconds","$localOffset","super_","N","prefilter","normalize","lhs","rhs","color","groupCollapsed","groupEnd","actionTransformer","titleFormatter","collapsed","colors","startedTime","took","stateTransformer","errorTransformer","logErrors","diffPredicate","performance","DeepDiff","observableDiff","applyDiff","applyChange","revertChange","isConflict","noConflict","createLogger","dtlsRole","trackId","_initialTrackId","getCommonCapabilities","localCapabilities","remoteCapabilities","commonCapabilities","findCodecByPayloadType","rtxCapabilityMatches","lRtx","rRtx","lCodecs","rCodecs","lCodec","rCodec","lHeaderExtension","rHeaderExtension","isActionAllowedInSignalingState","signalingState","maybeAddCandidate","iceTransport","alreadyAdded","getRemoteCandidates","remoteCandidate","addRemoteCandidate","makeError","NotSupportedError","InvalidStateError","InvalidAccessError","OperationError","edgeVersion","addTrackToStreamAndFireEvent","MediaStreamTrackEvent","fireAddTrack","trackEvent","Event","_eventTarget","createDocumentFragment","canTrickleIceCandidates","needNegotiation","localStreams","remoteStreams","_localDescription","_remoteDescription","connectionState","iceGatheringState","usingBundle","rtcpMuxPolicy","hasTurn","filterIceServers","_iceGatherers","iceCandidatePoolSize","RTCIceGatherer","gatherPolicy","_sdpSessionId","_sdpSessionVersion","_dtlsRole","_isClosed","onremovestream","onsignalingstatechange","onconnectionstatechange","onicegatheringstatechange","onnegotiationneeded","_emitGatheringStateChange","getLocalStreams","getRemoteStreams","_createTransceiver","doNotAdd","hasBundleTransport","recvEncodingParameters","associatedRemoteMediaStreams","wantReceive","transports","_createIceAndDtlsTransports","_maybeFireNegotiationNeeded","clonedStream","clonedTrack","removeStream","getReceivers","_createIceGatherer","bufferedCandidateEvents","bufferCandidates","_gather","onlocalcandidate","evt","cand","serializedCandidate","RTCIceTransport","onicestatechange","_updateIceConnectionState","_updateConnectionState","RTCDtlsTransport","ondtlsstatechange","_disposeIceAndDtlsTransports","_transceive","recv","receive","isIceLite","rejected","remoteIceParameters","remoteDtlsParameters","_updateSignalingState","receiverList","iceOptions","remoteMsid","isComplete","cands","setTransport","setRemoteCandidates","RTCRtpReceiver","isNewTrack","nativeTrack","removeTrackFromStreamAndFireEvent","sid","checking","disconnected","failed","new","connecting","numAudioTracks","numVideoTracks","offerOptions","remoteCodec","hdrExt","rHdrExt","getLocalCandidates","RTCSessionDescription","mediaSectionsInOffer","localTrack","candidateString","MediaStreamTrack","senderOrReceiver","promises","allStats","stat","ortcObjectName","nativeGetstats","nativeStats","mapStats","inboundrtp","outboundrtp","candidatepair","localcandidate","remotecandidate","methods","nativeMethod","__xstate__","getDevTools","isActionObject","resolveRaise","types_1","utils_1","environment_1","_react2","_implementation2","I","K","V","J","X","ee","te","ne","ae","oe","se","pe","ie","ce","le","de","ue","he","fe","me","ye","we","ve","De","ke","ge","be","Ce","Oe","Se","Me","Pe","Ke","He","awareOfUnicodeTokens","Ee","Ne","Ye","xe","Te","Le","je","Fe","qe","We","Re","Ae","Be","__localeId__","__localeData__","Qe","Ve","Ue","$e","minDate","maxDate","excludeDates","includeDates","filterDate","et","ze","Ge","Je","Xe","Ze","tt","rt","minTime","maxTime","nt","ot","ct","lt","dt","ut","ht","yearsList","incrementYears","decrementYears","shiftYears","yearDropdownItemNumber","scrollableYearDropdown","renderOptions","ft","dropdownVisible","onSelectChange","renderSelectOptions","visibility","toggleDropdown","renderReadView","renderDropdown","adjustDateOnChange","handleYearChange","onSelect","setOpen","dropdownMode","renderScrollMode","renderSelectMode","mt","monthNames","yt","useShortMonthInDropdown","wt","monthYearsList","scrollableMonthYearDropdown","Dt","kt","createRef","isDisabled","handleOnKeyDown","disabledKeyboardNavigation","inline","isSameDay","preSelection","highlightDates","startDate","endDate","selectsStart","selectsEnd","selectingDate","isInSelectingRange","dayClassName","isExcluded","isKeyboardSelected","isRangeStart","isRangeEnd","isInRange","isSelectingRangeStart","isSelectingRangeEnd","isWeekend","isOutsideMonth","getHighLightedClass","ariaLabelPrefixWhenEnabled","ariaLabelPrefixWhenDisabled","getTabIndex","isInputFocused","activeElement","containerRef","classList","dayEl","getClassNames","handleClick","handleMouseEnter","getAriaLabel","renderDayContents","handleFocusDay","gt","weekNumber","ariaLabelPrefix","bt","onDayClick","onDayMouseEnter","onWeekSelect","shouldCloseOnSelect","formatWeekNumber","showWeekNumber","handleWeekClick","chooseDayAriaLabelPrefix","disabledDayAriaLabelPrefix","handleDayClick","handleDayMouseEnter","renderDays","Ct","orderInDisplay","fixedHeight","weekAriaLabelPrefix","showWeekNumbers","isWeekInMonth","peekNextMonth","isRangeStartMonth","isRangeEndMonth","isRangeStartQuarter","isRangeEndQuarter","showFullMonthYearPicker","onMonthClick","getMonthClassNames","onQuarterClick","getQuarterClassNames","showMonthYearPicker","showQuarterYearPicker","handleMouseLeave","renderMonths","renderQuarters","renderWeeks","excludeTimes","includeTimes","timeClassName","injectTimes","intervals","openToDate","liClasses","centerLi","calcCenterPosition","monthRef","todayButton","timeCaption","renderTimes","onTimeChange","offsetTop","Ot","handleYearClick","onYearClick","St","setMinutes","timeString","customTimeInput","timeInputLabel","renderTimeInput","Pt","showPopperArrow","Mt","Et","onClickOutside","onDropdownFocus","handleMonthChange","onMonthMouseLeave","onYearChange","onMonthChange","setPreSelection","handleMonthYearChange","weekLabel","formatWeekday","weekDayClassName","formatWeekDay","useWeekdaysShort","showYearPicker","renderCustomHeader","forceShowMonthNavigation","showDisabledMonthNavigation","showTimeSelectOnly","decreaseMonth","decreaseYear","previousMonthAriaLabel","previousYearAriaLabel","previousYearButtonLabel","previousMonthButtonLabel","showTimeSelect","increaseMonth","increaseYear","nextMonthAriaLabel","nextYearAriaLabel","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","showTimeInput","getDateInView","assignMonthContainer","renderPreviousButton","renderNextButton","renderYears","renderTodayButton","renderTimeSection","renderInputTimeSection","Nt","Yt","tabLoopRef","getTabChildren","enableTabLoop","handleFocusStart","handleFocusEnd","xt","wrapperClassName","hidePopper","popperComponent","popperModifiers","popperPlacement","popperProps","popperOnKeyDown","popperContainer","preventOverflow","escapeWithReference","Tt","It","getPreSelection","startOpen","preventFocus","focused","preventFocusTimeout","blur","cancelFocusInput","calcInitialState","lastPreSelectChange","jt","setBlur","inputValue","readOnly","preventOpenOnFocus","inputFocusTimeout","setFocus","onChangeRaw","isDefaultPrevented","Lt","strictParsing","allowSameDay","inlineFocusSelectedMonth","onInputClick","componentNode","inputOk","handleSelect","onInputError","onClearClick","isCalendarOpen","dateFormatCalendar","handleCalendarClickOutside","outsideClickIgnoreClass","handleTimeChange","calendarClassName","calendarContainer","excludeScrollbar","onDayKeyDown","customInput","customInputRef","handleBlur","handleFocus","onInputKeyDown","autoFocus","placeholderText","ariaLabelledBy","isClearable","clearButtonTitle","ariaLabelClose","onCalendarOpen","onCalendarClose","clearPreventFocusTimeout","renderCalendar","renderDateInput","renderClearButton","popperClassName","onPopperKeyDown","CalendarContainer","getDefaultLocale","registerLocale","setDefaultLocale","MAX_SIGNED_31_BIT_INT","commonjsGlobal","globalThis","createEventEmitter","newValue","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","_Component","getChildContext","componentWillReceiveProps","oldValue","_Component2","observedBits","HASH_UNDEFINED","MAX_SAFE_INTEGER","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","reIsHostCtor","typedArrayTags","freeProcess","isHostObject","mapToArray","setToArray","arrayProto","funcProto","coreJsData","maskSrcKey","IE_PROTO","reIsNative","nativeKeys","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","Hash","inherited","isArrayLikeObject","baseTimes","skipIndexes","isIndex","assocIndexOf","objIsArr","othIsArr","objTag","othTag","getTag","objIsObj","othIsObj","isSameTag","equalArrays","byteOffset","stacked","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","skipCtor","objValue","objCtor","othCtor","equalObjects","isMasked","Ctor","isPrototype","getMapData","LARGE_ARRAY_SIZE","ctorString","logDisabled_","deprecationWarnings_","extractVersion","uastring","wrapPeerConnectionEvent","eventNameToWrap","wrapper","nativeAddEventListener","nativeEventName","wrappedCallback","modifiedEvent","_eventMap","nativeRemoveEventListener","unwrappedCb","disableLog","disableWarnings","deprecated","oldMethod","newMethod","detectBrowser","isSecureContext","supportsUnifiedPlan","accumulator","isObj","isEmptyObject","walkStats","resultSet","filterStats","outbound","streamStatsType","filteredResult","trackStats","trackIdentifier","trackStat","logging","utils","shimGetUserMedia","constraintsToChrome_","oldname_","oc","mix","shimConstraints_","remap","face","facingMode","getSupportedFacingModeLies","getSupportedConstraints","dev","shimError_","PermissionDeniedError","PermissionDismissedError","DevicesNotFoundError","ConstraintNotSatisfiedError","TrackStartError","MediaDeviceFailedDueToShutdown","MediaDeviceKillSwitchOn","TabCaptureError","ScreenCaptureError","DeviceCaptureError","constraint","constraintName","onSuccess","origGetUserMedia","cs","DOMException","shimGetDisplayMedia","widthSpecified","heightSpecified","frameRateSpecified","shimMediaStream","shimOnTrack","_ontrack","origSetRemoteDescription","_ontrackpoly","shimGetSendersWithDtmf","shimSenderWithDtmf","_dtmf","createDTMFSender","_pc","_senders","origAddTrack","origRemoveTrack","origAddStream","origRemoveStream","origGetSenders","senders","shimGetStats","origGetStats","onSucc","onErr","fixChromeStats_","standardReport","standardStats","makeMapStats","successCallbackWrapper_","shimSenderReceiverGetStats","origGetReceivers","srcElement","shimAddTrackRemoveTrackWithNative","_shimmedLocalStreams","streamId","existingSenders","newSenders","newSender","shimAddTrackRemoveTrack","origGetLocalStreams","nativeStreams","_reverseStreams","_streams","alreadyExists","oldStream","methodObj","isLegacyCall","replaceInternalStreamId","origSetLocalDescription","replaceExternalStreamId","origLocalDescription","streamid","internalId","externalStream","internalStream","shimPeerConnection","RTCIceCandidate","fixNegotiationNeeded","sdpSemantics","catch","origMSTEnabled","RTCDtmfSender","RTCDTMFSender","RTCPeerConnectionShim","shimRTCPeerConnection","validTurn","shimReplaceTrack","setTrack","nativeGetUserMedia","nativeGetSettings","nativeApplyConstraints","preferredMediaSource","RTCTrackEvent","mozRTCPeerConnection","modernStatsTypes","nativeGetStats","shimSenderGetStats","shimReceiverGetStats","shimRemoveStream","shimRTCDataChannel","DataChannel","RTCDataChannel","shimAddTransceiver","origAddTransceiver","setParametersPromises","initParameters","shouldPerformCheck","encodingParam","maxFramerate","shimGetParameters","origGetParameters","shimCreateOffer","origCreateOffer","finally","shimCreateAnswer","origCreateAnswer","shimLocalStreamsAPI","_localStreams","_addTrack","shimRemoteStreamsAPI","_remoteStreams","_onaddstream","_onaddstreampoly","shimCallbacksAPI","withCallback","_getUserMedia","shimConstraints","errcb","shimRTCIceServerUrls","OrigPeerConnection","pcConfig","pcConstraints","newIceServers","generateCertificate","shimTrackEventTransceiver","shimCreateOfferLegacy","shimAudioContext","shimRTCIceCandidate","NativeRTCIceCandidate","nativeCandidate","parsedCandidate","augmentedCandidate","shimMaxMessageSize","_sctp","sctpInDescription","mLine","getRemoteFirefoxVersion","getCanSendMaxMessageSize","remoteIsFirefox","canSendMaxMessageSize","getMaxMessageSize","canSendMMS","remoteMMS","POSITIVE_INFINITY","shimSendThrowTypeError","origCreateDataChannel","wrapDcSend","dc","origDataChannelSend","shimConnectionState","_onconnectionstatechange","origMethod","_connectionstatechangepoly","_lastConnectionState","newEvent","removeExtmapAllowMixed","nativeSRD","shimAddIceCandidateNullOrEmpty","nativeAddIceCandidate","shimChrome","shimFirefox","shimEdge","shimSafari","commonShim","chromeShim","browserShim","firefoxShim","edgeShim","safariShim","adapterFactory","EnterLeaveCounter","isNodeInDocument","entered","enteringNode","previousLength","union","leavingNode","safari","MonotonicInterpolant","ys","indexes","dx","dy","dys","dxs","c1s","m2","mNext","dxNext","common","c2s","c3s","_i3","c1","invDx","_common","xHere","diffSq","getNodeClientOffset","_el$getBoundingClient","getEventClientOffset","getDragPreviewOffset","sourceNode","dragPreview","anchorPoint","offsetPoint","isImage","dragPreviewNodeOffsetFromClient","offsetFromDragPreview","sourceWidth","sourceHeight","anchorX","anchorY","_getDragPreviewSize","dragPreviewWidth","dragPreviewHeight","devicePixelRatio","getDragPreviewSize","offsetX","offsetY","isManualOffsetY","interpolate","calculateYOffset","_nativeTypesConfig","FILE","TEXT","getDataFromDataTransfer","dataTransfer","typesToTry","resultSoFar","typeToTry","getData","nativeTypesConfig","NativeTypes","exposeProperties","matchesTypes","NativeDragSource","initializeExposedProperties","newProperties","matchNativeItemType","dataTransferTypes","nativeItemType","OptionsReader","HTML5Backend","sourcePreviewNodes","sourcePreviewNodeOptions","sourceNodes","sourceNodeOptions","dragStartSourceIds","dropTargetIds","dragEnterTargetIds","currentNativeSource","currentNativeHandle","currentDragSourceNode","altKeyPressed","mouseMoveTimeoutTimer","asyncEndDragFrameId","dragOverTargetIds","endDragNativeItem","isDraggingNativeItem","endDragIfSourceWasRemovedFromDOM","clearCurrentDragSourceNode","handleTopDragStartCapture","handleTopDragStart","nativeType","setDragImage","_this$getCurrentSourc","getCurrentSourcePreviewNodeOptions","dragPreviewOffset","setData","setCurrentDragSourceNode","captureDraggingState","beginDragNativeItem","handleTopDragEndCapture","handleTopDragEnterCapture","enterLeaveCounter","enter","handleTopDragEnter","dropEffect","getCurrentDropEffect","handleTopDragOverCapture","handleTopDragOver","handleTopDragLeaveCapture","handleTopDropCapture","loadDataTransfer","handleTopDrop","handleSelectStart","dragDrop","isContentEditable","__isReactDndBackendSetUp","addEventListeners","handleDragStart","handleDragEnter","handleDragOver","handleDrop","getCurrentSourceNodeOptions","createNativeDragSource","createBackend","Wrapper","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","refs","updater","forceUpdate","isPureReactComponent","__self","__source","$$typeof","_owner","keyPrefix","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Children","only","Profiler","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","createFactory","lazy","_ctor","_result","useImperativeHandle","da","ea","fa","ha","ia","ja","la","ma","na","oa","ka","pa","qa","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","registrationName","va","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","Ua","Va","xlinkHref","Wa","Xa","Sa","Ta","Ra","setAttributeNS","Ya","Za","$a","ab","eb","gb","hb","ib","jb","kb","lb","mb","nb","pb","qb","_debugOwner","_debugSource","lineNumber","rb","sb","xb","_valueTracker","setValue","stopTracking","tb","yb","zb","defaultChecked","_wrapperState","initialChecked","Ab","initialValue","controlled","Bb","Cb","Db","Eb","Gb","Fb","Hb","defaultSelected","Ib","dangerouslySetInnerHTML","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","namespaceURI","firstChild","MSApp","execUnsafeLocalFunction","Rb","lastChild","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","animation","Xb","Yb","Zb","$b","bc","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","gc","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","mc","nc","correspondingUseElement","qc","topLevelType","nativeEvent","targetInst","ancestors","rc","eventSystemFlags","sc","containerInfo","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","Lc","pointerId","Mc","Nc","Pc","unstable_runWithPriority","hydrate","Qc","Rc","Sc","Tc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","bd","cd","unstable_UserBlockingPriority","ed","fd","gd","hd","Oc","jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flexPositive","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","orphans","tabSize","widows","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","kd","ld","md","setProperty","nd","menuitem","area","br","embed","hr","img","keygen","link","wbr","od","pd","qd","rd","sd","td","ud","vd","nextSibling","wd","compareDocumentPosition","xd","HTMLIFrameElement","contentWindow","yd","contentEditable","Bd","Cd","Dd","Ed","Fd","Gd","__html","Hd","Id","Jd","Kd","previousSibling","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","Interface","returnValue","eventPool","destructor","getPooled","stopPropagation","persist","eventPhase","timeStamp","isTrusted","documentMode","beforeInput","compositionEnd","compositionStart","compositionUpdate","detail","which","char","email","tel","detachEvent","attachEvent","_isInputEventSupported","Alt","Control","Meta","Shift","getModifierState","pageY","relatedTarget","fromElement","toElement","movementX","movementY","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","mouseEnter","mouseLeave","pointerEnter","pointerLeave","af","bf","cf","df","ef","ff","gf","hf","jf","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","kf","lf","animationName","elapsedTime","pseudoElement","mf","clipboardData","nf","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qf","rf","sf","tf","targetTouches","changedTouches","uf","vf","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Ff","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","hg","ig","jg","kg","lg","mg","ng","og","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","tg","ug","updateQueue","baseState","baseQueue","effects","vg","wg","suspenseConfig","xg","yg","zg","ca","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","shouldComponentUpdate","Lg","Mg","UNSAFE_componentWillReceiveProps","Ng","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","ah","bh","ch","dh","eh","fh","gh","memoizedProps","revealOrder","ih","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","uh","vh","wh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","gi","hi","pendingContext","ni","pi","qi","retryTime","ji","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","tail","tailExpiration","tailMode","mi","ri","si","wasMultiple","multiple","onclick","createElementNS","createTextNode","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","WeakSet","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","Ki","Li","Di","Mi","Ni","Oi","Pi","Qi","Ri","insertBefore","_reactRootContainer","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","aj","componentStack","Rj","bj","cj","dj","fj","gj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","createRange","setStart","removeAllRanges","addRange","setEnd","vb","Uj","Vj","Wj","hidden","ob","Xj","unstable_observedBits","Zj","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hk","jk","kk","unmount","form","Lj","lk","Events","findFiberByHostInstance","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","port2","port1","sortIndex","startTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","bodyOpenClassName","portalClassName","_reactDom2","_propTypes2","_ModalPortal2","ariaAppHider","_interopRequireWildcard","_safeHTMLElement2","_reactLifecyclesCompat","isReact16","createHTMLElement","getCreatePortal","getParentElement","parentSelector","Modal","removePortal","portalRef","portal","renderPortal","defaultStyles","prevParent","nextParent","isOpen","closesAt","closeTimeoutMS","beforeClose","closeWithTimeout","shape","overlay","htmlOpenClassName","afterOpen","overlayClassName","instanceOf","onAfterOpen","onRequestClose","ariaHideApp","shouldFocusAfterRender","shouldCloseOnOverlayClick","shouldReturnFocusAfterClose","preventScroll","aria","contentLabel","shouldCloseOnEsc","overlayRef","contentRef","overlayElement","contentElement","contentEl","backgroundColor","background","WebkitOverflowScrolling","borderRadius","outline","polyfill","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propFullName","getShim","ReactPropTypes","bigint","symbol","objectOf","oneOf","checkPropTypes","focusManager","_scopeTab2","_portalOpenInstances2","CLASS_NAMES","ariaHiddenInstances","ModalPortal","setOverlayRef","setContentRef","afterClose","teardownScopedFocus","popWithoutFocus","onAfterClose","beforeOpen","closeTimer","setupScopedFocus","markForFocusLater","openAnimationFrame","overlayEl","closeWithoutTimeout","focusContent","contentHasFocus","handleKeyDown","requestClose","handleOverlayOnClick","shouldClose","ownerHandlesClose","handleContentOnMouseUp","handleOverlayOnMouseDown","handleContentOnClick","handleContentOnMouseDown","shouldBeClosed","buildClassName","additional","attributesFromObject","moveFromContentToOverlay","_props2","contentStyles","overlayStyles","overlayProps","contentProps","onMouseUp","modal","testId","focusLaterElements","toFocus","modalElement","_tabbable","_tabbable2","needToFocus","getActiveElement","checkSafari","ExecutionEnvironment","canUseWorkers","canUseEventListeners","canUseViewport","cls","htmlClassList","removeClass","_cls","docBodyClassList","classString","classListRef","poll","incrementReference","decrementReference","instances","_arr2","_portalOpenInstances","__reactInternalSnapshotFlag","__reactInternalSnapshot","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","newApiName","maybeSnapshot","__suppressDeprecationWarning","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextProvider","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","base64map","rotl","rotr","randomBytes","words","hex","hexToBytes","bytesToBase64","base64","triplet","base64ToBytes","imod4","readFloatLE","isSlowBuffer","_isBuffer","errorExecution","doneState","pathsToStateValue","isStateLike","getActionType","constants_1","paths_1","paths_1_1","currentPath","jsx","jsxs","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MODEL","NAME","TYPE","VENDOR","VERSION","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","EMBEDDED","AMAZON","APPLE","ASUS","BLACKBERRY","FIREFOX","GOOGLE","HUAWEI","LG","MICROSOFT","MOTOROLA","OPERA","SAMSUNG","SONY","XIAOMI","ZEBRA","FACEBOOK","enumerize","enums","str1","str2","lowerize","rgxMapper","arrays","strMapper","windowsVersionMap","ME","XP","Vista","RT","CHROME","cpu","EDGE","UAParser","extensions","_ua","_rgxmap","mergedRegexes","_browser","_cpu","_device","_engine","_os","setUA","BROWSER","CPU","DEVICE","ENGINE","OS","Zepto","_gud2","_temp2","Dropdown","boxShadow","MenuButton","opened","onWillClose","_onClose","floatAnchor","_floatAnchorRef","menu","positionOptions","menuZIndex","ButtonComponent","openedClassName","openedStyle","buttonProps","onWillOpen","onDidOpen","hAlign","objectWithoutPropertiesLoose","optionsOrCapture","cachedResult","LifecycleHelper","elRect","anchorRect","buffers","optionPositions","optionHAligns","optionVAligns","positions","hAligns","vAligns","allPossibleChoices","vAlign","choiceAndCoord","coord","positionAndAlign","baseFlatten","arrayPush","isFlattenable","depth","spreadableSymbol","isConcatSpreadable","nativeObjectToString","isOwn","unmasked","baseUniq","arrayIncludes","arrayIncludesWith","createSet","isCommon","outer","computed","seenIndex","hashClear","hashDelete","hashGet","hashHas","hashSet","baseIndexOf","baseFindIndex","baseIsNaN","strictIndexOf","fromRight","getAllKeys","objStacked","baseGetAllKeys","getSymbols","keysFunc","symbolsFunc","arrayFilter","stubArray","nativeGetSymbols","resIndex","isArr","isArg","isBuff","isType","overArg","SubMenuItem","menuItem","_menuItemRef","_resetMouseLeaveWatcher","menuContainer","_menuContainerRef","menuRect","startY","startDistance","getDistance","lastCoords","MAX_TIME","menuInspector","cx","rx","cy","ry","px","py","defaultRenderer","emptyRenderer","defaultColumn","propList","makePropGetter","userProps","handlePropGetter","reduceHooks","allowUndefined","loopHooks","ensurePluginOrder","befores","pluginName","afters","functionalUpdate","useGetLatest","safeUseLayoutEffect","useMountedLayoutEffect","mountedRef","makeRenderer","flexRender","isExoticComponent","linkColumnStructure","assignColumnAccessor","flattenColumns","flattenBy","accessorPath","def","pathObjCache","reOpenBracket","reCloseBracket","pathPart","getBy","decorateColumn","userDefaultColumn","originalWidth","allColumns","additionalHeaderProperties","scanColumns","getUID","headerGroup","parentColumns","hasParents","newParent","latestParentColumn","originalId","placeholderOf","flat","recurse","expandRows","manualExpandedKey","expandSubRows","expandedRows","handleRow","addToExpandedRows","canExpand","getFilterMethod","userFilterTypes","filterTypes","shouldAutoRemoveFilter","autoRemove","unpreparedAccessWarning","passiveSupported","defaultGetTableProps","defaultGetTableBodyProps","defaultGetHeaderProps","colSpan","totalVisibleHeaderCount","defaultGetFooterProps","defaultGetHeaderGroupProps","defaultGetFooterGroupProps","defaultGetRowProps","defaultGetCellProps","cell","makeDefaultPluginHooks","useOptions","stateReducers","useControlledState","columnsDeps","allColumnsDeps","accessValue","materializedColumns","materializedColumnsDeps","useInstanceAfterData","visibleColumnsDeps","headerGroupsDeps","useInstanceBeforeDimensions","useInstance","prepareRow","getTableBodyProps","getHeaderGroupProps","getFooterGroupProps","getRowProps","getCellProps","useFinalInstance","resetHiddenColumns","toggleHideColumn","setHiddenColumns","toggleHideAllColumns","useColumnVisibility","getToggleHiddenProps","defaultGetToggleHiddenProps","getToggleHideAllColumnsProps","defaultGetToggleHideAllColumnsProps","hiddenColumns","toggleHidden","allColumnsHidden","indeterminate","columnId","handleColumn","parentVisible","subColumn","subHeader","flatHeaders","getHooks","autoResetHiddenColumns","getInstance","getAutoResetHiddenColumns","defaultInitialState","defaultColumnInstance","defaultReducer","defaultGetSubRows","defaultGetRowId","defaultUseControlledState","applyDefaults","getSubRows","getRowId","stateReducer","calculateHeaderWidths","sumTotalMinWidth","sumTotalWidth","sumTotalMaxWidth","sumTotalFlexWidth","subHeaders","totalLeft","totalMinWidth","totalWidth","totalMaxWidth","totalFlexWidth","canResize","accessRowsForColumn","flatRows","rowsById","accessValueHooks","originalRow","parentRows","originalSubRows","cells","resetExpanded","toggleRowExpanded","toggleAllRowsExpanded","useExpanded","getToggleAllRowsExpandedProps","defaultGetToggleAllRowsExpandedProps","getToggleRowExpandedProps","defaultGetToggleRowExpandedProps","isAllRowsExpanded","rowId","setExpanded","exists","shouldExist","paginateExpandedRows","autoResetExpanded","getAutoResetExpanded","expandedDepth","maxDepth","splitId","findExpandedDepth","preExpandedRows","ids","filterValue","rowValue","exactText","exactTextCase","includesAll","includesSome","includesValue","between","Infinity","resetFilters","setFilter","setAllFilters","useFilters","filters","previousfilter","newFilter","manualFilters","defaultCanFilter","disableFilters","autoResetFilters","columnDefaultCanFilter","columnDisableFilters","canFilter","filteredFlatRows","filteredRowsById","filterRows","filteredRows","preFilteredRows","getAutoResetFilters","preFilteredFlatRows","preFilteredRowsById","resetGlobalFilter","setGlobalFilter","useGlobalFilter","globalFilter","manualGlobalFilter","globalFilterValue","autoResetGlobalFilter","disableGlobalFilter","columnDisableGlobalFilter","filterableColumns","globalFilteredRows","globalFilteredFlatRows","globalFilteredRowsById","getAutoResetGlobalFilter","preGlobalFilteredRows","preGlobalFilteredFlatRows","preGlobalFilteredRowsById","aggregatedValues","nums","emptyArray","emptyObject","resetGroupBy","setGroupBy","toggleGroupBy","useGroupBy","getGroupByToggleProps","defaultGetGroupByToggleProps","canGroupBy","resolvedGroupBy","groupByColumns","nonGroupByColumns","isGrouped","groupedIndex","defaultUserAggregations","groupByFn","defaultGroupByFn","manualGroupBy","aggregations","userAggregations","autoResetGroupBy","disableGroupBy","defaultCanGroupBy","defaultColumnGroupBy","defaultGroupBy","columnDisableGroupBy","existingGroupBy","groupedFlatRows","groupedRowsById","onlyGroupedFlatRows","onlyGroupedRowsById","nonGroupedFlatRows","nonGroupedRowsById","groupUpRecursively","parentId","rowGroupsMap","groupByVal","leafRows","aggregateFn","groupedValues","leafValues","columnValue","aggregateValue","aggregateValueFn","aggregateRowsToValues","groupByID","subRow","getAutoResetGroupBy","preGroupedRows","preGroupedFlatRow","preGroupedRowsById","allCells","isPlaceholder","isAggregated","reSplitAlphaNumeric","compareBasic","getRowValuesByColumnID","row1","row2","an","bn","combo","alower","blower","replaceNonNumeric","resetSortBy","setSortBy","toggleSortBy","clearSortBy","sortType","sortDescFirst","useSortBy","getSortByToggleProps","defaultGetSortByToggleProps","isMultiSortEvent","canSort","disableMultiSort","sortBy","sortAction","multi","disableSortRemove","disableMultiRemove","maxMultiSortColCount","existingSortBy","hasDescDefined","newSortBy","orderByFn","defaultOrderByFn","userSortTypes","sortTypes","manualSortBy","defaultCanSort","disableSortBy","autoResetSortBy","defaultColumnCanSort","columnDisableSortBy","columnSort","isSorted","sortedIndex","isSortedDesc","sortedFlatRows","availableSortBy","sortInverted","sortedRows","getAutoResetSortBy","preSortedRows","preSortedFlatRows","sortFn","resetPage","gotoPage","setPageSize","usePagination","pageIndex","pageCount","newPageIndex","canNavigate","topRowIndex","autoResetPage","userPageCount","manualPagination","getAutoResetPage","pageOptions","pageStart","pageEnd","canPreviousPage","canNextPage","previousPage","nextPage","resetPivot","togglePivot","_UNSTABLE_usePivotColumns","getPivotToggleProps","defaultGetPivotToggleProps","defaultPivotColumns","canPivot","setPivot","resolvedPivot","isPivotSource","uniqueValues","materialized","sourceColumns","newMaterialized","buildPivotColumns","pivotFilters","pivotColumn","columnGroup","PivotHeader","uniqueValue","isPivotGroup","pivotValue","sourceColumn","isPivoted","autoResetPivot","manaulPivot","disablePivot","defaultCanPivot","defaultColumnPivot","defaultPivot","columnDisablePivot","getAutoResetPivot","resetSelectedRows","toggleAllRowsSelected","toggleRowSelected","toggleAllPageRowsSelected","useRowSelect","getToggleRowSelectedProps","defaultGetToggleRowSelectedProps","getToggleAllRowsSelectedProps","defaultGetToggleAllRowsSelectedProps","getToggleAllPageRowsSelectedProps","defaultGetToggleAllPageRowsSelectedProps","manualRowSelectedKey","isSelected","isSomeSelected","isAllRowsSelected","selectedRowIds","isAllPageRowsSelected","selectAll","selectSubRows","newSelectedRowIds","handleRowById","autoResetSelectedRows","selectedFlatRows","getRowIsSelected","allChildrenSelected","someSelected","getAutoResetSelectedRows","defaultInitialRowStateAccessor","defaultInitialCellStateAccessor","setRowState","setCellState","resetRowState","useRowState","initialRowStateAccessor","initialCellStateAccessor","rowState","oldRowState","oldCellState","cellState","autoResetRowState","getAutoResetRowState","resetColumnOrder","setColumnOrder","useColumnOrder","columnOrder","columnOrderCopy","columnsCopy","columnsInOrder","targetColumnId","foundIndex","columnStartResizing","columnResizing","columnDoneResizing","resetResize","useResizeColumns","defaultGetResizerProps","onResizeStart","isTouchEvent","raf","mostRecentClientX","headerIdWidths","leafHeaders","recurseHeader","getLeafHeaders","dispatchEnd","dispatchMove","scheduleDispatchMoveOnNextAnimationFrame","clientXPos","handlersAndEvents","mouse","moveEvent","moveHandler","upEvent","upHandler","passiveIfSupported","supported","passiveEventSupported","columnWidth","columnWidths","isResizingColumn","percentageDeltaX","newColumnWidths","headerId","headerWidth","disableResizing","isResizing","autoResetResize","getAutoResetResize","resetResizing","cellStyles","useAbsoluteLayout","getRowStyles","totalColumnsWidth","useBlockLayout","useFlexLayout","totalColumnsMinWidth","useGridLayout","gridTemplateColumns","gridLayout","startWidths","getElementWidth","minWidths","maxWidths","headerIdGridWidths","getElementById","defaultWait","debounceRef","getDefaultFn","getDefaultWait","userColumns","getStateReducer","reducerState","allColumnsQueue","initialRows","visibleColumnsDep","totalColumnsMaxWidth","footerGroups","createDesc","DESCRIPTORS","getKeys","gOPS","pIE","$assign","aLen","isEnum","toIObject","arrayIndexOf","toLength","toAbsoluteIndex","IS_INCLUDES","$this","SHARED","copyright","$Object","dPs","Empty","createDict","iframeDocument","iframe","Properties","buggy","gOPD","$values","isEntries","fails","KEY","exp","isInteger","subMinutes","subHours","subDays","subWeeks","subMonths","subYears","getQuarter","getYear","setSeconds","dirtySeconds","dirtyMinutes","dirtyHours","setQuarter","dirtyQuarter","oldQuarter","setYear","dirtyYear","dirtyDatesArray","datesArray","MILLISECONDS_IN_DAY","differenceInCalendarDays","dirtyDateLeft","dirtyDateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","differenceInCalendarMonths","dateLeft","dateRight","yearDiff","differenceInCalendarWeeks","startOfWeekLeft","startOfWeekRight","differenceInCalendarYears","startOfMonth","startOfYear","cleanDate","endOfDay","endOfWeek","endOfMonth","dirtyLeftDate","dirtyRightDate","dateLeftStartOfDay","dateRightStartOfDay","isSameMonth","isSameYear","isSameQuarter","dateLeftStartOfQuarter","dateRightStartOfQuarter","dirtyDateToCompare","dateToCompare","isWithinInterval","endTime","parseISO","_options$additionalDi","additionalDigits","dateStrings","splitDateString","parseYearResult","parseYear","parseDate","restDateString","parseTime","timezone","parseTimezone","patterns","dateTimeDelimiter","timeZoneDelimiter","dateRegex","timeRegex","timezoneRegex","dateString","captures","century","isWeekDate","parseDateUnit","dayOfWeek","_year","validateWeekDate","fourthOfJanuaryDay","dayOfISOWeekYear","daysInMonths","isLeapYearIndex","validateDate","validateDayOfYearDate","parseTimeUnit","validateTime","timezoneString","_hours","validateTimezone","isNodeFound","ignoreClass","correspondingElement","passiveEventSupport","handlersMap","enabledInstances","touchEvents","IGNORE_CLASS_NAME","getEventHandlerOptions","handlerOptions","onClickOutsideHOC","__outsideClickHandler","__clickOutsideHandlerProp","handleClickOutside","__getComponentNode","setClickOutsideRef","enableOnClickOutside","_uid","testPassiveEventSupport","findHighest","composed","composedPath","disableOnClickOutside","instanceRef","wrappedRef","getClass","moment","getCjsExportFromNamespace","colorName","conversions","reverseKeywords","rgb","labels","hsl","hsv","hwb","cmyk","xyz","lab","lch","keyword","ansi16","ansi256","hcg","apple","gray","comparativeDistance","rdif","gdif","bdif","diffc","reversed","currentClosestKeyword","currentClosestDistance","t1","t2","t3","smin","lmin","sl","vmin","bl","ratio","y2","x2","z2","atan2","PI","cos","sin","ansi","mult","rem","colorString","integer","hue","chroma","buildGraph","graph","models","deriveBFS","fromModel","adjacents","adjacent","wrapConversion","toModel","conversion","wrapRaw","wrappedFn","wrapRounded","routes","colorConvert","colorName$1","getRgba","getHsla","getRgb","getHsl","getHwb","getAlpha","hexString","rgbString","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","rgba","per","hexAlpha","alpha","hsla","vals","hexDouble","reverseNames","Color","valid","setValues","red","lightness","whiteness","cyan","setSpace","rgbArray","hslArray","hsvArray","hwbArray","cmykArray","rgbaArray","hslaArray","setChannel","green","blue","saturation","saturationv","blackness","magenta","yellow","black","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","contrastRatio","dark","light","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","rotate","degrees","mixinColor","weight","color1","w1","w2","spaces","maxes","getValues","space","capped","chans","sname","svalues","chartjsColor","isValidKey","isNullOrUndef","valueOrDefault","valueAtIndexOrDefault","thisArg","loopable","arrayEquals","a0","a1","ilen","v0","klen","_merger","tval","sval","_mergerIf","mergeIf","dst","inherits","ChartElement","Surrogate","__super__","_deprecated","helpers_core","callCallback","getValueOrDefault","getValueAtIndexOrDefault","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","asin","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","helpers_easing","easingEffects","RAD_PER_DEG","DOUBLE_PI","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","exports$1","chart","roundedRect","radius","arc","closePath","drawPoint","rotation","xOffset","yOffset","cornerRadius","rad","restore","beginPath","lineTo","SQRT1_2","stroke","_isPointInArea","epsilon","clipArea","unclipArea","stepped","steppedLine","midpoint","tension","bezierCurveTo","controlPointPreviousX","controlPointNextX","controlPointPreviousY","controlPointNextY","helpers_canvas","drawRoundedRectangle","_set","defaultColor","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","defaultLineHeight","showLines","core_defaults","toFontString","font","family","helpers_options","toLineHeight","toPadding","_parseFont","globalDefaults","fontSize","fontFamily","fontStyle","cacheable","exports$2","_factorize","log10","exponent","LOG10E","powerOf10","helpers_math","getRtlAdapter","rectX","setWidth","textAlign","align","xPlus","leftForLtr","itemWidth","getLtrAdapter","_itemWidth","getAdapter","rtl","helpers$1","easing","math","overrideTextDirection","getPropertyPriority","prevTextDirection","restoreTextDirection","ease","actual","c0","pivot","_view","_model","_start","tooltipPosition","hasValue","core_element","exports$3","currentStep","numSteps","onAnimationProgress","onAnimationComplete","core_animation","onProgress","core_animations","animations","addAnimation","animating","cancelAnimation","requestAnimFrame","startDigest","advance","nextStep","arrayEvents","listenArrayEvents","_chartjs","unlistenArrayEvents","stub","DatasetController","datasetIndex","datasetElementType","dataElementType","_datasetElementOptions","_dataElementOptions","linkScales","addElements","getMeta","updateIndex","scales","getDataset","scalesOpts","xAxisID","xAxes","yAxisID","yAxes","getDatasetMeta","getScaleForId","scaleID","_getValueScaleId","_getIndexScaleId","_getValueScale","_getIndexScale","_update","createMetaDataset","_datasetIndex","createMetaData","_index","metaData","addElementAndReset","updateElement","buildOrUpdateElements","isExtensible","resyncElements","_configure","_cachedDataOpts","easingValue","elements","draw","_resolveDatasetElementOptions","_resolveDataElementOptions","borderColor","readKey","datasetOpts","custom","elementOptions","cached","dataIndex","removeHoverStyle","$previousStyle","setHoverStyle","getHoverColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","_removeDatasetHoverStyle","_setDatasetHoverStyle","hoverOptions","numMeta","numData","insertElements","onDataPush","onDataPop","onDataShift","onDataSplice","onDataUnshift","core_datasetController","TAU","clipArc","startAngle","endAngle","pixelMargin","angleMargin","outerRadius","innerRadius","drawFullCircleBorders","vm","fullCircles","drawBorder","borderAlign","lineWidth","lineJoin","element_arc","inLabelRange","mouseX","hoverRadius","inRange","chartX","chartY","pointRelativePosition","getAngleFromPoint","angle","betweenAngles","withinRadius","getCenterPoint","halfAngle","halfRadius","centreAngle","rangeFromCentre","circumference","fillStyle","strokeStyle","valueOrDefault$1","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","capBezierPoints","element_line","currentVM","spanGaps","_children","globalOptionLineElements","lastDrawnIndex","previousItem","lineCap","setLineDash","lineDashOffset","valueOrDefault$2","defaultColor$1","xRange","hitRadius","yRange","mouseY","pointStyle","element_point","inXRange","inYRange","chartArea","defaultColor$2","getBarBounds","x1","y1","half","swap","orig","v2","parseBorderSkipped","edge","borderSkipped","parseBorderWidth","maxW","maxH","boundingRects","bounds","skipX","skipY","rectangle","element_rectangle","fillRect","Arc","Point","Rectangle","valueOrDefault$3","computeMinSampleSize","pixels","curr","_length","getTicks","getPixelForTick","computeFitCategoryTraits","ruler","thickness","barThickness","stackCount","categoryPercentage","barPercentage","computeFlexCategoryTraits","percent","gridLines","offsetGridLines","bar","controller_bar","scaleOpts","minBarLength","maxBarThickness","_ruler","getRuler","_xScale","_yScale","datasetLabel","_updateElementGeometry","vscale","getBasePixel","isHorizontal","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","_getStacks","metasets","_getMatchingVisibleMetas","stacks","getStackCount","getStackIndex","getPixelForValue","_startPixel","_endPixel","imeta","ivalue","stackLength","_parseValue","stackIndex","indexOpts","valueOpts","valueOrDefault$4","resolve$1","tooltips","dataPoint","xLabel","yLabel","controller_bubble","xScale","yScale","dsIndex","getPixelForDecimal","valueOrDefault$5","PI$1","DOUBLE_PI$1","HALF_PI$1","animateRotate","animateScale","legendCallback","listItem","outerHTML","generateLabels","legendItem","cutoutPercentage","tooltipItem","dataLabel","controller_doughnut","getRingIndex","ringIndex","isDatasetVisible","ratioX","ratioY","arcs","cutout","chartWeight","_getRingWeight","endX","endY","contains0","contains90","contains270","minX","minY","maxX","maxY","getMaxBorderWidth","radiusLength","_getVisibleDatasetWeightTotal","calculateTotal","_getRingWeightOffset","animationOpts","centerX","centerY","calculateCircumference","hoverWidth","ringWeightOffset","dataSetIndex","horizontalBar","controller_horizontalBar","valueOrDefault$6","resolve$2","isPointInArea","scaleClip","halfBorderWidth","tickOpts","ticks","defaultClip","toClip","controller_line","showLine","_showLine","lineTension","_scale","updateBezierControlPoints","lineModel","calculatePointY","lineOptions","ds","dsMeta","stackedRightValue","rightValue","sumPos","sumNeg","getRightValue","_getSortedVisibleDatasetMetas","controlPoints","capControlPoint","cubicInterpolationMode","splineCurveMonotone","splineCurve","nextItem","resolve$3","angleLines","circular","pointLabels","beginAtZero","controller_polarArea","starts","_starts","angles","_angles","_updateRadius","countVisibleElements","_computeAngle","minSize","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getDistanceFromCenterForValue","resetRadius","doughnut","controller_pie","valueOrDefault$7","controller_radar","pointPosition","getPointPositionForValue","scatter","polarArea","pie","radar","getRelativePosition","native","parseVisibleItems","metadata","jlen","getIntersectItems","getNearestItems","intersect","distanceMetric","minDistance","nearestItems","getDistanceMetricForAxis","useX","useY","pt1","pt2","indexMode","core_interaction","modes","single","nearest","intersectsItem","filterByPosition","where","sortByWeight","wrapBoxes","boxes","layoutBoxes","setLayoutDims","layouts","layout","fullWidth","availableWidth","vBoxMaxWidth","hBoxMaxHeight","buildLayoutBoxes","leftAndTop","rightAndBottom","getCombinedMax","maxPadding","updateDims","newHeight","getPadding","boxPadding","handleMaxPadding","updatePos","getMargins","marginForPositions","fitBoxes","refit","refitBoxes","placeBoxes","userPadding","core_layouts","addBox","_layers","removeBox","layoutItem","configure","layoutOptions","availableHeight","verticalBoxes","horizontalBoxes","platform_basic","acquireContext","platform_dom","stylesheet","EXPANDO_KEY","CSS_PREFIX","CSS_SIZE_MONITOR","CSS_RENDER_MONITOR","CSS_RENDER_ANIMATION","ANIMATION_START_EVENTS","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","readUsedSize","initCanvas","renderHeight","renderWidth","displayWidth","aspectRatio","displayHeight","supportsEventListenerOptions","supports","eventListenerOptions","createEvent","fromNativeEvent","throttled","ticking","createDiv","createResizer","_reset","onScroll","watchForRender","expando","renderProxy","reflow","unwatchForRender","addResizeListener","maintainAspectRatio","removeResizeListener","injectCSS","containsStyles","platform_dom$2","disableCSSInjection","_enabled","_ensureLoaded","releaseContext","proxies","addEvent","removeEvent","core_plugins","_cacheId","getAll","$plugins","_invalidate","core_scaleService","constructors","registerScaleType","scaleConstructor","scaleDefaults","getScaleConstructor","getScaleDefaults","updateScaleDefaults","addScalesToLayout","valueOrDefault$8","getRtlHelper","titleFontStyle","titleSpacing","titleMarginBottom","titleFontColor","titleAlign","bodySpacing","bodyFontColor","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","multiKeyBackground","displayColors","beforeTitle","tooltipItems","labelCount","afterTitle","beforeBody","beforeLabel","labelColor","labelTextColor","afterLabel","afterBody","beforeFooter","afterFooter","positioners","average","eventPosition","nearestElement","distanceBetweenPoints","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","indexScale","valueScale","getLabelForIndex","getBaseModel","tooltipOpts","xAlign","yAlign","textDirection","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","legendColorBackground","getTooltipSize","tooltip","combinedBodyLength","bodyItem","titleLineCount","footerLineCount","widthPadding","maxLineWidth","measureText","fontString","determineAlignment","olf","orf","midX","midY","getBackgroundPoint","alignment","paddingAndSize","radiusAndPadding","getAlignedX","getBeforeAfterBodyLines","exports$4","_lastActive","getTitle","getBeforeBody","getBody","bodyItems","getAfterBody","getFooter","existingModel","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","itemSort","dataPoints","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","drawTitle","rtlHelper","textBaseline","fillText","drawBody","textColor","drawColorBoxes","xLinePadding","colorX","fillLineOfText","bodyAlignForCalculation","rtlColorX","strokeRect","drawFooter","drawBackground","quadraticCurveTo","hasTooltipContent","globalAlpha","getElementsAtEventForMode","positioners_1","core_tooltip","valueOrDefault$9","mergeScaleConfig","slen","mergeConfig","initConfig","updateConfig","newOptions","ensureScalesHaveIDs","buildOrUpdateScales","nextAvailableScaleId","axesOpts","hasId","positionIsHorizontal","compare2Level","l1","l2","onHover","animationDuration","responsive","responsiveAnimationDuration","Chart","_bufferedRender","retinaScale","resize","initToolTip","getMaximumWidth","getMaximumHeight","newSize","onResize","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","dtype","dposition","isDefault","scaleType","scaleClass","mergeTicksOptions","hasUpdated","buildOrUpdateControllers","newControllers","destroyDatasetMeta","ControllerClass","resetElements","updateLayout","updateDatasets","lastActive","_bufferedRequest","_idx","updateDataset","animationOptions","animationObject","easingFunction","stepDecimal","layers","drawDatasets","_drawTooltip","_getSortedDatasetMetas","filterVisible","drawDataset","getElementsAtXAxis","_meta","generateLegend","toBase64Image","_chartInstance","_listeners","updateHoverStyle","bufferedRequest","core_controller","Controller","scaleMerge","core_helpers","parseMaxStyle","styleValue","parentProperty","valueInPixels","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","_getParentNode","constrainedNode","constrainedContainer","hasCNode","hasCContainer","infinity","filterCallback","findNextWhere","arrayToSearch","startIndex","currentItem","findPreviousWhere","almostEquals","almostWhole","rounded","NEGATIVE_INFINITY","toRadians","toDegrees","radians","_decimalPlaces","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","aliasPixel","pixelWidth","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","EPSILON","pointBefore","pointCurrent","pointAfter","alphaK","betaK","tauK","squaredMagnitude","pointsWithTangents","deltaK","mK","pointsLen","slopeDeltaX","niceNum","fraction","oRequestAnimationFrame","boundingRect","getConstraintWidth","getConstraintHeight","_calculatePadding","parentDimension","cw","currentStyle","forceRatio","pixelRatio","pixelSize","longestText","arrayOfThings","garbageCollect","thing","nestedThing","longest","gcLen","textWidth","numberOfLabelLines","numberOfLines","CanvasGradient","colorValue","CanvasPattern","abstract","DateAdapter","_create","override","members","core_adapters","core_ticks","formatters","tickValue","logDelta","tickString","logTick","numExponential","toExponential","numDecimal","logarithmic","remain","valueOrDefault$a","sample","numItems","increment","getPixelForGridLine","validIndex","lineValue","caches","computeLabelSizes","tickFonts","tickFont","nestedLabel","widest","highest","widths","heights","widestLabelSize","highestLabelSize","minor","valueAt","getTickMarkLength","drawTicks","tickMarkLength","getScaleLabelHeight","parseFontOptions","nestedOpts","fontColor","parseTickFontOptions","nonSkipped","ticksToFilter","getEvenSpacing","calculateSpacing","majorIndices","axisLength","ticksLimit","factors","factor","evenMajorSpacing","getMajorIndices","skipMajors","tick","majorStart","majorEnd","drawOnChartArea","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","Scale","zeroLineIndex","_ticks","_getLabels","xLabels","yLabels","beforeUpdate","margins","samplingEnabled","_labelSizes","_maxLabelLines","longestLabelWidth","longestTextCache","_gridLineItems","_labelItems","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","_convertTicksToLabels","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","_ticksToDraw","_autoSkip","afterUpdate","startPixel","endPixel","reversePixels","_reversePixels","beforeTickToLabelConversion","convertTicksToLabels","userCallback","afterTickToLabelConversion","labelSizes","maxLabelWidth","maxLabelHeight","tickWidth","maxLabelDiagonal","numTicks","labelRotation","_isVisible","_getLabelSizes","scaleLabelOpts","gridLineOpts","isBottom","firstLabelSize","lastLabelSize","lineSpace","tickPadding","isRotated","angleRadians","cosRotation","sinRotation","labelHeight","offsetLeft","offsetRight","labelWidth","handleMargins","isFullWidth","rawValue","_getScaleLabel","getValueForPixel","decimal","getDecimalForPixel","getBaseValue","avgMajorSpacing","maxTicksLimit","_tickSize","numMajorIndices","optionTicks","rot","_computeGridLineItems","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","lineColor","ticksLength","tl","axisWidth","axisHalfWidth","alignPixel","alignBorderValue","_computeLabelItems","lineCount","textOffset","isMirrored","fonts","_drawGrid","firstLineWidth","lastLineWidth","_drawLabels","_drawTitle","scaleLabelX","scaleLabelY","scaleLabelFontColor","scaleLabelFont","scaleLabelPadding","halfLineHeight","isLeft","tz","gz","_draw","core_scale","isNullOrUndef$1","defaultConfig","scale_category","ticksOpts","minIndex","maxIndex","_startValue","_valueRange","valueCategory","_defaults","isNullOrUndef$2","generateTicks","generationOptions","dataRange","niceMin","niceMax","numSpaces","MIN_SPACING","stepSize","maxNumSpaces","maxTicks","precision","rmin","rmax","scale_linearbase","handleTickRangeOptions","minSign","maxSign","setMin","suggestedMin","setMax","suggestedMax","getTickLimit","_computeTickLimit","handleDirectionalChanges","numericGeneratorOptions","fixedStepSize","ticksAsNumbers","_endValue","defaultConfig$1","DEFAULT_MIN","DEFAULT_MAX","getOrCreateStack","neg","stackData","relativePoints","updateMinMax","scale_linear","hasStacks","stackValues","_defaults$1","valueOrDefault$b","generateTicks$1","significand","tickVal","endExp","endSignificand","minNotZero","lastTick","defaultConfig$2","nonNegativeOrDefault","scale_logarithmic","IDMatches","valuesPerStack","valuesForType","minVal","maxVal","tickValues","_getFirstTickValue","_valueOffset","_defaults$2","valueOrDefault$c","valueAtIndexOrDefault$1","resolve$4","defaultConfig$3","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getTickBackdropHeight","measureLabelSize","determineLimits","fitWithPointLabels","textSize","plFont","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","drawingArea","getIndexAngle","hLimits","vLimits","setReductions","getTextAlignForAngle","adjustPointPositionForLabelHeight","drawPointLabels","pointLabelOpts","tickBackdropHeight","outerDistance","extra","pointLabelPosition","pointLabelFontColor","drawRadiusLine","numberOrZero","scale_radialLinear","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","scalingFactor","distanceFromCenter","thisAngle","getBasePosition","angleLineOpts","tickFontColor","_defaults$3","deprecated$1","resolve$5","valueOrDefault$d","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","INTERVALS","steps","UNITS","sorter","arrayUnique","getMin","getMax","buildLookupTable","distribution","table","lookup","i0","i1","lo","interpolate$1","skey","tkey","span","toTimestamp","_adapter","determineUnitForAutoTicks","minUnit","determineUnitForFormatting","determineMajorUnit","generate","timeOpts","unitStepSize","computeOffsets","setMajorTicks","majorUnit","ticksFromTimestamps","defaultConfig$4","adapters","displayFormat","displayFormats","scale_time","labelsAdded","dataLabels","_table","_timestamps","getLabelCapacity","_unit","_majorUnit","_offsets","tooltipFormat","tickFormatFunction","minorFormat","majorFormat","nestedTickOpts","formatter","getPixelForOffset","_getLabelSize","tickLabelWidth","tickFontSize","getLabelWidth","exampleTime","exampleLabel","_defaults$4","category","radialLinear","FORMATS","filler","propagate","mappers","boundary","decodeFill","computeLinearBoundary","scaleBottom","scaleTop","scaleZero","computeCircularBoundary","computeBoundary","visited","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","doFill","p0","d0","d1","loopOffset","plugin_filler","afterDatasetsUpdate","$filler","beforeDatasetsDraw","getRtlHelper$1","valueOrDefault$e","getBoxWidth","labelOpts","usePointStyle","boxWidth","onLeave","lineDash","Legend","legendHitBoxes","_hoveredItem","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnHeights","currentColWidth","currentColHeight","lineDefault","legendHeight","legendWidth","drawLegendBox","SQRT2","halfFontSize","xLeft","yMiddle","alignmentOffset","blockSize","itemHeight","realX","_getLegendItemAt","hitBox","hoveredItem","createNewLegendAndAttach","legendOpts","plugin_legend","_element","beforeInit","afterEvent","Title","titleX","titleY","fontOpts","createNewTitleBlockAndAttach","titleOpts","titleBlock","_adapters","Animation","animationService","Interaction","scaleService","Ticks","Tooltip","pluginService","PluginBase","canvasHelpers","layoutService","LinearScaleBase","klass","cfg","baseAssignValue","keyBy","createAggregator","arrayAggregator","baseAggregator","baseIteratee","initializer","baseEach","baseForOwn","createBaseEach","baseFor","createBaseFor","eachFunc","baseMatches","baseMatchesProperty","identity","baseIsMatch","getMatchData","matchesStrictComparable","matchData","noCustomizer","COMPARE_PARTIAL_FLAG","isStrictComparable","hasIn","baseGet","memoizeCapped","rePropName","reEscapeChar","quote","subString","resolver","Cache","baseToString","arrayMap","symbolToString","baseHasIn","hasPath","hasFunc","baseProperty","basePropertyDeep","asapQueue","taskFactory","makeRequestCallFromMutationObserver","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","handleTimer","intervalHandle","characterData","Setter","_utcDate","ValueSetter","validateValue","subPriority","DateToSystemTimezoneSetter","timestampIsSet","convertedDate","Parser","validate","EraParser","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","YearParser","isTwoDigitYear","normalizedTwoDigitYear","LocalWeekYearParser","ISOWeekYearParser","_flags","firstWeekOfYear","ExtendedYearParser","QuarterParser","setUTCMonth","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","LocalWeekParser","dirtyWeek","setUTCWeek","ISOWeekParser","dirtyISOWeek","setUTCISOWeek","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","DateParser","DayOfYearParser","setUTCDay","dirtyDay","currentDay","remainder","dayIndex","DayParser","LocalDayParser","wholeWeekDays","StandAloneLocalDayParser","ISODayParser","setUTCISODay","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","SecondParser","setUTCSeconds","FractionOfSecondParser","setUTCMilliseconds","ISOTimezoneWithZParser","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","parsers","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","notWhitespaceRegExp","unescapedLatinCharacterRegExp","dirtyDateString","dirtyFormatString","dirtyReferenceDate","_options$locale2","_options$locale2$opti","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatString","subFnOptions","setters","firstCharacter","longFormatter","usedTokens","_token","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","incompatibleTokens","incompatibleToken","usedToken","fullToken","cleanEscapedString","_ret","uniquePrioritySetters","setterArray","addLeadingZeros","signedYear","dayPeriodEnumValue","numberOfDigits","dayPeriodEnum","lightFormatters","signedWeekYear","startOfYearTimestamp","difference","getUTCDayOfYear","localDayOfWeek","isoDayOfWeek","_localize","timezoneOffset","_originalDate","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","originalDate","dirtyDelimiter","absOffset","dirtyFormatStr","formatStr","formatterOptions","getWeekYear","startOfWeekYear","getWeek","DndProvider","_getDndContextValue","getGlobalContext","instanceSymbol","createSingletonDndContext","isGlobalInstance","getDndContextValue","_getDndContextValue2","isCallingCanDrag","isCallingIsDragging","DragSourceMonitorImpl","internalMonitor","isDraggingSource","isOverTarget","subscribeToOffsetChange","getItem","getInitialClientOffset","getInitialSourceClientOffset","getClientOffset","getDifferenceFromInitialOffset","SourceConnector","dragSource","clearDragSource","dragSourceOptions","dragSourceRef","dragSourceNode","reconnectDragSource","clearDragPreview","dragPreviewOptions","dragPreviewRef","dragPreviewNode","reconnectDragPreview","dragSourceOptionsInternal","dragPreviewOptionsInternal","lastConnectedHandlerId","lastConnectedDragSource","lastConnectedDragSourceOptions","lastConnectedDragPreview","lastConnectedDragPreviewOptions","newHandlerId","didHandlerIdChange","didConnectedDragSourceChange","didDragSourceOptionsChange","disconnectDragSource","dragSourceUnsubscribe","connectDragSource","didConnectedDragPreviewChange","didDragPreviewOptionsChange","disconnectDragPreview","dragPreviewUnsubscribe","connectDragPreview","useDrag","specRef","_useDragSourceMonitor2","getBackend","useDragSourceMonitor","connector","_spec$current","begin","beginResult","globalMonitor","_registerSource2","receiveHandlerId","useDragHandler","previewOptions","TargetConnector","dropTarget","clearDropTarget","dropTargetOptions","dropTargetRef","dropTargetNode","dropTargetOptionsInternal","lastConnectedDropTarget","lastConnectedDropTargetOptions","didDropTargetChange","didOptionsChange","disconnectDropTarget","unsubscribeDropTarget","connectDropTarget","isCallingCanDrop","DropTargetMonitorImpl","useDrop","accept","_useDropTargetMonitor2","useDropTargetMonitor","_registerTarget2","useDropHandler"],"mappings":"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","file":"static/js/2.41a8be10.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","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\";\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return generator._invoke = function (innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }(innerFn, self, context), generator;\n }\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n exports.wrap = wrap;\n var ContinueSentinel = {};\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {}\n\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n\n reject(record.arg);\n }\n\n var previousPromise;\n\n this._invoke = function (method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n };\n }\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"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 if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n\n return next.value = undefined, next.done = !0, next;\n };\n\n return next.next = next;\n }\n }\n\n return {\n next: doneResult\n };\n }\n\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, \"constructor\", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n }\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","import {\n ActionCreator,\n ActionCreatorTypeMetadata,\n TypeConstant,\n} from '../type-helpers';\n\nexport function checkIsEmpty(arg: unknown) {\n return arg == null;\n}\n\nexport function throwIsEmpty(argPosition: number): never {\n throw new Error(`Argument ${argPosition} is empty.`);\n}\n\nexport function checkValidActionCreator(\n arg: unknown\n): arg is ActionCreator {\n return typeof arg === 'function' && 'getType' in arg;\n}\n\nexport function checkInvalidActionCreator(arg: unknown) {\n return !checkValidActionCreator(arg);\n}\n\nexport function throwInvalidActionCreator(argPosition: number): never {\n throw new Error(\n `Argument ${argPosition} is invalid, it should be an action-creator instance from \"typesafe-actions\"`\n );\n}\n\nexport function checkInvalidActionCreatorInArray(\n arg: ActionCreator & ActionCreatorTypeMetadata,\n idx: number\n): void | never {\n if (arg == null) {\n throw new Error(\n `Argument contains array with empty element at index ${idx}`\n );\n } else if (arg.getType == null) {\n throw new Error(\n // tslint:disable-next-line:max-line-length\n `Argument contains array with invalid element at index ${idx}, it should be an action-creator instance from \"typesafe-actions\"`\n );\n }\n}\n\nexport function checkValidActionType(arg: unknown): arg is string | symbol {\n return typeof arg === 'string' || typeof arg === 'symbol';\n}\n\nexport function checkInvalidActionType(arg: unknown) {\n return !checkValidActionType(arg);\n}\n\nexport function throwInvalidActionType(argPosition: number): never {\n throw new Error(\n `Argument ${argPosition} is invalid, it should be an action type of type: string | symbol`\n );\n}\n\nexport function checkInvalidActionTypeInArray(\n arg: TypeConstant,\n idx: number\n): void | never {\n if (arg == null) {\n throw new Error(\n `Argument contains array with empty element at index ${idx}`\n );\n } else if (typeof arg !== 'string' && typeof arg !== 'symbol') {\n throw new Error(\n `Argument contains array with invalid element at index ${idx}, it should be of type: string | symbol`\n );\n }\n}\n\nexport function throwInvalidActionTypeOrActionCreator(\n argPosition: number\n): never {\n throw new Error(\n `Argument ${argPosition} is invalid, it should be an action-creator instance from \"typesafe-actions\" or action type of type: string | symbol`\n );\n}\n","import {\n TypeConstant,\n ResolveType,\n ActionCreatorTypeMetadata,\n} from './type-helpers';\nimport {\n checkIsEmpty,\n throwIsEmpty,\n checkInvalidActionType,\n throwInvalidActionType,\n} from './utils/validation';\n\n/**\n * @description create custom action-creator using constructor function with injected type argument\n */\nexport function createCustomAction<\n TType extends TypeConstant,\n TArgs extends any[] = [],\n TReturn extends any = {}\n>(\n type: TType,\n createHandler?: (...args: TArgs) => TReturn\n): ((...args: TArgs) => ResolveType<{ type: TType } & TReturn>) &\n ActionCreatorTypeMetadata {\n if (checkIsEmpty(type)) {\n throwIsEmpty(1);\n }\n\n if (checkInvalidActionType(type)) {\n throwInvalidActionType(1);\n }\n\n const actionCreator = (...args: TArgs) => {\n const customProps =\n createHandler != null ? createHandler(...args) : undefined;\n return { type, ...customProps } as ResolveType<{ type: TType } & TReturn>;\n };\n\n const typeMeta = {\n getType: () => type,\n // redux-actions compatibility\n toString: () => type,\n } as ActionCreatorTypeMetadata;\n\n return Object.assign(actionCreator, typeMeta);\n}\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","import { __assign, __read } from './_virtual/_tslib.js';\nimport { IS_PRODUCTION } from './environment.js';\nimport { toSCXMLEvent, isFunction, toEventObject, getEventType, isString, partition, updateContext, flatten, toArray, toGuard, evaluateGuard, warn, isArray } from './utils.js';\nimport { SpecialTargets, ActionTypes } from './types.js';\nimport { send as send$1, update, assign as assign$1, init, raise as raise$1, log as log$1, cancel as cancel$1, error as error$1, pure as pure$1, choose as choose$1 } from './actionTypes.js';\nvar initEvent = /*#__PURE__*/toSCXMLEvent({\n type: init\n});\n\nfunction getActionFunction(actionType, actionFunctionMap) {\n return actionFunctionMap ? actionFunctionMap[actionType] || undefined : undefined;\n}\n\nfunction toActionObject(action, actionFunctionMap) {\n var actionObject;\n\n if (isString(action) || typeof action === 'number') {\n var exec = getActionFunction(action, actionFunctionMap);\n\n if (isFunction(exec)) {\n actionObject = {\n type: action,\n exec: exec\n };\n } else if (exec) {\n actionObject = exec;\n } else {\n actionObject = {\n type: action,\n exec: undefined\n };\n }\n } else if (isFunction(action)) {\n actionObject = {\n // Convert action to string if unnamed\n type: action.name || action.toString(),\n exec: action\n };\n } else {\n var exec = getActionFunction(action.type, actionFunctionMap);\n\n if (isFunction(exec)) {\n actionObject = __assign(__assign({}, action), {\n exec: exec\n });\n } else if (exec) {\n var actionType = exec.type || action.type;\n actionObject = __assign(__assign(__assign({}, exec), action), {\n type: actionType\n });\n } else {\n actionObject = action;\n }\n }\n\n Object.defineProperty(actionObject, 'toString', {\n value: function () {\n return actionObject.type;\n },\n enumerable: false,\n configurable: true\n });\n return actionObject;\n}\n\nvar toActionObjects = function (action, actionFunctionMap) {\n if (!action) {\n return [];\n }\n\n var actions = isArray(action) ? action : [action];\n return actions.map(function (subAction) {\n return toActionObject(subAction, actionFunctionMap);\n });\n};\n\nfunction toActivityDefinition(action) {\n var actionObject = toActionObject(action);\n return __assign(__assign({\n id: isString(action) ? action : actionObject.id\n }, actionObject), {\n type: actionObject.type\n });\n}\n/**\r\n * Raises an event. This places the event in the internal event queue, so that\r\n * the event is immediately consumed by the machine in the current step.\r\n *\r\n * @param eventType The event to raise.\r\n */\n\n\nfunction raise(event) {\n if (!isString(event)) {\n return send(event, {\n to: SpecialTargets.Internal\n });\n }\n\n return {\n type: raise$1,\n event: event\n };\n}\n\nfunction resolveRaise(action) {\n return {\n type: raise$1,\n _event: toSCXMLEvent(action.event)\n };\n}\n/**\r\n * Sends an event. This returns an action that will be read by an interpreter to\r\n * send the event in the next step, after the current step is finished executing.\r\n *\r\n * @param event The event to send.\r\n * @param options Options to pass into the send event:\r\n * - `id` - The unique send event identifier (used with `cancel()`).\r\n * - `delay` - The number of milliseconds to delay the sending of the event.\r\n * - `to` - The target of this event (by default, the machine the event was sent from).\r\n */\n\n\nfunction send(event, options) {\n return {\n to: options ? options.to : undefined,\n type: send$1,\n event: isFunction(event) ? event : toEventObject(event),\n delay: options ? options.delay : undefined,\n id: options && options.id !== undefined ? options.id : isFunction(event) ? event.name : getEventType(event)\n };\n}\n\nfunction resolveSend(action, ctx, _event, delaysMap) {\n var meta = {\n _event: _event\n }; // TODO: helper function for resolving Expr\n\n var resolvedEvent = toSCXMLEvent(isFunction(action.event) ? action.event(ctx, _event.data, meta) : action.event);\n var resolvedDelay;\n\n if (isString(action.delay)) {\n var configDelay = delaysMap && delaysMap[action.delay];\n resolvedDelay = isFunction(configDelay) ? configDelay(ctx, _event.data, meta) : configDelay;\n } else {\n resolvedDelay = isFunction(action.delay) ? action.delay(ctx, _event.data, meta) : action.delay;\n }\n\n var resolvedTarget = isFunction(action.to) ? action.to(ctx, _event.data, meta) : action.to;\n return __assign(__assign({}, action), {\n to: resolvedTarget,\n _event: resolvedEvent,\n event: resolvedEvent.data,\n delay: resolvedDelay\n });\n}\n/**\r\n * Sends an event to this machine's parent.\r\n *\r\n * @param event The event to send to the parent machine.\r\n * @param options Options to pass into the send event.\r\n */\n\n\nfunction sendParent(event, options) {\n return send(event, __assign(__assign({}, options), {\n to: SpecialTargets.Parent\n }));\n}\n/**\r\n * Sends an update event to this machine's parent.\r\n */\n\n\nfunction sendUpdate() {\n return sendParent(update);\n}\n/**\r\n * Sends an event back to the sender of the original event.\r\n *\r\n * @param event The event to send back to the sender\r\n * @param options Options to pass into the send event\r\n */\n\n\nfunction respond(event, options) {\n return send(event, __assign(__assign({}, options), {\n to: function (_, __, _a) {\n var _event = _a._event;\n return _event.origin; // TODO: handle when _event.origin is undefined\n }\n }));\n}\n\nvar defaultLogExpr = function (context, event) {\n return {\n context: context,\n event: event\n };\n};\n/**\r\n *\r\n * @param expr The expression function to evaluate which will be logged.\r\n * Takes in 2 arguments:\r\n * - `ctx` - the current state context\r\n * - `event` - the event that caused this action to be executed.\r\n * @param label The label to give to the logged expression.\r\n */\n\n\nfunction log(expr, label) {\n if (expr === void 0) {\n expr = defaultLogExpr;\n }\n\n return {\n type: log$1,\n label: label,\n expr: expr\n };\n}\n\nvar resolveLog = function (action, ctx, _event) {\n return __assign(__assign({}, action), {\n value: isString(action.expr) ? action.expr : action.expr(ctx, _event.data, {\n _event: _event\n })\n });\n};\n/**\r\n * Cancels an in-flight `send(...)` action. A canceled sent action will not\r\n * be executed, nor will its event be sent, unless it has already been sent\r\n * (e.g., if `cancel(...)` is called after the `send(...)` action's `delay`).\r\n *\r\n * @param sendId The `id` of the `send(...)` action to cancel.\r\n */\n\n\nvar cancel = function (sendId) {\n return {\n type: cancel$1,\n sendId: sendId\n };\n};\n/**\r\n * Starts an activity.\r\n *\r\n * @param activity The activity to start.\r\n */\n\n\nfunction start(activity) {\n var activityDef = toActivityDefinition(activity);\n return {\n type: ActionTypes.Start,\n activity: activityDef,\n exec: undefined\n };\n}\n/**\r\n * Stops an activity.\r\n *\r\n * @param activity The activity to stop.\r\n */\n\n\nfunction stop(activity) {\n var activityDef = toActivityDefinition(activity);\n return {\n type: ActionTypes.Stop,\n activity: activityDef,\n exec: undefined\n };\n}\n/**\r\n * Updates the current context of the machine.\r\n *\r\n * @param assignment An object that represents the partial context to update.\r\n */\n\n\nvar assign = function (assignment) {\n return {\n type: assign$1,\n assignment: assignment\n };\n};\n/**\r\n * Returns an event type that represents an implicit event that\r\n * is sent after the specified `delay`.\r\n *\r\n * @param delayRef The delay in milliseconds\r\n * @param id The state node ID where this event is handled\r\n */\n\n\nfunction after(delayRef, id) {\n var idSuffix = id ? \"#\" + id : '';\n return ActionTypes.After + \"(\" + delayRef + \")\" + idSuffix;\n}\n/**\r\n * Returns an event that represents that a final state node\r\n * has been reached in the parent state node.\r\n *\r\n * @param id The final state node's parent state node `id`\r\n * @param data The data to pass into the event\r\n */\n\n\nfunction done(id, data) {\n var type = ActionTypes.DoneState + \".\" + id;\n var eventObject = {\n type: type,\n data: data\n };\n\n eventObject.toString = function () {\n return type;\n };\n\n return eventObject;\n}\n/**\r\n * Returns an event that represents that an invoked service has terminated.\r\n *\r\n * An invoked service is terminated when it has reached a top-level final state node,\r\n * but not when it is canceled.\r\n *\r\n * @param id The final state node ID\r\n * @param data The data to pass into the event\r\n */\n\n\nfunction doneInvoke(id, data) {\n var type = ActionTypes.DoneInvoke + \".\" + id;\n var eventObject = {\n type: type,\n data: data\n };\n\n eventObject.toString = function () {\n return type;\n };\n\n return eventObject;\n}\n\nfunction error(id, data) {\n var type = ActionTypes.ErrorPlatform + \".\" + id;\n var eventObject = {\n type: type,\n data: data\n };\n\n eventObject.toString = function () {\n return type;\n };\n\n return eventObject;\n}\n\nfunction pure(getActions) {\n return {\n type: ActionTypes.Pure,\n get: getActions\n };\n}\n/**\r\n * Forwards (sends) an event to a specified service.\r\n *\r\n * @param target The target service to forward the event to.\r\n * @param options Options to pass into the send action creator.\r\n */\n\n\nfunction forwardTo(target, options) {\n return send(function (_, event) {\n return event;\n }, __assign(__assign({}, options), {\n to: target\n }));\n}\n/**\r\n * Escalates an error by sending it as an event to this machine's parent.\r\n *\r\n * @param errorData The error data to send, or the expression function that\r\n * takes in the `context`, `event`, and `meta`, and returns the error data to send.\r\n * @param options Options to pass into the send action creator.\r\n */\n\n\nfunction escalate(errorData, options) {\n return sendParent(function (context, event, meta) {\n return {\n type: error$1,\n data: isFunction(errorData) ? errorData(context, event, meta) : errorData\n };\n }, __assign(__assign({}, options), {\n to: SpecialTargets.Parent\n }));\n}\n\nfunction choose(conds) {\n return {\n type: ActionTypes.Choose,\n conds: conds\n };\n}\n\nfunction resolveActions(machine, currentState, currentContext, _event, actions) {\n var _a = __read(partition(actions, function (action) {\n return action.type === assign$1;\n }), 2),\n assignActions = _a[0],\n otherActions = _a[1];\n\n var updatedContext = assignActions.length ? updateContext(currentContext, _event, assignActions, currentState) : currentContext;\n var resolvedActions = flatten(otherActions.map(function (actionObject) {\n var _a;\n\n switch (actionObject.type) {\n case raise$1:\n return resolveRaise(actionObject);\n\n case send$1:\n var sendAction = resolveSend(actionObject, updatedContext, _event, machine.options.delays); // TODO: fix ActionTypes.Init\n\n if (!IS_PRODUCTION) {\n // warn after resolving as we can create better contextual message here\n warn(!isString(actionObject.delay) || typeof sendAction.delay === 'number', // tslint:disable-next-line:max-line-length\n \"No delay reference for delay expression '\" + actionObject.delay + \"' was found on machine '\" + machine.id + \"'\");\n }\n\n return sendAction;\n\n case log$1:\n return resolveLog(actionObject, updatedContext, _event);\n\n case choose$1:\n {\n var chooseAction = actionObject;\n var matchedActions = (_a = chooseAction.conds.find(function (condition) {\n var guard = toGuard(condition.cond, machine.options.guards);\n return !guard || evaluateGuard(machine, guard, updatedContext, _event, currentState);\n })) === null || _a === void 0 ? void 0 : _a.actions;\n\n if (!matchedActions) {\n return [];\n }\n\n var resolved = resolveActions(machine, currentState, updatedContext, _event, toActionObjects(toArray(matchedActions), machine.options.actions));\n updatedContext = resolved[1];\n return resolved[0];\n }\n\n case pure$1:\n {\n var matchedActions = actionObject.get(updatedContext, _event.data);\n\n if (!matchedActions) {\n return [];\n }\n\n var resolved = resolveActions(machine, currentState, updatedContext, _event, toActionObjects(toArray(matchedActions), machine.options.actions));\n updatedContext = resolved[1];\n return resolved[0];\n }\n\n default:\n return toActionObject(actionObject, machine.options.actions);\n }\n }));\n return [resolvedActions, updatedContext];\n}\n\nexport { after, assign, cancel, choose, done, doneInvoke, error, escalate, forwardTo, getActionFunction, initEvent, log, pure, raise, resolveActions, resolveLog, resolveRaise, resolveSend, respond, send, sendParent, sendUpdate, start, stop, toActionObject, toActionObjects, toActivityDefinition };","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","/*!\n Copyright (c) 2018 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)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\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 React from 'react';\nexport var ReactReduxContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar nullListeners = {\n notify: function notify() {},\n get: function get() {\n return [];\n }\n};\nexport function createSubscription(store, parentSub) {\n var unsubscribe;\n var listeners = nullListeners;\n\n function addNestedSub(listener) {\n trySubscribe();\n return listeners.subscribe(listener);\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return Boolean(unsubscribe);\n }\n\n function trySubscribe() {\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n if (unsubscribe) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n var subscription = {\n addNestedSub: addNestedSub,\n notifyNestedSubs: notifyNestedSubs,\n handleChangeWrapper: handleChangeWrapper,\n isSubscribed: isSubscribed,\n trySubscribe: trySubscribe,\n tryUnsubscribe: tryUnsubscribe,\n getListeners: function getListeners() {\n return listeners;\n }\n };\n return subscription;\n}","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = createSubscription(store);\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useIsomorphicLayoutEffect(function () {\n var subscription = contextValue.subscription;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"getDisplayName\", \"methodName\", \"renderCountProp\", \"shouldHandleStateChanges\", \"storeKey\", \"withRef\", \"forwardRef\", \"context\"],\n _excluded2 = [\"reactReduxForwardedRef\"];\nimport hoistStatics from 'hoist-non-react-statics';\nimport React, { useContext, useMemo, useRef, useReducer } from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from './Context'; // Define some constant arrays just to avoid re-creating these\n\nvar EMPTY_ARRAY = [];\nvar NO_SUBSCRIPTION_ARRAY = [null, null];\n\nvar stringifyComponent = function stringifyComponent(Comp) {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\nfunction storeStateUpdatesReducer(state, action) {\n var updateCount = state[1];\n return [action.payload, updateCount + 1];\n}\n\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(function () {\n return effectFunc.apply(void 0, effectArgs);\n }, dependencies);\n}\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n lastChildProps.current = actualChildProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n}\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts\n\n var didUnsubscribe = false;\n var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n var checkForUpdates = function checkForUpdates() {\n if (didUnsubscribe) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n }\n\n var latestStoreState = store.getState();\n var newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render\n\n forceComponentUpdateDispatch({\n type: 'STORE_UPDATED',\n payload: {\n error: error\n }\n });\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n var unsubscribeWrapper = function unsubscribeWrapper() {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n}\n\nvar initStateUpdates = function initStateUpdates() {\n return [null, 0];\n};\n\nexport default function connectAdvanced(\n/*\r\n selectorFactory is a func that is responsible for returning the selector function used to\r\n compute new props from state, props, and dispatch. For example:\r\n export default connectAdvanced((dispatch, options) => (state, props) => ({\r\n thing: state.things[props.thingId],\r\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\r\n }))(YourComponent)\r\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\r\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\r\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\r\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\r\n props. Do not use connectAdvanced directly without memoizing results between calls to your\r\n selector, otherwise the Connect component will re-render on every state or props change.\r\n*/\nselectorFactory, // options object:\n_ref) {\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n _ref2$getDisplayName = _ref2.getDisplayName,\n getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {\n return \"ConnectAdvanced(\" + name + \")\";\n } : _ref2$getDisplayName,\n _ref2$methodName = _ref2.methodName,\n methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,\n _ref2$renderCountProp = _ref2.renderCountProp,\n renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,\n _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,\n _ref2$storeKey = _ref2.storeKey,\n storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,\n _ref2$withRef = _ref2.withRef,\n withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,\n _ref2$forwardRef = _ref2.forwardRef,\n forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,\n _ref2$context = _ref2.context,\n context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context,\n connectOptions = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n if (process.env.NODE_ENV !== 'production') {\n if (renderCountProp !== undefined) {\n throw new Error(\"renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension\");\n }\n\n if (withRef) {\n throw new Error('withRef is removed. To access the wrapped instance, use a ref on the connected component');\n }\n\n var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + \"React.createContext(), and pass the context object to React Redux's Provider and specific components\" + ' like: . ' + 'You may also pass a {context : MyContext} option to connect';\n\n if (storeKey !== 'store') {\n throw new Error('storeKey has been removed and does not do anything. ' + customStoreWarningMessage);\n }\n }\n\n var Context = context;\n return function wrapWithConnect(WrappedComponent) {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(\"You must pass a component to the function returned by \" + (methodName + \". Instead received \" + stringifyComponent(WrappedComponent)));\n }\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var pure = connectOptions.pure;\n\n function createChildSelector(store) {\n return selectorFactory(store.dispatch, selectorFactoryOptions);\n } // If we aren't running in \"pure\" mode, we don't want to memoize values.\n // To avoid conditionally calling hooks, we fall back to a tiny wrapper\n // that just executes the given callback immediately.\n\n\n var usePureOnlyMemo = pure ? useMemo : function (callback) {\n return callback();\n };\n\n function ConnectFunction(props) {\n var _useMemo = useMemo(function () {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n var reactReduxForwardedRef = props.reactReduxForwardedRef,\n wrapperProps = _objectWithoutPropertiesLoose(props, _excluded2);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]),\n propsContext = _useMemo[0],\n reactReduxForwardedRef = _useMemo[1],\n wrapperProps = _useMemo[2];\n\n var ContextToUse = useMemo(function () {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n var contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(\"Could not find \\\"store\\\" in the context of \" + (\"\\\"\" + displayName + \"\\\". Either wrap the root component in a , \") + \"or pass a custom React context provider to and the corresponding \" + (\"React context consumer to \" + displayName + \" in connect options.\"));\n } // Based on the previous check, one of these must be true\n\n\n var store = didStoreComeFromProps ? props.store : contextValue.store;\n var childPropsSelector = useMemo(function () {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return createChildSelector(store);\n }, [store]);\n\n var _useMemo2 = useMemo(function () {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n var subscription = createSubscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]),\n subscription = _useMemo2[0],\n notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n\n var overriddenContextValue = useMemo(function () {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription: subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update\n // causes a change to the calculated child component props (or we caught an error in mapState)\n\n var _useReducer = useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),\n _useReducer$ = _useReducer[0],\n previousStateUpdateResult = _useReducer$[0],\n forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards\n\n\n if (previousStateUpdateResult && previousStateUpdateResult.error) {\n throw previousStateUpdateResult.error;\n } // Set up refs to coordinate values between the subscription effect and the render logic\n\n\n var lastChildProps = useRef();\n var lastWrapperProps = useRef(wrapperProps);\n var childPropsFromStoreUpdate = useRef();\n var renderIsScheduled = useRef(false);\n var actualChildProps = usePureOnlyMemo(function () {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes\n\n useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n var renderedWrappedComponent = useMemo(function () {\n return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }));\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n var renderedChild = useMemo(function () {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return /*#__PURE__*/React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n } // If we're in \"pure\" mode, ensure our wrapper component only re-renders when incoming props have changed.\n\n\n var Connect = pure ? React.memo(ConnectFunction) : ConnectFunction;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n\n if (forwardRef) {\n var forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n}","function is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}","import bindActionCreators from '../utils/bindActionCreators';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return {\n dispatch: dispatch\n };\n }) : undefined;\n}\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];","export default function bindActionCreators(actionCreators, dispatch) {\n var boundActionCreators = {};\n\n var _loop = function _loop(key) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = function () {\n return dispatch(actionCreator.apply(void 0, arguments));\n };\n }\n };\n\n for (var key in actionCreators) {\n _loop(key);\n }\n\n return boundActionCreators;\n}","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, stateProps, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"];\nimport verifySubselectors from './verifySubselectors';\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n} // TODO: Add more comments\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"];\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n/*\r\n connect is a facade over connectAdvanced. It turns its args into a compatible\r\n selectorFactory, which has the signature:\r\n\r\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\r\n \r\n connect passes its args to connectAdvanced as options, which will in turn pass them to\r\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\r\n\r\n selectorFactory returns a final props selector from its mapStateToProps,\r\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\r\n mergePropsFactories, and pure args.\r\n\r\n The resulting final props selector is called by the Connect component instance whenever\r\n it receives new props or store state.\r\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error(\"Invalid value of type \" + typeof arg + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n} // createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\n\n\nexport function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {\n if (_ref2 === void 0) {\n _ref2 = {};\n }\n\n var _ref3 = _ref2,\n _ref3$pure = _ref3.pure,\n pure = _ref3$pure === void 0 ? true : _ref3$pure,\n _ref3$areStatesEqual = _ref3.areStatesEqual,\n areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,\n _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,\n areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,\n _ref3$areStatePropsEq = _ref3.areStatePropsEqual,\n areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,\n _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,\n areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref3, _excluded);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n }, extraOptions));\n };\n}\nexport default /*#__PURE__*/createConnect();","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const { store } = useReduxContext()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n}","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport var useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n *
\r\n * {value}\r\n * \r\n *
\r\n * )\r\n * }\r\n */\n\nexport var useDispatch = /*#__PURE__*/createDispatchHook();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return createSubscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references\n\n if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {\n selectedState = newSelectedState;\n } else {\n selectedState = latestSelectedState.current;\n }\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed\n\n if (newStoreState === latestStoreState.current) {\n return;\n }\n\n var _newSelectedState = latestSelector.current(newStoreState);\n\n if (equalityFn(_newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = _newSelectedState;\n latestStoreState.current = newStoreState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n\n if (typeof selector !== 'function') {\n throw new Error(\"You must pass a function as a selector to useSelector\");\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(\"You must pass a function as an equality function to useSelector\");\n }\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
{counter}
\r\n * }\r\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();","export * from './exports';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch'; // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };","import { __spread, __values, __read, __assign } from './_virtual/_tslib.js';\nimport { DEFAULT_GUARD_TYPE, TARGETLESS_KEY, STATE_DELIMITER } from './constants.js';\nimport { IS_PRODUCTION } from './environment.js';\n\nfunction keys(value) {\n return Object.keys(value);\n}\n\nfunction matchesState(parentStateId, childStateId, delimiter) {\n if (delimiter === void 0) {\n delimiter = STATE_DELIMITER;\n }\n\n var parentStateValue = toStateValue(parentStateId, delimiter);\n var childStateValue = toStateValue(childStateId, delimiter);\n\n if (isString(childStateValue)) {\n if (isString(parentStateValue)) {\n return childStateValue === parentStateValue;\n } // Parent more specific than child\n\n\n return false;\n }\n\n if (isString(parentStateValue)) {\n return parentStateValue in childStateValue;\n }\n\n return keys(parentStateValue).every(function (key) {\n if (!(key in childStateValue)) {\n return false;\n }\n\n return matchesState(parentStateValue[key], childStateValue[key]);\n });\n}\n\nfunction getEventType(event) {\n try {\n return isString(event) || typeof event === 'number' ? \"\" + event : event.type;\n } catch (e) {\n throw new Error('Events must be strings or objects with a string event.type property.');\n }\n}\n\nfunction toStatePath(stateId, delimiter) {\n try {\n if (isArray(stateId)) {\n return stateId;\n }\n\n return stateId.toString().split(delimiter);\n } catch (e) {\n throw new Error(\"'\" + stateId + \"' is not a valid state path.\");\n }\n}\n\nfunction isStateLike(state) {\n return typeof state === 'object' && 'value' in state && 'context' in state && 'event' in state && '_event' in state;\n}\n\nfunction toStateValue(stateValue, delimiter) {\n if (isStateLike(stateValue)) {\n return stateValue.value;\n }\n\n if (isArray(stateValue)) {\n return pathToStateValue(stateValue);\n }\n\n if (typeof stateValue !== 'string') {\n return stateValue;\n }\n\n var statePath = toStatePath(stateValue, delimiter);\n return pathToStateValue(statePath);\n}\n\nfunction pathToStateValue(statePath) {\n if (statePath.length === 1) {\n return statePath[0];\n }\n\n var value = {};\n var marker = value;\n\n for (var i = 0; i < statePath.length - 1; i++) {\n if (i === statePath.length - 2) {\n marker[statePath[i]] = statePath[i + 1];\n } else {\n marker[statePath[i]] = {};\n marker = marker[statePath[i]];\n }\n }\n\n return value;\n}\n\nfunction mapValues(collection, iteratee) {\n var result = {};\n var collectionKeys = keys(collection);\n\n for (var i = 0; i < collectionKeys.length; i++) {\n var key = collectionKeys[i];\n result[key] = iteratee(collection[key], key, collection, i);\n }\n\n return result;\n}\n\nfunction mapFilterValues(collection, iteratee, predicate) {\n var e_1, _a;\n\n var result = {};\n\n try {\n for (var _b = __values(keys(collection)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var item = collection[key];\n\n if (!predicate(item)) {\n continue;\n }\n\n result[key] = iteratee(item, key, collection);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return result;\n}\n/**\r\n * Retrieves a value at the given path.\r\n * @param props The deep path to the prop of the desired value\r\n */\n\n\nvar path = function (props) {\n return function (object) {\n var e_2, _a;\n\n var result = object;\n\n try {\n for (var props_1 = __values(props), props_1_1 = props_1.next(); !props_1_1.done; props_1_1 = props_1.next()) {\n var prop = props_1_1.value;\n result = result[prop];\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (props_1_1 && !props_1_1.done && (_a = props_1.return)) _a.call(props_1);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n return result;\n };\n};\n/**\r\n * Retrieves a value at the given path via the nested accessor prop.\r\n * @param props The deep path to the prop of the desired value\r\n */\n\n\nfunction nestedPath(props, accessorProp) {\n return function (object) {\n var e_3, _a;\n\n var result = object;\n\n try {\n for (var props_2 = __values(props), props_2_1 = props_2.next(); !props_2_1.done; props_2_1 = props_2.next()) {\n var prop = props_2_1.value;\n result = result[accessorProp][prop];\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (props_2_1 && !props_2_1.done && (_a = props_2.return)) _a.call(props_2);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n\n return result;\n };\n}\n\nfunction toStatePaths(stateValue) {\n if (!stateValue) {\n return [[]];\n }\n\n if (isString(stateValue)) {\n return [[stateValue]];\n }\n\n var result = flatten(keys(stateValue).map(function (key) {\n var subStateValue = stateValue[key];\n\n if (typeof subStateValue !== 'string' && (!subStateValue || !Object.keys(subStateValue).length)) {\n return [[key]];\n }\n\n return toStatePaths(stateValue[key]).map(function (subPath) {\n return [key].concat(subPath);\n });\n }));\n return result;\n}\n\nfunction flatten(array) {\n var _a;\n\n return (_a = []).concat.apply(_a, __spread(array));\n}\n\nfunction toArrayStrict(value) {\n if (isArray(value)) {\n return value;\n }\n\n return [value];\n}\n\nfunction toArray(value) {\n if (value === undefined) {\n return [];\n }\n\n return toArrayStrict(value);\n}\n\nfunction mapContext(mapper, context, _event) {\n var e_5, _a;\n\n if (isFunction(mapper)) {\n return mapper(context, _event.data);\n }\n\n var result = {};\n\n try {\n for (var _b = __values(Object.keys(mapper)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var subMapper = mapper[key];\n\n if (isFunction(subMapper)) {\n result[key] = subMapper(context, _event.data);\n } else {\n result[key] = subMapper;\n }\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n\n return result;\n}\n\nfunction isBuiltInEvent(eventType) {\n return /^(done|error)\\./.test(eventType);\n}\n\nfunction isPromiseLike(value) {\n if (value instanceof Promise) {\n return true;\n } // Check if shape matches the Promise/A+ specification for a \"thenable\".\n\n\n if (value !== null && (isFunction(value) || typeof value === 'object') && isFunction(value.then)) {\n return true;\n }\n\n return false;\n}\n\nfunction partition(items, predicate) {\n var e_6, _a;\n\n var _b = __read([[], []], 2),\n truthy = _b[0],\n falsy = _b[1];\n\n try {\n for (var items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {\n var item = items_1_1.value;\n\n if (predicate(item)) {\n truthy.push(item);\n } else {\n falsy.push(item);\n }\n }\n } catch (e_6_1) {\n e_6 = {\n error: e_6_1\n };\n } finally {\n try {\n if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);\n } finally {\n if (e_6) throw e_6.error;\n }\n }\n\n return [truthy, falsy];\n}\n\nfunction updateHistoryStates(hist, stateValue) {\n return mapValues(hist.states, function (subHist, key) {\n if (!subHist) {\n return undefined;\n }\n\n var subStateValue = (isString(stateValue) ? undefined : stateValue[key]) || (subHist ? subHist.current : undefined);\n\n if (!subStateValue) {\n return undefined;\n }\n\n return {\n current: subStateValue,\n states: updateHistoryStates(subHist, subStateValue)\n };\n });\n}\n\nfunction updateHistoryValue(hist, stateValue) {\n return {\n current: stateValue,\n states: updateHistoryStates(hist, stateValue)\n };\n}\n\nfunction updateContext(context, _event, assignActions, state) {\n if (!IS_PRODUCTION) {\n warn(!!context, 'Attempting to update undefined context');\n }\n\n var updatedContext = context ? assignActions.reduce(function (acc, assignAction) {\n var e_7, _a;\n\n var assignment = assignAction.assignment;\n var meta = {\n state: state,\n action: assignAction,\n _event: _event\n };\n var partialUpdate = {};\n\n if (isFunction(assignment)) {\n partialUpdate = assignment(acc, _event.data, meta);\n } else {\n try {\n for (var _b = __values(keys(assignment)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var propAssignment = assignment[key];\n partialUpdate[key] = isFunction(propAssignment) ? propAssignment(acc, _event.data, meta) : propAssignment;\n }\n } catch (e_7_1) {\n e_7 = {\n error: e_7_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_7) throw e_7.error;\n }\n }\n }\n\n return Object.assign({}, acc, partialUpdate);\n }, context) : context;\n return updatedContext;\n} // tslint:disable-next-line:no-empty\n\n\nvar warn = function () {};\n\nif (!IS_PRODUCTION) {\n warn = function (condition, message) {\n var error = condition instanceof Error ? condition : undefined;\n\n if (!error && condition) {\n return;\n }\n\n if (console !== undefined) {\n var args = [\"Warning: \" + message];\n\n if (error) {\n args.push(error);\n } // tslint:disable-next-line:no-console\n\n\n console.warn.apply(console, args);\n }\n };\n}\n\nfunction isArray(value) {\n return Array.isArray(value);\n} // tslint:disable-next-line:ban-types\n\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nfunction isString(value) {\n return typeof value === 'string';\n} // export function memoizedGetter(\n// o: TP,\n// property: string,\n// getter: () => T\n// ): void {\n// Object.defineProperty(o.prototype, property, {\n// get: getter,\n// enumerable: false,\n// configurable: false\n// });\n// }\n\n\nfunction toGuard(condition, guardMap) {\n if (!condition) {\n return undefined;\n }\n\n if (isString(condition)) {\n return {\n type: DEFAULT_GUARD_TYPE,\n name: condition,\n predicate: guardMap ? guardMap[condition] : undefined\n };\n }\n\n if (isFunction(condition)) {\n return {\n type: DEFAULT_GUARD_TYPE,\n name: condition.name,\n predicate: condition\n };\n }\n\n return condition;\n}\n\nfunction isObservable(value) {\n try {\n return 'subscribe' in value && isFunction(value.subscribe);\n } catch (e) {\n return false;\n }\n}\n\nvar symbolObservable = /*#__PURE__*/function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n}();\n\nfunction isMachine(value) {\n try {\n return '__xstatenode' in value;\n } catch (e) {\n return false;\n }\n}\n\nvar uniqueId = /*#__PURE__*/function () {\n var currentId = 0;\n return function () {\n currentId++;\n return currentId.toString(16);\n };\n}();\n\nfunction toEventObject(event, payload // id?: TEvent['type']\n) {\n if (isString(event) || typeof event === 'number') {\n return __assign({\n type: event\n }, payload);\n }\n\n return event;\n}\n\nfunction toSCXMLEvent(event, scxmlEvent) {\n if (!isString(event) && '$$type' in event && event.$$type === 'scxml') {\n return event;\n }\n\n var eventObject = toEventObject(event);\n return __assign({\n name: eventObject.type,\n data: eventObject,\n $$type: 'scxml',\n type: 'external'\n }, scxmlEvent);\n}\n\nfunction toTransitionConfigArray(event, configLike) {\n var transitions = toArrayStrict(configLike).map(function (transitionLike) {\n if (typeof transitionLike === 'undefined' || typeof transitionLike === 'string' || isMachine(transitionLike)) {\n return {\n target: transitionLike,\n event: event\n };\n }\n\n return __assign(__assign({}, transitionLike), {\n event: event\n });\n });\n return transitions;\n}\n\nfunction normalizeTarget(target) {\n if (target === undefined || target === TARGETLESS_KEY) {\n return undefined;\n }\n\n return toArray(target);\n}\n\nfunction reportUnhandledExceptionOnInvocation(originalError, currentError, id) {\n if (!IS_PRODUCTION) {\n var originalStackTrace = originalError.stack ? \" Stacktrace was '\" + originalError.stack + \"'\" : '';\n\n if (originalError === currentError) {\n // tslint:disable-next-line:no-console\n console.error(\"Missing onError handler for invocation '\" + id + \"', error was '\" + originalError + \"'.\" + originalStackTrace);\n } else {\n var stackTrace = currentError.stack ? \" Stacktrace was '\" + currentError.stack + \"'\" : ''; // tslint:disable-next-line:no-console\n\n console.error(\"Missing onError handler and/or unhandled exception/promise rejection for invocation '\" + id + \"'. \" + (\"Original error: '\" + originalError + \"'. \" + originalStackTrace + \" Current error is '\" + currentError + \"'.\" + stackTrace));\n }\n }\n}\n\nfunction evaluateGuard(machine, guard, context, _event, state) {\n var guards = machine.options.guards;\n var guardMeta = {\n state: state,\n cond: guard,\n _event: _event\n }; // TODO: do not hardcode!\n\n if (guard.type === DEFAULT_GUARD_TYPE) {\n return guard.predicate(context, _event.data, guardMeta);\n }\n\n var condFn = guards[guard.type];\n\n if (!condFn) {\n throw new Error(\"Guard '\" + guard.type + \"' is not implemented on machine '\" + machine.id + \"'.\");\n }\n\n return condFn(context, _event.data, guardMeta);\n}\n\nfunction toInvokeSource(src) {\n if (typeof src === 'string') {\n return {\n type: src\n };\n }\n\n return src;\n}\n\nexport { evaluateGuard, flatten, getEventType, isArray, isBuiltInEvent, isFunction, isMachine, isObservable, isPromiseLike, isStateLike, isString, keys, mapContext, mapFilterValues, mapValues, matchesState, nestedPath, normalizeTarget, partition, path, pathToStateValue, reportUnhandledExceptionOnInvocation, symbolObservable, toArray, toArrayStrict, toEventObject, toGuard, toInvokeSource, toSCXMLEvent, toStatePath, toStatePaths, toStateValue, toTransitionConfigArray, uniqueId, updateContext, updateHistoryStates, updateHistoryValue, warn };","/**\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}","/*! *****************************************************************************\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***************************************************************************** */\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nfunction __rest(s, e) {\n var t = {};\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nfunction __values(o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator],\n i = 0;\n if (m) return m.call(o);\n return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n}\n\nfunction __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n\nfunction __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n\n return ar;\n}\n\nexport { __assign, __read, __rest, __spread, __values };","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 var provided = typeof message === 'function' ? message() : message;\n var value = provided ? prefix + \": \" + provided : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\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 date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","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}","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",f=\"month\",h=\"quarter\",c=\"year\",d=\"date\",$=\"Invalid Date\",l=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\")},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},g={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(v=i),i||!r&&v},w=function(t,e){if(p(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=g;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match(l);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return O},m.isValid=function(){return!(this.$d.toString()===$)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t)= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","import { defaultMemoize, defaultEqualityCheck } from './defaultMemoize';\nexport { defaultMemoize, defaultEqualityCheck };\n\nfunction getDependencies(funcs) {\n var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs;\n\n if (!dependencies.every(function (dep) {\n return typeof dep === 'function';\n })) {\n var dependencyTypes = dependencies.map(function (dep) {\n return typeof dep === 'function' ? \"function \" + (dep.name || 'unnamed') + \"()\" : typeof dep;\n }).join(', ');\n throw new Error(\"createSelector expects all input-selectors to be functions, but received the following types: [\" + dependencyTypes + \"]\");\n }\n\n return dependencies;\n}\n\nexport function createSelectorCreator(memoize) {\n for (var _len = arguments.length, memoizeOptionsFromArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n memoizeOptionsFromArgs[_key - 1] = arguments[_key];\n }\n\n var createSelector = function createSelector() {\n for (var _len2 = arguments.length, funcs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n funcs[_key2] = arguments[_key2];\n }\n\n var _recomputations = 0;\n\n var _lastResult; // Due to the intricacies of rest params, we can't do an optional arg after `...funcs`.\n // So, start by declaring the default value here.\n // (And yes, the words 'memoize' and 'options' appear too many times in this next sequence.)\n\n\n var directlyPassedOptions = {\n memoizeOptions: undefined\n }; // Normally, the result func or \"output selector\" is the last arg\n\n var resultFunc = funcs.pop(); // If the result func is actually an _object_, assume it's our options object\n\n if (typeof resultFunc === 'object') {\n directlyPassedOptions = resultFunc; // and pop the real result func off\n\n resultFunc = funcs.pop();\n }\n\n if (typeof resultFunc !== 'function') {\n throw new Error(\"createSelector expects an output function after the inputs, but received: [\" + typeof resultFunc + \"]\");\n } // Determine which set of options we're using. Prefer options passed directly,\n // but fall back to options given to createSelectorCreator.\n\n\n var _directlyPassedOption = directlyPassedOptions,\n _directlyPassedOption2 = _directlyPassedOption.memoizeOptions,\n memoizeOptions = _directlyPassedOption2 === void 0 ? memoizeOptionsFromArgs : _directlyPassedOption2; // Simplifying assumption: it's unlikely that the first options arg of the provided memoizer\n // is an array. In most libs I've looked at, it's an equality function or options object.\n // Based on that, if `memoizeOptions` _is_ an array, we assume it's a full\n // user-provided array of options. Otherwise, it must be just the _first_ arg, and so\n // we wrap it in an array so we can apply it.\n\n var finalMemoizeOptions = Array.isArray(memoizeOptions) ? memoizeOptions : [memoizeOptions];\n var dependencies = getDependencies(funcs);\n var memoizedResultFunc = memoize.apply(void 0, [function recomputationWrapper() {\n _recomputations++; // apply arguments instead of spreading for performance.\n\n return resultFunc.apply(null, arguments);\n }].concat(finalMemoizeOptions)); // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.\n\n var selector = memoize(function dependenciesChecker() {\n var params = [];\n var length = dependencies.length;\n\n for (var i = 0; i < length; i++) {\n // apply arguments instead of spreading and mutate a local list of params for performance.\n // @ts-ignore\n params.push(dependencies[i].apply(null, arguments));\n } // apply arguments instead of spreading for performance.\n\n\n _lastResult = memoizedResultFunc.apply(null, params);\n return _lastResult;\n });\n Object.assign(selector, {\n resultFunc: resultFunc,\n memoizedResultFunc: memoizedResultFunc,\n dependencies: dependencies,\n lastResult: function lastResult() {\n return _lastResult;\n },\n recomputations: function recomputations() {\n return _recomputations;\n },\n resetRecomputations: function resetRecomputations() {\n return _recomputations = 0;\n }\n });\n return selector;\n }; // @ts-ignore\n\n\n return createSelector;\n}\nexport var createSelector = /* #__PURE__ */createSelectorCreator(defaultMemoize);\n// Manual definition of state and output arguments\nexport var createStructuredSelector = function createStructuredSelector(selectors, selectorCreator) {\n if (selectorCreator === void 0) {\n selectorCreator = createSelector;\n }\n\n if (typeof selectors !== 'object') {\n throw new Error('createStructuredSelector expects first argument to be an object ' + (\"where each property is a selector, instead received a \" + typeof selectors));\n }\n\n var objectKeys = Object.keys(selectors);\n var resultSelector = selectorCreator( // @ts-ignore\n objectKeys.map(function (key) {\n return selectors[key];\n }), function () {\n for (var _len3 = arguments.length, values = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n values[_key3] = arguments[_key3];\n }\n\n return values.reduce(function (composition, value, index) {\n composition[objectKeys[index]] = value;\n return composition;\n }, {});\n });\n return resultSelector;\n};","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\n","export function shallowEqual(\n objA: T,\n objB: T,\n compare?: (a: T, b: T, key?: string) => boolean | void,\n compareContext?: any\n) {\n var compareResult = compare\n ? compare.call(compareContext, objA, objB)\n : void 0;\n if (compareResult !== void 0) {\n return !!compareResult;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = (objA as any)[key];\n var valueB = (objB as any)[key];\n\n compareResult = compare\n ? compare.call(compareContext, valueA, valueB, key)\n : void 0;\n\n if (\n compareResult === false ||\n (compareResult === void 0 && valueA !== valueB)\n ) {\n return false;\n }\n }\n\n return true;\n}\n","export class Channel {\r\n private promise!: Promise\r\n private resolve!: (msg: M) => void\r\n\r\n constructor() {\r\n this.recreate()\r\n }\r\n\r\n public get() {\r\n return this.promise\r\n }\r\n\r\n public put(msg: M) {\r\n setTimeout(() => {\r\n this.resolve(msg)\r\n this.recreate()\r\n }, 0)\r\n }\r\n\r\n private recreate() {\r\n this.promise = new Promise((resolve) => {\r\n this.resolve = resolve\r\n })\r\n }\r\n}\r\n","import { Handler } from '../types'\r\n\r\nexport const all = (...handlers: Handler[]): Handler =>\r\n async (ctx) => { await Promise.all(handlers.map(handler => handler(ctx))) }\r\n","// 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, result);\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\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\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","import { Action, AnyAction } from 'redux'\r\nimport { PayloadAction } from 'typesafe-actions'\r\nimport { Handler, SagaContext, SagaContextEx, TakeEveryHandler } from '../types'\r\nimport { take } from './take'\r\n\r\nexport const takeEvery =

(type: string, handler: TakeEveryHandler): Handler> =>\r\n async (ctx) => {\r\n while (true) {\r\n const action = await take(ctx, type)\r\n\r\n const ctxCopy = {\r\n ...ctx,\r\n prevState: (ctx as unknown as SagaContextEx).getPrevState(action),\r\n }\r\n\r\n // don't await (essentially fork)\r\n handler(ctxCopy, (action as PayloadAction).payload, action as A)\r\n }\r\n }\r\n","import { SagaContext } from '../types';\r\n\r\nexport async function take(ctx: SagaContext, type: string) {\r\n for (;;) {\r\n const action = await ctx.takeAny();\r\n if (action.type === type) {\r\n return action\r\n }\r\n }\r\n}\r\n","import { Action, Middleware, MiddlewareAPI } from 'redux'\r\nimport { Channel } from './Channel'\r\nimport { Handler, SagaContext, SagaContextEx } from './types'\r\n\r\ninterface SagaMiddleware extends Middleware {\r\n run(): void\r\n}\r\n\r\nexport function createSagaMiddleware(rootHandler: Handler) {\r\n const actionChannel = new Channel()\r\n const prevStates = new WeakMap()\r\n\r\n const middleware: Middleware = store => {\r\n sagaMidlleware.run = () => run(store)\r\n\r\n return next => action => {\r\n prevStates.set(action, store.getState())\r\n const result = next(action)\r\n actionChannel.put(action)\r\n return result\r\n }\r\n }\r\n\r\n const sagaMidlleware: SagaMiddleware = Object.assign(middleware, {\r\n run() {\r\n throw new Error('Before running a Saga, you must mount the Saga middleware on the Store using applyMiddleware')\r\n },\r\n })\r\n\r\n function run(store: MiddlewareAPI) {\r\n const ctx: SagaContext & SagaContextEx = {\r\n ...store,\r\n getPrevState(action: Action) {\r\n return prevStates.get(action)\r\n },\r\n takeAny() {\r\n return actionChannel.get()\r\n },\r\n }\r\n\r\n rootHandler(ctx).catch(e => console.error('Unhandled rejection', e))\r\n }\r\n\r\n return sagaMidlleware\r\n}\r\n","import { ActionCreator, EmptyAction, getType, PayloadAction, TypeConstant } from 'typesafe-actions';\r\nimport { takeEvery as takeEveryRaw } from './tools/takeEvery';\r\nimport { Handler, SagaContext as AnyContext, TakeEveryHandler } from './types';\r\n\r\ntype ActionBuilder = [TP] extends [undefined] ? unknown extends TP ? PayloadAction : EmptyAction : PayloadAction\r\n\r\nexport function getTypedTools() {\r\n type SagaContext = AnyContext\r\n\r\n function takeEvery(actionCreator: (...args: any[]) => ActionBuilder, handler: TakeEveryHandler, P, StoreState>): Handler {\r\n return takeEveryRaw(getType(actionCreator), handler)\r\n }\r\n\r\n async function take(ctx: SagaContext, actionCreator: (...args: any) => PayloadAction): Promise>\r\n async function take(ctx: SagaContext, actionCreator: (...args: any) => EmptyAction): Promise>\r\n async function take(ctx: SagaContext, actionCreator: ActionCreator): Promise> {\r\n for (; ;) {\r\n const action = await ctx.takeAny();\r\n if (action.type === getType(actionCreator)) {\r\n return action as PayloadAction;\r\n }\r\n }\r\n }\r\n\r\n async function waitForState(ctx: SagaContext, func: (state: StoreState) => T): Promise>\r\n async function waitForState(ctx: SagaContext, func: (state: StoreState) => T, predicate: (value: T) => boolean): Promise\r\n async function waitForState(ctx: SagaContext, func: (state: StoreState) => T, predicate: (value: T) => boolean = value => Boolean(value)): Promise {\r\n for (; ;) {\r\n const res = func(ctx.getState())\r\n if (predicate(res)) {\r\n return res\r\n }\r\n await ctx.takeAny()\r\n }\r\n }\r\n\r\n return {\r\n take,\r\n takeEvery,\r\n waitForState,\r\n }\r\n}\r\n","var obj;\nvar NOTHING = typeof Symbol !== \"undefined\" ? Symbol(\"immer-nothing\") : ( obj = {}, obj[\"immer-nothing\"] = true, obj );\nvar DRAFTABLE = typeof Symbol !== \"undefined\" && Symbol.for ? Symbol.for(\"immer-draftable\") : \"__$immer_draftable\";\nvar DRAFT_STATE = typeof Symbol !== \"undefined\" && Symbol.for ? Symbol.for(\"immer-state\") : \"__$immer_state\";\nfunction isDraft(value) {\n return !!value && !!value[DRAFT_STATE];\n}\nfunction isDraftable(value) {\n if (!value) { return false; }\n return isPlainObject(value) || !!value[DRAFTABLE] || !!value.constructor[DRAFTABLE];\n}\nfunction isPlainObject(value) {\n if (!value || typeof value !== \"object\") { return false; }\n if (Array.isArray(value)) { return true; }\n var proto = Object.getPrototypeOf(value);\n return !proto || proto === Object.prototype;\n}\nfunction original(value) {\n if (value && value[DRAFT_STATE]) {\n return value[DRAFT_STATE].base;\n } // otherwise return undefined\n\n}\nvar assign = Object.assign || function assign(target, value) {\n for (var key in value) {\n if (has(value, key)) {\n target[key] = value[key];\n }\n }\n\n return target;\n};\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : typeof Object.getOwnPropertySymbols !== \"undefined\" ? function (obj) { return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj)); } : Object.getOwnPropertyNames;\nfunction shallowCopy(base, invokeGetters) {\n if ( invokeGetters === void 0 ) invokeGetters = false;\n\n if (Array.isArray(base)) { return base.slice(); }\n var clone = Object.create(Object.getPrototypeOf(base));\n ownKeys(base).forEach(function (key) {\n if (key === DRAFT_STATE) {\n return; // Never copy over draft state.\n }\n\n var desc = Object.getOwnPropertyDescriptor(base, key);\n var value = desc.value;\n\n if (desc.get) {\n if (!invokeGetters) {\n throw new Error(\"Immer drafts cannot have computed properties\");\n }\n\n value = desc.get.call(base);\n }\n\n if (desc.enumerable) {\n clone[key] = value;\n } else {\n Object.defineProperty(clone, key, {\n value: value,\n writable: true,\n configurable: true\n });\n }\n });\n return clone;\n}\nfunction each(value, cb) {\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) { cb(i, value[i], value); }\n } else {\n ownKeys(value).forEach(function (key) { return cb(key, value[key], value); });\n }\n}\nfunction isEnumerable(base, prop) {\n var desc = Object.getOwnPropertyDescriptor(base, prop);\n return !!desc && desc.enumerable;\n}\nfunction has(thing, prop) {\n return Object.prototype.hasOwnProperty.call(thing, prop);\n}\nfunction is(x, y) {\n // From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\nfunction clone(obj) {\n if (!isDraftable(obj)) { return obj; }\n if (Array.isArray(obj)) { return obj.map(clone); }\n var cloned = Object.create(Object.getPrototypeOf(obj));\n\n for (var key in obj) { cloned[key] = clone(obj[key]); }\n\n return cloned;\n}\n\n/** Each scope represents a `produce` call. */\n\nvar ImmerScope = function ImmerScope(parent) {\n this.drafts = [];\n this.parent = parent; // Whenever the modified draft contains a draft from another scope, we\n // need to prevent auto-freezing so the unowned draft can be finalized.\n\n this.canAutoFreeze = true; // To avoid prototype lookups:\n\n this.patches = null;\n};\n\nImmerScope.prototype.usePatches = function usePatches (patchListener) {\n if (patchListener) {\n this.patches = [];\n this.inversePatches = [];\n this.patchListener = patchListener;\n }\n};\n\nImmerScope.prototype.revoke = function revoke$1 () {\n this.leave();\n this.drafts.forEach(revoke);\n this.drafts = null; // Make draft-related methods throw.\n};\n\nImmerScope.prototype.leave = function leave () {\n if (this === ImmerScope.current) {\n ImmerScope.current = this.parent;\n }\n};\nImmerScope.current = null;\n\nImmerScope.enter = function () {\n return this.current = new ImmerScope(this.current);\n};\n\nfunction revoke(draft) {\n draft[DRAFT_STATE].revoke();\n}\n\n// but share them all instead\n\nvar descriptors = {};\nfunction willFinalize(scope, result, isReplaced) {\n scope.drafts.forEach(function (draft) {\n draft[DRAFT_STATE].finalizing = true;\n });\n\n if (!isReplaced) {\n if (scope.patches) {\n markChangesRecursively(scope.drafts[0]);\n } // This is faster when we don't care about which attributes changed.\n\n\n markChangesSweep(scope.drafts);\n } // When a child draft is returned, look for changes.\n else if (isDraft(result) && result[DRAFT_STATE].scope === scope) {\n markChangesSweep(scope.drafts);\n }\n}\nfunction createProxy(base, parent) {\n var isArray = Array.isArray(base);\n var draft = clonePotentialDraft(base);\n each(draft, function (prop) {\n proxyProperty(draft, prop, isArray || isEnumerable(base, prop));\n }); // See \"proxy.js\" for property documentation.\n\n var scope = parent ? parent.scope : ImmerScope.current;\n var state = {\n scope: scope,\n modified: false,\n finalizing: false,\n // es5 only\n finalized: false,\n assigned: {},\n parent: parent,\n base: base,\n draft: draft,\n copy: null,\n revoke: revoke$1,\n revoked: false // es5 only\n\n };\n createHiddenProperty(draft, DRAFT_STATE, state);\n scope.drafts.push(draft);\n return draft;\n}\n\nfunction revoke$1() {\n this.revoked = true;\n}\n\nfunction source(state) {\n return state.copy || state.base;\n} // Access a property without creating an Immer draft.\n\n\nfunction peek(draft, prop) {\n var state = draft[DRAFT_STATE];\n\n if (state && !state.finalizing) {\n state.finalizing = true;\n var value = draft[prop];\n state.finalizing = false;\n return value;\n }\n\n return draft[prop];\n}\n\nfunction get(state, prop) {\n assertUnrevoked(state);\n var value = peek(source(state), prop);\n if (state.finalizing) { return value; } // Create a draft if the value is unmodified.\n\n if (value === peek(state.base, prop) && isDraftable(value)) {\n prepareCopy(state);\n return state.copy[prop] = createProxy(value, state);\n }\n\n return value;\n}\n\nfunction set(state, prop, value) {\n assertUnrevoked(state);\n state.assigned[prop] = true;\n\n if (!state.modified) {\n if (is(value, peek(source(state), prop))) { return; }\n markChanged(state);\n prepareCopy(state);\n }\n\n state.copy[prop] = value;\n}\n\nfunction markChanged(state) {\n if (!state.modified) {\n state.modified = true;\n if (state.parent) { markChanged(state.parent); }\n }\n}\n\nfunction prepareCopy(state) {\n if (!state.copy) { state.copy = clonePotentialDraft(state.base); }\n}\n\nfunction clonePotentialDraft(base) {\n var state = base && base[DRAFT_STATE];\n\n if (state) {\n state.finalizing = true;\n var draft = shallowCopy(state.draft, true);\n state.finalizing = false;\n return draft;\n }\n\n return shallowCopy(base);\n}\n\nfunction proxyProperty(draft, prop, enumerable) {\n var desc = descriptors[prop];\n\n if (desc) {\n desc.enumerable = enumerable;\n } else {\n descriptors[prop] = desc = {\n configurable: true,\n enumerable: enumerable,\n\n get: function get$1() {\n return get(this[DRAFT_STATE], prop);\n },\n\n set: function set$1(value) {\n set(this[DRAFT_STATE], prop, value);\n }\n\n };\n }\n\n Object.defineProperty(draft, prop, desc);\n}\n\nfunction assertUnrevoked(state) {\n if (state.revoked === true) { throw new Error(\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" + JSON.stringify(source(state))); }\n} // This looks expensive, but only proxies are visited, and only objects without known changes are scanned.\n\n\nfunction markChangesSweep(drafts) {\n // The natural order of drafts in the `scope` array is based on when they\n // were accessed. By processing drafts in reverse natural order, we have a\n // better chance of processing leaf nodes first. When a leaf node is known to\n // have changed, we can avoid any traversal of its ancestor nodes.\n for (var i = drafts.length - 1; i >= 0; i--) {\n var state = drafts[i][DRAFT_STATE];\n\n if (!state.modified) {\n if (Array.isArray(state.base)) {\n if (hasArrayChanges(state)) { markChanged(state); }\n } else if (hasObjectChanges(state)) { markChanged(state); }\n }\n }\n}\n\nfunction markChangesRecursively(object) {\n if (!object || typeof object !== \"object\") { return; }\n var state = object[DRAFT_STATE];\n if (!state) { return; }\n var base = state.base;\n var draft = state.draft;\n var assigned = state.assigned;\n\n if (!Array.isArray(object)) {\n // Look for added keys.\n Object.keys(draft).forEach(function (key) {\n // The `undefined` check is a fast path for pre-existing keys.\n if (base[key] === undefined && !has(base, key)) {\n assigned[key] = true;\n markChanged(state);\n } else if (!assigned[key]) {\n // Only untouched properties trigger recursion.\n markChangesRecursively(draft[key]);\n }\n }); // Look for removed keys.\n\n Object.keys(base).forEach(function (key) {\n // The `undefined` check is a fast path for pre-existing keys.\n if (draft[key] === undefined && !has(draft, key)) {\n assigned[key] = false;\n markChanged(state);\n }\n });\n } else if (hasArrayChanges(state)) {\n markChanged(state);\n assigned.length = true;\n\n if (draft.length < base.length) {\n for (var i = draft.length; i < base.length; i++) { assigned[i] = false; }\n } else {\n for (var i$1 = base.length; i$1 < draft.length; i$1++) { assigned[i$1] = true; }\n }\n\n for (var i$2 = 0; i$2 < draft.length; i$2++) {\n // Only untouched indices trigger recursion.\n if (assigned[i$2] === undefined) { markChangesRecursively(draft[i$2]); }\n }\n }\n}\n\nfunction hasObjectChanges(state) {\n var base = state.base;\n var draft = state.draft; // Search for added keys and changed keys. Start at the back, because\n // non-numeric keys are ordered by time of definition on the object.\n\n var keys = Object.keys(draft);\n\n for (var i = keys.length - 1; i >= 0; i--) {\n var key = keys[i];\n var baseValue = base[key]; // The `undefined` check is a fast path for pre-existing keys.\n\n if (baseValue === undefined && !has(base, key)) {\n return true;\n } // Once a base key is deleted, future changes go undetected, because its\n // descriptor is erased. This branch detects any missed changes.\n else {\n var value = draft[key];\n var state$1 = value && value[DRAFT_STATE];\n\n if (state$1 ? state$1.base !== baseValue : !is(value, baseValue)) {\n return true;\n }\n }\n } // At this point, no keys were added or changed.\n // Compare key count to determine if keys were deleted.\n\n\n return keys.length !== Object.keys(base).length;\n}\n\nfunction hasArrayChanges(state) {\n var draft = state.draft;\n if (draft.length !== state.base.length) { return true; } // See #116\n // If we first shorten the length, our array interceptors will be removed.\n // If after that new items are added, result in the same original length,\n // those last items will have no intercepting property.\n // So if there is no own descriptor on the last position, we know that items were removed and added\n // N.B.: splice, unshift, etc only shift values around, but not prop descriptors, so we only have to check\n // the last one\n\n var descriptor = Object.getOwnPropertyDescriptor(draft, draft.length - 1); // descriptor can be null, but only for newly created sparse arrays, eg. new Array(10)\n\n if (descriptor && !descriptor.get) { return true; } // For all other cases, we don't have to compare, as they would have been picked up by the index setters\n\n return false;\n}\n\nfunction createHiddenProperty(target, prop, value) {\n Object.defineProperty(target, prop, {\n value: value,\n enumerable: false,\n writable: true\n });\n}\n\nvar legacyProxy = /*#__PURE__*/Object.freeze({\n\twillFinalize: willFinalize,\n\tcreateProxy: createProxy\n});\n\nfunction willFinalize$1() {}\nfunction createProxy$1(base, parent) {\n var scope = parent ? parent.scope : ImmerScope.current;\n var state = {\n // Track which produce call this is associated with.\n scope: scope,\n // True for both shallow and deep changes.\n modified: false,\n // Used during finalization.\n finalized: false,\n // Track which properties have been assigned (true) or deleted (false).\n assigned: {},\n // The parent draft state.\n parent: parent,\n // The base state.\n base: base,\n // The base proxy.\n draft: null,\n // Any property proxies.\n drafts: {},\n // The base copy with any updated values.\n copy: null,\n // Called by the `produce` function.\n revoke: null\n };\n var ref = Array.isArray(base) ? // [state] is used for arrays, to make sure the proxy is array-ish and not violate invariants,\n // although state itself is an object\n Proxy.revocable([state], arrayTraps) : Proxy.revocable(state, objectTraps);\n var revoke = ref.revoke;\n var proxy = ref.proxy;\n state.draft = proxy;\n state.revoke = revoke;\n scope.drafts.push(proxy);\n return proxy;\n}\nvar objectTraps = {\n get: get$1,\n\n has: function has(target, prop) {\n return prop in source$1(target);\n },\n\n ownKeys: function ownKeys(target) {\n return Reflect.ownKeys(source$1(target));\n },\n\n set: set$1,\n deleteProperty: deleteProperty,\n getOwnPropertyDescriptor: getOwnPropertyDescriptor,\n\n defineProperty: function defineProperty() {\n throw new Error(\"Object.defineProperty() cannot be used on an Immer draft\"); // prettier-ignore\n },\n\n getPrototypeOf: function getPrototypeOf(target) {\n return Object.getPrototypeOf(target.base);\n },\n\n setPrototypeOf: function setPrototypeOf() {\n throw new Error(\"Object.setPrototypeOf() cannot be used on an Immer draft\"); // prettier-ignore\n }\n\n};\nvar arrayTraps = {};\neach(objectTraps, function (key, fn) {\n arrayTraps[key] = function () {\n arguments[0] = arguments[0][0];\n return fn.apply(this, arguments);\n };\n});\n\narrayTraps.deleteProperty = function (state, prop) {\n if (isNaN(parseInt(prop))) {\n throw new Error(\"Immer only supports deleting array indices\"); // prettier-ignore\n }\n\n return objectTraps.deleteProperty.call(this, state[0], prop);\n};\n\narrayTraps.set = function (state, prop, value) {\n if (prop !== \"length\" && isNaN(parseInt(prop))) {\n throw new Error(\"Immer only supports setting array indices and the 'length' property\"); // prettier-ignore\n }\n\n return objectTraps.set.call(this, state[0], prop, value);\n}; // returns the object we should be reading the current value from, which is base, until some change has been made\n\n\nfunction source$1(state) {\n return state.copy || state.base;\n} // Access a property without creating an Immer draft.\n\n\nfunction peek$1(draft, prop) {\n var state = draft[DRAFT_STATE];\n var desc = Reflect.getOwnPropertyDescriptor(state ? source$1(state) : draft, prop);\n return desc && desc.value;\n}\n\nfunction get$1(state, prop) {\n if (prop === DRAFT_STATE) { return state; }\n var drafts = state.drafts; // Check for existing draft in unmodified state.\n\n if (!state.modified && has(drafts, prop)) {\n return drafts[prop];\n }\n\n var value = source$1(state)[prop];\n\n if (state.finalized || !isDraftable(value)) {\n return value;\n } // Check for existing draft in modified state.\n\n\n if (state.modified) {\n // Assigned values are never drafted. This catches any drafts we created, too.\n if (value !== peek$1(state.base, prop)) { return value; } // Store drafts on the copy (when one exists).\n\n drafts = state.copy;\n }\n\n return drafts[prop] = createProxy$1(value, state);\n}\n\nfunction set$1(state, prop, value) {\n if (!state.modified) {\n var baseValue = peek$1(state.base, prop); // Optimize based on value's truthiness. Truthy values are guaranteed to\n // never be undefined, so we can avoid the `in` operator. Lastly, truthy\n // values may be drafts, but falsy values are never drafts.\n\n var isUnchanged = value ? is(baseValue, value) || value === state.drafts[prop] : is(baseValue, value) && prop in state.base;\n if (isUnchanged) { return true; }\n markChanged$1(state);\n }\n\n state.assigned[prop] = true;\n state.copy[prop] = value;\n return true;\n}\n\nfunction deleteProperty(state, prop) {\n // The `undefined` check is a fast path for pre-existing keys.\n if (peek$1(state.base, prop) !== undefined || prop in state.base) {\n state.assigned[prop] = false;\n markChanged$1(state);\n } else if (state.assigned[prop]) {\n // if an originally not assigned property was deleted\n delete state.assigned[prop];\n }\n\n if (state.copy) { delete state.copy[prop]; }\n return true;\n} // Note: We never coerce `desc.value` into an Immer draft, because we can't make\n// the same guarantee in ES5 mode.\n\n\nfunction getOwnPropertyDescriptor(state, prop) {\n var owner = source$1(state);\n var desc = Reflect.getOwnPropertyDescriptor(owner, prop);\n\n if (desc) {\n desc.writable = true;\n desc.configurable = !Array.isArray(owner) || prop !== \"length\";\n }\n\n return desc;\n}\n\nfunction markChanged$1(state) {\n if (!state.modified) {\n state.modified = true;\n state.copy = assign(shallowCopy(state.base), state.drafts);\n state.drafts = null;\n if (state.parent) { markChanged$1(state.parent); }\n }\n}\n\nvar modernProxy = /*#__PURE__*/Object.freeze({\n\twillFinalize: willFinalize$1,\n\tcreateProxy: createProxy$1\n});\n\nfunction generatePatches(state, basePath, patches, inversePatches) {\n Array.isArray(state.base) ? generateArrayPatches(state, basePath, patches, inversePatches) : generateObjectPatches(state, basePath, patches, inversePatches);\n}\n\nfunction generateArrayPatches(state, basePath, patches, inversePatches) {\n var assign, assign$1;\n\n var base = state.base;\n var copy = state.copy;\n var assigned = state.assigned; // Reduce complexity by ensuring `base` is never longer.\n\n if (copy.length < base.length) {\n (assign = [copy, base], base = assign[0], copy = assign[1]);\n (assign$1 = [inversePatches, patches], patches = assign$1[0], inversePatches = assign$1[1]);\n }\n\n var delta = copy.length - base.length; // Find the first replaced index.\n\n var start = 0;\n\n while (base[start] === copy[start] && start < base.length) {\n ++start;\n } // Find the last replaced index. Search from the end to optimize splice patches.\n\n\n var end = base.length;\n\n while (end > start && base[end - 1] === copy[end + delta - 1]) {\n --end;\n } // Process replaced indices.\n\n\n for (var i = start; i < end; ++i) {\n if (assigned[i] && copy[i] !== base[i]) {\n var path = basePath.concat([i]);\n patches.push({\n op: \"replace\",\n path: path,\n value: copy[i]\n });\n inversePatches.push({\n op: \"replace\",\n path: path,\n value: base[i]\n });\n }\n }\n\n var replaceCount = patches.length; // Process added indices.\n\n for (var i$1 = end + delta - 1; i$1 >= end; --i$1) {\n var path$1 = basePath.concat([i$1]);\n patches[replaceCount + i$1 - end] = {\n op: \"add\",\n path: path$1,\n value: copy[i$1]\n };\n inversePatches.push({\n op: \"remove\",\n path: path$1\n });\n }\n}\n\nfunction generateObjectPatches(state, basePath, patches, inversePatches) {\n var base = state.base;\n var copy = state.copy;\n each(state.assigned, function (key, assignedValue) {\n var origValue = base[key];\n var value = copy[key];\n var op = !assignedValue ? \"remove\" : key in base ? \"replace\" : \"add\";\n if (origValue === value && op === \"replace\") { return; }\n var path = basePath.concat(key);\n patches.push(op === \"remove\" ? {\n op: op,\n path: path\n } : {\n op: op,\n path: path,\n value: value\n });\n inversePatches.push(op === \"add\" ? {\n op: \"remove\",\n path: path\n } : op === \"remove\" ? {\n op: \"add\",\n path: path,\n value: origValue\n } : {\n op: \"replace\",\n path: path,\n value: origValue\n });\n });\n}\n\nvar applyPatches = function (draft, patches) {\n for (var i$1 = 0, list = patches; i$1 < list.length; i$1 += 1) {\n var patch = list[i$1];\n\n var path = patch.path;\n var op = patch.op;\n var value = clone(patch.value); // used to clone patch to ensure original patch is not modified, see #411\n\n if (!path.length) { throw new Error(\"Illegal state\"); }\n var base = draft;\n\n for (var i = 0; i < path.length - 1; i++) {\n base = base[path[i]];\n if (!base || typeof base !== \"object\") { throw new Error(\"Cannot apply patch, path doesn't resolve: \" + path.join(\"/\")); } // prettier-ignore\n }\n\n var key = path[path.length - 1];\n\n switch (op) {\n case \"replace\":\n // if value is an object, then it's assigned by reference\n // in the following add or remove ops, the value field inside the patch will also be modifyed\n // so we use value from the cloned patch\n base[key] = value;\n break;\n\n case \"add\":\n if (Array.isArray(base)) {\n // TODO: support \"foo/-\" paths for appending to an array\n base.splice(key, 0, value);\n } else {\n base[key] = value;\n }\n\n break;\n\n case \"remove\":\n if (Array.isArray(base)) {\n base.splice(key, 1);\n } else {\n delete base[key];\n }\n\n break;\n\n default:\n throw new Error(\"Unsupported patch operation: \" + op);\n }\n }\n\n return draft;\n};\n\nfunction verifyMinified() {}\n\nvar configDefaults = {\n useProxies: typeof Proxy !== \"undefined\" && typeof Reflect !== \"undefined\",\n autoFreeze: typeof process !== \"undefined\" ? process.env.NODE_ENV !== \"production\" : verifyMinified.name === \"verifyMinified\",\n onAssign: null,\n onDelete: null,\n onCopy: null\n};\nvar Immer = function Immer(config) {\n assign(this, configDefaults, config);\n this.setUseProxies(this.useProxies);\n this.produce = this.produce.bind(this);\n};\n\nImmer.prototype.produce = function produce (base, recipe, patchListener) {\n var this$1 = this;\n\n // curried invocation\n if (typeof base === \"function\" && typeof recipe !== \"function\") {\n var defaultBase = recipe;\n recipe = base;\n var self = this;\n return function curriedProduce(base) {\n var this$1 = this;\n if ( base === void 0 ) base = defaultBase;\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n return self.produce(base, function (draft) { return recipe.call.apply(recipe, [ this$1, draft ].concat( args )); }); // prettier-ignore\n };\n } // prettier-ignore\n\n\n {\n if (typeof recipe !== \"function\") {\n throw new Error(\"The first or second argument to `produce` must be a function\");\n }\n\n if (patchListener !== undefined && typeof patchListener !== \"function\") {\n throw new Error(\"The third argument to `produce` must be a function or undefined\");\n }\n }\n var result; // Only plain objects, arrays, and \"immerable classes\" are drafted.\n\n if (isDraftable(base)) {\n var scope = ImmerScope.enter();\n var proxy = this.createProxy(base);\n var hasError = true;\n\n try {\n result = recipe(proxy);\n hasError = false;\n } finally {\n // finally instead of catch + rethrow better preserves original stack\n if (hasError) { scope.revoke(); }else { scope.leave(); }\n }\n\n if (result instanceof Promise) {\n return result.then(function (result) {\n scope.usePatches(patchListener);\n return this$1.processResult(result, scope);\n }, function (error) {\n scope.revoke();\n throw error;\n });\n }\n\n scope.usePatches(patchListener);\n return this.processResult(result, scope);\n } else {\n result = recipe(base);\n if (result === undefined) { return base; }\n return result !== NOTHING ? result : undefined;\n }\n};\n\nImmer.prototype.produceWithPatches = function produceWithPatches (arg1, arg2, arg3) {\n var this$1 = this;\n\n if (typeof arg1 === \"function\") {\n return function (state) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n return this$1.produceWithPatches(state, function (draft) { return arg1.apply(void 0, [ draft ].concat( args )); });\n };\n } // non-curried form\n\n\n if (arg3) { throw new Error(\"A patch listener cannot be passed to produceWithPatches\"); }\n var patches, inversePatches;\n var nextState = this.produce(arg1, arg2, function (p, ip) {\n patches = p;\n inversePatches = ip;\n });\n return [nextState, patches, inversePatches];\n};\n\nImmer.prototype.createDraft = function createDraft (base) {\n if (!isDraftable(base)) {\n throw new Error(\"First argument to `createDraft` must be a plain object, an array, or an immerable object\"); // prettier-ignore\n }\n\n var scope = ImmerScope.enter();\n var proxy = this.createProxy(base);\n proxy[DRAFT_STATE].isManual = true;\n scope.leave();\n return proxy;\n};\n\nImmer.prototype.finishDraft = function finishDraft (draft, patchListener) {\n var state = draft && draft[DRAFT_STATE];\n\n if (!state || !state.isManual) {\n throw new Error(\"First argument to `finishDraft` must be a draft returned by `createDraft`\"); // prettier-ignore\n }\n\n if (state.finalized) {\n throw new Error(\"The given draft is already finalized\"); // prettier-ignore\n }\n\n var scope = state.scope;\n scope.usePatches(patchListener);\n return this.processResult(undefined, scope);\n};\n\nImmer.prototype.setAutoFreeze = function setAutoFreeze (value) {\n this.autoFreeze = value;\n};\n\nImmer.prototype.setUseProxies = function setUseProxies (value) {\n this.useProxies = value;\n assign(this, value ? modernProxy : legacyProxy);\n};\n\nImmer.prototype.applyPatches = function applyPatches$1 (base, patches) {\n // If a patch replaces the entire state, take that replacement as base\n // before applying patches\n var i;\n\n for (i = patches.length - 1; i >= 0; i--) {\n var patch = patches[i];\n\n if (patch.path.length === 0 && patch.op === \"replace\") {\n base = patch.value;\n break;\n }\n }\n\n if (isDraft(base)) {\n // N.B: never hits if some patch a replacement, patches are never drafts\n return applyPatches(base, patches);\n } // Otherwise, produce a copy of the base state.\n\n\n return this.produce(base, function (draft) { return applyPatches(draft, patches.slice(i + 1)); });\n};\n/** @internal */\n\n\nImmer.prototype.processResult = function processResult (result, scope) {\n var baseDraft = scope.drafts[0];\n var isReplaced = result !== undefined && result !== baseDraft;\n this.willFinalize(scope, result, isReplaced);\n\n if (isReplaced) {\n if (baseDraft[DRAFT_STATE].modified) {\n scope.revoke();\n throw new Error(\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\"); // prettier-ignore\n }\n\n if (isDraftable(result)) {\n // Finalize the result in case it contains (or is) a subset of the draft.\n result = this.finalize(result, null, scope);\n }\n\n if (scope.patches) {\n scope.patches.push({\n op: \"replace\",\n path: [],\n value: result\n });\n scope.inversePatches.push({\n op: \"replace\",\n path: [],\n value: baseDraft[DRAFT_STATE].base\n });\n }\n } else {\n // Finalize the base draft.\n result = this.finalize(baseDraft, [], scope);\n }\n\n scope.revoke();\n\n if (scope.patches) {\n scope.patchListener(scope.patches, scope.inversePatches);\n }\n\n return result !== NOTHING ? result : undefined;\n};\n/**\n * @internal\n * Finalize a draft, returning either the unmodified base state or a modified\n * copy of the base state.\n */\n\n\nImmer.prototype.finalize = function finalize (draft, path, scope) {\n var this$1 = this;\n\n var state = draft[DRAFT_STATE];\n\n if (!state) {\n if (Object.isFrozen(draft)) { return draft; }\n return this.finalizeTree(draft, null, scope);\n } // Never finalize drafts owned by another scope.\n\n\n if (state.scope !== scope) {\n return draft;\n }\n\n if (!state.modified) {\n return state.base;\n }\n\n if (!state.finalized) {\n state.finalized = true;\n this.finalizeTree(state.draft, path, scope);\n\n if (this.onDelete) {\n // The `assigned` object is unreliable with ES5 drafts.\n if (this.useProxies) {\n var assigned = state.assigned;\n\n for (var prop in assigned) {\n if (!assigned[prop]) { this.onDelete(state, prop); }\n }\n } else {\n var base = state.base;\n var copy = state.copy;\n each(base, function (prop) {\n if (!has(copy, prop)) { this$1.onDelete(state, prop); }\n });\n }\n }\n\n if (this.onCopy) {\n this.onCopy(state);\n } // At this point, all descendants of `state.copy` have been finalized,\n // so we can be sure that `scope.canAutoFreeze` is accurate.\n\n\n if (this.autoFreeze && scope.canAutoFreeze) {\n Object.freeze(state.copy);\n }\n\n if (path && scope.patches) {\n generatePatches(state, path, scope.patches, scope.inversePatches);\n }\n }\n\n return state.copy;\n};\n/**\n * @internal\n * Finalize all drafts in the given state tree.\n */\n\n\nImmer.prototype.finalizeTree = function finalizeTree (root, rootPath, scope) {\n var this$1 = this;\n\n var state = root[DRAFT_STATE];\n\n if (state) {\n if (!this.useProxies) {\n // Create the final copy, with added keys and without deleted keys.\n state.copy = shallowCopy(state.draft, true);\n }\n\n root = state.copy;\n }\n\n var needPatches = !!rootPath && !!scope.patches;\n\n var finalizeProperty = function (prop, value, parent) {\n if (value === parent) {\n throw Error(\"Immer forbids circular references\");\n } // In the `finalizeTree` method, only the `root` object may be a draft.\n\n\n var isDraftProp = !!state && parent === root;\n\n if (isDraft(value)) {\n var path = isDraftProp && needPatches && !state.assigned[prop] ? rootPath.concat(prop) : null; // Drafts owned by `scope` are finalized here.\n\n value = this$1.finalize(value, path, scope); // Drafts from another scope must prevent auto-freezing.\n\n if (isDraft(value)) {\n scope.canAutoFreeze = false;\n } // Preserve non-enumerable properties.\n\n\n if (Array.isArray(parent) || isEnumerable(parent, prop)) {\n parent[prop] = value;\n } else {\n Object.defineProperty(parent, prop, {\n value: value\n });\n } // Unchanged drafts are never passed to the `onAssign` hook.\n\n\n if (isDraftProp && value === state.base[prop]) { return; }\n } // Unchanged draft properties are ignored.\n else if (isDraftProp && is(value, state.base[prop])) {\n return;\n } // Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n else if (isDraftable(value) && !Object.isFrozen(value)) {\n each(value, finalizeProperty);\n }\n\n if (isDraftProp && this$1.onAssign) {\n this$1.onAssign(state, prop, value);\n }\n };\n\n each(root, finalizeProperty);\n return root;\n};\n\nvar immer = new Immer();\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\n\nvar produce = immer.produce;\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\n\nvar produceWithPatches = immer.produceWithPatches.bind(immer);\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * By default, auto-freezing is disabled in production.\n */\n\nvar setAutoFreeze = immer.setAutoFreeze.bind(immer);\n/**\n * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n * always faster than using ES5 proxies.\n *\n * By default, feature detection is used, so calling this is rarely necessary.\n */\n\nvar setUseProxies = immer.setUseProxies.bind(immer);\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\n\nvar applyPatches$1 = immer.applyPatches.bind(immer);\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\n\nvar createDraft = immer.createDraft.bind(immer);\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\n\nvar finishDraft = immer.finishDraft.bind(immer);\n\nexport default produce;\nexport { Immer, applyPatches$1 as applyPatches, createDraft, finishDraft, DRAFTABLE as immerable, isDraft, isDraftable, NOTHING as nothing, original, produce, produceWithPatches, setAutoFreeze, setUseProxies };\n//# sourceMappingURL=immer.module.js.map\n",null,null,null,null,null,"/* @flow */\n\nimport flatten from 'lodash/flatten';\nimport uniq from 'lodash/uniq';\n\ntype PositionOption = 'top'|'bottom'|'left'|'right'|'cover';\ntype HAlignOption = 'center'|'left'|'right';\ntype VAlignOption = 'center'|'top'|'bottom';\n\nexport type Position = PositionOption | PositionOption[];\nexport type HAlign = HAlignOption | HAlignOption[];\nexport type VAlign = VAlignOption | VAlignOption[];\nexport type Choice = {\n position: PositionOption;\n hAlign: HAlignOption;\n vAlign: VAlignOption;\n};\n\nexport type Options = {\n position?: ?Position;\n forcePosition?: ?boolean;\n hAlign?: ?HAlign;\n forceHAlign?: ?boolean;\n vAlign?: ?VAlign;\n forceVAlign?: ?boolean;\n buffer?: ?number;\n topBuffer?: ?number;\n bottomBuffer?: ?number;\n leftBuffer?: ?number;\n rightBuffer?: ?number;\n};\n\ntype Rect = { // Similar to ClientRect, but not a class\n top: number;\n bottom: number;\n height: number;\n left: number;\n right: number;\n width: number;\n};\n\nexport default function containByScreen(element: HTMLElement, anchorPoint: HTMLElement, options: Options):\nChoice {\n if (process.env.NODE_ENV !== 'production' && window.getComputedStyle) {\n const style = window.getComputedStyle(element);\n if (style.position !== 'fixed') {\n // eslint-disable-next-line no-console\n console.error('containByScreen only works on fixed position elements', element);\n }\n }\n\n const elRect: Rect = getBoundingClientRect(element);\n const anchorRect: Rect = getBoundingClientRect(anchorPoint);\n\n const buffers = {\n all: options.buffer || 0,\n top: options.topBuffer || 0,\n bottom: options.bottomBuffer || 0,\n left: options.leftBuffer || 0,\n right: options.rightBuffer || 0\n };\n\n const optionPositions = Array.isArray(options.position) ? options.position : [options.position].filter(Boolean);\n const optionHAligns = Array.isArray(options.hAlign) ? options.hAlign : [options.hAlign].filter(Boolean);\n const optionVAligns = Array.isArray(options.vAlign) ? options.vAlign : [options.vAlign].filter(Boolean);\n\n const positions: PositionOption[] = optionPositions.length > 0 && options.forcePosition ?\n optionPositions :\n uniq(optionPositions.concat(['top','bottom','left','right']));\n const hAligns: HAlignOption[] = optionHAligns.length > 0 && options.forceHAlign ?\n optionHAligns :\n uniq(optionHAligns.concat(['center','left','right']));\n const vAligns: VAlignOption[] = optionVAligns.length > 0 && options.forceVAlign ?\n optionVAligns :\n uniq(optionVAligns.concat(['center','top','bottom']));\n\n const allPossibleChoices = flatten(positions.map(position =>\n (position === 'cover') ?\n flatten(hAligns.map(hAlign => vAligns.map(vAlign => ({position, hAlign, vAlign})))) :\n (position === 'top' || position === 'bottom') ?\n hAligns.map(hAlign => ({position, hAlign, vAlign: 'center'})) :\n vAligns.map(vAlign => ({position, hAlign: 'center', vAlign}))\n ));\n\n let choiceAndCoord = null;\n for (let i=0; i < allPossibleChoices.length; i++) {\n const choice = allPossibleChoices[i];\n const coord = positionAndAlign(elRect, anchorRect, choice, buffers);\n const {top, left} = coord;\n if (\n top-buffers.all-buffers.top >= 0 &&\n left-buffers.all-buffers.left >= 0 &&\n top+elRect.height+buffers.all+buffers.bottom <= window.innerHeight &&\n left+elRect.width+buffers.all+buffers.right <= window.innerWidth\n ) {\n choiceAndCoord = {choice, coord};\n break;\n }\n }\n\n // Fallback if we failed to find a position that fit on the screen.\n if (!choiceAndCoord) {\n const choice = {\n position: optionPositions[0]||'top',\n hAlign: optionHAligns[0]||'center',\n vAlign: optionVAligns[0]||'center'\n };\n choiceAndCoord = {\n choice,\n coord: positionAndAlign(elRect, anchorRect, choice, buffers)\n };\n }\n\n element.style.top = `${choiceAndCoord.coord.top}px`;\n element.style.left = `${choiceAndCoord.coord.left}px`;\n\n return choiceAndCoord.choice;\n}\n\nfunction getBoundingClientRect(el: Element): Rect {\n let rect = el.getBoundingClientRect();\n if (!('width' in rect)) {\n // IE <9 support\n rect = Object.assign(({\n width: rect.right-rect.left,\n height: rect.bottom-rect.top\n }: Object), rect);\n }\n return rect;\n}\n\nfunction positionAndAlign(elRect: Rect, anchorRect: Rect, {position, hAlign, vAlign}: Choice, buffers): {top: number, left: number} {\n let top=0, left=0;\n if (position === 'cover') {\n switch (hAlign) {\n case 'center':\n left = Math.round((anchorRect.left + anchorRect.right - elRect.width)/2);\n break;\n case 'left':\n left = Math.floor(anchorRect.left);\n break;\n case 'right':\n left = Math.ceil(anchorRect.right - elRect.width);\n break;\n default: throw new Error('Should not happen');\n }\n switch (vAlign) {\n case 'center':\n top = Math.round((anchorRect.top + anchorRect.bottom - elRect.height)/2);\n break;\n case 'top':\n top = Math.floor(anchorRect.top);\n break;\n case 'bottom':\n top = Math.ceil(anchorRect.bottom - elRect.height);\n break;\n default: throw new Error('Should not happen');\n }\n } else if (position === 'top' || position === 'bottom') {\n switch (position) {\n case 'top':\n top = Math.floor(anchorRect.top - elRect.height - buffers.all - buffers.bottom);\n break;\n case 'bottom':\n top = Math.ceil(anchorRect.bottom + buffers.all + buffers.top);\n break;\n default: throw new Error('Should not happen');\n }\n switch (hAlign) {\n case 'center':\n left = Math.round((anchorRect.left + anchorRect.right - elRect.width)/2);\n break;\n case 'left':\n left = Math.round(anchorRect.left);\n break;\n case 'right':\n left = Math.round(anchorRect.right - elRect.width);\n break;\n default: throw new Error('Should not happen');\n }\n } else {\n switch (position) {\n case 'left':\n left = Math.floor(anchorRect.left - elRect.width - buffers.all - buffers.right);\n break;\n case 'right':\n left = Math.ceil(anchorRect.right + buffers.all + buffers.left);\n break;\n default: throw new Error('Should not happen');\n }\n switch (vAlign) {\n case 'center':\n top = Math.round((anchorRect.top + anchorRect.bottom - elRect.height)/2);\n break;\n case 'top':\n top = Math.round(anchorRect.top);\n break;\n case 'bottom':\n top = Math.round(anchorRect.bottom - elRect.height);\n break;\n default: throw new Error('Should not happen');\n }\n }\n return {top, left};\n}\n","import { combineReducers } from 'redux';\nimport { createAction, getType } from 'typesafe-actions';\nimport { getTypedTools, all } from 'async-saga';\nimport adapter$1 from 'webrtc-adapter';\nimport { sendParent as sendParent$1, forwardTo as forwardTo$1, assign, Machine, actions as actions$1, send as send$1, interpret } from 'xstate';\nimport md5 from 'md5';\nimport { choose as choose$1 } from 'xstate/lib/actions';\nimport React__default, { useRef, useEffect, useState, forwardRef, createElement, useCallback } from 'react';\nimport { useSelector as useSelector$1, useDispatch } from 'react-redux';\nimport classNames from 'classnames';\n\nvar initApp = /*#__PURE__*/createAction('INIT_APP')();\nvar endpointStatusChanged = /*#__PURE__*/createAction('ENDPOINT_STATUS_CHANGED')();\nvar connectEndpoint = /*#__PURE__*/createAction('CONNECT_ENDPOINT', function (extension, pin) {\n return {\n extension: extension,\n pin: pin\n };\n})();\nvar connectEndpointGuest = /*#__PURE__*/createAction('CONNECT_ENDPOINT_GUEST', function (guestId, guestPasskey, displayName) {\n return {\n guestId: guestId,\n guestPasskey: guestPasskey,\n displayName: displayName\n };\n})();\nvar disconnectEndpoint = /*#__PURE__*/createAction('DISCONNECT_ENDPOINT')();\nvar configureEndpoint = /*#__PURE__*/createAction('CONFIG_ENDPOINT')();\nvar lineStatusChanged = /*#__PURE__*/createAction('LINE_STATUS_CHANGED')(); // export const register = createAction('REGISTER')()\n// export const unregister = createAction('UNREGISTER')()\n\nvar configureMediaConstraints = /*#__PURE__*/createAction('CONFIGURE_MEDIA_CONSTRAINTS')();\nvar configureSecondaryRinger = /*#__PURE__*/createAction('CONFIGURE_SECONDARY_RINGER')();\nvar callStatusChanged = /*#__PURE__*/createAction('CALL_STATUS_CHANGED', function (focusCallIndex, calls) {\n return {\n focusCallIndex: focusCallIndex,\n calls: calls\n };\n})();\nvar dial = /*#__PURE__*/createAction('DIAL')();\nvar hangUp = /*#__PURE__*/createAction('HANG_UP')();\nvar muteMicrophone = /*#__PURE__*/createAction('MUTE_MICROPHONE', function (mute) {\n return mute;\n})();\nvar muteSpeaker = /*#__PURE__*/createAction('MUTE_SPEAKER', function (mute) {\n return mute;\n})();\nvar dtmf = /*#__PURE__*/createAction('DTMF')();\nvar answer = /*#__PURE__*/createAction('ANSWER')();\nvar hold = /*#__PURE__*/createAction('HOLD')();\nvar resume = /*#__PURE__*/createAction('RESUME')();\nvar toggleVideo = /*#__PURE__*/createAction('TOGGLE_VIDEO', function (enable, videoSource) {\n return {\n enable: enable,\n videoSource: videoSource\n };\n})();\nvar setVideoPan = /*#__PURE__*/createAction('SET_VIDEO_PAN')();\nvar setVideoTilt = /*#__PURE__*/createAction('SET_VIDEO_TILT')();\nvar setVideoZoom = /*#__PURE__*/createAction('SET_VIDEO_ZOOM')();\nvar transfer = /*#__PURE__*/createAction('TRANSFER')();\nvar getCallStats = /*#__PURE__*/createAction('CALL_GET_STATS')();\n\nvar actions = {\n __proto__: null,\n initApp: initApp,\n endpointStatusChanged: endpointStatusChanged,\n connectEndpoint: connectEndpoint,\n connectEndpointGuest: connectEndpointGuest,\n disconnectEndpoint: disconnectEndpoint,\n configureEndpoint: configureEndpoint,\n lineStatusChanged: lineStatusChanged,\n configureMediaConstraints: configureMediaConstraints,\n configureSecondaryRinger: configureSecondaryRinger,\n callStatusChanged: callStatusChanged,\n dial: dial,\n hangUp: hangUp,\n muteMicrophone: muteMicrophone,\n muteSpeaker: muteSpeaker,\n dtmf: dtmf,\n answer: answer,\n hold: hold,\n resume: resume,\n toggleVideo: toggleVideo,\n setVideoPan: setVideoPan,\n setVideoTilt: setVideoTilt,\n setVideoZoom: setVideoZoom,\n transfer: transfer,\n getCallStats: getCallStats\n};\n\nfunction secondaryRingerDeviceId(state, action) {\n if (state === void 0) {\n state = '';\n }\n\n switch (action.type) {\n case getType(configureSecondaryRinger):\n return action.payload;\n }\n\n return state;\n}\n\nvar devices = /*#__PURE__*/combineReducers({\n secondaryRingerDeviceId: secondaryRingerDeviceId\n});\nfunction selectSecondaryRingerDeviceId(state) {\n return state.janus.devices.secondaryRingerDeviceId;\n}\n\nfunction endpoint(state, action) {\n if (state === void 0) {\n state = {\n canConnect: false,\n canDisconnect: false,\n status: 'offline'\n };\n }\n\n switch (action.type) {\n case getType(endpointStatusChanged):\n return action.payload;\n }\n\n return state;\n}\n\nfunction line(state, action) {\n if (state === void 0) {\n state = {\n canRegister: false,\n canUnregister: false,\n status: 'unregistered'\n };\n }\n\n switch (action.type) {\n case getType(endpointStatusChanged):\n if (action.payload.status === 'offline') {\n return {\n canRegister: false,\n canUnregister: false,\n status: 'unregistered'\n };\n } else {\n return state;\n }\n\n case getType(lineStatusChanged):\n return action.payload;\n }\n\n return state;\n} // defaulted values so that the ui doesn't have to null check\n\n\nvar noCalls = [{\n callId: '',\n status: 'idle',\n // statusError?: string\n // localStream?: MediaStream\n // remoteStream?: MediaStream\n peerUsername: '',\n peerDisplayName: '',\n canDial: false,\n canRingOut: false,\n canHangUp: false,\n canAnswer: false,\n answerRequested: false,\n featureHoldResume: false,\n canHold: false,\n canResume: false,\n canBlindXfer: false,\n canXfer: false,\n canSendDtmf: false,\n isMuted: false,\n hasRemoteVideo: false,\n hasLocalVideo: false,\n videoSource: undefined,\n canPlayBusyTone: false,\n canPlayReorderTone: false,\n canPlayNuTone: false,\n lastHangupCode: 0,\n isSlowAudioDownlink: false,\n isSlowAudioUplink: false,\n isScreenSharing: function isScreenSharing() {\n return false;\n }\n}, {\n callId: '',\n status: 'idle',\n // statusError?: string\n // localStream?: MediaStream\n // remoteStream?: MediaStream\n peerUsername: '',\n peerDisplayName: '',\n canDial: false,\n canRingOut: false,\n canHangUp: false,\n canAnswer: false,\n answerRequested: false,\n featureHoldResume: false,\n canHold: false,\n canResume: false,\n canBlindXfer: false,\n canXfer: false,\n canSendDtmf: false,\n isMuted: false,\n hasRemoteVideo: false,\n hasLocalVideo: false,\n videoSource: undefined,\n canPlayBusyTone: false,\n canPlayReorderTone: false,\n canPlayNuTone: false,\n lastHangupCode: 0,\n isSlowAudioDownlink: false,\n isSlowAudioUplink: false,\n isScreenSharing: function isScreenSharing() {\n return false;\n }\n}];\n\nfunction calls(state, action) {\n if (state === void 0) {\n state = {\n focusCallIndex: 0,\n calls: [].concat(noCalls)\n };\n }\n\n switch (action.type) {\n case getType(endpointStatusChanged):\n if (action.payload.status === 'offline') {\n return {\n focusCallIndex: 0,\n calls: [].concat(noCalls)\n };\n } else {\n return state;\n }\n\n case getType(callStatusChanged):\n return action.payload;\n }\n\n return state;\n}\n\nvar empty = {\n sipDomain: undefined,\n turnServer: '',\n turnServerUdpPort: '3478',\n turnServerTcpPort: '3478',\n janus: ''\n};\n\nfunction settings(state, action) {\n if (state === void 0) {\n state = empty;\n }\n\n switch (action.type) {\n case getType(configureEndpoint):\n return action.payload;\n }\n\n return state;\n}\n\nfunction mediaConstraint(state, action) {\n if (state === void 0) {\n state = {\n autoGainControl: true,\n echoCancellation: true,\n noiseSuppression: true,\n sampleRate: 16000,\n sampleSize: 16,\n channelCount: 1\n };\n }\n\n switch (action.type) {\n case getType(configureMediaConstraints):\n return action.payload;\n }\n\n return state;\n}\n\nvar janus = /*#__PURE__*/combineReducers({\n mediaConstraint: mediaConstraint,\n endpoint: endpoint,\n line: line,\n calls: calls,\n settings: settings,\n devices: devices\n});\n\nfunction getRoot(state) {\n return state.janus;\n}\n\nfunction selectEndpoint(state) {\n return getRoot(state).endpoint;\n}\nfunction selectLine(state) {\n return getRoot(state).line;\n}\nfunction selectCall(state) {\n var root = getRoot(state).calls;\n return root.calls[root.focusCallIndex];\n}\nfunction selectSettings(state) {\n return getRoot(state).settings;\n}\n\nfunction createRootReducer() {\n return janus;\n}\nfunction selectJanus(state) {\n return state.janus;\n}\n\nfunction 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\nfunction _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}\n\nfunction _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}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _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}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n it = o[Symbol.iterator]();\n return it.next.bind(it);\n}\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar runtime_1 = createCommonjsModule(function (module) {\n/**\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\nvar runtime = (function (exports) {\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined$1; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> 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 PromiseImpl(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, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\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$1) {\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$1;\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$1;\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 define(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$1;\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$1, 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$1;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined$1;\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$1;\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$1;\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$1;\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 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\nvar _getTypedTools = /*#__PURE__*/getTypedTools(),\n takeEvery = _getTypedTools.takeEvery;\n\n/* eslint-disable */\nJanus.sessions = {};\n\nJanus.isExtensionEnabled = function () {\n if (navigator.mediaDevices && navigator.mediaDevices.getDisplayMedia) {\n // No need for the extension, getDisplayMedia is supported\n return true;\n }\n\n if (window.navigator.userAgent.match('Chrome')) {\n var chromever = parseInt(window.navigator.userAgent.match(/Chrome\\/(.*) /)[1], 10);\n var maxver = 33;\n if (window.navigator.userAgent.match('Linux')) maxver = 35; // \"known\" crash in chrome 34 and 35 on linux\n\n if (chromever >= 26 && chromever <= maxver) {\n // Older versions of Chrome don't support this extension-based approach, so lie\n return true;\n }\n\n return Janus.extension.isInstalled();\n } else {\n // Firefox and others, no need for the extension (but this doesn't mean it will work)\n return true;\n }\n};\n\nvar defaultExtension = {\n // Screensharing Chrome Extension ID\n extensionId: 'hapfgfdkleiggjjpfpenajgdnfckjpaj',\n isInstalled: function isInstalled() {\n return document.querySelector('#janus-extension-installed') !== null;\n },\n getScreen: function getScreen(callback) {\n var pending = window.setTimeout(function () {\n var error = new Error('NavigatorUserMediaError');\n error.name = 'The required Chrome extension is not installed: click here to install it. (NOTE: this will need you to refresh the page)';\n return callback(error);\n }, 1000);\n this.cache[pending] = callback;\n window.postMessage({\n type: 'janusGetScreen',\n id: pending\n }, '*');\n },\n init: function init() {\n var cache = {};\n this.cache = cache; // Wait for events from the Chrome Extension\n\n window.addEventListener('message', function (event) {\n if (event.origin != window.location.origin) return;\n\n if (event.data.type == 'janusGotScreen' && cache[event.data.id]) {\n var callback = cache[event.data.id];\n delete cache[event.data.id];\n\n if (event.data.sourceId === '') {\n // user canceled\n var error = new Error('NavigatorUserMediaError');\n error.name = 'You cancelled the request for permission, giving up...';\n callback(error);\n } else {\n callback(null, event.data.sourceId);\n }\n } else if (event.data.type == 'janusGetScreenPending') {\n console.log('clearing ', event.data.id);\n window.clearTimeout(event.data.id);\n }\n });\n }\n};\n\nJanus.useDefaultDependencies = function (deps) {\n var f = deps && deps.fetch || fetch;\n var p = deps && deps.Promise || Promise;\n var socketCls = deps && deps.WebSocket || WebSocket;\n return {\n newWebSocket: function newWebSocket(server, proto) {\n return new socketCls(server, proto);\n },\n extension: deps && deps.extension || defaultExtension,\n isArray: function isArray(arr) {\n return Array.isArray(arr);\n },\n webRTCAdapter: deps && deps.adapter || adapter,\n httpAPICall: function httpAPICall(url, options) {\n var fetchOptions = {\n method: options.verb,\n headers: {\n 'Accept': 'application/json, text/plain, */*'\n },\n cache: 'no-cache'\n };\n\n if (options.verb === \"POST\") {\n fetchOptions.headers['Content-Type'] = 'application/json';\n }\n\n if (options.withCredentials !== undefined) {\n fetchOptions.credentials = options.withCredentials === true ? 'include' : options.withCredentials ? options.withCredentials : 'omit';\n }\n\n if (options.body) {\n fetchOptions.body = JSON.stringify(options.body);\n }\n\n var fetching = f(url, fetchOptions)[\"catch\"](function (error) {\n return p.reject({\n message: 'Probably a network error, is the server down?',\n error: error\n });\n });\n /*\r\n * fetch() does not natively support timeouts.\r\n * Work around this by starting a timeout manually, and racing it agains the fetch() to see which thing resolves first.\r\n */\n\n if (options.timeout) {\n var timeout = new p(function (resolve, reject) {\n var timerId = setTimeout(function () {\n clearTimeout(timerId);\n return reject({\n message: 'Request timed out',\n timeout: options.timeout\n });\n }, options.timeout);\n });\n fetching = p.race([fetching, timeout]);\n }\n\n fetching.then(function (response) {\n if (response.ok) {\n if (typeof options.success === typeof Janus.noop) {\n return response.json().then(function (parsed) {\n try {\n options.success(parsed);\n } catch (error) {\n Janus.error('Unhandled httpAPICall success callback error', error);\n }\n }, function (error) {\n return p.reject({\n message: 'Failed to parse response body',\n error: error,\n response: response\n });\n });\n }\n } else {\n return p.reject({\n message: 'API call failed',\n response: response\n });\n }\n })[\"catch\"](function (error) {\n if (typeof options.error === typeof Janus.noop) {\n options.error(error.message || '<< internal error >>', error);\n }\n });\n return fetching;\n }\n };\n};\n\nJanus.useOldDependencies = function (deps) {\n var jq = deps && deps.jQuery || jQuery;\n var socketCls = deps && deps.WebSocket || WebSocket;\n return {\n newWebSocket: function newWebSocket(server, proto) {\n return new socketCls(server, proto);\n },\n isArray: function isArray(arr) {\n return jq.isArray(arr);\n },\n extension: deps && deps.extension || defaultExtension,\n webRTCAdapter: deps && deps.adapter || adapter,\n httpAPICall: function httpAPICall(url, options) {\n var payload = options.body !== undefined ? {\n contentType: 'application/json',\n data: JSON.stringify(options.body)\n } : {};\n var credentials = options.withCredentials !== undefined ? {\n xhrFields: {\n withCredentials: options.withCredentials\n }\n } : {};\n return jq.ajax(jq.extend(payload, credentials, {\n url: url,\n type: options.verb,\n cache: false,\n dataType: 'json',\n async: options.async,\n timeout: options.timeout,\n success: function success(result) {\n if (typeof options.success === typeof Janus.noop) {\n options.success(result);\n }\n },\n error: function error(xhr, status, err) {\n if (typeof options.error === typeof Janus.noop) {\n options.error(status, err);\n }\n }\n }));\n }\n };\n};\n\nJanus.noop = function () {};\n\nJanus.dataChanDefaultLabel = \"JanusDataChannel\"; // Note: in the future we may want to change this, e.g., as was\n// attempted in https://github.com/meetecho/janus-gateway/issues/1670\n\nJanus.endOfCandidates = null; // Stop all tracks from a given stream\n\nJanus.stopAllTracks = function (stream) {\n try {\n // Try a MediaStreamTrack.stop() for each track\n var tracks = stream.getTracks();\n\n for (var _iterator = _createForOfIteratorHelperLoose(tracks), _step; !(_step = _iterator()).done;) {\n var mst = _step.value;\n Janus.log(mst);\n\n if (mst) {\n mst.stop();\n }\n }\n } catch (e) {// Do nothing if this fails\n }\n}; // Initialization\n\n\nJanus.init = function (options) {\n options = options || {};\n options.callback = typeof options.callback == \"function\" ? options.callback : Janus.noop;\n\n if (Janus.initDone) {\n // Already initialized\n options.callback();\n } else {\n if (typeof console.log == \"undefined\") {\n console.log = function () {};\n } // Console logging (all debugging disabled by default)\n\n\n Janus.trace = Janus.noop;\n Janus.debug = Janus.noop;\n Janus.vdebug = Janus.noop;\n Janus.log = Janus.noop;\n Janus.warn = Janus.noop;\n Janus.error = Janus.noop;\n\n if (options.debug === true || options.debug === \"all\") {\n // Enable all debugging levels\n Janus.trace = console.trace.bind(console);\n Janus.debug = console.debug.bind(console);\n Janus.vdebug = console.debug.bind(console);\n Janus.log = console.log.bind(console);\n Janus.warn = console.warn.bind(console);\n Janus.error = console.error.bind(console);\n } else if (Array.isArray(options.debug)) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(options.debug), _step2; !(_step2 = _iterator2()).done;) {\n var d = _step2.value;\n\n switch (d) {\n case \"trace\":\n Janus.trace = console.trace.bind(console);\n break;\n\n case \"debug\":\n Janus.debug = console.debug.bind(console);\n break;\n\n case \"vdebug\":\n Janus.vdebug = console.debug.bind(console);\n break;\n\n case \"log\":\n Janus.log = console.log.bind(console);\n break;\n\n case \"warn\":\n Janus.warn = console.warn.bind(console);\n break;\n\n case \"error\":\n Janus.error = console.error.bind(console);\n break;\n\n default:\n console.error(\"Unknown debugging option '\" + d + \"' (supported: 'trace', 'debug', 'vdebug', 'log', warn', 'error')\");\n break;\n }\n }\n }\n\n Janus.log(\"Initializing library\");\n var usedDependencies = options.dependencies || Janus.useDefaultDependencies();\n Janus.isArray = usedDependencies.isArray;\n Janus.webRTCAdapter = usedDependencies.webRTCAdapter;\n Janus.httpAPICall = usedDependencies.httpAPICall;\n Janus.newWebSocket = usedDependencies.newWebSocket;\n Janus.extension = usedDependencies.extension;\n Janus.extension.init(); // Helper method to enumerate devices\n\n Janus.listDevices = function (callback, config) {\n callback = typeof callback == \"function\" ? callback : Janus.noop;\n if (config == null) config = {\n audio: true,\n video: true\n };\n\n if (Janus.isGetUserMediaAvailable()) {\n navigator.mediaDevices.getUserMedia(config).then(function (stream) {\n navigator.mediaDevices.enumerateDevices().then(function (devices) {\n Janus.debug(devices);\n callback(devices); // Get rid of the now useless stream\n\n Janus.stopAllTracks(stream);\n });\n })[\"catch\"](function (err) {\n Janus.error(err);\n callback([]);\n });\n } else {\n Janus.warn(\"navigator.mediaDevices unavailable\");\n callback([]);\n }\n }; // Helper methods to attach/reattach a stream to a video element (previously part of adapter.js)\n\n\n Janus.attachMediaStream = function (element, stream) {\n try {\n element.srcObject = stream;\n } catch (e) {\n try {\n element.src = URL.createObjectURL(stream);\n } catch (e) {\n Janus.error(\"Error attaching stream to element\");\n }\n }\n };\n\n Janus.reattachMediaStream = function (to, from) {\n try {\n to.srcObject = from.srcObject;\n } catch (e) {\n try {\n to.src = from.src;\n } catch (e) {\n Janus.error(\"Error reattaching stream to element\");\n }\n }\n }; // Detect tab close: make sure we don't loose existing onbeforeunload handlers\n // (note: for iOS we need to subscribe to a different event, 'pagehide', see\n // https://gist.github.com/thehunmonkgroup/6bee8941a49b86be31a787fe8f4b8cfe)\n\n\n var iOS = ['iPad', 'iPhone', 'iPod'].indexOf(navigator.platform) >= 0;\n var eventName = iOS ? 'pagehide' : 'beforeunload';\n var oldOBF = window[\"on\" + eventName];\n window.addEventListener(eventName, function () {\n Janus.log(\"Closing window\");\n\n for (var s in Janus.sessions) {\n if (Janus.sessions[s] && Janus.sessions[s].destroyOnUnload) {\n Janus.log(\"Destroying session \" + s);\n Janus.sessions[s].destroy({\n unload: true,\n notifyDestroyed: false\n });\n }\n }\n\n if (oldOBF && typeof oldOBF == \"function\") {\n oldOBF();\n }\n }); // If this is a Safari Technology Preview, check if VP8 is supported\n\n Janus.safariVp8 = false;\n\n if (Janus.webRTCAdapter.browserDetails.browser === 'safari' && Janus.webRTCAdapter.browserDetails.version >= 605) {\n // Let's see if RTCRtpSender.getCapabilities() is there\n if (RTCRtpSender && RTCRtpSender.getCapabilities && RTCRtpSender.getCapabilities(\"video\") && RTCRtpSender.getCapabilities(\"video\").codecs && RTCRtpSender.getCapabilities(\"video\").codecs.length) {\n for (var _iterator3 = _createForOfIteratorHelperLoose(RTCRtpSender.getCapabilities(\"video\").codecs), _step3; !(_step3 = _iterator3()).done;) {\n var codec = _step3.value;\n\n if (codec && codec.mimeType && codec.mimeType.toLowerCase() === \"video/vp8\") {\n Janus.safariVp8 = true;\n break;\n }\n }\n\n if (Janus.safariVp8) {\n Janus.log(\"This version of Safari supports VP8\");\n } else {\n Janus.warn(\"This version of Safari does NOT support VP8: if you're using a Technology Preview, \" + \"try enabling the 'WebRTC VP8 codec' setting in the 'Experimental Features' Develop menu\");\n }\n } else {\n // We do it in a very ugly way, as there's no alternative...\n // We create a PeerConnection to see if VP8 is in an offer\n var testpc = new RTCPeerConnection({});\n testpc.createOffer({\n offerToReceiveVideo: true\n }).then(function (offer) {\n Janus.safariVp8 = offer.sdp.indexOf(\"VP8\") !== -1;\n\n if (Janus.safariVp8) {\n Janus.log(\"This version of Safari supports VP8\");\n } else {\n Janus.warn(\"This version of Safari does NOT support VP8: if you're using a Technology Preview, \" + \"try enabling the 'WebRTC VP8 codec' setting in the 'Experimental Features' Develop menu\");\n }\n\n testpc.close();\n testpc = null;\n });\n }\n } // Check if this browser supports Unified Plan and transceivers\n // Based on https://codepen.io/anon/pen/ZqLwWV?editors=0010\n\n\n Janus.unifiedPlan = false;\n\n if (window.citrixVdaSupport === true) {\n Janus.unifiedPlan = false;\n } else if (Janus.webRTCAdapter.browserDetails.browser === 'firefox' && Janus.webRTCAdapter.browserDetails.version >= 59) {\n // Firefox definitely does, starting from version 59\n Janus.unifiedPlan = true;\n } else if (Janus.webRTCAdapter.browserDetails.browser === 'chrome' && Janus.webRTCAdapter.browserDetails.version >= 72) {\n // Chrome does, but it's only usable from version 72 on\n Janus.unifiedPlan = true;\n } else if (!window.RTCRtpTransceiver || !('currentDirection' in RTCRtpTransceiver.prototype)) {\n // Safari supports addTransceiver() but not Unified Plan when\n // currentDirection is not defined (see codepen above).\n Janus.unifiedPlan = false;\n } else {\n // Check if addTransceiver() throws an exception\n var tempPc = new RTCPeerConnection();\n\n try {\n tempPc.addTransceiver('audio');\n Janus.unifiedPlan = true;\n } catch (e) {}\n\n tempPc.close();\n }\n\n Janus.initDone = true;\n options.callback();\n }\n}; // Helper method to check whether WebRTC is supported by this browser\n\n\nJanus.isWebrtcSupported = function () {\n return !!window.RTCPeerConnection;\n}; // Helper method to check whether devices can be accessed by this browser (e.g., not possible via plain HTTP)\n\n\nJanus.isGetUserMediaAvailable = function () {\n return navigator.mediaDevices && navigator.mediaDevices.getUserMedia;\n}; // Helper method to create random identifiers (e.g., transaction)\n\n\nJanus.randomString = function (len) {\n var charSet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n var randomString = '';\n\n for (var i = 0; i < len; i++) {\n var randomPoz = Math.floor(Math.random() * charSet.length);\n randomString += charSet.substring(randomPoz, randomPoz + 1);\n }\n\n return randomString;\n};\n\nJanus.setUnifiedPlan = function (unifiedPlan) {\n Janus.debug(\"Unified Plan changed from \" + Janus.unifiedPlan + \" --> \" + unifiedPlan);\n Janus.unifiedPlan = unifiedPlan;\n};\n\nfunction Janus(gatewayCallbacks) {\n gatewayCallbacks = gatewayCallbacks || {};\n gatewayCallbacks.success = typeof gatewayCallbacks.success == \"function\" ? gatewayCallbacks.success : Janus.noop;\n gatewayCallbacks.error = typeof gatewayCallbacks.error == \"function\" ? gatewayCallbacks.error : Janus.noop;\n gatewayCallbacks.destroyed = typeof gatewayCallbacks.destroyed == \"function\" ? gatewayCallbacks.destroyed : Janus.noop;\n\n if (!Janus.initDone) {\n gatewayCallbacks.error(\"Library not initialized\");\n return {};\n }\n\n if (!Janus.isWebrtcSupported()) {\n gatewayCallbacks.error(\"WebRTC not supported by this browser\");\n return {};\n }\n\n Janus.log(\"Library initialized: \" + Janus.initDone);\n\n if (!gatewayCallbacks.server) {\n gatewayCallbacks.error(\"Invalid server url\");\n return {};\n }\n\n var websockets = false;\n var ws = null;\n var wsHandlers = {};\n var wsKeepaliveTimeoutId = null;\n var servers = null;\n var serversIndex = 0;\n var server = gatewayCallbacks.server;\n\n if (Janus.isArray(server)) {\n Janus.log(\"Multiple servers provided (\" + server.length + \"), will use the first that works\");\n server = null;\n servers = gatewayCallbacks.server;\n Janus.debug(servers);\n } else {\n if (server.indexOf(\"ws\") === 0) {\n websockets = true;\n Janus.log(\"Using WebSockets to contact Janus: \" + server);\n } else {\n websockets = false;\n Janus.log(\"Using REST API to contact Janus: \" + server);\n }\n }\n\n var iceServers = gatewayCallbacks.iceServers || [{\n urls: \"stun:stun.l.google.com:19302\"\n }];\n var iceTransportPolicy = gatewayCallbacks.iceTransportPolicy;\n var bundlePolicy = gatewayCallbacks.bundlePolicy; // Whether IPv6 candidates should be gathered\n\n var withCredentials = false;\n if (gatewayCallbacks.withCredentials !== undefined && gatewayCallbacks.withCredentials !== null) withCredentials = gatewayCallbacks.withCredentials === true; // Optional max events\n\n var maxev = 10;\n if (gatewayCallbacks.max_poll_events !== undefined && gatewayCallbacks.max_poll_events !== null) maxev = gatewayCallbacks.max_poll_events;\n if (maxev < 1) maxev = 1; // Token to use (only if the token based authentication mechanism is enabled)\n\n var token = null;\n if (gatewayCallbacks.token !== undefined && gatewayCallbacks.token !== null) token = gatewayCallbacks.token; // API secret to use (only if the shared API secret is enabled)\n\n var apisecret = null;\n if (gatewayCallbacks.apisecret !== undefined && gatewayCallbacks.apisecret !== null) apisecret = gatewayCallbacks.apisecret;\n var janusServerUsername = null;\n var janusServerPassword = null;\n\n if (gatewayCallbacks.janusServerUsername && gatewayCallbacks.janusServerPassword) {\n janusServerUsername = gatewayCallbacks.janusServerUsername;\n janusServerPassword = gatewayCallbacks.janusServerPassword;\n } // Whether we should destroy this session when onbeforeunload is called\n\n\n this.destroyOnUnload = true;\n if (gatewayCallbacks.destroyOnUnload !== undefined && gatewayCallbacks.destroyOnUnload !== null) this.destroyOnUnload = gatewayCallbacks.destroyOnUnload === true; // Some timeout-related values\n\n var keepAlivePeriod = 25000;\n if (gatewayCallbacks.keepAlivePeriod !== undefined && gatewayCallbacks.keepAlivePeriod !== null) keepAlivePeriod = gatewayCallbacks.keepAlivePeriod;\n if (isNaN(keepAlivePeriod)) keepAlivePeriod = 25000;\n var longPollTimeout = 60000;\n if (gatewayCallbacks.longPollTimeout !== undefined && gatewayCallbacks.longPollTimeout !== null) longPollTimeout = gatewayCallbacks.longPollTimeout;\n if (isNaN(longPollTimeout)) longPollTimeout = 60000; // overrides for default maxBitrate values for simulcasting\n\n function getMaxBitrates(simulcastMaxBitrates) {\n var maxBitrates = {\n high: 900000,\n medium: 300000,\n low: 100000\n };\n\n if (simulcastMaxBitrates !== undefined && simulcastMaxBitrates !== null) {\n if (simulcastMaxBitrates.high) maxBitrates.high = simulcastMaxBitrates.high;\n if (simulcastMaxBitrates.medium) maxBitrates.medium = simulcastMaxBitrates.medium;\n if (simulcastMaxBitrates.low) maxBitrates.low = simulcastMaxBitrates.low;\n }\n\n return maxBitrates;\n }\n\n var connected = false;\n var sessionId = null;\n var pluginHandles = {};\n var that = this;\n var retries = 0;\n var transactions = {};\n createSession(gatewayCallbacks); // Public methods\n\n this.getServer = function () {\n return server;\n };\n\n this.isConnected = function () {\n return connected;\n };\n\n this.reconnect = function (callbacks) {\n callbacks = callbacks || {};\n callbacks.success = typeof callbacks.success == \"function\" ? callbacks.success : Janus.noop;\n callbacks.error = typeof callbacks.error == \"function\" ? callbacks.error : Janus.noop;\n callbacks[\"reconnect\"] = true;\n createSession(callbacks);\n };\n\n this.getSessionId = function () {\n return sessionId;\n };\n\n this.getInfo = function (callbacks) {\n getInfo(callbacks);\n };\n\n this.destroy = function (callbacks) {\n destroySession(callbacks);\n };\n\n this.attach = function (callbacks) {\n createHandle(callbacks);\n };\n\n function eventHandler() {\n if (sessionId == null) return;\n Janus.debug('Long poll...');\n\n if (!connected) {\n Janus.warn(\"Is the server down? (connected=false)\");\n return;\n }\n\n var longpoll = server + \"/\" + sessionId + \"?rid=\" + new Date().getTime();\n if (maxev) longpoll = longpoll + \"&maxev=\" + maxev;\n if (token) longpoll = longpoll + \"&token=\" + encodeURIComponent(token);\n if (apisecret) longpoll = longpoll + \"&apisecret=\" + encodeURIComponent(apisecret);\n Janus.httpAPICall(longpoll, {\n verb: 'GET',\n withCredentials: withCredentials,\n success: handleEvent,\n timeout: longPollTimeout,\n error: function error(textStatus, errorThrown) {\n Janus.error(textStatus + \":\", errorThrown);\n retries++;\n\n if (retries > 3) {\n // Did we just lose the server? :-(\n connected = false;\n gatewayCallbacks.error(\"Lost connection to the server (is it down?)\");\n return;\n }\n\n eventHandler();\n }\n });\n } // Private event handler: this will trigger plugin callbacks, if set\n\n\n function handleEvent(json, skipTimeout) {\n retries = 0;\n if (!websockets && sessionId !== undefined && sessionId !== null && skipTimeout !== true) eventHandler();\n\n if (!websockets && Janus.isArray(json)) {\n // We got an array: it means we passed a maxev > 1, iterate on all objects\n for (var i = 0; i < json.length; i++) {\n handleEvent(json[i], true);\n }\n\n return;\n }\n\n if (json[\"janus\"] === \"keepalive\") {\n // Nothing happened\n Janus.vdebug(\"Got a keepalive on session \" + sessionId);\n return;\n } else if (json[\"janus\"] === \"server_info\") {\n // Just info on the Janus instance\n Janus.debug(\"Got info on the Janus instance\");\n Janus.debug(json);\n var _transaction = json[\"transaction\"];\n\n if (_transaction) {\n var _reportSuccess = transactions[_transaction];\n if (_reportSuccess) _reportSuccess(json);\n delete transactions[_transaction];\n }\n\n return;\n } else if (json[\"janus\"] === \"ack\") {\n // Just an ack, we can probably ignore\n Janus.debug(\"Got an ack on session \" + sessionId);\n Janus.debug(json);\n var reconnect = json[\"reconnect\"];\n\n if (reconnect) {\n Janus.debug(\"Got a reconnect indication on session \" + sessionId);\n\n for (var handleId in pluginHandles) {\n pluginHandles[handleId].onreconnect();\n }\n }\n\n var _transaction2 = json[\"transaction\"];\n\n if (_transaction2) {\n var _reportSuccess2 = transactions[_transaction2];\n if (_reportSuccess2) _reportSuccess2(json);\n delete transactions[_transaction2];\n }\n\n return;\n } else if (json[\"janus\"] === \"success\") {\n // Success!\n Janus.debug(\"Got a success on session \" + sessionId);\n Janus.debug(json);\n var _transaction3 = json[\"transaction\"];\n\n if (_transaction3) {\n var _reportSuccess3 = transactions[_transaction3];\n if (_reportSuccess3) _reportSuccess3(json);\n delete transactions[_transaction3];\n }\n\n return;\n } else if (json[\"janus\"] === \"trickle\") {\n // We got a trickle candidate from Janus\n var sender = json[\"sender\"];\n\n if (!sender) {\n Janus.warn(\"Missing sender...\");\n return;\n }\n\n var pluginHandle = pluginHandles[sender];\n\n if (!pluginHandle) {\n Janus.debug(\"This handle is not attached to this session\");\n return;\n }\n\n var candidate = json[\"candidate\"];\n Janus.debug(\"Got a trickled candidate on session \" + sessionId);\n Janus.debug(candidate);\n var config = pluginHandle.webrtcStuff;\n\n if (config.pc && config.remoteSdp) {\n // Add candidate right now\n Janus.debug(\"Adding remote candidate:\", candidate);\n\n if (!candidate || candidate.completed === true) {\n // end-of-candidates\n config.pc.addIceCandidate(Janus.endOfCandidates);\n } else {\n // New candidate\n config.pc.addIceCandidate(candidate);\n }\n } else {\n // We didn't do setRemoteDescription (trickle got here before the offer?)\n Janus.debug(\"We didn't do setRemoteDescription (trickle got here before the offer?), caching candidate\");\n if (!config.candidates) config.candidates = [];\n config.candidates.push(candidate);\n Janus.debug(config.candidates);\n }\n } else if (json[\"janus\"] === \"webrtcup\") {\n // The PeerConnection with the server is up! Notify this\n Janus.debug(\"Got a webrtcup event on session \" + sessionId);\n Janus.debug(json);\n var _sender = json[\"sender\"];\n\n if (!_sender) {\n Janus.warn(\"Missing sender...\");\n return;\n }\n\n var _pluginHandle = pluginHandles[_sender];\n\n if (!_pluginHandle) {\n Janus.debug(\"This handle is not attached to this session\");\n return;\n }\n\n _pluginHandle.webrtcState(true);\n\n return;\n } else if (json[\"janus\"] === \"hangup\") {\n // A plugin asked the core to hangup a PeerConnection on one of our handles\n Janus.debug(\"Got a hangup event on session \" + sessionId);\n Janus.debug(json);\n var _sender2 = json[\"sender\"];\n\n if (!_sender2) {\n Janus.warn(\"Missing sender...\");\n return;\n }\n\n var _pluginHandle2 = pluginHandles[_sender2];\n\n if (!_pluginHandle2) {\n Janus.debug(\"This handle is not attached to this session\");\n return;\n }\n\n _pluginHandle2.webrtcState(false, json[\"reason\"]);\n\n _pluginHandle2.hangup();\n } else if (json[\"janus\"] === \"detached\") {\n // A plugin asked the core to detach one of our handles\n Janus.debug(\"Got a detached event on session \" + sessionId);\n Janus.debug(json);\n var _sender3 = json[\"sender\"];\n\n if (!_sender3) {\n Janus.warn(\"Missing sender...\");\n return;\n }\n\n var _pluginHandle3 = pluginHandles[_sender3];\n\n if (!_pluginHandle3) {\n // Don't warn here because destroyHandle causes this situation.\n return;\n }\n\n _pluginHandle3.ondetached();\n\n _pluginHandle3.detach();\n } else if (json[\"janus\"] === \"media\") {\n // Media started/stopped flowing\n Janus.debug(\"Got a media event on session \" + sessionId);\n Janus.debug(json);\n var _sender4 = json[\"sender\"];\n\n if (!_sender4) {\n Janus.warn(\"Missing sender...\");\n return;\n }\n\n var _pluginHandle4 = pluginHandles[_sender4];\n\n if (!_pluginHandle4) {\n Janus.debug(\"This handle is not attached to this session\");\n return;\n }\n\n _pluginHandle4.mediaState(json[\"type\"], json[\"receiving\"]);\n } else if (json[\"janus\"] === \"slowlink\") {\n Janus.debug(\"Got a slowlink event on session \" + sessionId);\n Janus.debug(json); // Trouble uplink or downlink\n\n var _sender5 = json[\"sender\"];\n\n if (!_sender5) {\n Janus.warn(\"Missing sender...\");\n return;\n }\n\n var _pluginHandle5 = pluginHandles[_sender5];\n\n if (!_pluginHandle5) {\n Janus.debug(\"This handle is not attached to this session\");\n return;\n }\n\n _pluginHandle5.slowLink(json[\"uplink\"], json[\"lost\"]);\n } else if (json[\"janus\"] === \"inlink_status\") {\n Janus.debug(\"Got a inlink_status event on session \" + sessionId);\n Janus.debug(json); // Trouble uplink or downlink\n\n var _sender6 = json[\"sender\"];\n\n if (!_sender6) {\n Janus.warn(\"Missing sender...\");\n return;\n }\n\n var _pluginHandle6 = pluginHandles[_sender6];\n\n if (!_pluginHandle6) {\n Janus.debug(\"This handle is not attached to this session\");\n return;\n }\n\n _pluginHandle6.inLinkStatus(json[\"status\"], json[\"media\"]);\n } else if (json[\"janus\"] === \"error\") {\n // Oops, something wrong happened\n Janus.error(\"Ooops: \" + json[\"error\"].code + \" \" + json[\"error\"].reason); // FIXME\n\n Janus.debug(json);\n var transaction = json[\"transaction\"];\n\n if (transaction) {\n var reportSuccess = transactions[transaction];\n\n if (reportSuccess) {\n reportSuccess(json);\n }\n\n delete transactions[transaction];\n }\n\n return;\n } else if (json[\"janus\"] === \"event\") {\n Janus.debug(\"Got a plugin event on session \" + sessionId);\n Janus.debug(json);\n var _sender7 = json[\"sender\"];\n\n if (!_sender7) {\n Janus.warn(\"Missing sender...\");\n return;\n }\n\n var plugindata = json[\"plugindata\"];\n\n if (!plugindata) {\n Janus.warn(\"Missing plugindata...\");\n return;\n }\n\n Janus.debug(\" -- Event is coming from \" + _sender7 + \" (\" + plugindata[\"plugin\"] + \")\");\n var data = plugindata[\"data\"];\n Janus.debug(data);\n var _pluginHandle7 = pluginHandles[_sender7];\n\n if (!_pluginHandle7) {\n Janus.warn(\"This handle is not attached to this session\");\n return;\n }\n\n var jsep = json[\"jsep\"];\n\n if (jsep) {\n Janus.debug(\"Handling SDP as well...\");\n Janus.debug(jsep);\n }\n\n var callback = _pluginHandle7.onmessage;\n\n if (callback) {\n Janus.debug(\"Notifying application...\"); // Send to callback specified when attaching plugin handle\n\n callback(data, jsep);\n } else {\n // Send to generic callback (?)\n Janus.debug(\"No provided notification callback\");\n }\n } else if (json[\"janus\"] === \"timeoutpending\") {\n Janus.debug(\"Timeout nudge on session \" + sessionId + \".\", json);\n\n if (wsKeepaliveTimeoutId) {\n clearTimeout(wsKeepaliveTimeoutId);\n }\n\n keepAlive();\n return;\n } else if (json[\"janus\"] === \"timeout\") {\n Janus.error(\"Timeout on session \" + sessionId);\n Janus.debug(json);\n\n if (websockets) {\n ws.close(3504, \"Gateway timeout\");\n }\n\n return;\n } else {\n Janus.warn(\"Unknown message/event '\" + json[\"janus\"] + \"' on session \" + sessionId);\n Janus.debug(json);\n }\n } // Private helper to send keep-alive messages on WebSockets\n\n\n function keepAlive() {\n if (!server || !websockets || !connected) return;\n wsKeepaliveTimeoutId = setTimeout(keepAlive, keepAlivePeriod);\n var request = {\n \"janus\": \"keepalive\",\n \"session_id\": sessionId,\n \"transaction\": Janus.randomString(12)\n };\n if (token) request[\"token\"] = token;\n if (apisecret) request[\"apisecret\"] = apisecret;\n\n if (janusServerUsername && janusServerPassword) {\n request[\"auth_username\"] = janusServerUsername;\n request[\"auth_password\"] = janusServerPassword;\n }\n\n ws.send(JSON.stringify(request));\n } // Private method to create a session\n\n\n function createSession(callbacks) {\n var transaction = Janus.randomString(12);\n var request = {\n \"janus\": \"create\",\n \"transaction\": transaction\n };\n\n if (callbacks[\"reconnect\"]) {\n // We're reconnecting, claim the session\n connected = false;\n request[\"janus\"] = \"claim\";\n request[\"session_id\"] = sessionId; // If we were using websockets, ignore the old connection\n\n if (ws) {\n ws.onopen = null;\n ws.onerror = null;\n ws.onclose = null;\n\n if (wsKeepaliveTimeoutId) {\n clearTimeout(wsKeepaliveTimeoutId);\n wsKeepaliveTimeoutId = null;\n }\n }\n }\n\n if (token) request[\"token\"] = token;\n if (apisecret) request[\"apisecret\"] = apisecret;\n\n if (janusServerUsername && janusServerPassword) {\n request[\"auth_username\"] = janusServerUsername;\n request[\"auth_password\"] = janusServerPassword;\n }\n\n if (!server && Janus.isArray(servers)) {\n // We still need to find a working server from the list we were given\n server = servers[serversIndex];\n\n if (server.indexOf(\"ws\") === 0) {\n websockets = true;\n Janus.log(\"Server #\" + (serversIndex + 1) + \": trying WebSockets to contact Janus (\" + server + \")\");\n } else {\n websockets = false;\n Janus.log(\"Server #\" + (serversIndex + 1) + \": trying REST API to contact Janus (\" + server + \")\");\n }\n }\n\n if (websockets) {\n ws = Janus.newWebSocket(server, 'janus-protocol');\n wsHandlers = {\n 'error': function error() {\n Janus.error(\"Error connecting to the Janus WebSockets server... \" + server);\n\n if (Janus.isArray(servers) && !callbacks[\"reconnect\"]) {\n serversIndex++;\n\n if (serversIndex === servers.length) {\n // We tried all the servers the user gave us and they all failed\n callbacks.error(\"Error connecting to any of the provided Janus servers: Is the server down?\");\n return;\n } // Let's try the next server\n\n\n server = null;\n setTimeout(function () {\n createSession(callbacks);\n }, 200);\n return;\n }\n\n callbacks.error(\"Error connecting to the Janus WebSockets server: Is the server down?\");\n },\n 'open': function open() {\n // We need to be notified about the success\n transactions[transaction] = function (json) {\n Janus.debug(json);\n\n if (json[\"janus\"] !== \"success\") {\n Janus.error(\"Ooops: \" + json[\"error\"].code + \" \" + json[\"error\"].reason); // FIXME\n\n callbacks.error(json[\"error\"].reason);\n return;\n }\n\n wsKeepaliveTimeoutId = setTimeout(keepAlive, keepAlivePeriod);\n connected = true;\n sessionId = json[\"session_id\"] ? json[\"session_id\"] : json.data[\"id\"];\n\n if (callbacks[\"reconnect\"]) {\n Janus.log(\"Claimed session: \" + sessionId);\n } else {\n Janus.log(\"Created session: \" + sessionId);\n }\n\n Janus.sessions[sessionId] = that;\n callbacks.success();\n };\n\n ws.send(JSON.stringify(request));\n },\n 'message': function message(event) {\n handleEvent(JSON.parse(event.data));\n },\n 'close': function close() {\n if (!server || !connected) {\n return;\n }\n\n connected = false; // FIXME What if this is called when the page is closed?\n\n gatewayCallbacks.error(\"Lost connection to the server (is it down?)\");\n }\n };\n\n for (var eventName in wsHandlers) {\n ws.addEventListener(eventName, wsHandlers[eventName]);\n }\n\n return;\n }\n\n Janus.httpAPICall(server, {\n verb: 'POST',\n withCredentials: withCredentials,\n body: request,\n success: function success(json) {\n Janus.debug(json);\n\n if (json[\"janus\"] !== \"success\") {\n Janus.error(\"Ooops: \" + json[\"error\"].code + \" \" + json[\"error\"].reason); // FIXME\n\n callbacks.error(json[\"error\"].reason);\n return;\n }\n\n connected = true;\n sessionId = json[\"session_id\"] ? json[\"session_id\"] : json.data[\"id\"];\n\n if (callbacks[\"reconnect\"]) {\n Janus.log(\"Claimed session: \" + sessionId);\n } else {\n Janus.log(\"Created session: \" + sessionId);\n }\n\n Janus.sessions[sessionId] = that;\n eventHandler();\n callbacks.success();\n },\n error: function error(textStatus, errorThrown) {\n Janus.error(textStatus + \":\", errorThrown); // FIXME\n\n if (Janus.isArray(servers) && !callbacks[\"reconnect\"]) {\n serversIndex++;\n\n if (serversIndex === servers.length) {\n // We tried all the servers the user gave us and they all failed\n callbacks.error(\"Error connecting to any of the provided Janus servers: Is the server down?\");\n return;\n } // Let's try the next server\n\n\n server = null;\n setTimeout(function () {\n createSession(callbacks);\n }, 200);\n return;\n }\n\n if (errorThrown === \"\") callbacks.error(textStatus + \": Is the server down?\");else if (errorThrown && errorThrown.error) callbacks.error(textStatus + \": \" + errorThrown.error.message);else callbacks.error(textStatus + \": \" + errorThrown);\n }\n });\n } // Private method to get info on the server\n\n\n function getInfo(callbacks) {\n callbacks = callbacks || {}; // FIXME This method triggers a success even when we fail\n\n callbacks.success = typeof callbacks.success == \"function\" ? callbacks.success : Janus.noop;\n callbacks.error = typeof callbacks.error == \"function\" ? callbacks.error : Janus.noop;\n Janus.log(\"Getting info on Janus instance\");\n\n if (!connected) {\n Janus.warn(\"Is the server down? (connected=false)\");\n callbacks.error(\"Is the server down? (connected=false)\");\n return;\n } // We just need to send an \"info\" request\n\n\n var transaction = Janus.randomString(12);\n var request = {\n \"janus\": \"info\",\n \"transaction\": transaction\n };\n if (token) request[\"token\"] = token;\n if (apisecret) request[\"apisecret\"] = apisecret;\n\n if (janusServerUsername && janusServerPassword) {\n request[\"auth_username\"] = janusServerUsername;\n request[\"auth_password\"] = janusServerPassword;\n }\n\n if (websockets) {\n transactions[transaction] = function (json) {\n Janus.log(\"Server info:\");\n Janus.debug(json);\n\n if (json[\"janus\"] !== \"server_info\") {\n Janus.error(\"Ooops: \" + json[\"error\"].code + \" \" + json[\"error\"].reason); // FIXME\n }\n\n callbacks.success(json);\n };\n\n ws.send(JSON.stringify(request));\n return;\n }\n\n Janus.httpAPICall(server, {\n verb: 'POST',\n withCredentials: withCredentials,\n body: request,\n success: function success(json) {\n Janus.log(\"Server info:\");\n Janus.debug(json);\n\n if (json[\"janus\"] !== \"server_info\") {\n Janus.error(\"Ooops: \" + json[\"error\"].code + \" \" + json[\"error\"].reason); // FIXME\n }\n\n callbacks.success(json);\n },\n error: function error(textStatus, errorThrown) {\n Janus.error(textStatus + \":\", errorThrown); // FIXME\n\n if (errorThrown === \"\") callbacks.error(textStatus + \": Is the server down?\");else callbacks.error(textStatus + \": \" + errorThrown);\n }\n });\n } // Private method to destroy a session\n\n\n function destroySession(callbacks) {\n callbacks = callbacks || {}; // FIXME This method triggers a success even when we fail\n\n callbacks.success = typeof callbacks.success == \"function\" ? callbacks.success : Janus.noop;\n callbacks.error = typeof callbacks.error == \"function\" ? callbacks.error : Janus.noop;\n var unload = callbacks.unload === true;\n var notifyDestroyed = true;\n if (callbacks.notifyDestroyed !== undefined && callbacks.notifyDestroyed !== null) notifyDestroyed = callbacks.notifyDestroyed === true;\n var cleanupHandles = callbacks.cleanupHandles === true;\n Janus.log(\"Destroying session \" + sessionId + \" (unload=\" + unload + \")\");\n\n if (!sessionId) {\n Janus.warn(\"No session to destroy\");\n callbacks.success();\n if (notifyDestroyed) gatewayCallbacks.destroyed();\n return;\n }\n\n if (cleanupHandles) {\n for (var handleId in pluginHandles) {\n destroyHandle(handleId, {\n noRequest: true\n });\n }\n }\n\n if (!connected) {\n Janus.warn(\"Is the server down? (connected=false)\");\n sessionId = null;\n callbacks.success();\n return;\n } // No need to destroy all handles first, Janus will do that itself\n\n\n var request = {\n \"janus\": \"destroy\",\n \"transaction\": Janus.randomString(12)\n };\n if (token) request[\"token\"] = token;\n if (apisecret) request[\"apisecret\"] = apisecret;\n\n if (janusServerUsername && janusServerPassword) {\n request[\"auth_username\"] = janusServerUsername;\n request[\"auth_password\"] = janusServerPassword;\n }\n\n if (unload) {\n // We're unloading the page: use sendBeacon for HTTP instead,\n // or just close the WebSocket connection if we're using that\n if (websockets) {\n ws.onclose = null;\n ws.close();\n ws = null;\n } else {\n navigator.sendBeacon(server + \"/\" + sessionId, JSON.stringify(request));\n }\n\n Janus.log(\"Destroyed session:\");\n sessionId = null;\n connected = false;\n callbacks.success();\n if (notifyDestroyed) gatewayCallbacks.destroyed();\n return;\n }\n\n if (websockets) {\n request[\"session_id\"] = sessionId;\n\n var unbindWebSocket = function unbindWebSocket() {\n for (var eventName in wsHandlers) {\n ws.removeEventListener(eventName, wsHandlers[eventName]);\n }\n\n ws.removeEventListener('message', onUnbindMessage);\n ws.removeEventListener('error', onUnbindError);\n\n if (wsKeepaliveTimeoutId) {\n clearTimeout(wsKeepaliveTimeoutId);\n }\n\n ws.close();\n };\n\n var onUnbindMessage = function onUnbindMessage(event) {\n var data = JSON.parse(event.data);\n\n if (data.session_id == request.session_id && data.transaction == request.transaction) {\n unbindWebSocket();\n callbacks.success();\n if (notifyDestroyed) gatewayCallbacks.destroyed();\n }\n };\n\n var onUnbindError = function onUnbindError() {\n unbindWebSocket();\n callbacks.error(\"Failed to destroy the server: Is the server down?\");\n if (notifyDestroyed) gatewayCallbacks.destroyed();\n };\n\n ws.addEventListener('message', onUnbindMessage);\n ws.addEventListener('error', onUnbindError);\n\n if (ws.readyState === 1) {\n ws.send(JSON.stringify(request));\n } else {\n onUnbindError();\n }\n\n return;\n }\n\n Janus.httpAPICall(server + \"/\" + sessionId, {\n verb: 'POST',\n withCredentials: withCredentials,\n body: request,\n success: function success(json) {\n Janus.log(\"Destroyed session:\");\n Janus.debug(json);\n sessionId = null;\n connected = false;\n\n if (json[\"janus\"] !== \"success\") {\n Janus.error(\"Ooops: \" + json[\"error\"].code + \" \" + json[\"error\"].reason); // FIXME\n }\n\n callbacks.success();\n if (notifyDestroyed) gatewayCallbacks.destroyed();\n },\n error: function error(textStatus, errorThrown) {\n Janus.error(textStatus + \":\", errorThrown); // FIXME\n // Reset everything anyway\n\n sessionId = null;\n connected = false;\n callbacks.success();\n if (notifyDestroyed) gatewayCallbacks.destroyed();\n }\n });\n } // Private method to create a plugin handle\n\n\n function createHandle(callbacks) {\n callbacks = callbacks || {};\n callbacks.success = typeof callbacks.success == \"function\" ? callbacks.success : Janus.noop;\n callbacks.error = typeof callbacks.error == \"function\" ? callbacks.error : Janus.noop;\n callbacks.dataChannelOptions = callbacks.dataChannelOptions || {\n ordered: true\n };\n callbacks.consentDialog = typeof callbacks.consentDialog == \"function\" ? callbacks.consentDialog : Janus.noop;\n callbacks.iceState = typeof callbacks.iceState == \"function\" ? callbacks.iceState : Janus.noop;\n callbacks.mediaState = typeof callbacks.mediaState == \"function\" ? callbacks.mediaState : Janus.noop;\n callbacks.webrtcState = typeof callbacks.webrtcState == \"function\" ? callbacks.webrtcState : Janus.noop;\n callbacks.slowLink = typeof callbacks.slowLink == \"function\" ? callbacks.slowLink : Janus.noop;\n callbacks.inLinkStatus = typeof callbacks.inLinkStatus == \"function\" ? callbacks.inLinkStatus : Janus.noop;\n callbacks.onmessage = typeof callbacks.onmessage == \"function\" ? callbacks.onmessage : Janus.noop;\n callbacks.onlocalstream = typeof callbacks.onlocalstream == \"function\" ? callbacks.onlocalstream : Janus.noop;\n callbacks.onremotestream = typeof callbacks.onremotestream == \"function\" ? callbacks.onremotestream : Janus.noop;\n callbacks.ondata = typeof callbacks.ondata == \"function\" ? callbacks.ondata : Janus.noop;\n callbacks.ondataopen = typeof callbacks.ondataopen == \"function\" ? callbacks.ondataopen : Janus.noop;\n callbacks.oncleanup = typeof callbacks.oncleanup == \"function\" ? callbacks.oncleanup : Janus.noop;\n callbacks.ondetached = typeof callbacks.ondetached == \"function\" ? callbacks.ondetached : Janus.noop;\n callbacks.onreconnect = typeof callbacks.onreconnect == \"function\" ? callbacks.onreconnect : Janus.noop;\n\n if (!connected) {\n Janus.warn(\"Is the server down? (connected=false)\");\n callbacks.error(\"Is the server down? (connected=false)\");\n return;\n }\n\n var plugin = callbacks.plugin;\n\n if (!plugin) {\n Janus.error(\"Invalid plugin\");\n callbacks.error(\"Invalid plugin\");\n return;\n }\n\n var opaqueId = callbacks.opaqueId;\n var loopIndex = callbacks.loopIndex;\n var handleToken = callbacks.token ? callbacks.token : token;\n var transaction = Janus.randomString(12);\n var request = {\n \"janus\": \"attach\",\n \"plugin\": plugin,\n \"opaque_id\": opaqueId,\n \"loop_index\": loopIndex,\n \"transaction\": transaction\n };\n if (handleToken) request[\"token\"] = handleToken;\n if (apisecret) request[\"apisecret\"] = apisecret;\n\n if (janusServerUsername && janusServerPassword) {\n request[\"auth_username\"] = janusServerUsername;\n request[\"auth_password\"] = janusServerPassword;\n }\n\n if (websockets) {\n transactions[transaction] = function (json) {\n Janus.debug(json);\n\n if (json[\"janus\"] !== \"success\") {\n Janus.error(\"Ooops: \" + json[\"error\"].code + \" \" + json[\"error\"].reason); // FIXME\n\n callbacks.error(\"Ooops: \" + json[\"error\"].code + \" \" + json[\"error\"].reason);\n return;\n }\n\n var handleId = json.data[\"id\"];\n Janus.log(\"Created handle: \" + handleId);\n var pluginHandle = {\n session: that,\n plugin: plugin,\n id: handleId,\n token: handleToken,\n detached: false,\n webrtcStuff: {\n started: false,\n myStream: null,\n streamExternal: false,\n remoteStream: null,\n mySdp: null,\n mediaConstraints: null,\n pc: null,\n dataChannelOptions: callbacks.dataChannelOptions,\n dataChannel: {},\n dtmfSender: null,\n trickle: true,\n iceDone: false,\n volume: {\n value: null,\n timer: null\n },\n bitrate: {\n value: null,\n bsnow: null,\n bsbefore: null,\n tsnow: null,\n tsbefore: null,\n timer: null\n },\n srAudioContext: null,\n srDesktopAudioStream: null\n },\n getId: function getId() {\n return handleId;\n },\n getPlugin: function getPlugin() {\n return plugin;\n },\n getVolume: function getVolume() {\n return _getVolume(handleId, true);\n },\n getRemoteVolume: function getRemoteVolume() {\n return _getVolume(handleId, true);\n },\n getLocalVolume: function getLocalVolume() {\n return _getVolume(handleId, false);\n },\n isAudioMuted: function isAudioMuted() {\n return isMuted(handleId, false);\n },\n muteAudio: function muteAudio() {\n return mute(handleId, false, true);\n },\n unmuteAudio: function unmuteAudio() {\n return mute(handleId, false, false);\n },\n isVideoMuted: function isVideoMuted() {\n return isMuted(handleId, true);\n },\n muteVideo: function muteVideo() {\n return mute(handleId, true, true);\n },\n unmuteVideo: function unmuteVideo() {\n return mute(handleId, true, false);\n },\n getBitrate: function getBitrate() {\n return _getBitrate(handleId);\n },\n send: function send(callbacks) {\n sendMessage(handleId, callbacks);\n },\n data: function data(callbacks) {\n sendData(handleId, callbacks);\n },\n dtmf: function dtmf(callbacks) {\n sendDtmf(handleId, callbacks);\n },\n consentDialog: callbacks.consentDialog,\n iceState: callbacks.iceState,\n mediaState: callbacks.mediaState,\n webrtcState: callbacks.webrtcState,\n slowLink: callbacks.slowLink,\n inLinkStatus: callbacks.inLinkStatus,\n onmessage: callbacks.onmessage,\n createOffer: function createOffer(callbacks) {\n prepareWebrtc(handleId, true, callbacks);\n },\n createAnswer: function createAnswer(callbacks) {\n prepareWebrtc(handleId, false, callbacks);\n },\n handleRemoteJsep: function handleRemoteJsep(callbacks) {\n prepareWebrtcPeer(handleId, callbacks);\n },\n onlocalstream: callbacks.onlocalstream,\n onremotestream: callbacks.onremotestream,\n ondata: callbacks.ondata,\n ondataopen: callbacks.ondataopen,\n oncleanup: callbacks.oncleanup,\n ondetached: callbacks.ondetached,\n hangup: function hangup(sendRequest) {\n cleanupWebrtc(handleId, sendRequest === true);\n },\n detach: function detach(callbacks) {\n destroyHandle(handleId, callbacks);\n },\n onreconnect: callbacks.onreconnect\n };\n pluginHandles[handleId] = pluginHandle;\n callbacks.success(pluginHandle);\n };\n\n request[\"session_id\"] = sessionId;\n ws.send(JSON.stringify(request));\n return;\n }\n\n Janus.httpAPICall(server + \"/\" + sessionId, {\n verb: 'POST',\n withCredentials: withCredentials,\n body: request,\n success: function success(json) {\n Janus.debug(json);\n\n if (json[\"janus\"] !== \"success\") {\n Janus.error(\"Ooops: \" + json[\"error\"].code + \" \" + json[\"error\"].reason); // FIXME\n\n callbacks.error(\"Ooops: \" + json[\"error\"].code + \" \" + json[\"error\"].reason);\n return;\n }\n\n var handleId = json.data[\"id\"];\n Janus.log(\"Created handle: \" + handleId);\n var pluginHandle = {\n session: that,\n plugin: plugin,\n id: handleId,\n token: handleToken,\n detached: false,\n webrtcStuff: {\n started: false,\n myStream: null,\n streamExternal: false,\n remoteStream: null,\n mySdp: null,\n mediaConstraints: null,\n pc: null,\n dataChannelOptions: callbacks.dataChannelOptions,\n dataChannel: {},\n dtmfSender: null,\n trickle: true,\n iceDone: false,\n volume: {\n value: null,\n timer: null\n },\n bitrate: {\n value: null,\n bsnow: null,\n bsbefore: null,\n tsnow: null,\n tsbefore: null,\n timer: null\n },\n srAudioContext: null,\n srDesktopAudioStream: null\n },\n getId: function getId() {\n return handleId;\n },\n getPlugin: function getPlugin() {\n return plugin;\n },\n getVolume: function getVolume() {\n return _getVolume(handleId, true);\n },\n getRemoteVolume: function getRemoteVolume() {\n return _getVolume(handleId, true);\n },\n getLocalVolume: function getLocalVolume() {\n return _getVolume(handleId, false);\n },\n isAudioMuted: function isAudioMuted() {\n return isMuted(handleId, false);\n },\n muteAudio: function muteAudio() {\n return mute(handleId, false, true);\n },\n unmuteAudio: function unmuteAudio() {\n return mute(handleId, false, false);\n },\n isVideoMuted: function isVideoMuted() {\n return isMuted(handleId, true);\n },\n muteVideo: function muteVideo() {\n return mute(handleId, true, true);\n },\n unmuteVideo: function unmuteVideo() {\n return mute(handleId, true, false);\n },\n getBitrate: function getBitrate() {\n return _getBitrate(handleId);\n },\n send: function send(callbacks) {\n sendMessage(handleId, callbacks);\n },\n data: function data(callbacks) {\n sendData(handleId, callbacks);\n },\n dtmf: function dtmf(callbacks) {\n sendDtmf(handleId, callbacks);\n },\n consentDialog: callbacks.consentDialog,\n iceState: callbacks.iceState,\n mediaState: callbacks.mediaState,\n webrtcState: callbacks.webrtcState,\n slowLink: callbacks.slowLink,\n inLinkStatus: callbacks.inLinkStatus,\n onmessage: callbacks.onmessage,\n createOffer: function createOffer(callbacks) {\n prepareWebrtc(handleId, true, callbacks);\n },\n createAnswer: function createAnswer(callbacks) {\n prepareWebrtc(handleId, false, callbacks);\n },\n handleRemoteJsep: function handleRemoteJsep(callbacks) {\n prepareWebrtcPeer(handleId, callbacks);\n },\n onlocalstream: callbacks.onlocalstream,\n onremotestream: callbacks.onremotestream,\n ondata: callbacks.ondata,\n ondataopen: callbacks.ondataopen,\n oncleanup: callbacks.oncleanup,\n ondetached: callbacks.ondetached,\n hangup: function hangup(sendRequest) {\n cleanupWebrtc(handleId, sendRequest === true);\n },\n detach: function detach(callbacks) {\n destroyHandle(handleId, callbacks);\n }\n };\n pluginHandles[handleId] = pluginHandle;\n callbacks.success(pluginHandle);\n },\n error: function error(textStatus, errorThrown) {\n Janus.error(textStatus + \":\", errorThrown); // FIXME\n\n if (errorThrown === \"\") callbacks.error(textStatus + \": Is the server down?\");else callbacks.error(textStatus + \": \" + errorThrown);\n }\n });\n } // Private method to send a message\n\n\n function sendMessage(handleId, callbacks) {\n callbacks = callbacks || {};\n callbacks.success = typeof callbacks.success == \"function\" ? callbacks.success : Janus.noop;\n callbacks.error = typeof callbacks.error == \"function\" ? callbacks.error : Janus.noop;\n\n if (!connected) {\n Janus.warn(\"Is the server down? (connected=false)\");\n callbacks.error(\"Is the server down? (connected=false)\");\n return;\n }\n\n var pluginHandle = pluginHandles[handleId];\n\n if (!pluginHandle || !pluginHandle.webrtcStuff) {\n Janus.warn(\"Invalid handle\");\n callbacks.error(\"Invalid handle\");\n return;\n }\n\n var message = callbacks.message;\n var jsep = callbacks.jsep;\n var transaction = Janus.randomString(12);\n var request = {\n \"janus\": \"message\",\n \"body\": message,\n \"transaction\": transaction\n };\n if (pluginHandle.token) request[\"token\"] = pluginHandle.token;\n if (apisecret) request[\"apisecret\"] = apisecret;\n\n if (janusServerUsername && janusServerPassword) {\n request[\"auth_username\"] = janusServerUsername;\n request[\"auth_password\"] = janusServerPassword;\n }\n\n if (jsep) {\n request.jsep = {\n type: jsep.type,\n sdp: jsep.sdp\n };\n if (jsep.e2ee) request.jsep.e2ee = true;\n if (jsep.rid_order === \"hml\" || jsep.rid_order === \"lmh\") request.jsep.rid_order = jsep.rid_order;\n if (jsep.force_relay) request.jsep.force_relay = true;\n }\n\n Janus.debug(\"Sending message to plugin (handle=\" + handleId + \"):\");\n Janus.debug(request);\n\n if (websockets) {\n request[\"session_id\"] = sessionId;\n request[\"handle_id\"] = handleId;\n\n transactions[transaction] = function (json) {\n Janus.debug(\"Message sent!\");\n Janus.debug(json);\n\n if (json[\"janus\"] === \"success\") {\n // We got a success, must have been a synchronous transaction\n var plugindata = json[\"plugindata\"];\n\n if (!plugindata) {\n Janus.warn(\"Request succeeded, but missing plugindata...\");\n callbacks.success();\n return;\n }\n\n Janus.log(\"Synchronous transaction successful (\" + plugindata[\"plugin\"] + \")\");\n var data = plugindata[\"data\"];\n Janus.debug(data);\n callbacks.success(data);\n return;\n } else if (json[\"janus\"] !== \"ack\") {\n // Not a success and not an ack, must be an error\n if (json[\"error\"]) {\n Janus.error(\"Ooops: \" + json[\"error\"].code + \" \" + json[\"error\"].reason); // FIXME\n\n callbacks.error(json[\"error\"].code + \" \" + json[\"error\"].reason);\n } else {\n Janus.error(\"Unknown error\"); // FIXME\n\n callbacks.error(\"Unknown error\");\n }\n\n return;\n } // If we got here, the plugin decided to handle the request asynchronously\n\n\n callbacks.success();\n };\n\n ws.send(JSON.stringify(request));\n return;\n }\n\n Janus.httpAPICall(server + \"/\" + sessionId + \"/\" + handleId, {\n verb: 'POST',\n withCredentials: withCredentials,\n body: request,\n success: function success(json) {\n Janus.debug(\"Message sent!\");\n Janus.debug(json);\n\n if (json[\"janus\"] === \"success\") {\n // We got a success, must have been a synchronous transaction\n var plugindata = json[\"plugindata\"];\n\n if (!plugindata) {\n Janus.warn(\"Request succeeded, but missing plugindata...\");\n callbacks.success();\n return;\n }\n\n Janus.log(\"Synchronous transaction successful (\" + plugindata[\"plugin\"] + \")\");\n var data = plugindata[\"data\"];\n Janus.debug(data);\n callbacks.success(data);\n return;\n } else if (json[\"janus\"] !== \"ack\") {\n // Not a success and not an ack, must be an error\n if (json[\"error\"]) {\n Janus.error(\"Ooops: \" + json[\"error\"].code + \" \" + json[\"error\"].reason); // FIXME\n\n callbacks.error(json[\"error\"].code + \" \" + json[\"error\"].reason);\n } else {\n Janus.error(\"Unknown error\"); // FIXME\n\n callbacks.error(\"Unknown error\");\n }\n\n return;\n } // If we got here, the plugin decided to handle the request asynchronously\n\n\n callbacks.success();\n },\n error: function error(textStatus, errorThrown) {\n Janus.error(textStatus + \":\", errorThrown); // FIXME\n\n callbacks.error(textStatus + \": \" + errorThrown);\n }\n });\n } // Private method to send a trickle candidate\n\n\n function sendTrickleCandidate(handleId, candidate) {\n if (!connected) {\n Janus.warn(\"Is the server down? (connected=false)\");\n return;\n }\n\n var pluginHandle = pluginHandles[handleId];\n\n if (!pluginHandle || !pluginHandle.webrtcStuff) {\n Janus.warn(\"Invalid handle\");\n return;\n }\n\n var request = {\n \"janus\": \"trickle\",\n \"candidate\": candidate,\n \"transaction\": Janus.randomString(12)\n };\n if (pluginHandle.token) request[\"token\"] = pluginHandle.token;\n if (apisecret) request[\"apisecret\"] = apisecret;\n\n if (janusServerUsername && janusServerPassword) {\n request[\"auth_username\"] = janusServerUsername;\n request[\"auth_password\"] = janusServerPassword;\n }\n\n Janus.vdebug(\"Sending trickle candidate (handle=\" + handleId + \"):\");\n Janus.vdebug(request);\n\n if (websockets) {\n request[\"session_id\"] = sessionId;\n request[\"handle_id\"] = handleId;\n ws.send(JSON.stringify(request));\n return;\n }\n\n Janus.httpAPICall(server + \"/\" + sessionId + \"/\" + handleId, {\n verb: 'POST',\n withCredentials: withCredentials,\n body: request,\n success: function success(json) {\n Janus.vdebug(\"Candidate sent!\");\n Janus.vdebug(json);\n\n if (json[\"janus\"] !== \"ack\") {\n Janus.error(\"Ooops: \" + json[\"error\"].code + \" \" + json[\"error\"].reason); // FIXME\n\n return;\n }\n },\n error: function error(textStatus, errorThrown) {\n Janus.error(textStatus + \":\", errorThrown); // FIXME\n }\n });\n } // Private method to create a data channel\n\n\n function createDataChannel(handleId, dclabel, dcprotocol, incoming, pendingData) {\n var pluginHandle = pluginHandles[handleId];\n\n if (!pluginHandle || !pluginHandle.webrtcStuff) {\n Janus.warn(\"Invalid handle\");\n return;\n }\n\n var config = pluginHandle.webrtcStuff;\n\n if (!config.pc) {\n Janus.warn(\"Invalid PeerConnection\");\n return;\n }\n\n var onDataChannelMessage = function onDataChannelMessage(event) {\n Janus.log('Received message on data channel:', event);\n var label = event.target.label;\n pluginHandle.ondata(event.data, label);\n };\n\n var onDataChannelStateChange = function onDataChannelStateChange(event) {\n Janus.log('Received state change on data channel:', event);\n var label = event.target.label;\n var protocol = event.target.protocol;\n var dcState = config.dataChannel[label] ? config.dataChannel[label].readyState : \"null\";\n Janus.log('State change on <' + label + '> data channel: ' + dcState);\n\n if (dcState === 'open') {\n // Any pending messages to send?\n if (config.dataChannel[label].pending && config.dataChannel[label].pending.length > 0) {\n Janus.log(\"Sending pending messages on <\" + label + \">:\", config.dataChannel[label].pending.length);\n\n for (var _iterator4 = _createForOfIteratorHelperLoose(config.dataChannel[label].pending), _step4; !(_step4 = _iterator4()).done;) {\n var data = _step4.value;\n Janus.log(\"Sending data on data channel <\" + label + \">\");\n Janus.debug(data);\n config.dataChannel[label].send(data);\n }\n\n config.dataChannel[label].pending = [];\n } // Notify the open data channel\n\n\n pluginHandle.ondataopen(label, protocol);\n }\n };\n\n var onDataChannelError = function onDataChannelError(error) {\n Janus.error('Got error on data channel:', error); // TODO\n };\n\n if (!incoming) {\n // FIXME Add options (ordered, maxRetransmits, etc.)\n var dcoptions = config.dataChannelOptions;\n if (dcprotocol) dcoptions.protocol = dcprotocol;\n config.dataChannel[dclabel] = config.pc.createDataChannel(dclabel, dcoptions);\n } else {\n // The channel was created by Janus\n config.dataChannel[dclabel] = incoming;\n }\n\n config.dataChannel[dclabel].onmessage = onDataChannelMessage;\n config.dataChannel[dclabel].onopen = onDataChannelStateChange;\n config.dataChannel[dclabel].onclose = onDataChannelStateChange;\n config.dataChannel[dclabel].onerror = onDataChannelError;\n config.dataChannel[dclabel].pending = [];\n if (pendingData) config.dataChannel[dclabel].pending.push(pendingData);\n } // Private method to send a data channel message\n\n\n function sendData(handleId, callbacks) {\n callbacks = callbacks || {};\n callbacks.success = typeof callbacks.success == \"function\" ? callbacks.success : Janus.noop;\n callbacks.error = typeof callbacks.error == \"function\" ? callbacks.error : Janus.noop;\n var pluginHandle = pluginHandles[handleId];\n\n if (!pluginHandle || !pluginHandle.webrtcStuff) {\n Janus.warn(\"Invalid handle\");\n callbacks.error(\"Invalid handle\");\n return;\n }\n\n var config = pluginHandle.webrtcStuff;\n var data = callbacks.text || callbacks.data;\n\n if (!data) {\n Janus.warn(\"Invalid data\");\n callbacks.error(\"Invalid data\");\n return;\n }\n\n var label = callbacks.label ? callbacks.label : Janus.dataChanDefaultLabel;\n\n if (!config.dataChannel[label]) {\n // Create new data channel and wait for it to open\n createDataChannel(handleId, label, callbacks.protocol, false, data);\n callbacks.success();\n return;\n }\n\n if (config.dataChannel[label].readyState !== \"open\") {\n config.dataChannel[label].pending.push(data);\n callbacks.success();\n return;\n }\n\n Janus.log(\"Sending data on data channel <\" + label + \">\");\n Janus.debug(data);\n config.dataChannel[label].send(data);\n callbacks.success();\n } // Private method to send a DTMF tone\n\n\n function sendDtmf(handleId, callbacks) {\n callbacks = callbacks || {};\n callbacks.success = typeof callbacks.success == \"function\" ? callbacks.success : Janus.noop;\n callbacks.error = typeof callbacks.error == \"function\" ? callbacks.error : Janus.noop;\n var pluginHandle = pluginHandles[handleId];\n\n if (!pluginHandle || !pluginHandle.webrtcStuff) {\n Janus.warn(\"Invalid handle\");\n callbacks.error(\"Invalid handle\");\n return;\n }\n\n var config = pluginHandle.webrtcStuff;\n\n if (!config.dtmfSender) {\n // Create the DTMF sender the proper way, if possible\n if (config.pc) {\n var senders = config.pc.getSenders();\n var audioSender = senders.find(function (sender) {\n return sender.track && sender.track.kind === 'audio';\n });\n\n if (!audioSender) {\n Janus.warn(\"Invalid DTMF configuration (no audio track)\");\n callbacks.error(\"Invalid DTMF configuration (no audio track)\");\n return;\n }\n\n config.dtmfSender = audioSender.dtmf;\n\n if (config.dtmfSender) {\n Janus.log(\"Created DTMF Sender\");\n\n config.dtmfSender.ontonechange = function (tone) {\n Janus.debug(\"Sent DTMF tone: \" + tone.tone);\n };\n }\n }\n\n if (!config.dtmfSender) {\n Janus.warn(\"Invalid DTMF configuration\");\n callbacks.error(\"Invalid DTMF configuration\");\n return;\n }\n }\n\n var dtmf = callbacks.dtmf;\n\n if (!dtmf) {\n Janus.warn(\"Invalid DTMF parameters\");\n callbacks.error(\"Invalid DTMF parameters\");\n return;\n }\n\n var tones = dtmf.tones;\n\n if (!tones) {\n Janus.warn(\"Invalid DTMF string\");\n callbacks.error(\"Invalid DTMF string\");\n return;\n }\n\n var duration = typeof dtmf.duration === 'number' ? dtmf.duration : 500; // We choose 500ms as the default duration for a tone\n\n var gap = typeof dtmf.gap === 'number' ? dtmf.gap : 50; // We choose 50ms as the default gap between tones\n\n Janus.debug(\"Sending DTMF string \" + tones + \" (duration \" + duration + \"ms, gap \" + gap + \"ms)\");\n config.dtmfSender.insertDTMF(tones, duration, gap);\n callbacks.success();\n } // Private method to destroy a plugin handle\n\n\n function destroyHandle(handleId, callbacks) {\n callbacks = callbacks || {};\n callbacks.success = typeof callbacks.success == \"function\" ? callbacks.success : Janus.noop;\n callbacks.error = typeof callbacks.error == \"function\" ? callbacks.error : Janus.noop;\n var noRequest = callbacks.noRequest === true;\n Janus.log(\"Destroying handle \" + handleId + \" (only-locally=\" + noRequest + \")\");\n cleanupWebrtc(handleId);\n var pluginHandle = pluginHandles[handleId];\n\n if (!pluginHandle || pluginHandle.detached) {\n // Plugin was already detached by Janus, calling detach again will return a handle not found error, so just exit here\n delete pluginHandles[handleId];\n callbacks.success();\n return;\n }\n\n pluginHandle.detached = true;\n\n if (noRequest) {\n // We're only removing the handle locally\n delete pluginHandles[handleId];\n callbacks.success();\n return;\n }\n\n if (!connected) {\n Janus.warn(\"Is the server down? (connected=false)\");\n callbacks.error(\"Is the server down? (connected=false)\");\n return;\n }\n\n var request = {\n \"janus\": \"detach\",\n \"transaction\": Janus.randomString(12)\n };\n if (pluginHandle.token) request[\"token\"] = pluginHandle.token;\n if (apisecret) request[\"apisecret\"] = apisecret;\n\n if (janusServerUsername && janusServerPassword) {\n request[\"auth_username\"] = janusServerUsername;\n request[\"auth_password\"] = janusServerPassword;\n }\n\n if (websockets) {\n request[\"session_id\"] = sessionId;\n request[\"handle_id\"] = handleId;\n ws.send(JSON.stringify(request));\n delete pluginHandles[handleId];\n callbacks.success();\n return;\n }\n\n Janus.httpAPICall(server + \"/\" + sessionId + \"/\" + handleId, {\n verb: 'POST',\n withCredentials: withCredentials,\n body: request,\n success: function success(json) {\n Janus.log(\"Destroyed handle:\");\n Janus.debug(json);\n\n if (json[\"janus\"] !== \"success\") {\n Janus.error(\"Ooops: \" + json[\"error\"].code + \" \" + json[\"error\"].reason); // FIXME\n }\n\n delete pluginHandles[handleId];\n callbacks.success();\n },\n error: function error(textStatus, errorThrown) {\n Janus.error(textStatus + \":\", errorThrown); // FIXME\n // We cleanup anyway\n\n delete pluginHandles[handleId];\n callbacks.success();\n }\n });\n } // WebRTC stuff\n\n\n function streamsDone(handleId, jsep, media, callbacks, stream) {\n var pluginHandle = pluginHandles[handleId];\n\n if (!pluginHandle || !pluginHandle.webrtcStuff) {\n Janus.warn(\"Invalid handle\"); // Close all tracks if the given stream has been created internally\n\n if (!callbacks.stream) {\n Janus.stopAllTracks(stream);\n }\n\n callbacks.error(\"Invalid handle\");\n return;\n }\n\n var config = pluginHandle.webrtcStuff;\n window.webrtcConfig = config;\n Janus.debug(\"streamsDone:\", stream);\n\n if (stream) {\n Janus.debug(\" -- Audio tracks:\", stream.getAudioTracks());\n Janus.debug(\" -- Video tracks:\", stream.getVideoTracks());\n } // We're now capturing the new stream: check if we're updating or if it's a new thing\n\n\n var addTracks = false;\n\n if (!config.myStream || !media.update || config.streamExternal && !media.replaceAudio && !media.replaceVideo) {\n config.myStream = stream;\n addTracks = true;\n } else {\n // We only need to update the existing stream\n if ((!media.update && isAudioSendEnabled(media) || media.update && (media.addAudio || media.replaceAudio)) && stream.getAudioTracks() && stream.getAudioTracks().length) {\n config.myStream.addTrack(stream.getAudioTracks()[0]);\n\n if (Janus.unifiedPlan) {\n // Use Transceivers\n Janus.log((media.replaceAudio ? \"Replacing\" : \"Adding\") + \" audio track:\", stream.getAudioTracks()[0]);\n var audioTransceiver = null;\n var transceivers = config.pc.getTransceivers();\n\n if (transceivers && transceivers.length > 0) {\n for (var _iterator5 = _createForOfIteratorHelperLoose(transceivers), _step5; !(_step5 = _iterator5()).done;) {\n var t = _step5.value;\n\n if (t.sender && t.sender.track && t.sender.track.kind === \"audio\" || t.receiver && t.receiver.track && t.receiver.track.kind === \"audio\") {\n audioTransceiver = t;\n break;\n }\n }\n }\n\n if (audioTransceiver && audioTransceiver.sender) {\n audioTransceiver.sender.replaceTrack(stream.getAudioTracks()[0]);\n } else {\n config.pc.addTrack(stream.getAudioTracks()[0], stream);\n }\n } else {\n Janus.log((media.replaceAudio ? \"Replacing\" : \"Adding\") + \" audio track:\", stream.getAudioTracks()[0]);\n config.pc.addTrack(stream.getAudioTracks()[0], stream);\n }\n }\n\n if ((!media.update && isVideoSendEnabled(media) || media.update && (media.addVideo || media.replaceVideo)) && stream.getVideoTracks() && stream.getVideoTracks().length) {\n config.myStream.addTrack(stream.getVideoTracks()[0]);\n\n if (Janus.unifiedPlan) {\n // Use Transceivers\n Janus.log((media.replaceVideo ? \"Replacing\" : \"Adding\") + \" video track:\", stream.getVideoTracks()[0]);\n var videoTransceiver = null;\n\n var _transceivers = config.pc.getTransceivers();\n\n if (_transceivers && _transceivers.length > 0) {\n for (var _iterator6 = _createForOfIteratorHelperLoose(_transceivers), _step6; !(_step6 = _iterator6()).done;) {\n var _t = _step6.value;\n\n if (_t.sender && _t.sender.track && _t.sender.track.kind === \"video\" || _t.receiver && _t.receiver.track && _t.receiver.track.kind === \"video\") {\n videoTransceiver = _t;\n break;\n }\n }\n }\n\n if (videoTransceiver && videoTransceiver.sender) {\n videoTransceiver.sender.replaceTrack(stream.getVideoTracks()[0]);\n } else {\n config.pc.addTrack(stream.getVideoTracks()[0], stream);\n }\n } else {\n Janus.log((media.replaceVideo ? \"Replacing\" : \"Adding\") + \" video track:\", stream.getVideoTracks()[0]);\n config.pc.addTrack(stream.getVideoTracks()[0], stream);\n }\n }\n } // If we still need to create a PeerConnection, let's do that\n\n\n if (!config.pc) {\n var pc_config = {\n \"iceServers\": iceServers,\n \"iceTransportPolicy\": iceTransportPolicy,\n \"bundlePolicy\": bundlePolicy\n };\n\n if (window.citrixVdaSupport === true) {\n pc_config.enableDtlsSrtp = true;\n }\n\n if (Janus.webRTCAdapter.browserDetails.browser === \"chrome\") {\n // For Chrome versions before 72, we force a plan-b semantic, and unified-plan otherwise\n pc_config[\"sdpSemantics\"] = Janus.webRTCAdapter.browserDetails.version < 72 ? \"plan-b\" : \"unified-plan\";\n }\n\n var pc_constraints = {};\n\n if (Janus.webRTCAdapter.browserDetails.browser === \"edge\") {\n // This is Edge, enable BUNDLE explicitly\n pc_config.bundlePolicy = \"max-bundle\";\n } // Check if a sender or receiver transform has been provided\n\n\n if (RTCRtpSender && (RTCRtpSender.prototype.createEncodedStreams || RTCRtpSender.prototype.createEncodedAudioStreams && RTCRtpSender.prototype.createEncodedVideoStreams) && (callbacks.senderTransforms || callbacks.receiverTransforms)) {\n config.senderTransforms = callbacks.senderTransforms;\n config.receiverTransforms = callbacks.receiverTransforms;\n pc_config[\"forceEncodedAudioInsertableStreams\"] = true;\n pc_config[\"forceEncodedVideoInsertableStreams\"] = true;\n pc_config[\"encodedInsertableStreams\"] = true;\n }\n\n Janus.log(\"Creating PeerConnection\");\n Janus.debug(pc_constraints);\n config.pc = new RTCPeerConnection(pc_config, pc_constraints);\n Janus.debug(config.pc);\n\n if (config.pc.getStats) {\n // FIXME\n config.volume = {};\n config.bitrate.value = \"0 kbits/sec\";\n }\n\n Janus.log(\"Preparing local SDP and gathering candidates (trickle=\" + config.trickle + \")\");\n\n config.pc.oniceconnectionstatechange = function () {\n if (config.pc) pluginHandle.iceState(config.pc.iceConnectionState);\n };\n\n config.pc.onicecandidate = function (event) {\n if (!event.candidate || Janus.webRTCAdapter.browserDetails.browser === 'edge' && event.candidate.candidate.indexOf('endOfCandidates') > 0) {\n Janus.log(\"End of candidates.\");\n config.iceDone = true;\n\n if (config.trickle === true) {\n // Notify end of candidates\n sendTrickleCandidate(handleId, {\n \"completed\": true\n });\n } else {\n // No trickle, time to send the complete SDP (including all candidates)\n sendSDP(handleId, callbacks);\n }\n } else {\n // JSON.stringify doesn't work on some WebRTC objects anymore\n // See https://code.google.com/p/chromium/issues/detail?id=467366\n var candidate = {\n \"candidate\": event.candidate.candidate,\n \"sdpMid\": event.candidate.sdpMid,\n \"sdpMLineIndex\": event.candidate.sdpMLineIndex\n };\n\n if (config.trickle === true) {\n // Send candidate\n sendTrickleCandidate(handleId, candidate);\n }\n }\n };\n\n config.pc.ontrack = function (event) {\n Janus.log(\"Handling Remote Track\");\n Janus.debug(event);\n if (!event.streams) return;\n config.remoteStream = event.streams[0];\n config.remoteTransceiver = event.transceiver;\n pluginHandle.onremotestream(config.remoteStream);\n if (event.track.onended) return;\n\n if (config.receiverTransforms) {\n var receiverStreams = null;\n\n if (RTCRtpSender.prototype.createEncodedStreams) {\n receiverStreams = event.receiver.createEncodedStreams();\n } else if (RTCRtpSender.prototype.createAudioEncodedStreams || RTCRtpSender.prototype.createEncodedVideoStreams) {\n if (event.track.kind === \"audio\" && config.receiverTransforms[\"audio\"]) {\n receiverStreams = event.receiver.createEncodedAudioStreams();\n } else if (event.track.kind === \"video\" && config.receiverTransforms[\"video\"]) {\n receiverStreams = event.receiver.createEncodedVideoStreams();\n }\n }\n\n if (receiverStreams) {\n console.log(receiverStreams);\n\n if (receiverStreams.readableStream && receiverStreams.writableStream) {\n receiverStreams.readableStream.pipeThrough(config.receiverTransforms[event.track.kind]).pipeTo(receiverStreams.writableStream);\n } else if (receiverStreams.readable && receiverStreams.writable) {\n receiverStreams.readable.pipeThrough(config.receiverTransforms[event.track.kind]).pipeTo(receiverStreams.writable);\n }\n }\n }\n\n var trackMutedTimeoutId = null;\n Janus.log(\"Adding onended callback to track:\", event.track);\n\n event.track.onended = function (ev) {\n Janus.log(\"Remote track removed:\", ev);\n\n if (config.remoteStream) {\n clearTimeout(trackMutedTimeoutId);\n config.remoteStream.removeTrack(ev.target);\n pluginHandle.onremotestream(config.remoteStream);\n }\n };\n\n event.track.onmute = function (ev) {\n Janus.log(\"Remote track muted:\", ev);\n\n if (config.remoteStream && trackMutedTimeoutId == null) {\n trackMutedTimeoutId = setTimeout(function () {\n Janus.log(\"Removing remote track\");\n\n if (config.remoteStream) {\n config.remoteStream.removeTrack(ev.target);\n pluginHandle.onremotestream(config.remoteStream);\n }\n\n trackMutedTimeoutId = null; // Chrome seems to raise mute events only at multiples of 834ms;\n // we set the timeout to three times this value (rounded to 840ms)\n }, 3 * 840);\n }\n };\n\n event.track.onunmute = function (ev) {\n Janus.log(\"Remote track flowing again:\", ev);\n\n if (trackMutedTimeoutId != null) {\n clearTimeout(trackMutedTimeoutId);\n trackMutedTimeoutId = null;\n } else {\n try {\n config.remoteStream.addTrack(ev.target);\n pluginHandle.onremotestream(config.remoteStream);\n } catch (e) {\n Janus.error(e);\n }\n }\n };\n };\n\n if (window.citrixVdaSupport === true) {\n config.pc.onaddstream = function (event) {\n console.log('on add stream callback. This should be the remote stream', event);\n config.remoteStream = event.stream; // Citrix stream is always inactive although it is going.\n\n config.remoteStream.active = true; // pluginHandle.onremotestream(event.stream)\n };\n }\n }\n\n if (addTracks && stream) {\n Janus.log('Adding local stream');\n var simulcast = (callbacks.simulcast === true || callbacks.simulcast2 === true) && Janus.unifiedPlan;\n var svc = callbacks.svc;\n stream.getTracks().forEach(function (track) {\n Janus.log('Adding local track:', track);\n var sender = null;\n\n if (!simulcast && !svc || track.kind === 'audio') {\n sender = config.pc.addTrack(track, stream);\n } else if (simulcast) {\n Janus.log('Enabling rid-based simulcasting:', track);\n var maxBitrates = getMaxBitrates(callbacks.simulcastMaxBitrates);\n var tr = config.pc.addTransceiver(track, {\n direction: \"sendrecv\",\n streams: [stream],\n sendEncodings: callbacks.sendEncodings || [{\n rid: \"h\",\n active: true,\n maxBitrate: maxBitrates.high\n }, {\n rid: \"m\",\n active: true,\n maxBitrate: maxBitrates.medium,\n scaleResolutionDownBy: 2\n }, {\n rid: \"l\",\n active: true,\n maxBitrate: maxBitrates.low,\n scaleResolutionDownBy: 4\n }]\n });\n if (tr) sender = tr.sender;\n } else {\n Janus.log('Enabling SVC (' + svc + '):', track);\n\n var _tr = config.pc.addTransceiver(track, {\n direction: \"sendrecv\",\n streams: [stream],\n sendEncodings: [{\n scalabilityMode: svc\n }]\n });\n\n if (_tr) sender = _tr.sender;\n } // Check if insertable streams are involved\n\n\n if (sender && config.senderTransforms) {\n var senderStreams = null;\n\n if (RTCRtpSender.prototype.createEncodedStreams) {\n senderStreams = sender.createEncodedStreams();\n } else if (RTCRtpSender.prototype.createAudioEncodedStreams || RTCRtpSender.prototype.createEncodedVideoStreams) {\n if (sender.track.kind === \"audio\" && config.senderTransforms[\"audio\"]) {\n senderStreams = sender.createEncodedAudioStreams();\n } else if (sender.track.kind === \"video\" && config.senderTransforms[\"video\"]) {\n senderStreams = sender.createEncodedVideoStreams();\n }\n }\n\n if (senderStreams) {\n console.log(senderStreams);\n\n if (senderStreams.readableStream && senderStreams.writableStream) {\n senderStreams.readableStream.pipeThrough(config.senderTransforms[sender.track.kind]).pipeTo(senderStreams.writableStream);\n } else if (senderStreams.readable && senderStreams.writable) {\n senderStreams.readable.pipeThrough(config.senderTransforms[sender.track.kind]).pipeTo(senderStreams.writable);\n }\n }\n }\n });\n } // Any data channel to create?\n\n\n if (isDataEnabled(media) && !config.dataChannel[Janus.dataChanDefaultLabel]) {\n Janus.log(\"Creating default data channel\");\n createDataChannel(handleId, Janus.dataChanDefaultLabel, null, false);\n\n config.pc.ondatachannel = function (event) {\n Janus.log(\"Data channel created by Janus:\", event);\n createDataChannel(handleId, event.channel.label, event.channel.protocol, event.channel);\n };\n } // If there's a new local stream, let's notify the application\n\n\n if (config.myStream) {\n Janus.log('informing plugin on stream');\n\n if (window.citrixVdaSupport === true) {\n // Citrix stream is always inactive although it is going.\n config.myStream.active = true;\n }\n\n pluginHandle.onlocalstream(config.myStream);\n } // Create offer/answer now\n\n\n if (!jsep) {\n Janus.log('streamDone createoffer');\n createOffer(handleId, media, callbacks);\n } else {\n Janus.log('streamDone setRemoteDescription', jsep, jsep.sdp);\n config.pc.setRemoteDescription(jsep).then(function () {\n Janus.log(\"Remote description accepted!\");\n config.remoteSdp = jsep.sdp; // Any trickle candidate we cached?\n\n if (config.candidates && config.candidates.length > 0) {\n for (var i = 0; i < config.candidates.length; i++) {\n var candidate = config.candidates[i];\n Janus.debug(\"Adding remote candidate:\", candidate);\n\n if (!candidate || candidate.completed === true) {\n // end-of-candidates\n config.pc.addIceCandidate(Janus.endOfCandidates);\n } else {\n // New candidate\n config.pc.addIceCandidate(candidate);\n }\n }\n\n config.candidates = [];\n } // Create the answer now\n\n\n createAnswer(handleId, media, callbacks);\n }, callbacks.error);\n }\n }\n\n function prepareWebrtc(handleId, offer, callbacks) {\n callbacks = callbacks || {};\n callbacks.success = typeof callbacks.success == \"function\" ? callbacks.success : Janus.noop;\n callbacks.error = typeof callbacks.error == \"function\" ? callbacks.error : webrtcError;\n var jsep = callbacks.jsep;\n\n if (offer && jsep) {\n Janus.error(\"Provided a JSEP to a createOffer\");\n callbacks.error(\"Provided a JSEP to a createOffer\");\n return;\n } else if (!offer && (!jsep || !jsep.type || !jsep.sdp)) {\n Janus.error(\"A valid JSEP is required for createAnswer\");\n callbacks.error(\"A valid JSEP is required for createAnswer\");\n return;\n }\n /* Check that callbacks.media is a (not null) Object */\n\n\n callbacks.media = typeof callbacks.media === 'object' && callbacks.media ? callbacks.media : {\n audio: true,\n video: true\n };\n var media = callbacks.media;\n var pluginHandle = pluginHandles[handleId];\n\n if (!pluginHandle || !pluginHandle.webrtcStuff) {\n Janus.warn(\"Invalid handle\");\n callbacks.error(\"Invalid handle\");\n return;\n }\n\n var config = pluginHandle.webrtcStuff;\n config.trickle = isTrickleEnabled(callbacks.trickle); // Are we updating a session?\n\n if (!config.pc) {\n // Nope, new PeerConnection\n media.update = false;\n media.keepAudio = false;\n media.keepVideo = false;\n } else {\n Janus.log(\"Updating existing media session\");\n media.update = true; // Check if there's anything to add/remove/replace, or if we\n // can go directly to preparing the new SDP offer or answer\n\n if (callbacks.stream) {\n // External stream: is this the same as the one we were using before?\n if (callbacks.stream !== config.myStream) {\n Janus.log(\"Renegotiation involves a new external stream\");\n }\n } else {\n // Check if there are changes on audio\n if (media.addAudio) {\n media.keepAudio = false;\n media.replaceAudio = false;\n media.removeAudio = false;\n media.audioSend = true;\n\n if (config.myStream && config.myStream.getAudioTracks() && config.myStream.getAudioTracks().length) {\n Janus.error(\"Can't add audio stream, there already is one\");\n callbacks.error(\"Can't add audio stream, there already is one\");\n return;\n }\n } else if (media.removeAudio) {\n media.keepAudio = false;\n media.replaceAudio = false;\n media.addAudio = false;\n media.audioSend = false;\n } else if (media.replaceAudio) {\n media.keepAudio = false;\n media.addAudio = false;\n media.removeAudio = false;\n media.audioSend = true;\n }\n\n if (!config.myStream) {\n // No media stream: if we were asked to replace, it's actually an \"add\"\n if (media.replaceAudio) {\n media.keepAudio = false;\n media.replaceAudio = false;\n media.addAudio = true;\n media.audioSend = true;\n }\n\n if (isAudioSendEnabled(media)) {\n media.keepAudio = false;\n media.addAudio = true;\n }\n } else {\n if (!config.myStream.getAudioTracks() || config.myStream.getAudioTracks().length === 0) {\n // No audio track: if we were asked to replace, it's actually an \"add\"\n if (media.replaceAudio) {\n media.keepAudio = false;\n media.replaceAudio = false;\n media.addAudio = true;\n media.audioSend = true;\n }\n\n if (isAudioSendEnabled(media)) {\n media.keepAudio = false;\n media.addAudio = true;\n }\n } else {\n // We have an audio track: should we keep it as it is?\n if (isAudioSendEnabled(media) && !media.removeAudio && !media.replaceAudio) {\n media.keepAudio = true;\n }\n }\n } // Check if there are changes on video\n\n\n if (media.addVideo) {\n media.keepVideo = false;\n media.replaceVideo = false;\n media.removeVideo = false;\n media.videoSend = true;\n\n if (config.myStream && config.myStream.getVideoTracks() && config.myStream.getVideoTracks().length) {\n Janus.error(\"Can't add video stream, there already is one\");\n callbacks.error(\"Can't add video stream, there already is one\");\n return;\n }\n } else if (media.removeVideo) {\n media.keepVideo = false;\n media.replaceVideo = false;\n media.addVideo = false;\n media.videoSend = false;\n } else if (media.replaceVideo) {\n media.keepVideo = false;\n media.addVideo = false;\n media.removeVideo = false;\n media.videoSend = true;\n }\n\n if (!config.myStream) {\n // No media stream: if we were asked to replace, it's actually an \"add\"\n if (media.replaceVideo) {\n media.keepVideo = false;\n media.replaceVideo = false;\n media.addVideo = true;\n media.videoSend = true;\n }\n\n if (isVideoSendEnabled(media)) {\n media.keepVideo = false;\n media.addVideo = true;\n }\n } else {\n if (!config.myStream.getVideoTracks() || config.myStream.getVideoTracks().length === 0) {\n // No video track: if we were asked to replace, it's actually an \"add\"\n if (media.replaceVideo) {\n media.keepVideo = false;\n media.replaceVideo = false;\n media.addVideo = true;\n media.videoSend = true;\n }\n\n if (isVideoSendEnabled(media)) {\n media.keepVideo = false;\n media.addVideo = true;\n }\n } else {\n // We have a video track: should we keep it as it is?\n if (isVideoSendEnabled(media) && !media.removeVideo && !media.replaceVideo) {\n media.keepVideo = true;\n }\n }\n } // Data channels can only be added\n\n\n if (media.addData) {\n media.data = true;\n }\n } // If we're updating and keeping all tracks, let's skip the getUserMedia part\n\n\n if (isAudioSendEnabled(media) && media.keepAudio && isVideoSendEnabled(media) && media.keepVideo) {\n pluginHandle.consentDialog(false);\n streamsDone(handleId, jsep, media, callbacks, config.myStream);\n return;\n }\n } // If we're updating, check if we need to remove/replace one of the tracks\n\n\n if (media.update && (!config.streamExternal || config.streamExternal && (media.replaceAudio || media.replaceVideo))) {\n if (media.removeAudio || media.replaceAudio) {\n if (config.myStream && config.myStream.getAudioTracks() && config.myStream.getAudioTracks().length) {\n var at = config.myStream.getAudioTracks()[0];\n Janus.log(\"Removing audio track:\", at);\n config.myStream.removeTrack(at);\n\n try {\n at.stop();\n } catch (e) {}\n }\n\n if (config.pc.getSenders() && config.pc.getSenders().length) {\n var ra = true;\n\n if (media.replaceAudio && Janus.unifiedPlan) {\n // We can use replaceTrack\n ra = false;\n }\n\n if (ra) {\n for (var _iterator7 = _createForOfIteratorHelperLoose(config.pc.getSenders()), _step7; !(_step7 = _iterator7()).done;) {\n var asnd = _step7.value;\n\n if (asnd && asnd.track && asnd.track.kind === \"audio\") {\n Janus.log(\"Removing audio sender:\", asnd);\n config.pc.removeTrack(asnd);\n }\n }\n }\n }\n }\n\n if (media.removeVideo || media.replaceVideo) {\n if (config.myStream && config.myStream.getVideoTracks() && config.myStream.getVideoTracks().length) {\n var vt = config.myStream.getVideoTracks()[0];\n Janus.log(\"Removing video track:\", vt);\n config.myStream.removeTrack(vt);\n\n try {\n vt.stop();\n } catch (e) {}\n }\n\n if (config.pc.getSenders() && config.pc.getSenders().length) {\n var rv = true;\n\n if (media.replaceVideo && Janus.unifiedPlan) {\n // We can use replaceTrack\n rv = false;\n }\n\n if (rv) {\n for (var _iterator8 = _createForOfIteratorHelperLoose(config.pc.getSenders()), _step8; !(_step8 = _iterator8()).done;) {\n var vsnd = _step8.value;\n\n if (vsnd && vsnd.track && vsnd.track.kind === \"video\") {\n Janus.log(\"Removing video sender:\", vsnd);\n config.pc.removeTrack(vsnd);\n }\n }\n }\n }\n }\n } // Was a MediaStream object passed, or do we need to take care of that?\n\n\n if (callbacks.stream) {\n var stream = callbacks.stream;\n Janus.log(\"MediaStream provided by the application\");\n Janus.debug(stream); // If this is an update, let's check if we need to release the previous stream\n\n if (media.update && config.myStream && config.myStream !== callbacks.stream && !config.streamExternal && !media.replaceAudio && !media.replaceVideo) {\n // We're replacing a stream we captured ourselves with an external one\n Janus.stopAllTracks(config.myStream);\n config.myStream = null;\n } // Skip the getUserMedia part\n\n\n config.streamExternal = true;\n pluginHandle.consentDialog(false);\n streamsDone(handleId, jsep, media, callbacks, stream);\n return;\n }\n\n if (isAudioSendEnabled(media) || isVideoSendEnabled(media)) {\n if (!Janus.isGetUserMediaAvailable()) {\n callbacks.error(\"getUserMedia not available\");\n return;\n }\n\n var constraints = {\n mandatory: {},\n optional: []\n };\n pluginHandle.consentDialog(true);\n var audioSupport = isAudioSendEnabled(media);\n if (audioSupport && media && typeof media.audio === 'object') audioSupport = media.audio;\n var videoSupport = isVideoSendEnabled(media);\n\n if (videoSupport && media) {\n var simulcast = callbacks.simulcast === true || callbacks.simulcast2 === true;\n var svc = callbacks.svc;\n if ((simulcast || svc) && !jsep && !media.video) media.video = \"hires\";\n\n if (media.video && media.video != 'screen' && media.video != 'window') {\n if (typeof media.video === 'object') {\n videoSupport = media.video;\n } else {\n var width = 0;\n var height = 0;\n\n if (media.video === 'lowres') {\n // Small resolution, 4:3\n height = 240;\n width = 320;\n } else if (media.video === 'lowres-16:9') {\n // Small resolution, 16:9\n height = 180;\n width = 320;\n } else if (media.video === 'hires' || media.video === 'hires-16:9' || media.video === 'hdres') {\n // High(HD) resolution is only 16:9\n height = 720;\n width = 1280;\n } else if (media.video === 'fhdres') {\n // Full HD resolution is only 16:9\n height = 1080;\n width = 1920;\n } else if (media.video === '4kres') {\n // 4K resolution is only 16:9\n height = 2160;\n width = 3840;\n } else if (media.video === 'stdres') {\n // Normal resolution, 4:3\n height = 480;\n width = 640;\n } else if (media.video === 'stdres-16:9') {\n // Normal resolution, 16:9\n height = 360;\n width = 640;\n } else {\n Janus.log(\"Default video setting is stdres 4:3\");\n height = 480;\n width = 640;\n }\n\n Janus.log(\"Adding media constraint:\", media.video);\n videoSupport = {\n 'height': {\n 'ideal': height\n },\n 'width': {\n 'ideal': width\n }\n };\n Janus.log(\"Adding video constraint:\", videoSupport);\n }\n } else if (media.video === 'screen' || media.video === 'window') {\n if (navigator.mediaDevices && navigator.mediaDevices.getDisplayMedia) {\n // The new experimental getDisplayMedia API is available, let's use that\n // https://groups.google.com/forum/#!topic/discuss-webrtc/Uf0SrR4uxzk\n // https://webrtchacks.com/chrome-screensharing-getdisplaymedia/\n constraints.video = {};\n\n if (media.screenshareFrameRate) {\n constraints.video.frameRate = media.screenshareFrameRate;\n }\n\n if (media.screenshareHeight) {\n constraints.video.height = media.screenshareHeight;\n }\n\n if (media.screenshareWidth) {\n constraints.video.width = media.screenshareWidth;\n }\n\n constraints.audio = media.captureDesktopAudio;\n navigator.mediaDevices.getDisplayMedia(constraints).then(function (stream) {\n pluginHandle.consentDialog(false); // only add audio if desktopAudio capture is enabled\n\n if (isAudioSendEnabled(media) && !media.keepAudio && stream.getAudioTracks().length > 0) {\n navigator.mediaDevices.getUserMedia({\n audio: true,\n video: false\n }).then(function (audioStream) {\n if (stream.getAudioTracks().length > 0) {\n var desktopAudioTrack = stream.getAudioTracks()[0];\n stream.removeTrack(desktopAudioTrack);\n config.srAudioContext = new AudioContext();\n config.srDesktopAudioStream = new MediaStream([desktopAudioTrack]);\n var source1 = config.srAudioContext.createMediaStreamSource(config.srDesktopAudioStream);\n var source2 = config.srAudioContext.createMediaStreamSource(audioStream);\n var merger = config.srAudioContext.createChannelMerger(2);\n source1.connect(merger, 0, 0);\n source2.connect(merger, 0, 1);\n var combinedStream = config.srAudioContext.createMediaStreamDestination();\n merger.connect(combinedStream);\n stream.addTrack(combinedStream.stream.getAudioTracks()[0]);\n streamsDone(handleId, jsep, media, callbacks, stream);\n }\n });\n } else {\n streamsDone(handleId, jsep, media, callbacks, stream);\n }\n }, function (error) {\n pluginHandle.consentDialog(false);\n callbacks.error(error);\n });\n return;\n } // We're going to try and use the extension for Chrome 34+, the old approach\n // for older versions of Chrome, or the experimental support in Firefox 33+\n\n\n var callbackUserMedia = function callbackUserMedia(error, stream) {\n pluginHandle.consentDialog(false);\n\n if (error) {\n callbacks.error(error);\n } else {\n streamsDone(handleId, jsep, media, callbacks, stream);\n }\n };\n\n var getScreenMedia = function getScreenMedia(constraints, gsmCallback, useAudio) {\n Janus.log(\"Adding media constraint (screen capture)\");\n Janus.debug(constraints);\n navigator.mediaDevices.getUserMedia(constraints).then(function (stream) {\n if (useAudio) {\n navigator.mediaDevices.getUserMedia({\n audio: true,\n video: false\n }).then(function (audioStream) {\n stream.addTrack(audioStream.getAudioTracks()[0]);\n gsmCallback(null, stream);\n });\n } else {\n gsmCallback(null, stream);\n }\n })[\"catch\"](function (error) {\n pluginHandle.consentDialog(false);\n gsmCallback(error);\n });\n };\n\n if (Janus.webRTCAdapter.browserDetails.browser === 'chrome') {\n var chromever = Janus.webRTCAdapter.browserDetails.version;\n var maxver = 33;\n if (window.navigator.userAgent.match('Linux')) maxver = 35; // \"known\" crash in chrome 34 and 35 on linux\n\n if (chromever >= 26 && chromever <= maxver) {\n // Chrome 26->33 requires some awkward chrome://flags manipulation\n constraints = {\n video: {\n mandatory: {\n googLeakyBucket: true,\n maxWidth: window.screen.width,\n maxHeight: window.screen.height,\n minFrameRate: media.screenshareFrameRate,\n maxFrameRate: media.screenshareFrameRate,\n chromeMediaSource: 'screen'\n }\n },\n audio: isAudioSendEnabled(media) && !media.keepAudio\n };\n getScreenMedia(constraints, callbackUserMedia);\n } else {\n // Chrome 34+ requires an extension\n Janus.extension.getScreen(function (error, sourceId) {\n if (error) {\n pluginHandle.consentDialog(false);\n return callbacks.error(error);\n }\n\n constraints = {\n audio: false,\n video: {\n mandatory: {\n chromeMediaSource: 'desktop',\n maxWidth: window.screen.width,\n maxHeight: window.screen.height,\n minFrameRate: media.screenshareFrameRate,\n maxFrameRate: media.screenshareFrameRate\n },\n optional: [{\n googLeakyBucket: true\n }, {\n googTemporalLayeredScreencast: true\n }]\n }\n };\n constraints.video.mandatory.chromeMediaSourceId = sourceId;\n getScreenMedia(constraints, callbackUserMedia, isAudioSendEnabled(media) && !media.keepAudio);\n });\n }\n } else if (Janus.webRTCAdapter.browserDetails.browser === 'firefox') {\n if (Janus.webRTCAdapter.browserDetails.version >= 33) {\n // Firefox 33+ has experimental support for screen sharing\n constraints = {\n video: {\n mozMediaSource: media.video,\n mediaSource: media.video\n },\n audio: isAudioSendEnabled(media) && !media.keepAudio\n };\n getScreenMedia(constraints, function (err, stream) {\n callbackUserMedia(err, stream); // Workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=1045810\n\n if (!err) {\n var lastTime = stream.currentTime;\n var polly = window.setInterval(function () {\n if (!stream) window.clearInterval(polly);\n\n if (stream.currentTime == lastTime) {\n window.clearInterval(polly);\n\n if (stream.onended) {\n stream.onended();\n }\n }\n\n lastTime = stream.currentTime;\n }, 500);\n }\n });\n } else {\n var error = new Error('NavigatorUserMediaError');\n error.name = 'Your version of Firefox does not support screen sharing, please install Firefox 33 (or more recent versions)';\n pluginHandle.consentDialog(false);\n callbacks.error(error);\n return;\n }\n }\n\n return;\n }\n } // If we got here, we're not screensharing\n\n\n if (!media || media.video !== 'screen') {\n // Check whether all media sources are actually available or not\n navigator.mediaDevices.enumerateDevices().then(function (devices) {\n var audioExist = devices.some(function (device) {\n return device.kind === 'audioinput';\n }),\n videoExist = isScreenSendEnabled(media) || devices.some(function (device) {\n return device.kind === 'videoinput';\n }); // Check whether a missing device is really a problem\n\n var audioSend = isAudioSendEnabled(media);\n var videoSend = isVideoSendEnabled(media);\n var needAudioDevice = isAudioSendRequired(media);\n var needVideoDevice = isVideoSendRequired(media);\n\n if (audioSend || videoSend || needAudioDevice || needVideoDevice) {\n // We need to send either audio or video\n var haveAudioDevice = audioSend ? audioExist : false;\n var haveVideoDevice = videoSend ? videoExist : false;\n\n if (!haveAudioDevice && !haveVideoDevice) {\n // FIXME Should we really give up, or just assume recvonly for both?\n pluginHandle.consentDialog(false);\n callbacks.error('No capture device found');\n return false;\n } else if (!haveAudioDevice && needAudioDevice) {\n pluginHandle.consentDialog(false);\n callbacks.error('Audio capture is required, but no capture device found');\n return false;\n } else if (!haveVideoDevice && needVideoDevice) {\n pluginHandle.consentDialog(false);\n callbacks.error('Video capture is required, but no capture device found');\n return false;\n }\n }\n\n var gumConstraints = {\n audio: audioExist && !media.keepAudio ? audioSupport : false,\n video: videoExist && !media.keepVideo ? videoSupport : false\n };\n\n if (!gumConstraints.audio && !gumConstraints.video) {\n pluginHandle.consentDialog(false);\n streamsDone(handleId, jsep, media, callbacks, stream);\n } else {\n if (window.citrixVdaSupport === true) {\n var audioInput = devices.find(function (device) {\n return device.kind === 'audioinput';\n });\n console.info('Citrix audio input device', audioInput);\n gumConstraints.audio = {};\n gumConstraints.audio.deviceId = audioInput.deviceId;\n\n if (videoSend) {\n var videoInput = devices.find(function (device) {\n return device.kind === 'videoinput';\n });\n console.info('Citrix video input device', videoInput);\n gumConstraints.video = {\n mandatory: {\n \"sourceId\": videoInput.deviceId,\n // example: \"\\\\\\\\?\\\\usb#vid_046d&pid_0843&mi_00#a&146ac81&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\\\\global\"\n \"minWidth\": 1080,\n \"maxWidth\": 1080,\n \"minHeight\": 720,\n \"maxHeight\": 720,\n \"maxFrameRate\": 30\n }\n };\n } else {\n // we don't use false, Citrix prefers undefined\n gumConstraints.video = undefined;\n }\n } else if (videoSend) {\n // let's add PTZ into the mix since we're doing video\n gumConstraints.video.pan = true;\n gumConstraints.video.tilt = true;\n gumConstraints.video.zoom = true;\n }\n\n Janus.debug(\"getUserMedia constraints\", gumConstraints);\n navigator.mediaDevices.getUserMedia(gumConstraints).then(function (stream) {\n Janus.log('media success', stream);\n pluginHandle.consentDialog(false);\n streamsDone(handleId, jsep, media, callbacks, stream);\n })[\"catch\"](function (error) {\n Janus.error('media failed', error);\n pluginHandle.consentDialog(false);\n callbacks.error({\n code: error.code,\n name: error.name,\n message: error.message\n });\n });\n }\n })[\"catch\"](function (error) {\n pluginHandle.consentDialog(false);\n callbacks.error(error);\n });\n }\n } else {\n // No need to do a getUserMedia, create offer/answer right away\n streamsDone(handleId, jsep, media, callbacks);\n }\n }\n\n function prepareWebrtcPeer(handleId, callbacks) {\n callbacks = callbacks || {};\n callbacks.success = typeof callbacks.success == \"function\" ? callbacks.success : Janus.noop;\n callbacks.error = typeof callbacks.error == \"function\" ? callbacks.error : webrtcError;\n callbacks.customizeSdp = typeof callbacks.customizeSdp == \"function\" ? callbacks.customizeSdp : Janus.noop;\n var jsep = callbacks.jsep;\n var pluginHandle = pluginHandles[handleId];\n\n if (!pluginHandle || !pluginHandle.webrtcStuff) {\n Janus.warn(\"Invalid handle\");\n callbacks.error(\"Invalid handle\");\n return;\n }\n\n var config = pluginHandle.webrtcStuff;\n\n if (jsep) {\n if (!config.pc) {\n Janus.warn(\"Wait, no PeerConnection?? if this is an answer, use createAnswer and not handleRemoteJsep\");\n callbacks.error(\"No PeerConnection: if this is an answer, use createAnswer and not handleRemoteJsep\");\n return;\n }\n\n callbacks.customizeSdp(jsep);\n Janus.log('prepareWebrtcPeer', jsep, jsep.sdp);\n config.pc.setRemoteDescription(jsep).then(function () {\n Janus.log(\"Remote description accepted!\");\n config.remoteSdp = jsep.sdp; // Any trickle candidate we cached?\n\n if (config.candidates && config.candidates.length > 0) {\n for (var i = 0; i < config.candidates.length; i++) {\n var candidate = config.candidates[i];\n Janus.debug(\"Adding remote candidate:\", candidate);\n\n if (!candidate || candidate.completed === true) {\n // end-of-candidates\n config.pc.addIceCandidate(Janus.endOfCandidates);\n } else {\n // New candidate\n config.pc.addIceCandidate(candidate);\n }\n }\n\n config.candidates = [];\n } // Done\n\n\n callbacks.success();\n }, callbacks.error);\n } else {\n callbacks.error(\"Invalid JSEP\");\n }\n }\n\n function createOffer(handleId, media, callbacks) {\n callbacks = callbacks || {};\n callbacks.success = typeof callbacks.success == \"function\" ? callbacks.success : Janus.noop;\n callbacks.error = typeof callbacks.error == \"function\" ? callbacks.error : Janus.noop;\n callbacks.customizeSdp = typeof callbacks.customizeSdp == \"function\" ? callbacks.customizeSdp : Janus.noop;\n var pluginHandle = pluginHandles[handleId];\n\n if (!pluginHandle || !pluginHandle.webrtcStuff) {\n Janus.warn(\"Invalid handle\");\n callbacks.error(\"Invalid handle\");\n return;\n }\n\n var config = pluginHandle.webrtcStuff;\n var simulcast = callbacks.simulcast === true;\n\n if (!simulcast) {\n Janus.log(\"Creating offer (iceDone=\" + config.iceDone + \")\");\n } else {\n Janus.log(\"Creating offer (iceDone=\" + config.iceDone + \", simulcast=\" + simulcast + \")\");\n } // https://code.google.com/p/webrtc/issues/detail?id=3508\n\n\n var mediaConstraints = {};\n Janus.log(\"determining UnifiedPlan \" + Janus.unifiedPlan + \", citrix \" + window.citrixVdaSupport + \", citrix transceiver \" + config.remoteTransceiver);\n\n if (Janus.unifiedPlan || window.citrixVdaSupport && config.remoteTransceiver) {\n // We can use Transceivers\n var audioTransceiver = null,\n videoTransceiver = null;\n\n if (window.citrixVdaSupport) {\n console.log('Using Citrix transceivers to control audio');\n audioTransceiver = config.remoteTransceiver;\n } else {\n var transceivers = config.pc.getTransceivers();\n\n if (transceivers && transceivers.length > 0) {\n for (var _iterator9 = _createForOfIteratorHelperLoose(transceivers), _step9; !(_step9 = _iterator9()).done;) {\n var t = _step9.value;\n\n if (t.sender && t.sender.track && t.sender.track.kind === \"audio\" || t.receiver && t.receiver.track && t.receiver.track.kind === \"audio\") {\n if (!audioTransceiver) {\n audioTransceiver = t;\n }\n\n continue;\n }\n\n if (t.sender && t.sender.track && t.sender.track.kind === \"video\" || t.receiver && t.receiver.track && t.receiver.track.kind === \"video\") {\n if (!videoTransceiver) {\n videoTransceiver = t;\n }\n\n continue;\n }\n }\n }\n } // Handle audio (and related changes, if any)\n\n\n var audioSend = isAudioSendEnabled(media);\n var audioRecv = isAudioRecvEnabled(media);\n\n if (!audioSend && !audioRecv) {\n // Audio disabled: have we removed it?\n if (media.removeAudio && audioTransceiver) {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection(\"inactive\");\n } else {\n audioTransceiver.direction = \"inactive\";\n }\n\n Janus.log(\"Setting audio transceiver to inactive:\", audioTransceiver);\n }\n } else {\n // Take care of audio m-line\n if (audioSend && audioRecv) {\n if (audioTransceiver) {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection(\"sendrecv\");\n } else {\n audioTransceiver.direction = \"sendrecv\";\n }\n\n Janus.log(\"Setting audio transceiver to sendrecv:\", audioTransceiver);\n }\n } else if (audioSend && !audioRecv) {\n if (audioTransceiver) {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection(\"sendonly\");\n } else {\n audioTransceiver.direction = \"sendonly\";\n }\n\n Janus.log(\"Setting audio transceiver to sendonly:\", audioTransceiver);\n }\n } else if (!audioSend && audioRecv) {\n if (audioTransceiver) {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection(\"recvonly\");\n } else {\n audioTransceiver.direction = \"recvonly\";\n }\n\n Janus.log(\"Setting audio transceiver to recvonly:\", audioTransceiver);\n } else {\n // In theory, this is the only case where we might not have a transceiver yet\n audioTransceiver = config.pc.addTransceiver(\"audio\", {\n direction: \"recvonly\"\n });\n Janus.log(\"Adding recvonly audio transceiver:\", audioTransceiver);\n }\n }\n } // Handle video (and related changes, if any)\n\n\n var videoSend = isVideoSendEnabled(media);\n var videoRecv = isVideoRecvEnabled(media);\n\n if (!videoSend && !videoRecv) {\n // Video disabled: have we removed it?\n if (media.removeVideo && videoTransceiver) {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection(\"inactive\");\n } else {\n videoTransceiver.direction = \"inactive\";\n }\n\n Janus.log(\"Setting video transceiver to inactive:\", videoTransceiver);\n }\n } else {\n // Take care of video m-line\n if (videoSend && videoRecv) {\n if (videoTransceiver) {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection(\"sendrecv\");\n } else {\n videoTransceiver.direction = \"sendrecv\";\n }\n\n Janus.log(\"Setting video transceiver to sendrecv:\", videoTransceiver);\n }\n } else if (videoSend && !videoRecv) {\n if (videoTransceiver) {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection(\"sendonly\");\n } else {\n videoTransceiver.direction = \"sendonly\";\n }\n\n Janus.log(\"Setting video transceiver to sendonly:\", videoTransceiver);\n }\n } else if (!videoSend && videoRecv) {\n if (videoTransceiver) {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection(\"recvonly\");\n } else {\n videoTransceiver.direction = \"recvonly\";\n }\n\n Janus.log(\"Setting video transceiver to recvonly:\", videoTransceiver);\n } else {\n // In theory, this is the only case where we might not have a transceiver yet\n videoTransceiver = config.pc.addTransceiver(\"video\", {\n direction: \"recvonly\"\n });\n Janus.log(\"Adding recvonly video transceiver:\", videoTransceiver);\n }\n }\n }\n\n if (window.citrixVdaSupport) {\n // citrix will still need the constraints, or else it goes and create defaults by adding more tracks.\n mediaConstraints[\"offerToReceiveAudio\"] = audioRecv;\n mediaConstraints[\"offerToReceiveVideo\"] = videoRecv;\n }\n } else {\n mediaConstraints[\"offerToReceiveAudio\"] = isAudioRecvEnabled(media);\n mediaConstraints[\"offerToReceiveVideo\"] = isVideoRecvEnabled(media);\n }\n\n var iceRestart = callbacks.iceRestart === true;\n\n if (iceRestart) {\n mediaConstraints[\"iceRestart\"] = true;\n }\n\n Janus.debug('create offer media constraints', mediaConstraints); // Check if this is Firefox and we've been asked to do simulcasting\n\n var sendVideo = isVideoSendEnabled(media);\n\n if (sendVideo && simulcast && Janus.webRTCAdapter.browserDetails.browser === \"firefox\") {\n // FIXME Based on https://gist.github.com/voluntas/088bc3cc62094730647b\n Janus.log(\"Enabling Simulcasting for Firefox (RID)\");\n var sender = config.pc.getSenders().find(function (s) {\n return s.track && s.track.kind === \"video\";\n });\n\n if (sender) {\n var parameters = sender.getParameters();\n\n if (!parameters) {\n parameters = {};\n }\n\n var maxBitrates = getMaxBitrates(callbacks.simulcastMaxBitrates);\n parameters.encodings = callbacks.sendEncodings || [{\n rid: \"h\",\n active: true,\n maxBitrate: maxBitrates.high\n }, {\n rid: \"m\",\n active: true,\n maxBitrate: maxBitrates.medium,\n scaleResolutionDownBy: 2\n }, {\n rid: \"l\",\n active: true,\n maxBitrate: maxBitrates.low,\n scaleResolutionDownBy: 4\n }];\n sender.setParameters(parameters);\n }\n }\n\n config.pc.createOffer(mediaConstraints).then(function (offer) {\n Janus.debug('offer created', offer, offer.sdp); // JSON.stringify doesn't work on some WebRTC objects anymore\n // See https://code.google.com/p/chromium/issues/detail?id=467366\n\n var jsep = {\n \"type\": offer.type,\n \"sdp\": offer.sdp\n };\n callbacks.customizeSdp(jsep);\n\n if (jsep.sdp.includes('usedtx=0')) {\n jsep.sdp = jsep.sdp.replace('usedtx=0', 'usedtx=1');\n } else if (!jsep.sdp.includes('usedtx=')) {\n jsep.sdp = jsep.sdp.replace('useinbandfec=1', 'useinbandfec=1;usedtx=1');\n }\n\n if (window.citrixVdaSupport === true) {\n // Citrix hides it modifiable sdp in sdp_, sdp is getter only\n offer.sdp_ = jsep.sdp;\n } else {\n offer.sdp = jsep.sdp;\n }\n\n Janus.log('setting local description', offer);\n\n if (sendVideo && simulcast && !Janus.unifiedPlan) {\n // We only do simulcast via SDP munging on older versions of Chrome and Safari\n if (Janus.webRTCAdapter.browserDetails.browser === \"chrome\" || Janus.webRTCAdapter.browserDetails.browser === \"safari\") {\n Janus.log(\"Enabling Simulcasting for Chrome (SDP munging)\");\n offer.sdp = mungeSdpForSimulcasting(offer.sdp);\n }\n }\n\n config.mySdp = {\n type: \"offer\",\n sdp: offer.sdp\n };\n config.pc.setLocalDescription(offer)[\"catch\"](callbacks.error);\n\n if (audioSend && audioTransceiver && audioTransceiver.sender) {\n var parameters = audioTransceiver.sender.getParameters();\n\n if (!parameters) {\n parameters = {};\n }\n\n if (!parameters.encodings || !Array.isArray(parameters.encodings)) {\n parameters.encodings = [{\n dtx: 'enabled'\n }];\n } else {\n if (parameters.encodings.length < 1) parameters.encodings.push({\n dtx: 'enabled'\n });else {\n parameters.encodings.forEach(function (o) {\n return o.dtx = \"enable\";\n });\n }\n }\n\n try {\n audioTransceiver.sender.setParameters(parameters);\n } catch (error) {\n Janus.error('Unable to change audio transceiver dtx parameter', error);\n }\n }\n\n config.mediaConstraints = mediaConstraints;\n\n if (!config.iceDone && !config.trickle) {\n // Don't do anything until we have all candidates\n Janus.log(\"Waiting for all candidates...\");\n return;\n } // If transforms are present, notify Janus that the media is end-to-end encrypted\n\n\n if (config.senderTransforms || config.receiverTransforms) {\n offer[\"e2ee\"] = true;\n }\n\n callbacks.success(offer);\n }, callbacks.error);\n }\n\n function createAnswer(handleId, media, callbacks) {\n callbacks = callbacks || {};\n callbacks.success = typeof callbacks.success == \"function\" ? callbacks.success : Janus.noop;\n callbacks.error = typeof callbacks.error == \"function\" ? callbacks.error : Janus.noop;\n callbacks.customizeSdp = typeof callbacks.customizeSdp == \"function\" ? callbacks.customizeSdp : Janus.noop;\n var pluginHandle = pluginHandles[handleId];\n\n if (!pluginHandle || !pluginHandle.webrtcStuff) {\n Janus.warn(\"Invalid handle\");\n callbacks.error(\"Invalid handle\");\n return;\n }\n\n var config = pluginHandle.webrtcStuff;\n var simulcast = callbacks.simulcast === true || callbacks.simulcast2 === true;\n\n if (!simulcast) {\n Janus.log(\"Creating answer (iceDone=\" + config.iceDone + \")\");\n } else {\n Janus.log(\"Creating answer (iceDone=\" + config.iceDone + \", simulcast=\" + simulcast + \")\");\n }\n\n var mediaConstraints = null;\n\n if (Janus.unifiedPlan) {\n // We can use Transceivers\n mediaConstraints = {};\n var audioTransceiver = null,\n videoTransceiver = null;\n var transceivers = config.pc.getTransceivers();\n\n if (transceivers && transceivers.length > 0) {\n for (var _iterator10 = _createForOfIteratorHelperLoose(transceivers), _step10; !(_step10 = _iterator10()).done;) {\n var t = _step10.value;\n\n if (t.sender && t.sender.track && t.sender.track.kind === \"audio\" || t.receiver && t.receiver.track && t.receiver.track.kind === \"audio\") {\n if (!audioTransceiver) audioTransceiver = t;\n continue;\n }\n\n if (t.sender && t.sender.track && t.sender.track.kind === \"video\" || t.receiver && t.receiver.track && t.receiver.track.kind === \"video\") {\n if (!videoTransceiver) videoTransceiver = t;\n continue;\n }\n }\n } // Handle audio (and related changes, if any)\n\n\n var audioSend = isAudioSendEnabled(media);\n var audioRecv = isAudioRecvEnabled(media);\n\n if (!audioSend && !audioRecv) {\n // Audio disabled: have we removed it?\n if (media.removeAudio && audioTransceiver) {\n try {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection(\"inactive\");\n } else {\n audioTransceiver.direction = \"inactive\";\n }\n\n Janus.log(\"Setting audio transceiver to inactive:\", audioTransceiver);\n } catch (e) {\n Janus.error(e);\n }\n }\n } else {\n // Take care of audio m-line\n if (audioSend && audioRecv) {\n if (audioTransceiver) {\n try {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection(\"sendrecv\");\n } else {\n audioTransceiver.direction = \"sendrecv\";\n }\n\n Janus.log(\"Setting audio transceiver to sendrecv:\", audioTransceiver);\n } catch (e) {\n Janus.error(e);\n }\n }\n } else if (audioSend && !audioRecv) {\n try {\n if (audioTransceiver) {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection(\"sendonly\");\n } else {\n audioTransceiver.direction = \"sendonly\";\n }\n\n Janus.log(\"Setting audio transceiver to sendonly:\", audioTransceiver);\n }\n } catch (e) {\n Janus.error(e);\n }\n } else if (!audioSend && audioRecv) {\n if (audioTransceiver) {\n try {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection(\"recvonly\");\n } else {\n audioTransceiver.direction = \"recvonly\";\n }\n\n Janus.log(\"Setting audio transceiver to recvonly:\", audioTransceiver);\n } catch (e) {\n Janus.error(e);\n }\n } else {\n // In theory, this is the only case where we might not have a transceiver yet\n audioTransceiver = config.pc.addTransceiver(\"audio\", {\n direction: \"recvonly\"\n });\n Janus.log(\"Adding recvonly audio transceiver:\", audioTransceiver);\n }\n }\n } // Handle video (and related changes, if any)\n\n\n var videoSend = isVideoSendEnabled(media);\n var videoRecv = isVideoRecvEnabled(media);\n\n if (!videoSend && !videoRecv) {\n // Video disabled: have we removed it?\n if (media.removeVideo && videoTransceiver) {\n try {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection(\"inactive\");\n } else {\n videoTransceiver.direction = \"inactive\";\n }\n\n Janus.log(\"Setting video transceiver to inactive:\", videoTransceiver);\n } catch (e) {\n Janus.error(e);\n }\n }\n } else {\n // Take care of video m-line\n if (videoSend && videoRecv) {\n if (videoTransceiver) {\n try {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection(\"sendrecv\");\n } else {\n videoTransceiver.direction = \"sendrecv\";\n }\n\n Janus.log(\"Setting video transceiver to sendrecv:\", videoTransceiver);\n } catch (e) {\n Janus.error(e);\n }\n }\n } else if (videoSend && !videoRecv) {\n if (videoTransceiver) {\n try {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection(\"sendonly\");\n } else {\n videoTransceiver.direction = \"sendonly\";\n }\n\n Janus.log(\"Setting video transceiver to sendonly:\", videoTransceiver);\n } catch (e) {\n Janus.error(e);\n }\n }\n } else if (!videoSend && videoRecv) {\n if (videoTransceiver) {\n try {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection(\"recvonly\");\n } else {\n videoTransceiver.direction = \"recvonly\";\n }\n\n Janus.log(\"Setting video transceiver to recvonly:\", videoTransceiver);\n } catch (e) {\n Janus.error(e);\n }\n } else {\n // In theory, this is the only case where we might not have a transceiver yet\n videoTransceiver = config.pc.addTransceiver(\"video\", {\n direction: \"recvonly\"\n });\n Janus.log(\"Adding recvonly video transceiver:\", videoTransceiver);\n }\n }\n }\n } else {\n if (Janus.webRTCAdapter.browserDetails.browser === \"firefox\" || Janus.webRTCAdapter.browserDetails.browser === \"edge\") {\n mediaConstraints = {\n offerToReceiveAudio: isAudioRecvEnabled(media),\n offerToReceiveVideo: isVideoRecvEnabled(media)\n };\n } else {\n mediaConstraints = {\n mandatory: {\n OfferToReceiveAudio: isAudioRecvEnabled(media),\n OfferToReceiveVideo: isVideoRecvEnabled(media)\n }\n };\n }\n }\n\n Janus.debug(mediaConstraints); // Check if this is Firefox and we've been asked to do simulcasting\n\n var sendVideo = isVideoSendEnabled(media);\n\n if (sendVideo && simulcast && Janus.webRTCAdapter.browserDetails.browser === \"firefox\") {\n // FIXME Based on https://gist.github.com/voluntas/088bc3cc62094730647b\n Janus.log(\"Enabling Simulcasting for Firefox (RID)\");\n var sender = config.pc.getSenders()[1];\n Janus.log(sender);\n var parameters = sender.getParameters();\n Janus.log(parameters);\n var maxBitrates = getMaxBitrates(callbacks.simulcastMaxBitrates);\n sender.setParameters({\n encodings: callbacks.sendEncodings || [{\n rid: \"h\",\n active: true,\n maxBitrate: maxBitrates.high\n }, {\n rid: \"m\",\n active: true,\n maxBitrate: maxBitrates.medium,\n scaleResolutionDownBy: 2\n }, {\n rid: \"l\",\n active: true,\n maxBitrate: maxBitrates.low,\n scaleResolutionDownBy: 4\n }]\n });\n }\n\n config.pc.createAnswer(mediaConstraints).then(function (answer) {\n Janus.debug('create answer', answer, answer.sdp); // JSON.stringify doesn't work on some WebRTC objects anymore\n // See https://code.google.com/p/chromium/issues/detail?id=467366\n\n var jsep = {\n \"type\": answer.type,\n \"sdp\": answer.sdp\n };\n callbacks.customizeSdp(jsep);\n\n if (jsep.sdp.includes('usedtx=0')) {\n jsep.sdp = jsep.sdp.replace('usedtx=0', 'usedtx=1');\n } else if (!jsep.sdp.includes('usedtx=')) {\n jsep.sdp = jsep.sdp.replace('useinbandfec=1', 'useinbandfec=1;usedtx=1');\n }\n\n if (window.citrixVdaSupport === true) {\n // Citrix hides it modifiable sdp in sdp_, sdp is getter only\n answer.sdp_ = jsep.sdp;\n } else {\n answer.sdp = jsep.sdp;\n }\n\n Janus.log(\"Setting local description\");\n\n if (sendVideo && simulcast && !Janus.unifiedPlan) {\n // We only do simulcast via SDP munging on older versions of Chrome and Safari\n if (Janus.webRTCAdapter.browserDetails.browser === \"chrome\") {\n // FIXME Apparently trying to simulcast when answering breaks video in Chrome...\n //~ Janus.log(\"Enabling Simulcasting for Chrome (SDP munging)\");\n //~ answer.sdp = mungeSdpForSimulcasting(answer.sdp);\n Janus.warn(\"simulcast=true, but this is an answer, and video breaks in Chrome if we enable it\");\n }\n }\n\n config.mySdp = {\n type: \"answer\",\n sdp: answer.sdp\n };\n config.pc.setLocalDescription(answer)[\"catch\"](callbacks.error);\n\n if (audioSend && audioTransceiver && audioTransceiver.sender) {\n var parameters = audioTransceiver.sender.getParameters();\n\n if (!parameters) {\n parameters = {};\n }\n\n if (!parameters.encodings || !Array.isArray(parameters.encodings)) {\n parameters.encodings = [{\n dtx: 'enabled'\n }];\n } else {\n if (parameters.encodings.length < 1) parameters.encodings.push({\n dtx: 'enabled'\n });else {\n parameters.encodings.forEach(function (o) {\n return o.dtx = \"enable\";\n });\n }\n }\n\n try {\n audioTransceiver.sender.setParameters(parameters);\n } catch (error) {\n Janus.error('Unable to change audio transceiver dtx parameter', error);\n }\n }\n\n config.mediaConstraints = mediaConstraints;\n\n if (!config.iceDone && !config.trickle) {\n // Don't do anything until we have all candidates\n Janus.log(\"Waiting for all candidates...\");\n return;\n } // If transforms are present, notify Janus that the media is end-to-end encrypted\n\n\n if (config.senderTransforms || config.receiverTransforms) {\n answer[\"e2ee\"] = true;\n }\n\n callbacks.success(answer);\n }, callbacks.error);\n }\n\n function sendSDP(handleId, callbacks) {\n callbacks = callbacks || {};\n callbacks.success = typeof callbacks.success == \"function\" ? callbacks.success : Janus.noop;\n callbacks.error = typeof callbacks.error == \"function\" ? callbacks.error : Janus.noop;\n var pluginHandle = pluginHandles[handleId];\n\n if (!pluginHandle || !pluginHandle.webrtcStuff) {\n Janus.warn(\"Invalid handle, not sending anything\");\n return;\n }\n\n var config = pluginHandle.webrtcStuff;\n Janus.log(\"Sending offer/answer SDP...\");\n\n if (!config.mySdp) {\n Janus.warn(\"Local SDP instance is invalid, not sending anything...\");\n return;\n }\n\n config.mySdp = {\n \"type\": config.pc.localDescription.type,\n \"sdp\": config.pc.localDescription.sdp\n };\n if (config.trickle === false) config.mySdp[\"trickle\"] = false;\n Janus.debug(callbacks);\n config.sdpSent = true;\n callbacks.success(config.mySdp);\n }\n\n function _getVolume(handleId, remote) {\n var pluginHandle = pluginHandles[handleId];\n\n if (!pluginHandle || !pluginHandle.webrtcStuff) {\n Janus.warn(\"Invalid handle\");\n return 0;\n }\n\n var stream = remote ? \"remote\" : \"local\";\n var config = pluginHandle.webrtcStuff;\n if (!config.volume[stream]) config.volume[stream] = {\n value: 0\n }; // Start getting the volume, if audioLevel in getStats is supported (apparently\n // they're only available in Chrome/Safari right now: https://webrtc-stats.callstats.io/)\n\n if (config.pc.getStats && (Janus.webRTCAdapter.browserDetails.browser === \"chrome\" || Janus.webRTCAdapter.browserDetails.browser === \"safari\")) {\n if (remote && !config.remoteStream) {\n Janus.warn(\"Remote stream unavailable\");\n return 0;\n } else if (!remote && !config.myStream) {\n Janus.warn(\"Local stream unavailable\");\n return 0;\n }\n\n if (!config.volume[stream].timer) {\n Janus.log(\"Starting \" + stream + \" volume monitor\");\n config.volume[stream].timer = setInterval(function () {\n config.pc.getStats().then(function (stats) {\n stats.forEach(function (res) {\n if (!res || res.kind !== \"audio\") return;\n if (remote && !res.remoteSource || !remote && res.type !== \"media-source\") return;\n config.volume[stream].value = res.audioLevel ? res.audioLevel : 0;\n });\n });\n }, 200);\n return 0; // We don't have a volume to return yet\n }\n\n return config.volume[stream].value;\n } else {\n // audioInputLevel and audioOutputLevel seem only available in Chrome? audioLevel\n // seems to be available on Chrome and Firefox, but they don't seem to work\n Janus.warn(\"Getting the \" + stream + \" volume unsupported by browser\");\n return 0;\n }\n }\n\n function isMuted(handleId, video) {\n var pluginHandle = pluginHandles[handleId];\n\n if (!pluginHandle || !pluginHandle.webrtcStuff) {\n Janus.warn(\"Invalid handle\");\n return true;\n }\n\n var config = pluginHandle.webrtcStuff;\n\n if (!config.pc) {\n Janus.warn(\"Invalid PeerConnection\");\n return true;\n }\n\n if (!config.myStream) {\n Janus.warn(\"Invalid local MediaStream\");\n return true;\n }\n\n if (video) {\n // Check video track\n if (!config.myStream.getVideoTracks() || config.myStream.getVideoTracks().length === 0) {\n Janus.warn(\"No video track\");\n return true;\n }\n\n return !config.myStream.getVideoTracks()[0].enabled;\n } else {\n // Check audio track\n if (!config.myStream.getAudioTracks() || config.myStream.getAudioTracks().length === 0) {\n Janus.warn(\"No audio track\");\n return true;\n }\n\n return !config.myStream.getAudioTracks()[0].enabled;\n }\n }\n\n function mute(handleId, video, mute) {\n var pluginHandle = pluginHandles[handleId];\n\n if (!pluginHandle || !pluginHandle.webrtcStuff) {\n Janus.warn(\"Invalid handle\");\n return false;\n }\n\n var config = pluginHandle.webrtcStuff;\n\n if (!config.pc) {\n Janus.warn(\"Invalid PeerConnection\");\n return false;\n }\n\n if (!config.myStream) {\n Janus.warn(\"Invalid local MediaStream\");\n return false;\n }\n\n if (video) {\n // Mute/unmute video track\n if (!config.myStream.getVideoTracks() || config.myStream.getVideoTracks().length === 0) {\n Janus.warn(\"No video track\");\n return false;\n }\n\n config.myStream.getVideoTracks()[0].enabled = !mute;\n return true;\n } else {\n // Mute/unmute audio track\n if (!config.myStream.getAudioTracks() || config.myStream.getAudioTracks().length === 0) {\n Janus.warn(\"No audio track\");\n return false;\n }\n\n config.myStream.getAudioTracks()[0].enabled = !mute;\n return true;\n }\n }\n\n function _getBitrate(handleId) {\n var pluginHandle = pluginHandles[handleId];\n\n if (!pluginHandle || !pluginHandle.webrtcStuff) {\n Janus.warn(\"Invalid handle\");\n return \"Invalid handle\";\n }\n\n var config = pluginHandle.webrtcStuff;\n if (!config.pc) return \"Invalid PeerConnection\"; // Start getting the bitrate, if getStats is supported\n\n if (config.pc.getStats) {\n if (!config.bitrate.timer) {\n Janus.log(\"Starting bitrate timer (via getStats)\");\n config.bitrate.timer = setInterval(function () {\n config.pc.getStats().then(function (stats) {\n stats.forEach(function (res) {\n if (!res) return;\n var inStats = false; // Check if these are statistics on incoming media\n\n if ((res.mediaType === \"video\" || res.id.toLowerCase().indexOf(\"video\") > -1) && res.type === \"inbound-rtp\" && res.id.indexOf(\"rtcp\") < 0) {\n // New stats\n inStats = true;\n } else if (res.type == 'ssrc' && res.bytesReceived && (res.googCodecName === \"VP8\" || res.googCodecName === \"\")) {\n // Older Chromer versions\n inStats = true;\n } // Parse stats now\n\n\n if (inStats) {\n config.bitrate.bsnow = res.bytesReceived;\n config.bitrate.tsnow = res.timestamp;\n\n if (config.bitrate.bsbefore === null || config.bitrate.tsbefore === null) {\n // Skip this round\n config.bitrate.bsbefore = config.bitrate.bsnow;\n config.bitrate.tsbefore = config.bitrate.tsnow;\n } else {\n // Calculate bitrate\n var timePassed = config.bitrate.tsnow - config.bitrate.tsbefore;\n if (Janus.webRTCAdapter.browserDetails.browser === \"safari\") timePassed = timePassed / 1000; // Apparently the timestamp is in microseconds, in Safari\n\n var bitRate = Math.round((config.bitrate.bsnow - config.bitrate.bsbefore) * 8 / timePassed);\n if (Janus.webRTCAdapter.browserDetails.browser === \"safari\") bitRate = parseInt(bitRate / 1000);\n config.bitrate.value = bitRate + ' kbits/sec'; //~ Janus.log(\"Estimated bitrate is \" + config.bitrate.value);\n\n config.bitrate.bsbefore = config.bitrate.bsnow;\n config.bitrate.tsbefore = config.bitrate.tsnow;\n }\n }\n });\n });\n }, 1000);\n return \"0 kbits/sec\"; // We don't have a bitrate value yet\n }\n\n return config.bitrate.value;\n } else {\n Janus.warn(\"Getting the video bitrate unsupported by browser\");\n return \"Feature unsupported by browser\";\n }\n }\n\n function webrtcError(error) {\n Janus.error(\"WebRTC error:\", error);\n }\n\n function cleanupWebrtc(handleId, hangupRequest) {\n Janus.log(\"Cleaning WebRTC stuff\");\n var pluginHandle = pluginHandles[handleId];\n\n if (!pluginHandle) {\n // Nothing to clean\n return;\n }\n\n var config = pluginHandle.webrtcStuff;\n\n if (config) {\n if (hangupRequest === true) {\n // Send a hangup request (we don't really care about the response)\n var request = {\n \"janus\": \"hangup\",\n \"transaction\": Janus.randomString(12)\n };\n if (pluginHandle.token) request[\"token\"] = pluginHandle.token;\n if (apisecret) request[\"apisecret\"] = apisecret;\n\n if (janusServerUsername && janusServerPassword) {\n request[\"auth_username\"] = janusServerUsername;\n request[\"auth_password\"] = janusServerPassword;\n }\n\n Janus.debug(\"Sending hangup request (handle=\" + handleId + \"):\");\n Janus.debug(request);\n\n if (websockets) {\n request[\"session_id\"] = sessionId;\n request[\"handle_id\"] = handleId;\n ws.send(JSON.stringify(request));\n } else {\n Janus.httpAPICall(server + \"/\" + sessionId + \"/\" + handleId, {\n verb: 'POST',\n withCredentials: withCredentials,\n body: request\n });\n }\n } // Cleanup stack\n\n\n config.remoteStream = null;\n config.remoteTransceiver = null;\n\n if (config.volume) {\n if (config.volume[\"local\"] && config.volume[\"local\"].timer) clearInterval(config.volume[\"local\"].timer);\n if (config.volume[\"remote\"] && config.volume[\"remote\"].timer) clearInterval(config.volume[\"remote\"].timer);\n }\n\n config.volume = {};\n if (config.bitrate.timer) clearInterval(config.bitrate.timer);\n config.bitrate.timer = null;\n config.bitrate.bsnow = null;\n config.bitrate.bsbefore = null;\n config.bitrate.tsnow = null;\n config.bitrate.tsbefore = null;\n config.bitrate.value = null;\n\n if (!config.streamExternal && config.myStream) {\n Janus.log(\"Stopping local stream tracks\");\n Janus.stopAllTracks(config.myStream);\n }\n\n config.streamExternal = false;\n config.myStream = null;\n\n if (config.srAudioContext) {\n config.srAudioContext.close();\n config.srAudioContext = null;\n }\n\n if (config.srDesktopAudioStream) {\n Janus.log(\"Stopping desktop audio local stream tracks\");\n Janus.stopAllTracks(config.srDesktopAudioStream);\n } // Close PeerConnection\n\n\n try {\n config.pc.close();\n } catch (e) {// Do nothing\n }\n\n config.pc = null;\n config.candidates = null;\n config.mySdp = null;\n config.remoteSdp = null;\n config.iceDone = false;\n config.dataChannel = {};\n config.dtmfSender = null;\n config.senderTransforms = null;\n config.receiverTransforms = null;\n }\n\n pluginHandle.oncleanup();\n } // Helper method to munge an SDP to enable simulcasting (Chrome only)\n\n\n function mungeSdpForSimulcasting(sdp) {\n // Let's munge the SDP to add the attributes for enabling simulcasting\n // (based on https://gist.github.com/ggarber/a19b4c33510028b9c657)\n var lines = sdp.split(\"\\r\\n\");\n var video = false;\n var ssrc = [-1],\n ssrc_fid = [-1];\n var cname = null,\n msid = null,\n mslabel = null,\n label = null;\n var insertAt = -1;\n\n for (var _i = 0; _i < lines.length; _i++) {\n var mline = lines[_i].match(/m=(\\w+) */);\n\n if (mline) {\n var medium = mline[1];\n\n if (medium === \"video\") {\n // New video m-line: make sure it's the first one\n if (ssrc[0] < 0) {\n video = true;\n } else {\n // We're done, let's add the new attributes here\n insertAt = _i;\n break;\n }\n } else {\n // New non-video m-line: do we have what we were looking for?\n if (ssrc[0] > -1) {\n // We're done, let's add the new attributes here\n insertAt = _i;\n break;\n }\n }\n\n continue;\n }\n\n if (!video) continue;\n\n var sim = lines[_i].match(/a=ssrc-group:SIM (\\d+) (\\d+) (\\d+)/);\n\n if (sim) {\n Janus.warn(\"The SDP already contains a SIM attribute, munging will be skipped\");\n return sdp;\n }\n\n var fid = lines[_i].match(/a=ssrc-group:FID (\\d+) (\\d+)/);\n\n if (fid) {\n ssrc[0] = fid[1];\n ssrc_fid[0] = fid[2];\n lines.splice(_i, 1);\n _i--;\n continue;\n }\n\n if (ssrc[0]) {\n var match = lines[_i].match('a=ssrc:' + ssrc[0] + ' cname:(.+)');\n\n if (match) {\n cname = match[1];\n }\n\n match = lines[_i].match('a=ssrc:' + ssrc[0] + ' msid:(.+)');\n\n if (match) {\n msid = match[1];\n }\n\n match = lines[_i].match('a=ssrc:' + ssrc[0] + ' mslabel:(.+)');\n\n if (match) {\n mslabel = match[1];\n }\n\n match = lines[_i].match('a=ssrc:' + ssrc[0] + ' label:(.+)');\n\n if (match) {\n label = match[1];\n }\n\n if (lines[_i].indexOf('a=ssrc:' + ssrc_fid[0]) === 0) {\n lines.splice(_i, 1);\n _i--;\n continue;\n }\n\n if (lines[_i].indexOf('a=ssrc:' + ssrc[0]) === 0) {\n lines.splice(_i, 1);\n _i--;\n continue;\n }\n }\n\n if (lines[_i].length == 0) {\n lines.splice(_i, 1);\n _i--;\n continue;\n }\n }\n\n if (ssrc[0] < 0) {\n // Couldn't find a FID attribute, let's just take the first video SSRC we find\n insertAt = -1;\n video = false;\n\n for (var _i2 = 0; _i2 < lines.length; _i2++) {\n var _mline = lines[_i2].match(/m=(\\w+) */);\n\n if (_mline) {\n var _medium = _mline[1];\n\n if (_medium === \"video\") {\n // New video m-line: make sure it's the first one\n if (ssrc[0] < 0) {\n video = true;\n } else {\n // We're done, let's add the new attributes here\n insertAt = _i2;\n break;\n }\n } else {\n // New non-video m-line: do we have what we were looking for?\n if (ssrc[0] > -1) {\n // We're done, let's add the new attributes here\n insertAt = _i2;\n break;\n }\n }\n\n continue;\n }\n\n if (!video) continue;\n\n if (ssrc[0] < 0) {\n var value = lines[_i2].match(/a=ssrc:(\\d+)/);\n\n if (value) {\n ssrc[0] = value[1];\n lines.splice(_i2, 1);\n _i2--;\n continue;\n }\n } else {\n var _match = lines[_i2].match('a=ssrc:' + ssrc[0] + ' cname:(.+)');\n\n if (_match) {\n cname = _match[1];\n }\n\n _match = lines[_i2].match('a=ssrc:' + ssrc[0] + ' msid:(.+)');\n\n if (_match) {\n msid = _match[1];\n }\n\n _match = lines[_i2].match('a=ssrc:' + ssrc[0] + ' mslabel:(.+)');\n\n if (_match) {\n mslabel = _match[1];\n }\n\n _match = lines[_i2].match('a=ssrc:' + ssrc[0] + ' label:(.+)');\n\n if (_match) {\n label = _match[1];\n }\n\n if (lines[_i2].indexOf('a=ssrc:' + ssrc_fid[0]) === 0) {\n lines.splice(_i2, 1);\n _i2--;\n continue;\n }\n\n if (lines[_i2].indexOf('a=ssrc:' + ssrc[0]) === 0) {\n lines.splice(_i2, 1);\n _i2--;\n continue;\n }\n }\n\n if (lines[_i2].length === 0) {\n lines.splice(_i2, 1);\n _i2--;\n continue;\n }\n }\n }\n\n if (ssrc[0] < 0) {\n // Still nothing, let's just return the SDP we were asked to munge\n Janus.warn(\"Couldn't find the video SSRC, simulcasting NOT enabled\");\n return sdp;\n }\n\n if (insertAt < 0) {\n // Append at the end\n insertAt = lines.length;\n } // Generate a couple of SSRCs (for retransmissions too)\n // Note: should we check if there are conflicts, here?\n\n\n ssrc[1] = Math.floor(Math.random() * 0xFFFFFFFF);\n ssrc[2] = Math.floor(Math.random() * 0xFFFFFFFF);\n ssrc_fid[1] = Math.floor(Math.random() * 0xFFFFFFFF);\n ssrc_fid[2] = Math.floor(Math.random() * 0xFFFFFFFF); // Add attributes to the SDP\n\n for (var i = 0; i < ssrc.length; i++) {\n if (cname) {\n lines.splice(insertAt, 0, 'a=ssrc:' + ssrc[i] + ' cname:' + cname);\n insertAt++;\n }\n\n if (msid) {\n lines.splice(insertAt, 0, 'a=ssrc:' + ssrc[i] + ' msid:' + msid);\n insertAt++;\n }\n\n if (mslabel) {\n lines.splice(insertAt, 0, 'a=ssrc:' + ssrc[i] + ' mslabel:' + mslabel);\n insertAt++;\n }\n\n if (label) {\n lines.splice(insertAt, 0, 'a=ssrc:' + ssrc[i] + ' label:' + label);\n insertAt++;\n } // Add the same info for the retransmission SSRC\n\n\n if (cname) {\n lines.splice(insertAt, 0, 'a=ssrc:' + ssrc_fid[i] + ' cname:' + cname);\n insertAt++;\n }\n\n if (msid) {\n lines.splice(insertAt, 0, 'a=ssrc:' + ssrc_fid[i] + ' msid:' + msid);\n insertAt++;\n }\n\n if (mslabel) {\n lines.splice(insertAt, 0, 'a=ssrc:' + ssrc_fid[i] + ' mslabel:' + mslabel);\n insertAt++;\n }\n\n if (label) {\n lines.splice(insertAt, 0, 'a=ssrc:' + ssrc_fid[i] + ' label:' + label);\n insertAt++;\n }\n }\n\n lines.splice(insertAt, 0, 'a=ssrc-group:FID ' + ssrc[2] + ' ' + ssrc_fid[2]);\n lines.splice(insertAt, 0, 'a=ssrc-group:FID ' + ssrc[1] + ' ' + ssrc_fid[1]);\n lines.splice(insertAt, 0, 'a=ssrc-group:FID ' + ssrc[0] + ' ' + ssrc_fid[0]);\n lines.splice(insertAt, 0, 'a=ssrc-group:SIM ' + ssrc[0] + ' ' + ssrc[1] + ' ' + ssrc[2]);\n sdp = lines.join(\"\\r\\n\");\n if (!sdp.endsWith(\"\\r\\n\")) sdp += \"\\r\\n\";\n return sdp;\n } // Helper methods to parse a media object\n\n\n function isAudioSendEnabled(media) {\n Janus.debug(\"isAudioSendEnabled:\", media);\n if (!media) return true; // Default\n\n if (media.audio === false) return false; // Generic audio has precedence\n\n if (media.audioSend === undefined || media.audioSend === null) return true; // Default\n\n return media.audioSend === true;\n }\n\n function isAudioSendRequired(media) {\n Janus.debug(\"isAudioSendRequired:\", media);\n if (!media) return false; // Default\n\n if (media.audio === false || media.audioSend === false) return false; // If we're not asking to capture audio, it's not required\n\n if (media.failIfNoAudio === undefined || media.failIfNoAudio === null) return false; // Default\n\n return media.failIfNoAudio === true;\n }\n\n function isAudioRecvEnabled(media) {\n Janus.debug(\"isAudioRecvEnabled:\", media);\n if (!media) return true; // Default\n\n if (media.audio === false) return false; // Generic audio has precedence\n\n if (media.audioRecv === undefined || media.audioRecv === null) return true; // Default\n\n return media.audioRecv === true;\n }\n\n function isVideoSendEnabled(media) {\n Janus.debug(\"isVideoSendEnabled:\", media);\n if (!media) return true; // Default\n\n if (media.video === false) return false; // Generic video has precedence\n\n if (media.videoSend === undefined || media.videoSend === null) return true; // Default\n\n return media.videoSend === true;\n }\n\n function isVideoSendRequired(media) {\n Janus.debug(\"isVideoSendRequired:\", media);\n if (!media) return false; // Default\n\n if (media.video === false || media.videoSend === false) return false; // If we're not asking to capture video, it's not required\n\n if (media.failIfNoVideo === undefined || media.failIfNoVideo === null) return false; // Default\n\n return media.failIfNoVideo === true;\n }\n\n function isVideoRecvEnabled(media) {\n Janus.debug(\"isVideoRecvEnabled:\", media);\n if (!media) return true; // Default\n\n if (media.video === false) return false; // Generic video has precedence\n\n if (media.videoRecv === undefined || media.videoRecv === null) return true; // Default\n\n return media.videoRecv === true;\n }\n\n function isScreenSendEnabled(media) {\n Janus.debug(\"isScreenSendEnabled:\", media);\n if (!media) return false;\n if (typeof media.video !== 'object' || typeof media.video.mandatory !== 'object') return false;\n var constraints = media.video.mandatory;\n if (constraints.chromeMediaSource) return constraints.chromeMediaSource === 'desktop' || constraints.chromeMediaSource === 'screen';else if (constraints.mozMediaSource) return constraints.mozMediaSource === 'window' || constraints.mozMediaSource === 'screen';else if (constraints.mediaSource) return constraints.mediaSource === 'window' || constraints.mediaSource === 'screen';\n return false;\n }\n\n function isDataEnabled(media) {\n Janus.debug(\"isDataEnabled:\", media);\n\n if (Janus.webRTCAdapter.browserDetails.browser === \"edge\") {\n Janus.warn(\"Edge doesn't support data channels yet\");\n return false;\n }\n\n if (media === undefined || media === null) return false; // Default\n\n return media.data === true;\n }\n\n function isTrickleEnabled(trickle) {\n Janus.debug(\"isTrickleEnabled:\", trickle);\n return trickle === false ? false : true;\n }\n}\n\nvar isElectronClient = window.ipcRenderer !== undefined; // top \n\nvar sipCtiSubscribeStates = {\n initial: 'inactive',\n states: {\n inactive: {\n on: {\n SUBSCRIBE: {\n target: 'tryingSubscribe',\n cond: function cond(context) {\n return context.instanceId == 0 && context.pbxPlaform !== \"cucm\";\n }\n }\n }\n },\n notAllowed: {},\n unsubscribed: {\n after: {\n 30000: 'tryingSubscribe'\n },\n on: {\n SUBSCRIBE: 'tryingSubscribe'\n }\n },\n tryingSubscribe: {\n entry: subscribeAction,\n on: {\n SUBSCRIBING: {},\n SUBSCRIBE_FAILED: [{\n target: 'unsubscribed',\n cond: function cond(context, event) {\n return event.result[\"code\"] !== 405;\n },\n actions: /*#__PURE__*/sendParent$1(function (context, event) {\n return {\n type: 'PLUGIN_CTI_SUBSCRIBE_FAILED',\n instanceId: context.instanceId\n };\n })\n }, {\n target: 'notAllowed'\n }],\n SUBSCRIBE_SUCCEEDED: 'subscribed'\n }\n },\n subscribed: {\n invoke: {\n id: 'notifyProcessor',\n src: function src(context, event) {\n return function (callback, onReceive) {\n onReceive(function (e) {\n processNotifyAction(e, callback);\n });\n };\n }\n },\n on: {\n SUBSCRIBE_FAILED: {\n target: 'unsubscribed',\n actions: /*#__PURE__*/sendParent$1(function (context, event) {\n return {\n type: 'PLUGIN_CTI_SUBSCRIBE_FAILED',\n instanceId: context.instanceId\n };\n })\n },\n SUBSCRIBE_SUCCEEDED: {},\n UNSUBSCRIBE: {\n actions: unsubscribeAction\n },\n NOTIFY: {\n actions: /*#__PURE__*/forwardTo$1('notifyProcessor'),\n cond: function cond(context, event) {\n return event.result[\"notify\"] === \"ipfx-cti\";\n }\n },\n CTI_MWI: {\n actions: /*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n })\n },\n CANCEL_PENDING_CALL: {\n actions: /*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n })\n },\n CTI_ANSWER: {\n actions: /*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n })\n },\n CTI_HOLD: {\n actions: /*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n })\n },\n CTI_RESUME: {\n actions: /*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n })\n },\n CTI_DIAL: {\n actions: /*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n })\n },\n START_CAPTURE: {\n actions: /*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n })\n },\n STOP_CAPTURE: {\n actions: /*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n })\n },\n SUSPEND_CAPTURE: {\n actions: /*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n })\n },\n RESUME_CAPTURE: {\n actions: /*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n })\n }\n }\n }\n } // states\n\n};\n\nfunction subscribeAction(context, event) {\n var subscribe = {\n \"request\": \"subscribe\",\n \"event\": \"ipfx-cti;opaque-id=\" + context.opaqueId,\n \"accept\": \"application/xml\"\n };\n context.pluginHandle.send({\n message: subscribe\n });\n}\n\nfunction unsubscribeAction(context, event) {\n if (event.removeToken && context.pushToken) {\n var unsubscribe = {\n \"request\": \"unsubscribe\",\n \"event\": \"ipfx-cti;opaque-id=\" + context.opaqueId + \";remove-token=\" + '\"' + context.pushToken + '\"',\n \"accept\": \"application/xml\"\n };\n context.pluginHandle.send({\n message: unsubscribe\n });\n } else {\n var _unsubscribe = {\n \"request\": \"unsubscribe\",\n \"event\": \"ipfx-cti;opaque-id=\" + context.opaqueId,\n \"accept\": \"application/xml\"\n };\n context.pluginHandle.send({\n message: _unsubscribe\n });\n }\n}\n\nfunction processNotifyAction(event, callback) {\n var result = event.result;\n var event_package = result[\"notify\"];\n Janus.log(\"Got NOTIFY *, event package: \" + result[\"notify\"]);\n\n if (event_package === \"ipfx-cti\") {\n var content_type = result[\"content-type\"];\n var content = result[\"content\"];\n\n if (content_type === \"application/xml\" && content) {\n var parser = new DOMParser();\n var xmlDoc = parser.parseFromString(content, \"application/xml\"); //let endpointNode = xmlDoc.getElementsByTagName(\"Endpoint\")[0];\n // let notifyExtension =\n // \tendpointNode.getElementsByTagName(\"Extension\")[0].childNodes[0]\n // \t\t.nodeValue;\n // let notifyOpaqueId =\n // \txmlDoc.getElementsByTagName(\"OpaqueId\")[0].childNodes[0].nodeValue;\n\n var notifyHelperId = 0;\n\n if (xmlDoc.getElementsByTagName(\"HelperId\").length > 0) {\n // ommit the first char \"C\", i.e. from \"C1\"\n var fullHelperId = xmlDoc.getElementsByTagName(\"HelperId\")[0].childNodes[0].nodeValue;\n\n if (fullHelperId.length > 1) {\n notifyHelperId = fullHelperId.substring(1);\n }\n }\n\n var mwlValue = false;\n var hasMwlvalue = false;\n var dialTargetUri = \"\";\n var cancelCallId = \"\";\n\n if (xmlDoc.getElementsByTagName(\"MWL\").length > 0) {\n var notifyMWlNodes = xmlDoc.getElementsByTagName(\"MWL\")[0];\n var v = notifyMWlNodes.getElementsByTagName(\"Status\")[0].childNodes[0].nodeValue;\n mwlValue = v === 'true';\n hasMwlvalue = true;\n } else if (xmlDoc.getElementsByTagName(\"Capture\").length > 0) {\n if (isElectronClient) {\n var captureNode = xmlDoc.getElementsByTagName(\"Capture\")[0];\n var captureStart = captureNode.getElementsByTagName(\"Start\")[0].childNodes[0].nodeValue;\n\n if (captureStart === \"1\") {\n var captureTarget = captureNode.getElementsByTagName(\"CaptureTarget\")[0].childNodes[0].nodeValue;\n var captureCallId = captureNode.getElementsByTagName(\"CaptureCallId\")[0].childNodes[0].nodeValue;\n var captureFrameRate = captureNode.getElementsByTagName(\"CaptureFrameRate\")[0].childNodes[0].nodeValue;\n var captureScreenWidth = captureNode.getElementsByTagName(\"CaptureScreenWidth\").length > 0 ? captureNode.getElementsByTagName(\"CaptureScreenWidth\")[0].childNodes[0].nodeValue : undefined;\n var captureScreenHeight = captureNode.getElementsByTagName(\"CaptureScreenHeight\").length > 0 ? captureNode.getElementsByTagName(\"CaptureScreenHeight\")[0].childNodes[0].nodeValue : undefined;\n callback({\n type: 'START_CAPTURE',\n callId: captureCallId,\n target: captureTarget,\n frameRate: captureFrameRate,\n screenWidth: captureScreenWidth,\n screenHeight: captureScreenHeight\n });\n } else {\n callback({\n type: 'STOP_CAPTURE'\n });\n }\n }\n } else if (xmlDoc.getElementsByTagName(\"CapturePrivacy\").length > 0) {\n if (isElectronClient) {\n var node = xmlDoc.getElementsByTagName(\"CapturePrivacy\")[0];\n var value = node.getElementsByTagName(\"Active\")[0].childNodes[0].nodeValue;\n\n if (value === \"0\") {\n callback({\n type: 'RESUME_CAPTURE'\n });\n } else {\n callback({\n type: 'SUSPEND_CAPTURE'\n });\n }\n }\n } else if (xmlDoc.getElementsByTagName(\"MakeCall\").length > 0) {\n var _notifyMWlNodes = xmlDoc.getElementsByTagName(\"MakeCall\")[0];\n dialTargetUri = _notifyMWlNodes.getElementsByTagName(\"Target\")[0].childNodes[0].nodeValue;\n } else if (xmlDoc.getElementsByTagName(\"PendingCallTerminated\").length > 0) {\n var _notifyMWlNodes2 = xmlDoc.getElementsByTagName(\"PendingCallTerminated\")[0];\n cancelCallId = _notifyMWlNodes2.getElementsByTagName(\"Call-id\")[0].childNodes[0].nodeValue;\n }\n\n var notifyAction = \"\";\n\n if (xmlDoc.getElementsByTagName(\"Action\").length > 0) {\n notifyAction = xmlDoc.getElementsByTagName(\"Action\")[0].childNodes[0].nodeValue;\n }\n\n if (notifyAction) {\n if (notifyAction === \"Hold\") {\n // doCtiHold(notifyHelperId);\n callback({\n type: 'CTI_HOLD',\n instanceId: notifyHelperId\n });\n } else if (notifyAction === \"Resume\") {\n // doCtiResume(notifyHelperId);\n callback({\n type: 'CTI_RESUME',\n instanceId: notifyHelperId\n });\n } else if (notifyAction === \"Answer\") {\n //doCtiAnswer();\n callback({\n type: 'CTI_ANSWER',\n instanceId: notifyHelperId\n });\n }\n } else if (hasMwlvalue) {\n Janus.log(\"MWL value is [\" + mwlValue + \"]\");\n callback({\n type: 'CTI_MWI',\n mwi: mwlValue\n });\n } else if (dialTargetUri) {\n Janus.log(\"MakeCall [\" + dialTargetUri + \"]\"); // doCtiCall(dialTargetUri, false);\n\n callback({\n type: 'CTI_DIAL',\n dialUri: dialTargetUri\n });\n } else if (cancelCallId) {\n callback({\n type: 'CANCEL_PENDING_CALL',\n callId: cancelCallId\n });\n }\n }\n }\n}\n\nvar sipRegisterStates = {\n initial: 'inactive',\n states: {\n inactive: {\n on: {\n DO_AUTOREGISTER: {\n target: 'tryingRegister',\n actions: /*#__PURE__*/assign(function (context, event) {\n return {\n registerHeaders: {\n \"IPFX-CTI-Opaque-ID\": context.opaqueId\n }\n };\n }),\n cond: function cond(context) {\n return context.instanceId == 0 && context.autoregister;\n }\n },\n DO_REGISTER: {\n target: 'tryingRegister',\n actions: /*#__PURE__*/assign(function (context, event) {\n return {\n registerSipserver: context.instanceId == 0 ? event.sipserver : context.registerSipserver,\n registerUsername: context.instanceId == 0 ? event.sipserver.replace(\"sip:\", \"sip:\" + event.username + \"@\") : context.registerUsername,\n registerSecret: context.instanceId == 0 ? event.secret : context.registerSecret,\n registerIsHa1Secret: context.instanceId == 0 ? event.is_ha1_secret : context.registerIsHa1Secret,\n registerDisplayname: context.instanceId == 0 ? event.displayName : context.registerDisplayname,\n registerHeaders: {\n \"IPFX-CTI-Opaque-ID\": context.opaqueId\n },\n smTarget: event.smTarget\n };\n })\n }\n }\n },\n unregistered: {\n entry: /*#__PURE__*/sendParent$1(function (context) {\n return {\n type: 'PLUGIN_UNREGISTERED',\n instanceId: context.instanceId\n };\n }),\n on: {\n DO_REGISTER: 'tryingRegister',\n DO_UNREGISTER: {}\n }\n },\n tryingRegister: {\n entry: registerAction,\n on: {\n DO_UNREGISTER: 'unregistered',\n REGISTERING: {\n actions: /*#__PURE__*/sendParent$1(function (context) {\n return {\n type: 'PLUGIN_RETRYING_REGISTER',\n instanceId: context.instanceId\n };\n })\n },\n REGISTRATION_FAILED: {\n target: 'retryingRegister',\n actions: /*#__PURE__*/sendParent$1(function (context, event) {\n return {\n type: 'PLUGIN_REGISTRATION_FAILED',\n instanceId: context.instanceId,\n error: event.result[\"code\"] + \" \" + event.result[\"reason\"]\n };\n })\n },\n REGISTERED: {\n target: 'registered',\n actions: /*#__PURE__*/assign(function (context, event) {\n return {\n masterId: event.result[\"master_id\"],\n registerDisplayname: event.result[\"displayname\"]\n };\n })\n }\n }\n },\n tryingUnregister: {\n entry: [unregisterAction, /*#__PURE__*/sendParent$1(function (context) {\n return {\n type: 'PLUGIN_TRYING_UNREGISTER',\n instanceId: context.instanceId\n };\n })],\n on: {\n UNREGISTERED: 'unregistered'\n }\n },\n retryingRegister: {\n entry: /*#__PURE__*/sendParent$1(function (context) {\n return {\n type: 'PLUGIN_RETRYING_REGISTER',\n instanceId: context.instanceId\n };\n }),\n after: {\n 30000: 'tryingRegister'\n },\n on: {\n DO_UNREGISTER: 'unregistered'\n }\n },\n registered: /*#__PURE__*/_extends({\n entry: /*#__PURE__*/sendParent$1(function (context, event) {\n return {\n type: 'PLUGIN_REGISTERED',\n instanceId: context.instanceId,\n masterId: context.masterId,\n registerUsername: context.registerUsername,\n displayName: context.registerDisplayname\n };\n }),\n on: {\n REGISTERING: {},\n REGISTERED: {},\n REGISTRATION_FAILED: {\n target: 'retryingRegister',\n actions: /*#__PURE__*/sendParent$1(function (context, event) {\n return {\n type: 'PLUGIN_REGISTRATION_FAILED',\n instanceId: context.instanceId,\n error: event.error\n };\n })\n },\n UNREGISTERED: 'unregistered',\n DO_UNREGISTER: 'tryingUnregister'\n }\n }, sipCtiSubscribeStates)\n } // states\n\n};\n\nfunction registerAction(context, event) {\n var register = {\n request: \"register\"\n };\n register[\"username\"] = context.registerUsername;\n\n if (context.instanceId == 0) {\n register[\"proxy\"] = context.registerSipserver;\n register[\"force_tcp\"] = context.registerUsername.startsWith('sip:guest-');\n\n if (context.registerIsHa1Secret) {\n register[\"ha1_secret\"] = context.registerSecret;\n } else {\n register[\"secret\"] = context.registerSecret;\n }\n\n if (context.registerDisplayname) {\n register[\"display_name\"] = context.registerDisplayname;\n }\n\n register[\"incoming_header_prefixes\"] = [\"Push-call-id\", \"Remote-Party-Id\"];\n\n if (context.pushToken) {\n register[\"headers\"] = Object.assign({}, context.registerHeaders, {\n \"IPFX-Push-Token\": '\"' + context.pushToken + '\"' + (context.alertPushToken ? ';alert=\"' + context.alertPushToken + '\"' : '') + (context.pushPlatformName ? ';platform=' + context.pushPlatformName : '')\n });\n } else {\n register[\"headers\"] = context.registerHeaders;\n }\n\n if (context.monitorTarget) {\n register[\"contact_params\"] = {\n \"ipfx-sm-target\": context.monitorTarget\n };\n }\n } else {\n register[\"type\"] = \"helper\";\n register[\"master_id\"] = context.masterId;\n }\n\n context.pluginHandle.send({\n message: register\n });\n}\n\nfunction unregisterAction(context, event) {\n context.pluginHandle.send({\n message: {\n request: \"unregister\"\n }\n });\n}\n\nvar CallStatusErrorCode;\n\n(function (CallStatusErrorCode) {\n CallStatusErrorCode[CallStatusErrorCode[\"ERROR_MAKE_CALL\"] = 0] = \"ERROR_MAKE_CALL\";\n CallStatusErrorCode[CallStatusErrorCode[\"ERROR_MAKE_CALL_NOT_FOUND\"] = 1] = \"ERROR_MAKE_CALL_NOT_FOUND\";\n CallStatusErrorCode[CallStatusErrorCode[\"ERROR_MAKE_CALL_MEDIA_REJECTED\"] = 2] = \"ERROR_MAKE_CALL_MEDIA_REJECTED\";\n CallStatusErrorCode[CallStatusErrorCode[\"ERROR_MAKE_CALL_BUSY\"] = 3] = \"ERROR_MAKE_CALL_BUSY\";\n CallStatusErrorCode[CallStatusErrorCode[\"ERROR_MAKE_CALL_DECLINED\"] = 4] = \"ERROR_MAKE_CALL_DECLINED\";\n CallStatusErrorCode[CallStatusErrorCode[\"ERROR_MAKE_CALL_SERVICE_ERROR\"] = 5] = \"ERROR_MAKE_CALL_SERVICE_ERROR\";\n CallStatusErrorCode[CallStatusErrorCode[\"ERROR_MAKE_CALL_PERMISSION\"] = 6] = \"ERROR_MAKE_CALL_PERMISSION\";\n CallStatusErrorCode[CallStatusErrorCode[\"ERROR_ANSWER_CALL\"] = 7] = \"ERROR_ANSWER_CALL\";\n CallStatusErrorCode[CallStatusErrorCode[\"ERROR_ANSWER_CALL_PERMISSION\"] = 8] = \"ERROR_ANSWER_CALL_PERMISSION\";\n CallStatusErrorCode[CallStatusErrorCode[\"ERROR_HANG_UP\"] = 9] = \"ERROR_HANG_UP\";\n CallStatusErrorCode[CallStatusErrorCode[\"ERROR_MIDCALL\"] = 10] = \"ERROR_MIDCALL\";\n CallStatusErrorCode[CallStatusErrorCode[\"ERROR_MIDCALL_PERMISSION\"] = 11] = \"ERROR_MIDCALL_PERMISSION\";\n CallStatusErrorCode[CallStatusErrorCode[\"ERROR_HOLD\"] = 12] = \"ERROR_HOLD\";\n CallStatusErrorCode[CallStatusErrorCode[\"ERROR_HOLD_PERMISSION\"] = 13] = \"ERROR_HOLD_PERMISSION\";\n CallStatusErrorCode[CallStatusErrorCode[\"ERROR_RESUME\"] = 14] = \"ERROR_RESUME\";\n CallStatusErrorCode[CallStatusErrorCode[\"ERROR_RESUME_PERMISSION\"] = 15] = \"ERROR_RESUME_PERMISSION\";\n CallStatusErrorCode[CallStatusErrorCode[\"ERROR_TRANSFER\"] = 16] = \"ERROR_TRANSFER\";\n CallStatusErrorCode[CallStatusErrorCode[\"ERROR_SCREEN_RECORDING\"] = 17] = \"ERROR_SCREEN_RECORDING\";\n})(CallStatusErrorCode || (CallStatusErrorCode = {}));\n\nvar escalate = actions$1.escalate,\n sendParent = actions$1.sendParent,\n send = actions$1.send,\n forwardTo = actions$1.forwardTo,\n cancel = actions$1.cancel,\n raise = actions$1.raise,\n choose = actions$1.choose;\nvar defaultMediaConstraints = undefined; // call events:\n// - incomingcall(incoming)\n// - declining (incoming)\n// - declined (incoming)\n// - accepting (incoming)\n// - accepted (incoming, outgoing)\n// - hangup (midcall, incoming, outgoing)\n//\n// - calling (outgoing)\n// - proceeding (outgoing)\n// - ringing (outgoing)\n// - progress (outgoing)\n// - accepted (incoming, outgoing)\n// - hangingup (midcall, outgoing)\n// - hangup (midcall, incoming, outgoing)\n//\n// - updating (midcall)\n// - updated (midcall)\n// - transferring (midcall)\n// - transfer (midcall) // incoming REFER request\n// - holding (midcall)\n// - resuming (midcall)\n// - hangingup (midcall)\n// - dtmfsent (midcall) // SIP INFO method only\n// - updatingcall (midcall)\n// - hangingup (midcall, outgoing)\n// - hangup (midcall, outgoing)\n//\n//\n\nvar callStateMachine = /*#__PURE__*/Machine({\n id: 'ipfxCallStateMachine',\n initial: 'idle',\n context: {\n sip_call_id: null,\n call_id: null,\n remote_uri: null,\n pluginHandle: null,\n opaqueId: null,\n instanceId: null,\n queuedHangup: false,\n makeCallTargetUri: null,\n incomingCallJsep: null,\n doVideoProcessed: false,\n doVideo: false,\n // requested\n videoSource: undefined,\n // requested\n videoSourceProcessed: undefined,\n // requested\n enabledVideoSource: undefined,\n // actual\n isVideoProcessingComplete: true,\n preferSendVideo: false,\n preferRecvVideo: false,\n preferSendAudio: false,\n preferRecvAudio: false,\n canSendVideo: false,\n canRecvVideo: false,\n canSendAudio: false,\n canRecvAudio: false,\n isHolding: false,\n isLastXferBlind: false,\n isLastXferSuper: false,\n incomingCallUserName: undefined,\n incomingCallDisplayName: undefined,\n isCallee: false,\n retry491Count: 0,\n isIceRestartRequired: false,\n srRequested: false,\n srCallId: undefined,\n srFrameRate: undefined,\n srScreenWidth: undefined,\n srScreenHeight: undefined,\n srTarget: undefined,\n srRetryCount: 0\n },\n on: {\n DO_START_SR: {\n actions: /*#__PURE__*/assign({\n srRequested: function srRequested() {\n return true;\n },\n srTarget: function srTarget(context, event) {\n return event.target;\n },\n srCallId: function srCallId(context, event) {\n return event.callId;\n },\n srRetryCount: function srRetryCount() {\n return 0;\n },\n srFrameRate: function srFrameRate(context, event) {\n return event.frameRate;\n },\n srScreenWidth: function srScreenWidth(context, event) {\n return event.screenWidth;\n },\n srScreenHeight: function srScreenHeight(context, event) {\n return event.screenHeight;\n }\n })\n },\n DO_STOP_SR: {\n actions: [/*#__PURE__*/assign({\n srRequested: function srRequested() {\n return false;\n },\n srRetryCount: function srRetryCount() {\n return 0;\n }\n }), /*#__PURE__*/send('DO_HANGUP')]\n },\n DO_ENABLE_VIDEO: {\n actions: /*#__PURE__*/assign({\n doVideo: function doVideo(context, event) {\n return event.doVideo;\n },\n videoSource: function videoSource(context, event) {\n return event.videoSource;\n }\n })\n },\n DO_POST_ENABLE_VIDEO: {\n // this will trigger media update when connected to get the video going\n actions: /*#__PURE__*/assign({\n doVideoProcessed: function doVideoProcessed(context, event) {\n return false;\n }\n })\n },\n DO_REJECT_REFER: {\n actions: 'declineTransferAction'\n },\n DO_BLIND_XFER: {\n actions: /*#__PURE__*/sendParent(function (context, error) {\n return {\n type: 'DO_BLIND_XFER_FAILED',\n instanceId: context.instanceId,\n message: 'Call state incompatible with transfer request'\n };\n })\n },\n DO_XFER: {\n actions: /*#__PURE__*/sendParent(function (context, error) {\n return {\n type: 'DO_XFER_FAILED',\n instanceId: context.instanceId,\n message: 'Call state incompatible with transfer request'\n };\n })\n },\n TRANSFERRING: {\n actions: /*#__PURE__*/sendParent(function (context, error) {\n return {\n type: 'CALL_STATE_DO_XFERRING',\n instanceId: context.instanceId\n };\n })\n },\n JANUS_SESSION_ENDED: {\n target: 'finalizing',\n actions: ['logJanusSessionEnded', 'doHangupAction', /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_IDLE',\n instanceId: context.instanceId,\n code: 0,\n reason: 'End of session'\n };\n }), /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_DEEP_IDLE',\n instanceId: context.instanceId\n };\n })]\n }\n },\n states: {\n finalizing: {\n after: {\n 3000: {\n target: 'finalized'\n }\n },\n on: {\n CLEANUP: {\n target: 'finalized'\n }\n }\n },\n finalized: {\n type: 'final'\n },\n idle: {\n entry: [/*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_DEEP_IDLE',\n instanceId: context.instanceId\n };\n }, {\n delay: 3000,\n id: 'DEEP_IDLE_TIMER'\n }), /*#__PURE__*/choose([{\n // when DO_START_SR while hanging up existing SR call\n cond: function cond(context) {\n return context.srRequested && context.srRetryCount == 0;\n },\n actions: /*#__PURE__*/send(function (context, event) {\n return {\n type: 'DO_START_SR_IF',\n instanceId: context.instanceId\n };\n }, {\n delay: 250,\n id: 'START_SR_TIMER'\n })\n }, {\n // when retrying on repeated failure\n cond: function cond(context) {\n return context.srRequested && context.srRetryCount > 0;\n },\n actions: /*#__PURE__*/send(function (context, event) {\n return {\n type: 'DO_START_SR_IF',\n instanceId: context.instanceId\n };\n }, {\n delay: 15000,\n id: 'START_SR_TIMER'\n })\n }]), /*#__PURE__*/assign({\n sip_call_id: function sip_call_id() {\n return null;\n }\n }), /*#__PURE__*/assign({\n call_id: function call_id() {\n return null;\n }\n }), /*#__PURE__*/assign({\n remote_uri: function remote_uri() {\n return null;\n }\n }), /*#__PURE__*/assign({\n queuedHangup: function queuedHangup() {\n return false;\n }\n }), /*#__PURE__*/assign({\n makeCallTargetUri: function makeCallTargetUri() {\n return null;\n }\n }), /*#__PURE__*/assign({\n incomingCallJsep: function incomingCallJsep() {\n return null;\n }\n }), /*#__PURE__*/assign({\n doVideoProcessed: function doVideoProcessed(context) {\n return context.doVideo;\n }\n }), /*#__PURE__*/assign({\n enabledVideo: function enabledVideo() {\n return false;\n }\n }), /*#__PURE__*/assign({\n videoSourceProcessed: function videoSourceProcessed(context) {\n return context.videoSource;\n }\n }), /*#__PURE__*/assign({\n enabledVideoSource: function enabledVideoSource() {\n return undefined;\n }\n }), /*#__PURE__*/assign({\n isVideoProcessingComplete: function isVideoProcessingComplete() {\n return true;\n }\n }), /*#__PURE__*/assign({\n preferSendVideo: function preferSendVideo() {\n return false;\n }\n }), /*#__PURE__*/assign({\n preferRecvVideo: function preferRecvVideo() {\n return false;\n }\n }), /*#__PURE__*/assign({\n preferSendAudio: function preferSendAudio() {\n return false;\n }\n }), /*#__PURE__*/assign({\n preferRecvAudio: function preferRecvAudio() {\n return false;\n }\n }), /*#__PURE__*/assign({\n canSendVideo: function canSendVideo() {\n return false;\n }\n }), /*#__PURE__*/assign({\n canRecvVideo: function canRecvVideo() {\n return false;\n }\n }), /*#__PURE__*/assign({\n canSendAudio: function canSendAudio() {\n return false;\n }\n }), /*#__PURE__*/assign({\n canRecvAudio: function canRecvAudio() {\n return false;\n }\n }), /*#__PURE__*/assign({\n isHolding: function isHolding() {\n return false;\n }\n }), /*#__PURE__*/assign({\n isLastXferBlind: function isLastXferBlind() {\n return false;\n }\n }), /*#__PURE__*/assign({\n isLastXferSuper: function isLastXferSuper() {\n return false;\n }\n }), /*#__PURE__*/assign({\n incomingCallUserName: function incomingCallUserName() {\n return undefined;\n }\n }), /*#__PURE__*/assign({\n incomingCallDisplayName: function incomingCallDisplayName() {\n return undefined;\n }\n }), /*#__PURE__*/assign({\n isCallee: function isCallee() {\n return false;\n }\n }), /*#__PURE__*/assign({\n retry491Count: function retry491Count() {\n return 0;\n }\n }), /*#__PURE__*/assign({\n isIceRestartRequired: function isIceRestartRequired() {\n return false;\n }\n })],\n exit: [/*#__PURE__*/cancel('DEEP_IDLE_TIMER'), /*#__PURE__*/cancel('START_SR_TIMER')],\n on: {\n DO_START_SR: {\n actions: [/*#__PURE__*/assign({\n srRequested: function srRequested() {\n return true;\n },\n srTarget: function srTarget(context, event) {\n return event.target;\n },\n srCallId: function srCallId(context, event) {\n return event.callId;\n },\n srRetryCount: function srRetryCount() {\n return 0;\n },\n srFrameRate: function srFrameRate(context, event) {\n return event.frameRate;\n },\n srScreenWidth: function srScreenWidth(context, event) {\n return event.screenWidth;\n },\n srScreenHeight: function srScreenHeight(context, event) {\n return event.screenHeight;\n }\n }), /*#__PURE__*/send(function (context, event) {\n return {\n type: 'DO_MAKE_CALL',\n instanceId: event.instanceId,\n target: event.target,\n callId: event.callId\n };\n })]\n },\n DO_START_SR_IF: {\n actions: [/*#__PURE__*/choose([{\n cond: function cond(context) {\n return context.srRequested && ++context.srRetryCount <= 1;\n },\n actions: /*#__PURE__*/send(function (context, event) {\n return {\n type: 'DO_MAKE_CALL',\n instanceId: context.instanceId,\n target: context.srTarget,\n callId: context.srCallId\n };\n })\n }]), 'logContext']\n },\n DO_MAKE_CALL: {\n target: 'tryingMakeCall'\n },\n INCOMINGCALL: {\n // note Janus doesn't provide headers with replacing invite - must fix in Janus\n target: 'handlingIncomingCall',\n actions: /*#__PURE__*/assign({\n isCallee: function isCallee() {\n return true;\n },\n sip_call_id: function sip_call_id(context, event) {\n return event.call_id;\n },\n call_id: function call_id(context, event) {\n return event.result[\"headers\"] === undefined ? event.call_id : event.result[\"headers\"][\"Push-call-id\"];\n },\n remote_uri: function remote_uri(context, event) {\n return event.result[\"username\"];\n }\n })\n },\n CALLING: {\n actions: 'doHangupAction'\n },\n RINGING: {\n actions: 'doHangupAction'\n },\n PROCEEDING: {\n actions: 'doHangupAction'\n },\n PROGRESS: {\n actions: 'doHangupAction'\n },\n ACCEPTED: {\n actions: 'doHangupAction'\n },\n '*': undefined\n }\n },\n hangingup: {\n on: {\n CLEANUP: {\n target: 'idle',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_IDLE',\n instanceId: context.instanceId,\n code: 0,\n reason: 'Normal clearing'\n };\n })\n },\n HANGUP: {\n cond: function cond(context, event) {\n return context.sip_call_id !== null && event[\"call_id\"] === context.sip_call_id;\n },\n target: 'idle',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_IDLE',\n instanceId: context.instanceId,\n code: event.result[\"code\"],\n reason: event.result[\"reason\"]\n };\n })\n },\n DECLINED: {\n target: 'idle',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_IDLE',\n instanceId: context.instanceId,\n code: event.result[\"code\"],\n reason: event.result[\"reason\"]\n };\n })\n }\n },\n // we have a problem with SIP plugin that doesn't handle crosstalk,\n // until it's fixed we handle it ourselves\n '*': {\n target: undefined,\n actions: function actions() {\n return Janus.warn(\"!!! Stuck in hangingup state, hangup from the other end !!!\");\n }\n }\n },\n handlingIncomingCall: {\n invoke: {\n id: 'handleIncomingCall',\n src: 'handleIncomingCallService',\n onError: {\n target: 'idle',\n actions: ['doHangupAction', /*#__PURE__*/escalate(function (context, event) {\n return {\n reason: event.type,\n message: event.data.message\n };\n })]\n }\n },\n entry: [/*#__PURE__*/assign({\n doVideoProcessed: function doVideoProcessed(context) {\n return context.doVideo;\n },\n videoSourceProcessed: function videoSourceProcessed(context) {\n return context.videoSource;\n },\n incomingCallJsep: function incomingCallJsep(context, event) {\n return event.jsep;\n },\n call_id: function call_id(context, event) {\n return context.call_id;\n },\n incomingCallUserName: function incomingCallUserName(context, event) {\n return calculateUserName(context, event);\n },\n incomingCallDisplayName: function incomingCallDisplayName(context, event) {\n return calculateDisplayName(context, event);\n }\n }), 'logEvent', /*#__PURE__*/sendParent(function (context, event) {\n return {\n // note Janus doesn't provide headers with replacing invite - must fix in Janus\n type: 'CALL_STATE_INCOMING_CALL',\n instanceId: context.instanceId,\n callerUsername: calculateUserName(context, event),\n callerDisplay: calculateDisplayName(context, event),\n callId: event.result[\"headers\"] === undefined ? event.call_id : event.result[\"headers\"][\"Push-call-id\"],\n replaces: event.result[\"replaces\"] // this is sip_call_id (not call_id)\n\n };\n }), 'messageAckIncomingCallAction'],\n exit: /*#__PURE__*/assign({\n incomingCallJsep: function incomingCallJsep() {\n return null;\n }\n }),\n on: {\n DO_ACCEPT: {\n actions: /*#__PURE__*/forwardTo('handleIncomingCall')\n },\n DO_DECLINE: {\n actions: /*#__PURE__*/forwardTo('handleIncomingCall')\n },\n DO_HANGUP: {\n actions: 'doHangupAction'\n },\n DO_ACCEPT_SUCCEEDED: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_CONNECTING',\n instanceId: context.instanceId\n };\n }),\n DO_ACCEPT_FAILED: {\n actions: [/*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_ERROR',\n instanceId: context.instanceId,\n errorCode: GetErrorMessage(event).toLowerCase().includes('permission') ? CallStatusErrorCode.ERROR_ANSWER_CALL_PERMISSION : CallStatusErrorCode.ERROR_ANSWER_CALL,\n errorMessage: 'Failed to answer an incoming call: ' + GetErrorMessage(event)\n };\n }), 'doHangupAction']\n },\n DO_DECLINE_SUCCEEDED: undefined,\n DO_DECLINE_FAILED: {\n actions: [/*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_ERROR',\n instanceId: context.instanceId,\n errorCode: CallStatusErrorCode.ERROR_HANG_UP,\n errorMessage: 'Failed to decline an incoming call: ' + event.message\n };\n }), 'doHangupAction']\n },\n DECLINING: {\n target: 'hangingup',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_HANGINGUP',\n instanceId: context.instanceId\n };\n })\n },\n DECLINED: {\n target: 'idle',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_IDLE',\n instanceId: context.instanceId,\n code: event.result[\"code\"],\n reason: event.result[\"reason\"]\n };\n })\n },\n ACCEPTING: {},\n ACCEPTED: {\n target: 'connected',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_CONNECTED',\n instanceId: context.instanceId,\n isInitial: true,\n remoteUri: calculateUserName(context, event),\n remoteDisplay: calculateDisplayName(context, event),\n hasLocalAudio: context.canSendAudio,\n hasRemoteAudio: context.canRecvAudio,\n hasLocalVideo: context.canSendVideo,\n hasRemoteVideo: context.canRecvVideo,\n localVideoSource: context.enabledVideoSource\n };\n })\n },\n HANGUP: {\n cond: function cond(context, event) {\n return context.sip_call_id !== null && event[\"call_id\"] === context.sip_call_id;\n },\n target: 'idle',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_IDLE',\n instanceId: context.instanceId,\n code: event.result[\"code\"],\n reason: event.result[\"reason\"]\n };\n })\n },\n HANGINGUP: {\n target: 'hangingup',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_HANGINGUP',\n instanceId: context.instanceId\n };\n })\n }\n }\n },\n tryingMakeCallTimeout: {\n always: {\n target: 'idle',\n actions: ['doHangupAction', /*#__PURE__*/escalate(function (context, error) {\n return {\n reason: 'DO_MAKE_CALL_FAILED',\n instanceId: context.instanceId,\n message: \"Timeout while trying to make call\"\n };\n }), /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_IDLE',\n instanceId: context.instanceId,\n code: 408,\n reason: \"Request Timeout\"\n };\n })]\n }\n },\n callingOutTimeout: {\n entry: ['doHangupAction', /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_TIMEOUT',\n instanceId: context.instanceId,\n message: \"Timeout while calling out\"\n };\n })],\n on: {\n CLEANUP: {\n target: 'idle',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_IDLE',\n instanceId: context.instanceId,\n code: 408,\n reason: 'Request Timeout'\n };\n })\n },\n HANGUP: {\n cond: function cond(context, event) {\n return context.sip_call_id !== null && event[\"call_id\"] === context.sip_call_id;\n },\n target: 'idle',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_IDLE',\n instanceId: context.instanceId,\n code: event.result[\"code\"],\n reason: event.result[\"reason\"]\n };\n })\n },\n '*': undefined\n }\n },\n tryingMakeCall: {\n invoke: {\n id: 'makeCall',\n src: 'makeCallService',\n onError: {\n target: 'idle',\n actions: ['doHangupAction', /*#__PURE__*/escalate(function (context, event) {\n return {\n reason: 'DO_MAKE_CALL_FAILED',\n message: event.data.message\n };\n })]\n }\n },\n after: {\n 15000: 'tryingMakeCallTimeout'\n },\n entry: [/*#__PURE__*/assign({\n doVideoProcessed: function doVideoProcessed(context) {\n return context.doVideo;\n },\n videoSourceProcessed: function videoSourceProcessed(context) {\n return context.videoSource;\n }\n }), /*#__PURE__*/assign({\n remote_uri: function remote_uri(context, event) {\n return event.target;\n }\n }), /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_TRYING_OUT',\n instanceId: context.instanceId,\n remoteUri: event.target\n };\n })],\n on: {\n DO_HANGUP: {\n actions: 'doHangupAction'\n },\n DO_MAKE_CALL_SUCCEEDED: [{\n actions: 'doHangupAction',\n cond: function cond(context) {\n return context.queuedHangup;\n }\n }, {\n actions: /*#__PURE__*/assign({\n preferSendAudio: function preferSendAudio(context, event) {\n return event.preferSendAudio;\n },\n preferRecvAudio: function preferRecvAudio(context, event) {\n return event.preferRecvAudio;\n },\n preferSendVideo: function preferSendVideo(context, event) {\n return event.preferSendVideo;\n },\n preferRecvVideo: function preferRecvVideo(context, event) {\n return event.preferRecvVideo;\n }\n })\n }],\n DO_MAKE_CALL_FAILED: {\n target: 'idle',\n actions: [/*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_ERROR',\n instanceId: context.instanceId,\n errorCode: GetErrorMessage(event).toLowerCase().includes('permission') ? CallStatusErrorCode.ERROR_MAKE_CALL_PERMISSION : CallStatusErrorCode.ERROR_MAKE_CALL,\n errorMessage: 'Unable to dial: ' + GetErrorMessage(event)\n };\n }), 'doHangupAction', /*#__PURE__*/choose([{\n cond: function cond(context, event) {\n return context.srRequested && GetErrorMessage(event).toLowerCase().includes('permission');\n },\n actions: [/*#__PURE__*/assign({\n srRetryCount: function srRetryCount() {\n return 1000;\n }\n })]\n }]) //sendParent((context, event) => ({ type: 'CALL_STATE_IDLE', instanceId: context.instanceId, code: 403, reason: 'Permission denied' }))\n ]\n },\n CALLING: {\n target: 'ringingOut',\n actions: [/*#__PURE__*/assign({\n call_id: function call_id(context, event) {\n return event.call_id;\n },\n sip_call_id: function sip_call_id(context, event) {\n return event.call_id;\n }\n }), /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_CALLING_OUT',\n instanceId: context.instanceId,\n remoteUri: context.remote_uri,\n callId: event.call_id\n };\n })]\n },\n RINGING: {\n target: 'ringingOut',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_RINGING_OUT',\n instanceId: context.instanceId,\n remoteDisplay: event.result[\"todisplayname\"]\n };\n })\n },\n PROCEEDING: [{\n cond: function cond(context, event) {\n return event.result[\"code\"] === 183;\n },\n target: 'progressOut',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_PROGRESS_OUT',\n instanceId: context.instanceId\n };\n })\n }, {\n target: 'ringingOut',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_PROCEEDING_OUT',\n instanceId: context.instanceId\n };\n })\n }],\n PROGRESS: {\n target: 'progressOut',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_PROGRESS_OUT',\n instanceId: context.instanceId,\n remoteDisplay: event.result[\"todisplayname\"]\n };\n })\n },\n ACCEPTED: {\n target: 'connected',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_CONNECTED',\n instanceId: context.instanceId,\n isInitial: true,\n remoteUri: event.result[\"username\"] !== undefined ? event.result[\"username\"] : context.remote_uri,\n remoteDisplay: event.result[\"todisplayname\"],\n hasLocalAudio: context.canSendAudio,\n hasRemoteAudio: context.canRecvAudio,\n hasLocalVideo: context.canSendVideo,\n hasRemoteVideo: context.canRecvVideo,\n localVideoSource: context.enabledVideoSource\n };\n })\n },\n HANGUP: {\n cond: function cond(context, event) {\n return context.sip_call_id !== null && event[\"call_id\"] === context.sip_call_id;\n },\n target: 'idle',\n actions: [/*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_ERROR',\n instanceId: context.instanceId,\n errorCode: event.result[\"code\"] === 404 ? CallStatusErrorCode.ERROR_MAKE_CALL_NOT_FOUND : event.result[\"code\"] === 488 ? CallStatusErrorCode.ERROR_MAKE_CALL_MEDIA_REJECTED : event.result[\"code\"] === 486 ? CallStatusErrorCode.ERROR_MAKE_CALL_BUSY : event.result[\"code\"] === 487 ? CallStatusErrorCode.ERROR_MAKE_CALL_DECLINED : CallStatusErrorCode.ERROR_MAKE_CALL,\n errorMessage: 'Could not connect: ' + event.result[\"reason\"]\n };\n }), /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_IDLE',\n instanceId: context.instanceId,\n code: event.result[\"code\"],\n reason: event.result[\"reason\"]\n };\n })]\n },\n HANGINGUP: {\n target: 'hangingup',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_HANGINGUP',\n instanceId: context.instanceId\n };\n })\n },\n SIP_ERROR: {\n target: 'idle',\n actions: ['doHangupAction', /*#__PURE__*/escalate(function (context, event) {\n return {\n reason: 'DO_MAKE_CALL_FAILED',\n instanceId: context.instanceId,\n message: event.message\n };\n })]\n }\n }\n },\n ringingOut: {\n after: {\n 60000: 'callingOutTimeout'\n },\n on: {\n DO_HANGUP: {\n actions: 'doHangupAction'\n },\n PROGRESS: {\n target: 'progressOut',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_PROGRESS_OUT',\n instanceId: context.instanceId\n };\n })\n },\n ACCEPTED: {\n target: 'connected',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_CONNECTED',\n instanceId: context.instanceId,\n isInitial: true,\n remoteUri: context.remote_uri,\n remoteDisplay: event.result[\"todisplayname\"],\n hasLocalAudio: context.canSendAudio,\n hasRemoteAudio: context.canRecvAudio,\n hasLocalVideo: context.canSendVideo,\n hasRemoteVideo: context.canRecvVideo,\n localVideoSource: context.enabledVideoSource\n };\n })\n },\n HANGUP: {\n cond: function cond(context, event) {\n return context.sip_call_id !== null && event[\"call_id\"] === context.sip_call_id;\n },\n target: 'idle',\n actions: [\n /*#__PURE__*/\n // exclude 487 for replacing INVITE completion\n choose([{\n cond: function cond(context, event) {\n return event.result[\"code\"] !== 487;\n },\n actions: [/*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_ERROR',\n instanceId: context.instanceId,\n errorCode: event.result[\"code\"] === 404 ? CallStatusErrorCode.ERROR_MAKE_CALL_NOT_FOUND : event.result[\"code\"] === 488 ? CallStatusErrorCode.ERROR_MAKE_CALL_MEDIA_REJECTED : event.result[\"code\"] === 486 ? CallStatusErrorCode.ERROR_MAKE_CALL_BUSY : CallStatusErrorCode.ERROR_MAKE_CALL,\n errorMessage: 'Could not connect: ' + event.result[\"reason\"]\n };\n })]\n }]), /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_IDLE',\n instanceId: context.instanceId,\n code: event.result[\"code\"],\n reason: event.result[\"reason\"]\n };\n })]\n },\n HANGINGUP: {\n target: 'hangingup',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_HANGINGUP',\n instanceId: context.instanceId\n };\n })\n },\n RINGING: {\n target: undefined,\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_RINGING_OUT',\n instanceId: context.instanceId,\n remoteDisplay: event.result[\"todisplayname\"]\n };\n })\n },\n PROCEEDING: [{\n cond: function cond(context, event) {\n return event.result[\"code\"] === 183;\n },\n target: 'progressOut',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_PROGRESS_OUT',\n instanceId: context.instanceId\n };\n })\n }, {\n target: undefined,\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_PROCEEDING_OUT',\n instanceId: context.instanceId\n };\n })\n }]\n }\n },\n progressOut: {\n invoke: {\n id: 'handleRemoteEarlyMedia',\n src: 'handleRemoteMediaService',\n onError: {\n target: 'idle',\n actions: ['doHangupAction', /*#__PURE__*/escalate(function (context, event) {\n return {\n reason: 'REMOTE_EARLY_MEDIA_HANDLING_FAILED',\n message: event.data.message\n };\n }), /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_IDLE',\n instanceId: context.instanceId,\n code: 488,\n reason: 'Media error'\n };\n })]\n }\n },\n after: {\n 60000: 'callingOutTimeout'\n },\n on: {\n DO_HANGUP: {\n actions: 'doHangupAction'\n },\n PROGRESS: {\n target: undefined,\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_PROGRESS_OUT',\n instanceId: context.instanceId\n };\n })\n },\n ACCEPTED: {\n target: 'connected',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_CONNECTED',\n instanceId: context.instanceId,\n isInitial: true,\n remoteUri: context.remote_uri,\n remoteDisplay: event.result[\"todisplayname\"],\n hasLocalAudio: context.canSendAudio,\n hasRemoteAudio: context.canRecvAudio,\n hasLocalVideo: context.canSendVideo,\n hasRemoteVideo: context.canRecvVideo,\n localVideoSource: context.enabledVideoSource\n };\n })\n },\n HANGUP: {\n cond: function cond(context, event) {\n return context.sip_call_id !== null && event[\"call_id\"] === context.sip_call_id;\n },\n target: 'idle',\n actions: [\n /*#__PURE__*/\n // exclude 487 for replacing INVITE completion\n choose([{\n cond: function cond(context, event) {\n return event.result[\"code\"] !== 487;\n },\n actions: [/*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_ERROR',\n instanceId: context.instanceId,\n errorCode: event.result[\"code\"] === 404 ? CallStatusErrorCode.ERROR_MAKE_CALL_NOT_FOUND : event.result[\"code\"] === 488 ? CallStatusErrorCode.ERROR_MAKE_CALL_MEDIA_REJECTED : event.result[\"code\"] === 486 ? CallStatusErrorCode.ERROR_MAKE_CALL_BUSY : CallStatusErrorCode.ERROR_MAKE_CALL,\n errorMessage: 'Could not connect: ' + event.result[\"reason\"]\n };\n })]\n }]), /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_IDLE',\n instanceId: context.instanceId,\n code: event.result[\"code\"],\n reason: event.result[\"reason\"]\n };\n })]\n },\n HANGINGUP: {\n target: 'hangingup',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_HANGINGUP',\n instanceId: context.instanceId\n };\n })\n },\n RINGING: {\n target: 'ringingOut',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_RINGING_OUT',\n instanceId: context.instanceId,\n remoteDisplay: event.result[\"todisplayname\"]\n };\n })\n },\n PROCEEDING: [{\n cond: function cond(context, event) {\n return event.result[\"code\"] === 183;\n },\n target: 'progressOut',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_PROGRESS_OUT',\n instanceId: context.instanceId\n };\n })\n }, {\n target: 'ringingOut',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_PROCEEDING_OUT',\n instanceId: context.instanceId\n };\n })\n }],\n REMOTE_SDP_HANDLING_SUCCEEDED: {\n actions: /*#__PURE__*/assign({\n isVideoProcessingComplete: function isVideoProcessingComplete() {\n return true;\n },\n canSendAudio: function canSendAudio(context, event) {\n return event.canSendAudio;\n },\n canRecvAudio: function canRecvAudio(context, event) {\n return event.canRecvAudio;\n },\n canSendVideo: function canSendVideo(context, event) {\n return event.canSendVideo;\n },\n canRecvVideo: function canRecvVideo(context, event) {\n return event.canRecvVideo;\n },\n enabledVideoSource: function enabledVideoSource(context, event) {\n return event.canSendVideo && context.videoSourceProcessed;\n },\n isIceRestartRequired: function isIceRestartRequired(context) {\n return false;\n }\n })\n },\n REMOTE_SDP_HANDLING_FAILED: {\n actions: [/*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_ERROR',\n instanceId: context.instanceId,\n errorCode: GetErrorMessage(event).toLowerCase().includes('permission') ? CallStatusErrorCode.ERROR_MAKE_CALL_PERMISSION : CallStatusErrorCode.ERROR_MAKE_CALL,\n errorMessage: 'Unable to connect an outgoing call:' + GetErrorMessage(event)\n };\n }), 'doHangupAction']\n }\n }\n },\n connected: {\n initial: 'notHold',\n invoke: [{\n id: 'handleRemoteMedia',\n src: 'handleRemoteMediaService',\n onError: {\n target: 'idle',\n actions: ['doHangupAction', /*#__PURE__*/escalate(function (context, event) {\n return {\n reason: 'REMOTE_MEDIA_HANDLING_FAILED',\n message: event.data.message\n };\n })]\n }\n }, {\n id: 'executeBlindXfer',\n src: 'executeXferService',\n onError: {\n target: 'idle',\n actions: /*#__PURE__*/sendParent(function (context, error) {\n return {\n type: 'DO_BLIND_XFER_FAILED',\n instanceId: context.instanceId,\n message: error.data.message\n };\n })\n }\n }, {\n id: 'executeXfer',\n src: 'executeXferService',\n onError: {\n target: 'idle',\n actions: /*#__PURE__*/sendParent(function (context, error) {\n return {\n type: 'DO_XFER_FAILED',\n instanceId: context.instanceId,\n message: error.data.message\n };\n })\n }\n }],\n entry: /*#__PURE__*/assign({\n remote_uri: function remote_uri(context, event) {\n return event.result[\"username\"] !== undefined ? event.result[\"username\"] : context.remote_uri;\n },\n retry491Count: function retry491Count() {\n return 0;\n },\n isVideoProcessingComplete: function isVideoProcessingComplete() {\n return false;\n },\n isIceRestartRequired: function isIceRestartRequired() {\n return false;\n }\n }),\n on: {\n DO_ICE_RESTART: {\n actions: /*#__PURE__*/assign({\n isIceRestartRequired: function isIceRestartRequired() {\n return true;\n }\n })\n },\n DO_HANGUP: {\n actions: 'doHangupAction'\n },\n DO_SEND_DTMF: {\n actions: 'doSendDtmfAction'\n },\n HANGUP: {\n cond: function cond(context, event) {\n return context.sip_call_id !== null && event[\"call_id\"] === context.sip_call_id;\n },\n target: 'idle',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_IDLE',\n instanceId: context.instanceId,\n code: event.result[\"code\"],\n reason: event.result[\"reason\"]\n };\n })\n },\n HANGINGUP: {\n target: 'hangingup',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_HANGINGUP',\n instanceId: context.instanceId\n };\n })\n },\n UPDATINGCALL: {\n actions: [/*#__PURE__*/assign({\n isVideoProcessingComplete: function isVideoProcessingComplete() {\n return false;\n }\n }), /*#__PURE__*/send(function (context, event) {\n return {\n type: 'UPDATINGCALL_WRAPPED',\n event: event,\n context: context\n };\n })]\n },\n UPDATINGCALL_WRAPPED: {\n actions: /*#__PURE__*/forwardTo('handleRemoteMedia')\n },\n ACCEPTED: {\n actions: /*#__PURE__*/send(function (context, event) {\n return {\n type: 'ACCEPTED_WRAPPED',\n event: event,\n context: context\n };\n })\n },\n ACCEPTED_WRAPPED: {\n actions: /*#__PURE__*/forwardTo('handleRemoteMedia')\n },\n UPDATING: {\n actions: function actions(context) {\n Janus.log(\"Context=\", context);\n }\n },\n UPDATINGCALL_SUCCEEDED: {\n actions: [/*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_CONNECTED',\n instanceId: context.instanceId,\n isInitial: false,\n hasLocalAudio: event.canSendAudio,\n hasRemoteAudio: event.canRecvAudio,\n hasLocalVideo: event.canSendVideo,\n hasRemoteVideo: event.canRecvVideo,\n localVideoSource: event.enabledVideoSource\n };\n }), /*#__PURE__*/assign({\n preferSendAudio: function preferSendAudio(context, event) {\n return event.preferSendAudio;\n },\n preferRecvAudio: function preferRecvAudio(context, event) {\n return event.preferRecvAudio;\n },\n preferSendVideo: function preferSendVideo(context, event) {\n return event.preferSendVideo;\n },\n preferRecvVideo: function preferRecvVideo(context, event) {\n return event.preferRecvVideo;\n },\n canSendAudio: function canSendAudio(context, event) {\n return event.canSendAudio;\n },\n canRecvAudio: function canRecvAudio(context, event) {\n return event.canRecvAudio;\n },\n canSendVideo: function canSendVideo(context, event) {\n return event.canSendVideo;\n },\n enabledVideoSource: function enabledVideoSource(context, event) {\n return event.canSendVideo && context.videoSourceProcessed;\n }\n })]\n },\n UPDATINGCALL_FAILED: {\n actions: [/*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_ERROR',\n instanceId: context.instanceId,\n errorCode: GetErrorMessage(event).toLowerCase().includes('permission') ? CallStatusErrorCode.ERROR_MIDCALL_PERMISSION : CallStatusErrorCode.ERROR_MIDCALL,\n errorMessage: 'Mid-call signalling failure:' + GetErrorMessage(event)\n };\n }), 'doHangupAction']\n },\n REMOTE_SDP_HANDLING_SUCCEEDED: {\n actions: [/*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_CONNECTED',\n instanceId: context.instanceId,\n isInitial: false,\n hasLocalAudio: event.canSendAudio,\n hasRemoteAudio: event.canRecvAudio,\n hasLocalVideo: event.canSendVideo,\n hasRemoteVideo: event.canRecvVideo,\n localVideoSource: event.enabledVideoSource\n };\n }), /*#__PURE__*/assign({\n isVideoProcessingComplete: function isVideoProcessingComplete() {\n return true;\n },\n canSendAudio: function canSendAudio(context, event) {\n return event.canSendAudio;\n },\n canRecvAudio: function canRecvAudio(context, event) {\n return event.canRecvAudio;\n },\n canSendVideo: function canSendVideo(context, event) {\n return event.canSendVideo;\n },\n canRecvVideo: function canRecvVideo(context, event) {\n return event.canRecvVideo;\n },\n enabledVideoSource: function enabledVideoSource(context, event) {\n return event.canSendVideo && context.videoSourceProcessed;\n },\n isIceRestartRequired: function isIceRestartRequired(context) {\n return false;\n }\n })]\n },\n REMOTE_SDP_HANDLING_FAILED: {\n actions: [/*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_ERROR',\n instanceId: context.instanceId,\n errorCode: GetErrorMessage(event).toLowerCase().includes('permission') ? CallStatusErrorCode.ERROR_MIDCALL_PERMISSION : CallStatusErrorCode.ERROR_MIDCALL,\n errorMessage: 'Mid-call signalling failure:' + GetErrorMessage(event)\n };\n }), 'doHangupAction']\n },\n TRANSFER: {\n actions: 'declineTransferAction'\n },\n NOTIFY: [{\n actions: 'doHangupAction',\n cond: 'xferOk'\n }, {\n actions: /*#__PURE__*/sendParent(function (context, error) {\n return {\n type: 'DO_BLIND_XFER_FAILED',\n instanceId: context.instanceId,\n message: 'Transfer failed'\n };\n }),\n cond: 'blindXferFailed'\n }, {\n actions: /*#__PURE__*/sendParent(function (context, error) {\n return {\n type: 'DO_XFER_FAILED',\n instanceId: context.instanceId,\n message: 'Transfer failed'\n };\n }),\n cond: 'xferFailed'\n }, {\n target: undefined,\n cond: 'xferProgress'\n }]\n },\n states: {\n notHold: {\n entry: /*#__PURE__*/choose([{\n cond: function cond(context) {\n return context.doVideo !== context.doVideoProcessed || context.doVideo && context.videoSource !== context.videoSourceProcessed;\n },\n actions: /*#__PURE__*/send('DO_CHECK_VIDEO')\n }, {\n cond: function cond(context) {\n return context.isIceRestartRequired;\n },\n actions: /*#__PURE__*/send('DO_ICE_RESTART')\n }]),\n on: {\n DO_CHECK_VIDEO: {\n target: 'updatingVideo',\n cond: function cond(context) {\n return context.doVideo !== context.doVideoProcessed || context.doVideo && context.videoSource !== context.videoSourceProcessed;\n }\n },\n DO_ENABLE_VIDEO: {\n target: 'updatingVideo',\n actions: [/*#__PURE__*/assign({\n doVideo: function doVideo(context, event) {\n return event.doVideo;\n },\n videoSource: function videoSource(context, event) {\n return event.videoSource;\n }\n })],\n cond: function cond(context, event) {\n return !context.isVideoProcessingComplete || event.doVideo !== context.doVideoProcessed || event.doVideo && event.videoSource !== context.videoSourceProcessed;\n }\n },\n DO_ICE_RESTART: 'restartingIce',\n DO_HOLD: 'tryingHold',\n DO_RESUME: undefined,\n TRANSFER: {\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'HANDLE_REFER',\n instanceId: context.instanceId,\n refer_event: event\n };\n })\n }\n }\n },\n restartingIce: {\n invoke: {\n id: 'restartIce',\n src: 'restartIceService',\n onError: {\n target: 'notHold',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_CONNECTED',\n instanceId: context.instanceId,\n isInitial: false,\n hasLocalAudio: context.canSendAudio,\n hasRemoteAudio: context.canRecvAudio,\n hasLocalVideo: context.canSendVideo,\n hasRemoteVideo: context.canRecvVideo,\n localVideoSource: context.enabledVideoSource\n };\n })\n }\n },\n entry: [/*#__PURE__*/assign({\n isIceRestartRequired: function isIceRestartRequired() {\n return false;\n }\n }), /*#__PURE__*/assign({\n retry491Count: function retry491Count(context, event) {\n return event.type == 'RETRY_491' ? context.retry491Count + 1 : 0;\n }\n }), /*#__PURE__*/send(function (context, event) {\n return {\n type: 'DO_HANGUP',\n reason: 'RESTARTING_ICE_TIMER'\n };\n }, {\n delay: 16000,\n id: 'RESTARTING_ICE_TIMER'\n })],\n exit: [/*#__PURE__*/cancel('RESTARTING_ICE_TIMER'), /*#__PURE__*/cancel('RETRY_491_TIMER'), /*#__PURE__*/assign({\n isIceRestartRequired: function isIceRestartRequired() {\n return false;\n }\n })],\n on: {\n RETRY_491: {\n target: 'restartingIce',\n internal: false\n },\n // wrong state shall be treated as 491 invite error\n SIP_ERROR: {\n actions: /*#__PURE__*/raise({\n type: 'INVITE_ERROR',\n result: {\n code: 491\n }\n }),\n cond: function cond(context, event) {\n return event.error_code === 447;\n }\n },\n INVITE_ERROR: [// no more than 3 retries in a row\n {\n actions: 'doHangupAction',\n cond: function cond(context, event) {\n return event.result[\"code\"] !== 491 || context.retry491Count >= 3;\n }\n }, {\n actions: [/*#__PURE__*/cancel('RESTARTING_ICE_TIMER'), /*#__PURE__*/send(function (context, event) {\n return {\n type: 'RETRY_491'\n };\n }, {\n delay: function delay(context) {\n var max = context.isCallee ? 600 : 300;\n var min = context.isCallee ? 310 : 0;\n var delay = 10 * Math.floor(Math.random() * (max - min + 1) + min);\n Janus.log(\"Delaying handling of INVITE_ERROR by \" + delay + \" ms\");\n return delay;\n },\n id: 'RETRY_491_TIMER'\n })]\n }],\n DO_HOLD: undefined,\n DO_RESUME: undefined,\n DO_SEND_DTMF: undefined,\n REMOTE_SDP_HANDLING_SUCCEEDED: {\n target: 'notHold',\n actions: [/*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_CONNECTED',\n instanceId: context.instanceId,\n isInitial: false,\n hasLocalAudio: event.canSendAudio,\n hasRemoteAudio: event.canRecvAudio,\n hasLocalVideo: event.canSendVideo,\n hasRemoteVideo: event.canRecvVideo,\n localVideoSource: event.enabledVideoSource\n };\n }), /*#__PURE__*/assign({\n isIceRestartRequired: function isIceRestartRequired(context) {\n return false;\n }\n })]\n },\n ICE_RESTART_FAILED: {\n target: 'notHold',\n actions: [/*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_ERROR',\n instanceId: context.instanceId,\n errorCode: GetErrorMessage(event).toLowerCase().includes('permission') ? CallStatusErrorCode.ERROR_MIDCALL_PERMISSION : CallStatusErrorCode.ERROR_MIDCALL,\n errorMessage: 'Mid-call signalling failure:' + GetErrorMessage(event)\n };\n }), /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_CONNECTED',\n instanceId: context.instanceId,\n isInitial: false,\n hasLocalAudio: context.canSendAudio,\n hasRemoteAudio: context.canRecvAudio,\n hasLocalVideo: context.canSendVideo,\n hasRemoteVideo: context.canRecvVideo,\n localVideoSource: context.enabledVideoSource\n };\n })]\n }\n }\n },\n updatingVideo: {\n invoke: {\n id: 'updateMedia',\n src: 'updateVideoService',\n onError: {\n target: 'notHold',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_CONNECTED',\n instanceId: context.instanceId,\n isInitial: false,\n hasLocalAudio: context.canSendAudio,\n hasRemoteAudio: context.canRecvAudio,\n hasLocalVideo: context.canSendVideo,\n hasRemoteVideo: context.canRecvVideo,\n localVideoSource: context.enabledVideoSource\n };\n })\n }\n },\n entry: [/*#__PURE__*/assign({\n isVideoProcessingComplete: function isVideoProcessingComplete() {\n return false;\n }\n }), /*#__PURE__*/assign({\n doVideoProcessed: function doVideoProcessed(context) {\n return context.doVideo;\n },\n videoSourceProcessed: function videoSourceProcessed(context) {\n return context.videoSource;\n },\n enabledVideoSource: function enabledVideoSource() {\n return undefined;\n }\n }), /*#__PURE__*/assign({\n retry491Count: function retry491Count(context, event) {\n return event.type == 'RETRY_491' ? context.retry491Count + 1 : 0;\n }\n }), /*#__PURE__*/send(function (context, event) {\n return {\n type: 'DO_HANGUP'\n };\n }, {\n delay: 16000,\n id: 'UPDATING_VIDEO_TIMER'\n })],\n exit: [/*#__PURE__*/cancel('UPDATING_VIDEO_TIMER'), /*#__PURE__*/cancel('RETRY_491_TIMER')],\n on: {\n RETRY_491: {\n target: 'updatingVideo',\n internal: false\n },\n // wrong state shall be treated as 491 invite error\n SIP_ERROR: {\n actions: /*#__PURE__*/raise({\n type: 'INVITE_ERROR',\n result: {\n code: 491\n }\n }),\n cond: function cond(context, event) {\n return event.error_code === 447;\n }\n },\n INVITE_ERROR: [// no more than 3 retries in a row\n {\n actions: 'doHangupAction',\n cond: function cond(context, event) {\n return event.result[\"code\"] !== 491 || context.retry491Count >= 3;\n }\n }, {\n actions: [/*#__PURE__*/cancel('UPDATING_VIDEO_TIMER'), /*#__PURE__*/send(function (context, event) {\n return {\n type: 'RETRY_491'\n };\n }, {\n delay: function delay(context) {\n var max = context.isCallee ? 600 : 300;\n var min = context.isCallee ? 310 : 0;\n var delay = 10 * Math.floor(Math.random() * (max - min + 1) + min);\n Janus.log(\"Delaying handling of INVITE_ERROR by \" + delay + \" ms\");\n return delay;\n },\n id: 'RETRY_491_TIMER'\n })]\n }],\n DO_HOLD: undefined,\n DO_RESUME: undefined,\n DO_SEND_DTMF: undefined,\n UPDATING_MEDIA: {\n target: undefined,\n actions: /*#__PURE__*/assign({\n preferSendAudio: function preferSendAudio(context, event) {\n return event.preferSendAudio;\n },\n preferRecvAudio: function preferRecvAudio(context, event) {\n return event.preferRecvAudio;\n },\n preferSendVideo: function preferSendVideo(context, event) {\n return event.preferSendVideo;\n },\n preferRecvVideo: function preferRecvVideo(context, event) {\n return event.preferRecvVideo;\n }\n })\n },\n REMOTE_SDP_HANDLING_SUCCEEDED: {\n target: 'notHold',\n actions: [/*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_CONNECTED',\n instanceId: context.instanceId,\n isInitial: false,\n hasLocalAudio: event.canSendAudio,\n hasRemoteAudio: event.canRecvAudio,\n hasLocalVideo: event.canSendVideo,\n hasRemoteVideo: event.canRecvVideo,\n localVideoSource: event.enabledVideoSource\n };\n }), /*#__PURE__*/assign({\n isVideoProcessingComplete: function isVideoProcessingComplete() {\n return true;\n },\n canSendAudio: function canSendAudio(context, event) {\n return event.canSendAudio;\n },\n canRecvAudio: function canRecvAudio(context, event) {\n return event.canRecvAudio;\n },\n canSendVideo: function canSendVideo(context, event) {\n return event.canSendVideo;\n },\n canRecvVideo: function canRecvVideo(context, event) {\n return event.canRecvVideo;\n },\n enabledVideoSource: function enabledVideoSource(context, event) {\n return event.canSendVideo && context.videoSourceProcessed;\n },\n isIceRestartRequired: function isIceRestartRequired(context) {\n return false;\n }\n })]\n },\n UPDATE_MEDIA_FAILED: {\n target: 'notHold',\n actions: [/*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_ERROR',\n instanceId: context.instanceId,\n errorCode: GetErrorMessage(event).toLowerCase().includes('permission') ? CallStatusErrorCode.ERROR_MIDCALL_PERMISSION : CallStatusErrorCode.ERROR_MIDCALL,\n errorMessage: 'Mid-call signalling failure:' + GetErrorMessage(event)\n };\n }), /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_CONNECTED',\n instanceId: context.instanceId,\n isInitial: false,\n hasLocalAudio: context.canSendAudio,\n hasRemoteAudio: context.canRecvAudio,\n hasLocalVideo: context.canSendVideo,\n hasRemoteVideo: context.canRecvVideo,\n localVideoSource: context.enabledVideoSource\n };\n })]\n }\n }\n },\n tryingHold: {\n invoke: {\n id: 'holdCall',\n src: 'holdCallService',\n onError: {\n target: 'notHold',\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_CONNECTED',\n instanceId: context.instanceId,\n isInitial: false,\n hasLocalAudio: context.canSendAudio,\n hasRemoteAudio: context.canRecvAudio,\n hasLocalVideo: context.canSendVideo,\n hasRemoteVideo: context.canRecvVideo,\n localVideoSource: context.enabledVideoSource\n };\n })\n }\n },\n entry: [/*#__PURE__*/assign({\n retry491Count: function retry491Count(context, event) {\n return event.type == 'RETRY_491' ? context.retry491Count + 1 : 0;\n }\n }), /*#__PURE__*/send(function (context, event) {\n return {\n type: 'DO_HANGUP'\n };\n }, {\n delay: 8000,\n id: 'TRYING_HOLD_TIMER'\n })],\n exit: [/*#__PURE__*/cancel('TRYING_HOLD_TIMER'), /*#__PURE__*/cancel('RETRY_491_TIMER')],\n on: {\n RETRY_491: {\n target: 'tryingHold',\n internal: false\n },\n // wrong state shall be treated as 491 invite error\n SIP_ERROR: {\n actions: /*#__PURE__*/raise({\n type: 'INVITE_ERROR',\n result: {\n code: 491\n }\n }),\n cond: function cond(context, event) {\n return event.error_code === 447;\n }\n },\n INVITE_ERROR: [// no more than 3 retries in a row\n {\n actions: 'doHangupAction',\n cond: function cond(context, event) {\n return event.result[\"code\"] !== 491 || context.retry491Count >= 3;\n }\n }, {\n actions: [/*#__PURE__*/cancel('TRYING_HOLD_TIMER'), /*#__PURE__*/send(function (context, event) {\n return {\n type: 'RETRY_491'\n };\n }, {\n delay: function delay(context) {\n var max = context.isCallee ? 400 : 200;\n var min = context.isCallee ? 210 : 0;\n var delay = 10 * Math.floor(Math.random() * (max - min + 1) + min);\n Janus.log(\"Delaying handling of INVITE_ERROR by \" + delay + \" ms\");\n return delay;\n },\n id: 'RETRY_491_TIMER'\n })]\n }],\n DO_HOLD: undefined,\n DO_RESUME: undefined,\n DO_SEND_DTMF: undefined,\n HOLDING: {\n target: undefined,\n actions: /*#__PURE__*/assign({\n preferSendAudio: function preferSendAudio(context, event) {\n return event.preferSendAudio;\n },\n preferRecvAudio: function preferRecvAudio(context, event) {\n return event.preferRecvAudio;\n },\n preferSendVideo: function preferSendVideo(context, event) {\n return event.preferSendVideo;\n },\n preferRecvVideo: function preferRecvVideo(context, event) {\n return event.preferRecvVideo;\n },\n canSendAudio: function canSendAudio(context, event) {\n return event.canSendAudio;\n },\n canRecvAudio: function canRecvAudio(context, event) {\n return event.canRecvAudio;\n },\n canSendVideo: function canSendVideo(context, event) {\n return event.canSendVideo;\n },\n canRecvVideo: function canRecvVideo(context, event) {\n return event.canRecvVideo;\n }\n })\n },\n REMOTE_SDP_HANDLING_SUCCEEDED: {\n target: 'holding',\n actions: [/*#__PURE__*/assign({\n isVideoProcessingComplete: function isVideoProcessingComplete() {\n return true;\n },\n canSendAudio: function canSendAudio(context, event) {\n return event.canSendAudio;\n },\n canRecvAudio: function canRecvAudio(context, event) {\n return event.canRecvAudio;\n },\n canSendVideo: function canSendVideo(context, event) {\n return event.canSendVideo;\n },\n canRecvVideo: function canRecvVideo(context, event) {\n return event.canRecvVideo;\n },\n isIceRestartRequired: function isIceRestartRequired(context) {\n return false;\n }\n })]\n },\n DO_HOLD_FAILED: {\n target: 'notHold',\n actions: [/*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_ERROR',\n instanceId: context.instanceId,\n errorCode: GetErrorMessage(event).toLowerCase().includes('permission') ? CallStatusErrorCode.ERROR_HOLD_PERMISSION : CallStatusErrorCode.ERROR_HOLD,\n errorMessage: 'Mid-call signalling failure:' + GetErrorMessage(event)\n };\n }), /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_CONNECTED',\n instanceId: context.instanceId,\n isInitial: false,\n hasLocalAudio: context.canSendAudio,\n hasRemoteAudio: context.canRecvAudio,\n hasLocalVideo: context.canSendVideo,\n hasRemoteVideo: context.canRecvVideo,\n localVideoSource: context.enabledVideoSource\n };\n })]\n }\n }\n },\n holding: {\n entry: [/*#__PURE__*/assign({\n isHolding: function isHolding() {\n return true;\n }\n }), /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_ONHOLD',\n instanceId: context.instanceId,\n hasLocalAudio: context.canSendAudio,\n hasRemoteAudio: context.canRecvAudio,\n hasLocalVideo: context.canSendVideo,\n hasRemoteVideo: context.canRecvVideo,\n localVideoSource: context.enabledVideoSource\n };\n })],\n exit: /*#__PURE__*/assign({\n isHolding: function isHolding() {\n return false;\n }\n }),\n on: {\n DO_HOLD: undefined,\n DO_RESUME: 'tryingResume',\n DO_SEND_DTMF: undefined,\n DO_BLIND_XFER: {\n actions: [/*#__PURE__*/forwardTo('executeBlindXfer'), /*#__PURE__*/assign({\n isLastXferBlind: function isLastXferBlind() {\n return true;\n },\n isLastXferSuper: function isLastXferSuper() {\n return false;\n }\n })]\n },\n DO_XFER: {\n actions: [/*#__PURE__*/forwardTo('executeXfer'), /*#__PURE__*/assign({\n isLastXferBlind: function isLastXferBlind() {\n return false;\n },\n isLastXferSuper: function isLastXferSuper() {\n return true;\n }\n })]\n },\n TRANSFER: {\n actions: /*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'HANDLE_REFER',\n instanceId: context.instanceId,\n refer_event: event\n };\n })\n }\n }\n },\n tryingResume: {\n invoke: {\n id: 'resumeCall',\n src: 'resumeCallService',\n onError: {\n target: 'holding'\n }\n },\n entry: [/*#__PURE__*/assign({\n isVideoProcessingComplete: function isVideoProcessingComplete() {\n return false;\n }\n }), /*#__PURE__*/assign({\n doVideoProcessed: function doVideoProcessed(context) {\n return context.doVideo;\n },\n videoSourceProcessed: function videoSourceProcessed(context) {\n return context.videoSource;\n }\n }), /*#__PURE__*/assign({\n retry491Count: function retry491Count(context, event) {\n return event.type == 'RETRY_491' ? context.retry491Count + 1 : 0;\n }\n }), /*#__PURE__*/send(function (context, event) {\n return {\n type: 'DO_HANGUP'\n };\n }, {\n delay: 8000,\n id: 'TRYING_RESUME_TIMER'\n })],\n exit: [/*#__PURE__*/cancel('TRYING_RESUME_TIMER'), /*#__PURE__*/cancel('RETRY_491_TIMER')],\n on: {\n RETRY_491: {\n target: 'tryingResume',\n internal: false\n },\n // wrong state shall be treated as 491 invite error\n SIP_ERROR: {\n actions: /*#__PURE__*/raise({\n type: 'INVITE_ERROR',\n result: {\n code: 491\n }\n }),\n cond: function cond(context, event) {\n return event.error_code === 447;\n }\n },\n INVITE_ERROR: [// no more than 3 retries in a row\n {\n actions: 'doHangupAction',\n cond: function cond(context, event) {\n return event.result[\"code\"] !== 491 || context.retry491Count >= 3;\n }\n }, {\n actions: [/*#__PURE__*/cancel('TRYING_RESUME_TIMER'), /*#__PURE__*/send(function (context, event) {\n return {\n type: 'RETRY_491'\n };\n }, {\n delay: function delay(context) {\n var max = context.isCallee ? 400 : 200;\n var min = context.isCallee ? 210 : 0;\n var delay = 10 * Math.floor(Math.random() * (max - min + 1) + min);\n Janus.log(\"Delaying handling of INVITE_ERROR by \" + delay + \" ms\");\n return delay;\n },\n id: 'RETRY_491_TIMER'\n })]\n }],\n DO_HOLD: undefined,\n DO_RESUME: undefined,\n DO_SEND_DTMF: undefined,\n RESUMING: {\n target: undefined,\n actions: /*#__PURE__*/assign({\n preferSendAudio: function preferSendAudio(context, event) {\n return event.preferSendAudio;\n },\n preferRecvAudio: function preferRecvAudio(context, event) {\n return event.preferRecvAudio;\n },\n preferSendVideo: function preferSendVideo(context, event) {\n return event.preferSendVideo;\n },\n preferRecvVideo: function preferRecvVideo(context, event) {\n return event.preferRecvVideo;\n },\n canSendAudio: function canSendAudio(context, event) {\n return event.canSendAudio;\n },\n canRecvAudio: function canRecvAudio(context, event) {\n return event.canRecvAudio;\n },\n canSendVideo: function canSendVideo(context, event) {\n return event.canSendVideo;\n },\n canRecvVideo: function canRecvVideo(context, event) {\n return event.canRecvVideo;\n }\n })\n },\n REMOTE_SDP_HANDLING_SUCCEEDED: {\n target: 'notHold',\n actions: [/*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_CONNECTED',\n instanceId: context.instanceId,\n isInitial: false,\n hasLocalAudio: event.canSendAudio,\n hasRemoteAudio: event.canRecvAudio,\n hasLocalVideo: event.canSendVideo,\n hasRemoteVideo: event.canRecvVideo,\n localVideoSource: event.enabledVideoSource,\n isIceRestartRequired: function isIceRestartRequired(context) {\n return false;\n }\n };\n }), /*#__PURE__*/assign({\n isVideoProcessingComplete: function isVideoProcessingComplete() {\n return true;\n },\n canSendAudio: function canSendAudio(context, event) {\n return event.canSendAudio;\n },\n canRecvAudio: function canRecvAudio(context, event) {\n return event.canRecvAudio;\n },\n canSendVideo: function canSendVideo(context, event) {\n return event.canSendVideo;\n },\n canRecvVideo: function canRecvVideo(context, event) {\n return event.canRecvVideo;\n },\n localVideoSource: function localVideoSource(context, event) {\n return event.enabledVideoSource;\n }\n })]\n },\n DO_RESUME_FAILED: [/*#__PURE__*/sendParent(function (context, event) {\n return {\n type: 'CALL_STATE_ERROR',\n instanceId: context.instanceId,\n errorCode: GetErrorMessage(event).toLowerCase().includes('permission') ? CallStatusErrorCode.ERROR_RESUME_PERMISSION : CallStatusErrorCode.ERROR_RESUME,\n errorMessage: 'Mid-call signalling failure:' + GetErrorMessage(event)\n };\n }), 'holding']\n }\n }\n }\n }\n } // states\n\n}, {\n guards: {\n xferOk: function xferOk(context, event) {\n Janus.log(\"Checking xferOK condition, isLastXferBlind=\", context.isLastXferBlind, \"isLastXferSuper=\", context.isLastXferSuper);\n\n if ((context.isLastXferBlind || context.isLastXferSuper) && event.result[\"notify\"] === \"refer\" && event.result[\"content\"] !== undefined) {\n var splitContent = event.result[\"content\"].split(\" \");\n\n if (splitContent.length > 1 && splitContent[1] >= +180 && splitContent[1] < +300) {\n Janus.log(\"xferOK condition is true\");\n return true;\n }\n }\n\n Janus.log(\"xferOK condition is false\");\n return false;\n },\n blindXferFailed: function blindXferFailed(context, event) {\n Janus.log(\"Checking blindXferFailed condition...\");\n\n if (context.isLastXferBlind && event.result[\"notify\"] === \"refer\" && event.result[\"content\"] !== undefined) {\n var splitContent = event.result[\"content\"].split(\" \");\n\n if (splitContent.length > 1 && splitContent[1] >= +300) {\n Janus.log(\"blindXferFailed condition is true\");\n return true;\n }\n }\n\n Janus.log(\"blindXferFailed condition is false\");\n return false;\n },\n xferFailed: function xferFailed(context, event) {\n Janus.log(\"Checking xferFailed condition...\");\n\n if (context.isLastXferSuper && event.result[\"notify\"] === \"refer\" && event.result[\"content\"] !== undefined) {\n var splitContent = event.result[\"content\"].split(\" \");\n\n if (splitContent.length > 1 && splitContent[1] >= +300) {\n Janus.log(\"xferFailed condition is true\");\n return true;\n }\n }\n\n Janus.log(\"xferFailed condition is false\");\n return false;\n },\n xferProgress: function xferProgress(context, event) {\n Janus.log(\"Checking xferProgress condition...\");\n\n if ((context.isLastXferBlind || context.isLastXferSuper) && event.result[\"notify\"] === \"refer\" && event.result[\"content\"] !== undefined) {\n Janus.log(\"xferProgress condition is true\");\n return true;\n }\n\n Janus.log(\"xferProgress condition is false\");\n return false;\n }\n },\n actions: {\n doHangupAction: function doHangupAction(context, event) {\n if (event.message !== undefined) {\n Janus.debug(\"hanging up with message:\", GetErrorMessage(event));\n }\n\n Janus.log(\"doHangupAction with event:\", event);\n context.pluginHandle.hangup(true);\n },\n doSendDtmfAction: function doSendDtmfAction(context, event) {\n context.pluginHandle.dtmf({\n dtmf: {\n tones: event.dtmf\n }\n });\n },\n logEvent: function logEvent(context, event) {\n Janus.log(\"!!! Context: \", context);\n Janus.log(\"!!! Event: \", event);\n },\n declineTransferAction: function declineTransferAction(context, event) {\n Janus.log(\"Declining transfer request\");\n var referId = event.result[\"refer_id\"];\n var body = {\n request: \"decline\",\n refer_id: referId,\n code: 403\n };\n context.pluginHandle.send({\n \"message\": body\n });\n },\n messageAckIncomingCallAction: function messageAckIncomingCallAction(context, event) {\n Janus.log(\"Sending message to ack incoming call\");\n var body = {\n request: \"message\",\n content: \"Your call is important to us!\"\n };\n context.pluginHandle.send({\n \"message\": body\n });\n },\n logDoMakeCallAction: function logDoMakeCallAction(context, event) {\n Janus.log(\"DO_MAKE_CALL Context: \", context);\n Janus.log(\"DO_MAKE_CALL Event: \", event);\n },\n logJanusSessionEnded: function logJanusSessionEnded(context, event) {\n Janus.log(\"JANUS_SESSION_ENDED Context: \", context);\n Janus.log(\"JANUS_SESSION_ENDED Event: \", event);\n },\n logContext: function logContext(context, event) {\n Janus.log(\"Log Context: \", context);\n Janus.log(\"Log Event: \", event);\n }\n },\n services: {\n restartIceService: function restartIceService(context, event) {\n return function (callback, onReceive) {\n try {\n var _defaultMediaConstrai, _defaultMediaConstrai2, _defaultMediaConstrai3, _defaultMediaConstrai4, _defaultMediaConstrai5, _defaultMediaConstrai6, _defaultMediaConstrai7, _defaultMediaConstrai8, _defaultMediaConstrai9;\n\n Janus.log(\"Restart ICE service with event:\", event);\n var sendAudio = context.canSendAudio;\n var recvAudio = context.canRecvAudio;\n var sendVideo = context.doVideo;\n var recvVideo = context.canRecvVideo;\n Janus.log(\"Restarting ICE with: \", \"sendAudio=\", sendAudio, \"recvAudio=\", recvAudio);\n Janus.log(\"Restarting ICE with: \", \"sendVideo=\", sendVideo, \"recvVideo=\", recvVideo);\n context.pluginHandle.createOffer({\n media: {\n audioSend: sendAudio,\n audioRecv: recvAudio,\n videoSend: sendVideo,\n videoRecv: recvVideo,\n audio: {\n autoGainControl: (_defaultMediaConstrai = (_defaultMediaConstrai2 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai2.autoGainControl) != null ? _defaultMediaConstrai : false,\n echoCancellation: (_defaultMediaConstrai3 = (_defaultMediaConstrai4 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai4.echoCancellation) != null ? _defaultMediaConstrai3 : false,\n noiseSuppression: (_defaultMediaConstrai5 = (_defaultMediaConstrai6 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai6.noiseSuppression) != null ? _defaultMediaConstrai5 : false,\n channelCount: (_defaultMediaConstrai7 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai7.channelCount,\n sampleRate: (_defaultMediaConstrai8 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai8.sampleRate,\n sampleSize: (_defaultMediaConstrai9 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai9.sampleSize\n },\n video: context.videoSource,\n // can be 'screen', 'window' or undefined\n captureDesktopAudio: context.videoSource === 'screen',\n screenshareFrameRate: context.videoSource === 'screen' ? context.srFrameRate : undefined,\n screenshareWidth: context.videoSource === 'screen' ? context.srScreenWidth : undefined,\n screenshareHeight: context.videoSource === 'screen' ? context.srScreenHeight : undefined\n },\n iceRestart: true,\n customizeSdp: function customizeSdp(jsep) {\n Janus.log(\"customizeSdp before:\", jsep);\n FixInactiveSdpAttr(jsep, sendAudio, recvAudio, sendVideo, recvVideo);\n\n if (context.videoSource === 'screen') {\n EnableStereoAudio(jsep);\n }\n\n Janus.log(\"customizeSdp after:\", jsep);\n },\n success: function success(jsep) {\n try {\n Janus.debug(\"Got SDP!\");\n Janus.debug(jsep);\n var body = {\n request: \"update\"\n };\n context.pluginHandle.send({\n \"message\": body,\n \"jsep\": jsep\n });\n } catch (error) {\n Janus.log(\"Error restarting ICE, error: \", error.message);\n callback({\n type: 'ICE_RESTART_FAILED',\n message: error.message\n });\n }\n },\n error: function error(message) {\n Janus.log(\"Error restarting ICE, error: \", message);\n callback({\n type: 'ICE_RESTART_FAILED',\n message: message\n });\n }\n });\n } catch (error) {\n Janus.log(\"Error restarting ICE, error: \", error.message);\n callback({\n type: 'ICE_RESTART_FAILED',\n message: error.message\n });\n }\n };\n },\n updateVideoService: function updateVideoService(context, event) {\n return function (callback, onReceive) {\n try {\n var _defaultMediaConstrai10, _defaultMediaConstrai11, _defaultMediaConstrai12, _defaultMediaConstrai13, _defaultMediaConstrai14, _defaultMediaConstrai15, _defaultMediaConstrai16, _defaultMediaConstrai17, _defaultMediaConstrai18;\n\n Janus.log(\"Update video service with event:\", event);\n var sendAudio = context.canSendAudio;\n var recvAudio = context.canRecvAudio;\n var sendVideo = context.doVideo;\n var recvVideo = context.canRecvVideo || context.doVideo;\n var addVideo = context.doVideo && context.retry491Count == 0;\n var removeVideo = !sendVideo;\n Janus.log(\"Updating video with: \", \"sendAudio=\", sendAudio, \"recvAudio=\", recvAudio);\n Janus.log(\"Updating video with: \", \"sendVideo=\", sendVideo, \"recvVideo=\", recvVideo);\n\n if (context.isIceRestartRequired) {\n Janus.log(\"Updating video with ICE restart\");\n }\n\n context.pluginHandle.createOffer({\n media: {\n audioSend: sendAudio,\n audioRecv: recvAudio,\n videoSend: sendVideo,\n videoRecv: recvVideo,\n addVideo: addVideo,\n removeVideo: removeVideo,\n audio: {\n autoGainControl: (_defaultMediaConstrai10 = (_defaultMediaConstrai11 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai11.autoGainControl) != null ? _defaultMediaConstrai10 : false,\n echoCancellation: (_defaultMediaConstrai12 = (_defaultMediaConstrai13 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai13.echoCancellation) != null ? _defaultMediaConstrai12 : false,\n noiseSuppression: (_defaultMediaConstrai14 = (_defaultMediaConstrai15 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai15.noiseSuppression) != null ? _defaultMediaConstrai14 : false,\n channelCount: (_defaultMediaConstrai16 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai16.channelCount,\n sampleRate: (_defaultMediaConstrai17 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai17.sampleRate,\n sampleSize: (_defaultMediaConstrai18 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai18.sampleSize\n },\n video: context.videoSource,\n // can be 'screen', 'window' or undefined\n captureDesktopAudio: context.videoSource === 'screen',\n screenshareFrameRate: context.videoSource === 'screen' ? context.srFrameRate : undefined,\n screenshareWidth: context.videoSource === 'screen' ? context.srScreenWidth : undefined,\n screenshareHeight: context.videoSource === 'screen' ? context.srScreenHeight : undefined\n },\n iceRestart: context.isIceRestartRequired,\n customizeSdp: function customizeSdp(jsep) {\n Janus.log(\"customizeSdp before:\", jsep);\n FixInactiveSdpAttr(jsep, sendAudio, recvAudio, sendVideo, recvVideo);\n\n if (context.videoSource === 'screen') {\n EnableStereoAudio(jsep);\n }\n\n Janus.log(\"customizeSdp after:\", jsep);\n },\n success: function success(jsep) {\n try {\n Janus.debug(\"Got SDP!\");\n Janus.debug(jsep);\n var body = {\n request: \"update\"\n };\n context.pluginHandle.send({\n \"message\": body,\n \"jsep\": jsep\n });\n callback({\n type: 'UPDATING_MEDIA',\n preferSendAudio: sendAudio,\n preferRecvAudio: recvAudio,\n preferSendVideo: sendVideo,\n preferRecvVideo: recvVideo\n });\n } catch (error) {\n Janus.log(\"Error updating call media, error: \", error.message);\n callback({\n type: 'UPDATE_MEDIA_FAILED',\n message: error.message\n });\n }\n },\n error: function error(message) {\n Janus.log(\"Error updating call media, error: \", message);\n callback({\n type: 'UPDATE_MEDIA_FAILED',\n message: message\n });\n }\n });\n } catch (error) {\n callback({\n type: 'UPDATE_MEDIA_FAILED',\n message: error.message\n });\n }\n };\n },\n holdCallService: function holdCallService(context, event) {\n return function (callback, onReceive) {\n try {\n Janus.log(\"Hold call service with event:\", event);\n var sendAudio = false;\n var recvAudio = false;\n var sendVideo = false;\n var recvVideo = false;\n var removeVideo = true;\n Janus.log(\"Holding with: \", \"sendAudio=\", sendAudio, \"recvAudio=\", recvAudio);\n Janus.log(\"Holding with: \", \"sendVideo=\", sendVideo, \"recvVideo=\", recvVideo);\n\n if (context.isIceRestartRequired) {\n Janus.log(\"Holding with ICE restart\");\n }\n\n context.pluginHandle.createOffer({\n media: {\n audioSend: sendAudio,\n audioRecv: recvAudio,\n videoSend: sendVideo,\n videoRecv: recvVideo,\n removeVideo: removeVideo\n },\n iceRestart: context.isIceRestartRequired,\n customizeSdp: function customizeSdp(jsep) {\n FixInactiveSdpAttr(jsep, sendAudio, recvAudio, sendVideo, recvVideo);\n },\n success: function success(jsep) {\n try {\n Janus.debug(\"Got SDP!\");\n Janus.debug(jsep);\n var body = {\n request: \"update\"\n };\n context.pluginHandle.send({\n \"message\": body,\n \"jsep\": jsep\n });\n callback({\n type: 'HOLDING',\n preferSendAudio: sendAudio,\n preferRecvAudio: recvAudio,\n preferSendVideo: sendVideo,\n preferRecvVideo: recvVideo,\n canSendAudio: sendAudio,\n canRecvAudio: recvAudio,\n canSendVideo: sendVideo,\n canRecvVideo: recvVideo\n });\n } catch (error) {\n Janus.log(\"Error holding call, error: \", error.message);\n callback({\n type: 'DO_HOLD_FAILED',\n message: error.message\n });\n }\n },\n error: function error(message) {\n Janus.log(\"Error holding call, error: \", message);\n callback({\n type: 'DO_HOLD_FAILED',\n message: message\n });\n }\n });\n } catch (error) {\n callback({\n type: 'DO_HOLD_FAILED',\n message: error.message\n });\n }\n };\n },\n resumeCallService: function resumeCallService(context, event) {\n return function (callback, onReceive) {\n try {\n var _defaultMediaConstrai19, _defaultMediaConstrai20, _defaultMediaConstrai21, _defaultMediaConstrai22, _defaultMediaConstrai23, _defaultMediaConstrai24, _defaultMediaConstrai25, _defaultMediaConstrai26, _defaultMediaConstrai27;\n\n Janus.log(\"Resume call service with event:\", event, \", context: \", context);\n var sendAudio = true;\n var recvAudio = true;\n var sendVideo = context.doVideo;\n var recvVideo = context.preferRecvVideo || context.canRecvVideo || context.doVideo;\n Janus.log(\"Resuming with: \", \"sendAudio=\", sendAudio, \"recvAudio=\", recvAudio);\n Janus.log(\"Resuming with: \", \"sendVideo=\", sendVideo, \"recvVideo=\", recvVideo);\n\n if (context.isIceRestartRequired) {\n Janus.log(\"Resuming with ICE restart\");\n }\n\n context.pluginHandle.createOffer({\n media: {\n audioSend: sendAudio,\n audioRecv: recvAudio,\n videoSend: sendVideo,\n videoRecv: recvVideo,\n audio: {\n autoGainControl: (_defaultMediaConstrai19 = (_defaultMediaConstrai20 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai20.autoGainControl) != null ? _defaultMediaConstrai19 : false,\n echoCancellation: (_defaultMediaConstrai21 = (_defaultMediaConstrai22 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai22.echoCancellation) != null ? _defaultMediaConstrai21 : false,\n noiseSuppression: (_defaultMediaConstrai23 = (_defaultMediaConstrai24 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai24.noiseSuppression) != null ? _defaultMediaConstrai23 : false,\n channelCount: (_defaultMediaConstrai25 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai25.channelCount,\n sampleRate: (_defaultMediaConstrai26 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai26.sampleRate,\n sampleSize: (_defaultMediaConstrai27 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai27.sampleSize\n },\n video: sendVideo ? context.enabledVideoSource : undefined,\n captureDesktopAudio: sendVideo && context.videoSource === 'screen',\n screenshareFrameRate: sendVideo && context.videoSource === 'screen' ? context.srFrameRate : undefined,\n screenshareWidth: context.videoSource === 'screen' ? context.srScreenWidth : undefined,\n screenshareHeight: context.videoSource === 'screen' ? context.srScreenHeight : undefined\n },\n iceRestart: context.isIceRestartRequired,\n customizeSdp: function customizeSdp(jsep) {\n FixInactiveSdpAttr(jsep, sendAudio, recvAudio, sendVideo, recvVideo);\n\n if (sendVideo && context.videoSource === 'screen') {\n EnableStereoAudio(jsep);\n }\n },\n success: function success(jsep) {\n try {\n Janus.debug(\"Got SDP!\");\n Janus.debug(jsep);\n var body = {\n request: \"update\"\n };\n context.pluginHandle.send({\n \"message\": body,\n \"jsep\": jsep\n });\n callback({\n type: 'RESUMING',\n preferSendAudio: sendAudio,\n preferRecvAudio: recvAudio,\n preferSendVideo: sendVideo,\n preferRecvVideo: recvVideo,\n canSendAudio: sendAudio,\n canRecvAudio: recvAudio,\n canSendVideo: sendVideo,\n canRecvVideo: recvVideo\n });\n } catch (error) {\n Janus.log(\"Error resuming call, error: \", error.message);\n callback({\n type: 'DO_RESUME_FAILED',\n message: error.message\n });\n }\n },\n error: function error(message) {\n Janus.log(\"Error resuming call, error: \", message);\n callback({\n type: 'DO_RESUME_FAILED',\n message: message\n });\n }\n });\n } catch (error) {\n callback({\n type: 'DO_RESUME_FAILED',\n message: error.message\n });\n }\n };\n },\n // get SDP offer\n makeCallService: function makeCallService(context, event) {\n return function (callback, onReceive) {\n try {\n var _defaultMediaConstrai28, _defaultMediaConstrai29, _defaultMediaConstrai30, _defaultMediaConstrai31, _defaultMediaConstrai32, _defaultMediaConstrai33, _defaultMediaConstrai34, _defaultMediaConstrai35, _defaultMediaConstrai36;\n\n Janus.log(\"Creating offer with event:\", event, \", video has been requested: \", context.doVideo);\n context.preferSendAudio = true; //context.preferRecvAudio = true;\n\n context.preferRecvAudio = !(context.doVideo && context.videoSource === 'screen');\n context.preferSendVideo = context.doVideo; //context.preferRecvVideo = context.doVideo;\n\n context.preferRecvVideo = context.doVideo && context.videoSource !== 'screen';\n Janus.log(\"Offering with: \", \"preferSendAudio=\", context.preferSendAudio, \"preferRecvAudio=\", context.preferRecvAudio);\n Janus.log(\"Offering with: \", \"preferSendVideo=\", context.preferSendVideo, \"preferRecvVideo=\", context.preferRecvVideo);\n context.pluginHandle.createOffer({\n media: {\n audioSend: context.preferSendAudio,\n audioRecv: context.preferRecvAudio,\n videoSend: context.preferSendVideo,\n videoRecv: context.preferRecvVideo,\n audio: {\n autoGainControl: (_defaultMediaConstrai28 = (_defaultMediaConstrai29 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai29.autoGainControl) != null ? _defaultMediaConstrai28 : false,\n echoCancellation: (_defaultMediaConstrai30 = (_defaultMediaConstrai31 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai31.echoCancellation) != null ? _defaultMediaConstrai30 : false,\n noiseSuppression: (_defaultMediaConstrai32 = (_defaultMediaConstrai33 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai33.noiseSuppression) != null ? _defaultMediaConstrai32 : false,\n channelCount: (_defaultMediaConstrai34 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai34.channelCount,\n sampleRate: (_defaultMediaConstrai35 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai35.sampleRate,\n sampleSize: (_defaultMediaConstrai36 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai36.sampleSize\n },\n video: context.doVideo ? context.videoSource : undefined,\n captureDesktopAudio: context.doVideo && context.videoSource === 'screen',\n screenshareFrameRate: context.doVideo && context.videoSource === 'screen' ? context.srFrameRate : undefined,\n screenshareWidth: context.videoSource === 'screen' ? context.srScreenWidth : undefined,\n screenshareHeight: context.videoSource === 'screen' ? context.srScreenHeight : undefined\n },\n customizeSdp: function customizeSdp(jsep) {\n if (context.doVideo && context.videoSource === 'screen') {\n EnableStereoAudio(jsep);\n }\n },\n success: function success(jsep) {\n try {\n Janus.debug(\"Got SDP!\");\n Janus.debug(jsep);\n var body = {\n request: \"call\",\n uri: event.target\n };\n\n if (context.instanceId !== 0) {\n body[\"headers\"] = {\n \"Janus-Helper-Id\": \"C\" + context.instanceId\n };\n }\n\n if (event.referId) {\n // In case we're originating this call because of a call\n // transfer, we need to provide the internal reference ID\n body[\"refer_id\"] = event.referId;\n }\n\n if (event.callId) {\n body[\"call_id\"] = event.callId;\n }\n\n body[\"autoaccept_reinvites\"] = false;\n context.pluginHandle.send({\n \"message\": body,\n \"jsep\": jsep\n });\n callback({\n type: 'DO_MAKE_CALL_SUCCEEDED',\n jsep: jsep,\n preferSendAudio: context.preferSendAudio,\n preferRecvAudio: context.preferRecvAudio,\n preferSendVideo: context.preferSendVideo,\n preferRecvVideo: context.preferRecvVideo\n });\n } catch (error) {\n callback({\n type: 'DO_MAKE_CALL_FAILED',\n message: error.message\n });\n }\n },\n error: function error(message) {\n callback({\n type: 'DO_MAKE_CALL_FAILED',\n message: message\n });\n }\n });\n } catch (error) {\n callback({\n type: 'DO_MAKE_CALL_FAILED',\n message: error.message\n });\n }\n };\n },\n handleRemoteMediaService: function handleRemoteMediaService(context, event) {\n return function (callback, onReceive) {\n onReceive(function (event) {\n var e = event.event;\n var context = event.context;\n var local_context = event.context;\n local_context.preferRecvVideo = e.jsep && e.jsep.sdp && e.jsep.sdp.includes(\"m=video\") || context.doVideo;\n local_context.canRecvVideo = local_context.canRecvVideo || local_context.preferRecvVideo;\n\n if (e.type === 'UPDATINGCALL') {\n // create answer SDP\n try {\n var offerless = !e.jsep || !e.jsep.sdp;\n Janus.log(\"Got re-INVITE \", offerless ? \"without\" : \"with\", \" SDP offer, context:\", local_context);\n local_context.preferSendVideo = local_context.doVideo;\n AdjustMediaMode(local_context, offerless ? null : e.jsep.sdp, true);\n Janus.log(\"preferSendAudio=\", local_context.preferSendAudio, \"preferRecvAudio=\", local_context.preferRecvAudio);\n Janus.log(\"preferSendVideo=\", local_context.preferSendVideo, \"preferRecvVideo=\", local_context.preferRecvVideo);\n\n if (offerless) {\n Janus.log(\"Offering with: \", \"canSendAudio=\", local_context.canSendAudio, \"canRecvAudio=\", local_context.canRecvAudio);\n Janus.log(\"Offering with: \", \"canSendVideo=\", local_context.canSendVideo, \"canRecvVideo=\", local_context.canRecvVideo);\n } else {\n Janus.log(\"Answering with: \", \"canSendAudio=\", local_context.canSendAudio, \"canRecvAudio=\", local_context.canRecvAudio);\n Janus.log(\"Answering with: \", \"canSendVideo=\", local_context.canSendVideo, \"canRecvVideo=\", local_context.canRecvVideo);\n }\n\n FixInactiveSdpAttr(e.jsep, local_context.canSendAudio, local_context.canRecvAudio, local_context.canSendVideo, local_context.canRecvVideo);\n var sipcallAction = offerless ? local_context.pluginHandle.createOffer : local_context.pluginHandle.createAnswer;\n sipcallAction({\n jsep: e.jsep,\n media: {\n audioSend: local_context.canSendAudio,\n audioRecv: local_context.canRecvAudio,\n videoSend: local_context.canSendVideo,\n videoRecv: local_context.canRecvVideo,\n video: local_context.canSendVideo ? local_context.videoSource : undefined,\n captureDesktopAudio: local_context.canSendVideo && local_context.videoSource === 'screen',\n screenshareFrameRate: local_context.canSendVideo && context.videoSource === 'screen' ? context.srFrameRate : undefined,\n screenshareWidth: context.videoSource === 'screen' ? context.srScreenWidth : undefined,\n screenshareHeight: context.videoSource === 'screen' ? context.srScreenHeight : undefined\n },\n customizeSdp: function customizeSdp(jsep) {\n FixInactiveSdpAttr(jsep, local_context.canSendAudio, local_context.canRecvAudio, local_context.canSendVideo, local_context.canRecvVideo);\n\n if (local_context.canSendVideo && local_context.videoSource === 'screen') {\n EnableStereoAudio(jsep);\n }\n },\n success: function success(jsep) {\n try {\n var body = {\n request: \"update\"\n };\n context.pluginHandle.send({\n \"message\": body,\n \"jsep\": jsep\n });\n\n if (!offerless) {\n callback({\n type: 'UPDATINGCALL_SUCCEEDED',\n preferSendAudio: local_context.preferSendAudio,\n preferRecvAudio: local_context.preferRecvAudio,\n preferSendVideo: local_context.preferSendVideo,\n preferRecvVideo: local_context.preferRecvVideo,\n canSendAudio: local_context.canSendAudio,\n canRecvAudio: local_context.canRecvAudio,\n canSendVideo: local_context.canSendVideo,\n canRecvVideo: local_context.canRecvVideo,\n enabledVideoSource: local_context.canSendVideo ? local_context.videoSourceProcessed : undefined\n });\n }\n } catch (error) {\n Janus.error(\"Failed to update with answer, error\", error);\n callback({\n type: 'UPDATINGCALL_FAILED',\n message: error\n });\n }\n },\n error: function error(message) {\n Janus.error(\"WebRTC error:\", message);\n callback({\n type: 'UPDATINGCALL_FAILED',\n message: message\n });\n }\n });\n } catch (error) {\n callback({\n type: 'UPDATINGCALL_FAILED',\n message: error.message\n });\n }\n } else if (e.type === 'ACCEPTED') {\n try {\n if (!e.jsep || !e.jsep.sdp) {\n Janus.log(\"Got re-INVITE answer without SDP answer\");\n callback({\n type: 'REMOTE_SDP_HANDLING_FAILED',\n message: 'No SDP found'\n });\n return;\n }\n\n Janus.log(\"Got hold/resume answer\");\n Janus.log(\"preferSendAudio=\", local_context.preferSendAudio, \"preferRecvAudio=\", local_context.preferRecvAudio);\n Janus.log(\"preferSendVideo=\", local_context.preferSendVideo, \"preferRecvVideo=\", local_context.preferRecvVideo);\n AdjustMediaMode(local_context, e.jsep.sdp);\n Janus.log(\"Accepting with: \", \"canSendAudio=\", local_context.canSendAudio, \"canRecvAudio=\", local_context.canRecvAudio);\n Janus.log(\"Accepting with: \", \"canSendVideo=\", local_context.canSendVideo, \"canRecvVideo=\", local_context.canRecvVideo);\n FixInactiveSdpAttr(e.jsep, local_context.canSendAudio, local_context.canRecvAudio, local_context.canSendVideo, local_context.canRecvVideo);\n context.pluginHandle.handleRemoteJsep({\n jsep: e.jsep,\n success: function success() {\n callback({\n type: 'REMOTE_SDP_HANDLING_SUCCEEDED',\n canSendAudio: local_context.canSendAudio,\n canRecvAudio: local_context.canRecvAudio,\n canSendVideo: local_context.canSendVideo,\n canRecvVideo: local_context.canRecvVideo,\n enabledVideoSource: local_context.canSendVideo ? local_context.videoSourceProcessed : undefined\n });\n },\n error: function error(message) {\n callback({\n type: 'REMOTE_SDP_HANDLING_FAILED',\n message: message\n });\n }\n });\n } catch (error) {\n callback({\n type: 'REMOTE_SDP_HANDLING_FAILED',\n message: error.message\n });\n }\n }\n }); // handle remote SDP\n\n if (event.jsep && event.jsep.sdp) {\n try {\n var local_context = {\n preferSendAudio: context.preferSendAudio,\n preferRecvAudio: context.preferRecvAudio,\n preferSendVideo: context.doVideo,\n preferRecvVideo: context.preferRecvVideo,\n canSendAudio: context.canSendAudio,\n canRecvAudio: context.canRecvAudio,\n canSendVideo: context.canSendVideo,\n canRecvVideo: context.canRecvVideo,\n videoSourceProcessed: context.videoSourceProcessed\n };\n Janus.log(\"preferSendAudio=\", local_context.preferSendAudio, \"preferRecvAudio=\", local_context.preferRecvAudio);\n Janus.log(\"preferSendVideo=\", local_context.preferSendVideo, \"preferRecvVideo=\", local_context.preferRecvVideo);\n AdjustMediaMode(local_context, event.jsep.sdp);\n Janus.log(\"Accepting with: \", \"canSendAudio=\", local_context.canSendAudio, \"canRecvAudio=\", local_context.canRecvAudio);\n Janus.log(\"Accepting with: \", \"canSendVideo=\", local_context.canSendVideo, \"canRecvVideo=\", local_context.canRecvVideo);\n FixInactiveSdpAttr(event.jsep, local_context.canSendAudio, local_context.canRecvAudio, local_context.canSendVideo, local_context.canRecvVideo);\n context.pluginHandle.handleRemoteJsep({\n jsep: event.jsep,\n success: function success() {\n callback({\n type: 'REMOTE_SDP_HANDLING_SUCCEEDED',\n canSendAudio: local_context.canSendAudio,\n canRecvAudio: local_context.canRecvAudio,\n canSendVideo: local_context.canSendVideo,\n canRecvVideo: local_context.canRecvVideo,\n enabledVideoSource: local_context.canSendVideo ? local_context.videoSourceProcessed : undefined\n });\n },\n error: function error(message) {\n callback({\n type: 'REMOTE_SDP_HANDLING_FAILED',\n message: message\n });\n }\n });\n } catch (error) {\n callback({\n type: 'REMOTE_SDP_HANDLING_FAILED',\n message: error.message\n });\n }\n }\n };\n },\n handleIncomingCallService: function handleIncomingCallService(context, event) {\n return function (callback, onReceive) {\n onReceive(function (e) {\n if (e.type === \"DO_ACCEPT\") {\n // accepting call\n try {\n var _defaultMediaConstrai37, _defaultMediaConstrai38, _defaultMediaConstrai39, _defaultMediaConstrai40, _defaultMediaConstrai41, _defaultMediaConstrai42, _defaultMediaConstrai43, _defaultMediaConstrai44, _defaultMediaConstrai45;\n\n var jsep = context.incomingCallJsep;\n var offerless = !jsep || !jsep.sdp;\n context.preferSendAudio = true;\n context.preferRecvAudio = true;\n context.preferSendVideo = context.doVideo;\n context.preferRecvVideo = jsep && jsep.sdp && jsep.sdp.includes(\"m=video\") || context.doVideo;\n context.canSendAudio = context.preferSendAudio;\n context.canRecvAudio = context.preferRecvAudio;\n context.canSendVideo = context.preferSendVideo;\n context.canRecvVideo = context.preferRecvVideo;\n AdjustMediaMode(context, offerless ? null : jsep.sdp);\n\n if (offerless) {\n Janus.log(\"Offering with: \", \"preferSendAudio=\", context.preferSendAudio, \"preferRecvAudio=\", context.preferRecvAudio);\n Janus.log(\"Offering with: \", \"preferSendVideo=\", context.preferSendVideo, \"preferRecvVideo=\", context.preferRecvVideo);\n } else {\n Janus.log(\"Answering with: \", \"canSendAudio=\", context.canSendAudio, \"preferRecvAudio=\", context.preferRecvAudio);\n Janus.log(\"Answering with: \", \"canSendVideo=\", context.canSendVideo, \"canRecvVideo=\", context.canRecvVideo);\n\n if (context.doVideo && !context.canSendVideo) {\n Janus.log(\"Scheduling reINVITE when connected to enable send video\");\n callback('DO_POST_ENABLE_VIDEO');\n }\n }\n\n var sipcallAction = offerless ? context.pluginHandle.createOffer : context.pluginHandle.createAnswer;\n sipcallAction({\n jsep: jsep,\n media: {\n audioSend: context.canSendAudio,\n audioRecv: context.canRecvAudio,\n videoSend: context.canSendVideo,\n videoRecv: context.canRecvVideo,\n audio: {\n autoGainControl: (_defaultMediaConstrai37 = (_defaultMediaConstrai38 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai38.autoGainControl) != null ? _defaultMediaConstrai37 : false,\n echoCancellation: (_defaultMediaConstrai39 = (_defaultMediaConstrai40 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai40.echoCancellation) != null ? _defaultMediaConstrai39 : false,\n noiseSuppression: (_defaultMediaConstrai41 = (_defaultMediaConstrai42 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai42.noiseSuppression) != null ? _defaultMediaConstrai41 : false,\n channelCount: (_defaultMediaConstrai43 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai43.channelCount,\n sampleRate: (_defaultMediaConstrai44 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai44.sampleRate,\n sampleSize: (_defaultMediaConstrai45 = defaultMediaConstraints) == null ? void 0 : _defaultMediaConstrai45.sampleSize\n },\n video: context.canSendVideo ? context.videoSourceProcessed : undefined,\n captureDesktopAudio: context.canSendVideo && context.videoSource === 'screen',\n screenshareFrameRate: context.canSendVideo && context.videoSource === 'screen' ? context.srFrameRate : undefined,\n screenshareWidth: context.videoSource === 'screen' ? context.srScreenWidth : undefined,\n screenshareHeight: context.videoSource === 'screen' ? context.srScreenHeight : undefined\n },\n customizeSdp: function customizeSdp(jsep) {\n if (context.canSendVideo && context.videoSource === 'screen') {\n EnableStereoAudio(jsep);\n }\n },\n success: function success(jsep) {\n try {\n Janus.debug(jsep);\n var body = {\n request: \"accept\",\n autoaccept_reinvites: false\n };\n\n if (context.instanceId !== 0) {\n body[\"headers\"] = {\n \"Janus-Helper-Id\": \"C\" + context.instanceId\n };\n }\n\n context.pluginHandle.send({\n \"message\": body,\n \"jsep\": jsep\n });\n callback('DO_ACCEPT_SUCCEEDED');\n } catch (error) {\n callback({\n type: 'DO_ACCEPT_FAILED',\n message: error.message\n });\n }\n },\n error: function error(message) {\n // accept failed\n try {\n Janus.error(\"WebRTC error:\", message);\n var body = {\n \"request\": \"decline\",\n \"code\": 480\n };\n context.pluginHandle.send({\n \"message\": body\n });\n callback({\n type: 'DO_ACCEPT_FAILED',\n message: message\n });\n } catch (err) {\n callback({\n type: 'DO_ACCEPT_FAILED',\n message: message + \",\" + err.message\n });\n }\n }\n });\n } catch (error) {\n callback({\n type: 'DO_ACCEPT_FAILED',\n message: error.message\n });\n }\n } else if (e.type === \"DO_DECLINE\") {\n // declining call\n try {\n var body = {\n \"request\": \"decline\"\n };\n\n if (e.code !== undefined && !isNaN(e.code)) {\n body[\"code\"] = e.code;\n }\n\n context.pluginHandle.send({\n \"message\": body\n });\n callback('DO_DECLINE_SUCCEEDED');\n } catch (error) {\n callback({\n type: 'DO_DECLINE_FAILED',\n message: error.message\n });\n }\n }\n });\n };\n },\n executeXferService: function executeXferService(context, event) {\n return function (callback, onReceive) {\n onReceive(function (e) {\n if (e.type === 'DO_BLIND_XFER') {\n try {\n var body = {\n \"request\": \"transfer\",\n \"uri\": e.refer_to\n };\n context.pluginHandle.send({\n \"message\": body\n });\n context.isLastXferBlind = true;\n context.isLastXferSuper = false;\n callback('DO_BLIND_XFER_SUCCEEDED');\n } catch (error) {\n callback({\n type: 'DO_BLIND_XFER_FAILED',\n message: error.message\n });\n }\n } else if (e.type === 'DO_XFER') {\n try {\n var _body = {\n \"request\": \"transfer\",\n \"uri\": e.refer_to,\n \"replace\": e.replaces_call_id\n };\n context.pluginHandle.send({\n \"message\": _body\n });\n context.isLastXferBlind = false;\n context.isLastXferSuper = true;\n callback('DO_XFER_SUCCEEDED');\n } catch (error) {\n callback({\n type: 'DO_XFER_FAILED',\n message: error.message\n });\n }\n }\n });\n };\n }\n }\n});\n\nfunction FixInactiveSdpAttr(jsep, preferSendAudio, preferRecvAudio, preferSendVideo, preferRecvVideo) {\n // the order of m-lines must be preserved or it will be rejected by PC (if order of m-lines\n // doesn't match the order of m-lines in the offer)\n if (!jsep || !jsep.sdp) return;\n\n if (!preferSendAudio && !preferRecvAudio || !preferSendVideo && !preferRecvVideo) {\n // find m=audio\n var maudio_index = jsep.sdp.indexOf(\"m=audio \");\n var mvideo_index = jsep.sdp.indexOf(\"m=video \");\n var maudio = '';\n var mvideo = '';\n var mindex = -1;\n\n if (maudio_index > -1) {\n if (mvideo_index == -1) {\n mindex = maudio_index;\n maudio = jsep.sdp.substring(maudio_index);\n } else if (maudio_index < mvideo_index) {\n mindex = maudio_index;\n maudio = jsep.sdp.substring(maudio_index, mvideo_index);\n mvideo = jsep.sdp.substring(mvideo_index);\n } else {\n mindex = mvideo_index;\n mvideo = jsep.sdp.substring(mvideo_index, maudio_index);\n maudio = jsep.sdp.substring(maudio_index);\n }\n } else if (mvideo_index > -1) {\n mindex = mvideo_index;\n mvideo = jsep.sdp.substring(mvideo_index);\n }\n\n var newSdp;\n\n if (mindex > -1) {\n newSdp = jsep.sdp.substring(0, mindex);\n }\n\n if (maudio && !preferSendAudio && !preferRecvAudio) {\n maudio = maudio.replace(\"a=sendonly\\r\\n\", \"a=inactive\\r\\n\");\n maudio = maudio.replace(\"a=recvonly\\r\\n\", \"a=inactive\\r\\n\");\n maudio = maudio.replace(\"a=sendrecv\\r\\n\", \"a=inactive\\r\\n\");\n if (maudio.indexOf(\"a=inactive\\r\\n\") < -1) maudio += \"a=inactive\\r\\n\";\n }\n\n if (mvideo && !preferSendVideo && !preferRecvVideo) {\n mvideo = mvideo.replace(\"a=sendonly\\r\\n\", \"a=inactive\\r\\n\");\n mvideo = mvideo.replace(\"a=recvonly\\r\\n\", \"a=inactive\\r\\n\");\n mvideo = mvideo.replace(\"a=sendrecv\\r\\n\", \"a=inactive\\r\\n\");\n if (mvideo.indexOf(\"a=inactive\\r\\n\") < -1) mvideo += \"a=inactive\\r\\n\";\n }\n\n if (maudio_index < mvideo_index) {\n newSdp += maudio;\n newSdp += mvideo;\n } else {\n newSdp += mvideo;\n newSdp += maudio;\n }\n\n jsep.sdp = newSdp;\n }\n}\n\nfunction calculateUserName(context, event) {\n if (context.pbxPlatform === 'cucm') {\n if (context.incomingCallUserName) return context.incomingCallUserName;\n\n if (event.result[\"headers\"] && event.result[\"headers\"][\"Remote-Party-Id\"] && event.result[\"headers\"][\"Remote-Party-Id\"].includes(\"sip:\")) {\n var header = event.result[\"headers\"][\"Remote-Party-Id\"];\n var callerId = header.indexOf(\"@\") < 0 ? \"anonymous\" : header.substring(header.indexOf(\"sip:\") + 4, header.indexOf(\"@\"));\n if (callerId) return callerId;\n }\n }\n\n return event.result[\"username\"] !== undefined ? event.result[\"username\"] : context.remote_uri;\n}\n\nfunction calculateDisplayName(context, event) {\n if (context.pbxPlatform === 'cucm') {\n if (context.incomingCallDisplayName) return context.incomingCallDisplayName;\n\n if (event.result[\"headers\"] && event.result[\"headers\"][\"Remote-Party-Id\"]) {\n var trimmed = event.result[\"headers\"][\"Remote-Party-Id\"];\n\n if (trimmed.indexOf(\"\\\"\") === 0 && trimmed.indexOf(\"\\\"\", 1) > 1) {\n return trimmed.substring(1, trimmed.indexOf(\"\\\"\", 1));\n }\n }\n }\n\n return event.result[\"displayname\"] !== undefined ? event.result[\"displayname\"] : undefined;\n}\n\nfunction setDefaultAudioConstraints(constraints) {\n defaultMediaConstraints = constraints;\n}\n\nfunction AdjustMediaMode(context, sdp) {\n var attrContext = {\n answerSend: false,\n answerRecv: false\n };\n DetermineAnswerMediaAttr(\"audio\", attrContext, sdp);\n context.canSendAudio = context.preferSendAudio && attrContext.answerSend;\n context.canRecvAudio = context.preferRecvAudio && attrContext.answerRecv;\n attrContext.answerSend = false;\n attrContext.answerRecv = false;\n DetermineAnswerMediaAttr(\"video\", attrContext, sdp);\n context.canSendVideo = context.preferSendVideo && attrContext.answerSend;\n context.canRecvVideo = attrContext.answerRecv;\n}\n\nfunction DetermineAnswerMediaAttr(mediaType, attrContext, sdp) {\n if (!sdp) {\n attrContext.answerSend = false;\n attrContext.answerRecv = false;\n return;\n }\n\n var mediaLine = \"m=\" + mediaType + \" \";\n var mediaIndex = sdp.indexOf(mediaLine);\n var answerSend = mediaIndex > -1;\n var answerRecv = mediaIndex > -1;\n var fromIndex = mediaIndex;\n var mCount = 0;\n\n while (fromIndex > -1 && (mediaIndex = sdp.indexOf(mediaLine, fromIndex)) > -1) {\n // prefer active md's over inactives\n if (++mCount > 1 && (answerSend || answerRecv)) break;\n answerSend = true;\n answerRecv = true; // determine the end pos of the current md\n\n var end_of_md = sdp.indexOf(\"\\r\\nm=\", mediaIndex + 1); // determine attribute index within the current md, there must be only one\n\n var sendOnlyModeIndex = -1;\n var recvOnlyModeIndex = -1;\n var inactiveModeIndex = -1;\n var sendrecvModeIndex = sdp.indexOf(\"a=sendrecv\\r\\n\", fromIndex);\n if (sendrecvModeIndex < mediaIndex || end_of_md > -1 && sendrecvModeIndex > end_of_md) sendrecvModeIndex = -1;\n\n if (sendrecvModeIndex < 0) {\n sendOnlyModeIndex = sdp.indexOf(\"a=sendonly\\r\\n\", fromIndex);\n if (sendOnlyModeIndex < mediaIndex || end_of_md > -1 && sendOnlyModeIndex > end_of_md) sendOnlyModeIndex = -1;\n\n if (sendOnlyModeIndex < 0) {\n recvOnlyModeIndex = sdp.indexOf(\"a=recvonly\\r\\n\", fromIndex);\n if (recvOnlyModeIndex < mediaIndex || end_of_md > -1 && recvOnlyModeIndex > end_of_md) recvOnlyModeIndex = -1;\n\n if (recvOnlyModeIndex < 0) {\n inactiveModeIndex = sdp.indexOf(\"a=inactive\\r\\n\", fromIndex);\n if (inactiveModeIndex < mediaIndex || end_of_md > -1 && inactiveModeIndex > end_of_md) inactiveModeIndex = -1;\n }\n }\n }\n\n if (sendOnlyModeIndex > -1) {\n answerSend = false;\n answerRecv = true;\n } else if (recvOnlyModeIndex > -1) {\n answerSend = true;\n answerRecv = false;\n } else if (inactiveModeIndex > -1) {\n answerSend = false;\n answerRecv = false;\n } // advance fromIndex for the next iteration\n\n\n fromIndex = end_of_md;\n }\n\n attrContext.answerSend = answerSend;\n attrContext.answerRecv = answerRecv;\n}\n\nfunction EnableStereoAudio(jsep) {\n // add 'sprop-stereo=1' to make sure desktop audio and microphone are seperated in channels\n if (!jsep || !jsep.sdp) return;\n\n if (jsep.sdp.includes('useinbandfec=')) {\n jsep.sdp = jsep.sdp.replace('useinbandfec=', 'sprop-stereo=1;useinbandfec=');\n }\n}\n\nfunction GetErrorMessage(event) {\n if (event.message instanceof Error) return event.message.message;else return event.message;\n}\n\nvar _DETACH;\nvar escalate$1 = actions$1.escalate; // top\n\nvar sipPluginSession = /*#__PURE__*/Machine({\n id: 'ipfxSipPluginSession',\n initial: 'unknown',\n context: {\n sessionService: null,\n janusSession: null,\n pluginHandle: null,\n opaqueId: null,\n instanceId: null,\n queuedDetach: false,\n masterId: null,\n registerSipserver: null,\n registerUsername: null,\n registerDisplayname: null,\n registerSecret: null,\n registerHeaders: {},\n isCallAnswered: false,\n pushToken: null,\n alertPushToken: null,\n pushPlatformName: null,\n pbxPlatform: null,\n monitorTarget: null,\n disabledPlugin: false\n },\n states: {\n inactive: {\n type: 'final'\n },\n unknown: {\n always: [{\n target: 'inactive',\n cond: function cond(context) {\n return context.disabledPlugin;\n }\n }, {\n target: 'attaching',\n cond: function cond(context) {\n return context.instanceId === 0;\n }\n }, 'waitingForMasterId'],\n on: {\n DETACH: 'inactive'\n }\n },\n waitingForMasterId: {\n on: {\n ATTACH: {\n target: 'attaching',\n actions: /*#__PURE__*/assign({\n masterId: function masterId(context, event) {\n return event.masterId;\n },\n registerUsername: function registerUsername(context, event) {\n return event.registerUsername;\n }\n })\n },\n DETACH: 'inactive',\n CLEANUP: undefined,\n DETACHED: 'inactive'\n }\n },\n attaching: {\n invoke: {\n id: 'pluginAttach',\n src: 'pluginAttachService'\n },\n on: {\n ATTACHED: [{\n cond: function cond(context, event) {\n return context.queuedDetach;\n },\n actions: 'detachAction'\n }, {\n target: 'attached',\n actions: /*#__PURE__*/send$1('DO_REGISTER'),\n cond: function cond(context) {\n return context.instanceId !== 0;\n }\n }, 'attached'],\n SERVICE_ERROR: {\n target: 'inactive',\n actions: /*#__PURE__*/escalate$1(function (context, event) {\n return {\n reason: 'PLUGIN_ATTACH_FAILED',\n message: event.message\n };\n })\n },\n DETACH: {\n actions: function actions(context) {\n return context.queuedDetach = true;\n }\n },\n CLEANUP: undefined,\n DETACHED: 'inactive'\n }\n },\n attached: /*#__PURE__*/_extends({\n invoke: {\n id: 'callControl',\n src: callStateMachine,\n data: {\n pluginHandle: function pluginHandle(context, event) {\n return event.handle;\n },\n opaqueId: function opaqueId(context, event) {\n return context.opaqueId;\n },\n instanceId: function instanceId(context, event) {\n return context.instanceId;\n },\n pbxPlatform: function pbxPlatform(context, event) {\n return context.pbxPlatform;\n },\n doVideo: function doVideo() {\n return false;\n },\n videoSource: function videoSource() {\n return undefined;\n }\n },\n onError: {\n actions: [function (context, event) {\n Janus.error(\"callControl.OnError:, \", event.data.message);\n }, /*#__PURE__*/sendParent$1(function (context, event) {\n return {\n type: 'CALL_STATE_ERROR',\n instanceId: context.instanceId,\n error: event.data.message\n };\n })]\n },\n onDone: 'inactive'\n },\n entry: ['onPluginStartedAction', /*#__PURE__*/send$1('DO_AUTOREGISTER')],\n on: {\n // invoke registration service\n DETACH: (_DETACH = {\n actions: 'detachAction'\n }, _DETACH[\"actions\"] = /*#__PURE__*/send$1(function (context, event) {\n return {\n type: 'JANUS_SESSION_ENDED'\n };\n }, {\n to: 'callControl'\n }), _DETACH),\n DETACHED: {\n actions: /*#__PURE__*/send$1(function (context, event) {\n return {\n type: 'JANUS_SESSION_ENDED'\n };\n }, {\n to: 'callControl'\n })\n },\n SERVICE_ERROR: {\n target: 'inactive',\n actions: /*#__PURE__*/escalate$1(function (context, event) {\n return {\n reason: 'PLUGIN_ATTACH_FAILED',\n message: event.message\n };\n })\n },\n // call related control events\n SIP_ERROR: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n INVITE_ERROR: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n DO_ENABLE_VIDEO: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n DO_GET_STATS: {\n actions: function actions(context, event) {\n var _context$pluginHandle, _context$pluginHandle2;\n\n var pc = (_context$pluginHandle = context.pluginHandle) == null ? void 0 : (_context$pluginHandle2 = _context$pluginHandle.webrtcStuff) == null ? void 0 : _context$pluginHandle2.pc;\n\n if (pc) {\n OnStatsUpdate(pc, context);\n }\n }\n },\n DO_MAKE_CALL: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n DO_HANGUP: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n DO_HOLD: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n DO_ICE_RESTART: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n DO_RESUME: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n DO_ACCEPT: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n DO_DECLINE: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n DO_SEND_DTMF: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n DO_REJECT_REFER: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n DO_BLIND_XFER: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n DO_XFER: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n DO_START_SR: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n DO_STOP_SR: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n // call states events from callControl\n CALL_STATE_IDLE: {\n actions: [/*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n }), /*#__PURE__*/assign({\n isCallAnswered: function isCallAnswered() {\n return false;\n }\n })]\n },\n CALL_STATE_DEEP_IDLE: {\n actions: [/*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n }), /*#__PURE__*/assign({\n isCallAnswered: function isCallAnswered() {\n return false;\n }\n })]\n },\n CALL_STATE_TRYING_OUT: {\n actions: [/*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n }), /*#__PURE__*/assign({\n isCallAnswered: function isCallAnswered() {\n return false;\n }\n })]\n },\n CALL_STATE_CALLING_OUT: {\n actions: [/*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n }), /*#__PURE__*/assign({\n isCallAnswered: function isCallAnswered() {\n return false;\n }\n })]\n },\n CALL_STATE_RINGING_OUT: {\n actions: [/*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n }), /*#__PURE__*/assign({\n isCallAnswered: function isCallAnswered() {\n return false;\n }\n })]\n },\n CALL_STATE_PROCEEDING_OUT: {\n actions: [/*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n }), /*#__PURE__*/assign({\n isCallAnswered: function isCallAnswered() {\n return false;\n }\n })]\n },\n CALL_STATE_PROGRESS_OUT: {\n actions: [/*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n }), /*#__PURE__*/assign({\n isCallAnswered: function isCallAnswered() {\n return false;\n }\n })]\n },\n CALL_STATE_CONNECTING: {\n actions: [/*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n }), /*#__PURE__*/assign({\n isCallAnswered: function isCallAnswered() {\n return false;\n }\n })]\n },\n CALL_STATE_CONNECTED: {\n actions: [/*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n }), /*#__PURE__*/assign({\n isCallAnswered: function isCallAnswered() {\n return true;\n }\n })]\n },\n CALL_STATE_HANGINGUP: {\n actions: [/*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n }), /*#__PURE__*/assign({\n isCallAnswered: function isCallAnswered() {\n return false;\n }\n })]\n },\n CALL_STATE_ONHOLD: {\n actions: [/*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n }), /*#__PURE__*/assign({\n isCallAnswered: function isCallAnswered() {\n return true;\n }\n })]\n },\n CALL_STATE_INCOMING_CALL: {\n actions: [/*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n }), /*#__PURE__*/assign({\n isCallAnswered: function isCallAnswered() {\n return false;\n }\n })]\n },\n CALL_STATE_DO_XFERRING: {\n actions: [/*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n }), /*#__PURE__*/assign({\n isCallAnswered: function isCallAnswered() {\n return true;\n }\n })]\n },\n CALL_STATE_ERROR: {\n actions: /*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n })\n },\n HANDLE_REFER: {\n actions: /*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n })\n },\n DO_BLIND_XFER_FAILED: {\n actions: /*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n })\n },\n DO_BLIND_XFER_SUCCEEDED: {\n actions: /*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n })\n },\n DO_XFER_FAILED: {\n actions: /*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n })\n },\n DO_XFER_SUCCEEDED: {\n actions: /*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n })\n },\n // media\n MEDIA_ON_LOCAL_STREAM: {\n actions: /*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n })\n },\n MEDIA_ON_REMOTE_STREAM: {\n actions: /*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n })\n },\n SLOWLINK: {\n actions: /*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n })\n },\n ON_STATS_UPDATED: {\n actions: /*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n })\n },\n // SIP plugin call events\n INCOMINGCALL: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n DECLINING: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n DECLINED: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n ACCEPTING: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n CALLING: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n PROCEEDING: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n RINGING: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n PROGRESS: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n ACCEPTED: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n UPDATING: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n UPDATED: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n TRANSFERRING: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n TRANSFER: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n HOLDING: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n RESUMING: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n DTMFSENT: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n UPDATINGCALL: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n HANGINGUP: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n HANGUP: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n CLEANUP: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n },\n NOTIFY: {\n actions: /*#__PURE__*/forwardTo$1('callControl'),\n cond: function cond(context, event) {\n return event.result[\"notify\"] === \"refer\";\n }\n },\n REQUEST_TO_RECONNECT: {\n actions: /*#__PURE__*/sendParent$1(function (context, event) {\n return event;\n })\n },\n JANUS_SESSION_ENDED: {\n actions: /*#__PURE__*/forwardTo$1('callControl')\n }\n }\n }, sipRegisterStates),\n detached: {\n always: 'inactive'\n }\n } // states\n\n}, {\n services: {\n pluginAttachService: function pluginAttachService(context, event) {\n return function (callback, onReceive) {\n try {\n context.pluginHandle = null;\n context.queuedDetach = false;\n context.janusSession.attach({\n plugin: \"janus.plugin.sip\",\n opaqueId: context.opaqueId,\n error: function error(_error) {\n return callback({\n type: 'SERVICE_ERROR',\n message: _error.message\n });\n },\n success: function success(pluginHandle) {\n return callback({\n type: 'ATTACHED',\n handle: pluginHandle\n });\n },\n consentDialog: function consentDialog() {},\n onmessage: function onmessage(msg, jsep) {\n return OnMessage(msg, jsep, context);\n },\n onlocalstream: function onlocalstream(stream) {\n return OnLocalStream(stream, context);\n },\n onremotestream: function onremotestream(stream) {\n return OnRemoteStream(stream, context);\n },\n mediaState: function mediaState(medium, on) {\n Janus.log(\"Janus \" + (on ? \"started\" : \"stopped\") + \" receiving our \" + medium);\n },\n slowLink: function slowLink(uplink, lost) {\n return OnSlowLink(uplink, \"audio\", lost, context);\n },\n inLinkStatus: function inLinkStatus(status, media) {\n return OnInLinkStatus(status, media, context);\n },\n oncleanup: function oncleanup(error) {\n return OnPluginCleanup(error, context);\n },\n ondetached: function ondetached() {\n return OnPluginDetached(undefined, context);\n },\n onreconnect: function onreconnect() {\n return OnReconnectRequested(context);\n }\n });\n } catch (error) {\n callback({\n type: 'SERVICE_ERROR',\n message: error.message\n });\n }\n };\n }\n },\n actions: {\n detachAction: function detachAction(context, event) {\n if (context.pluginHandle !== undefined) {\n context.pluginHandle.detach();\n }\n },\n onPluginStartedAction: function onPluginStartedAction(context, event) {\n var this_plugin;\n\n for (var _iterator = _createForOfIteratorHelperLoose(context.sessionService.children.values()), _step; !(_step = _iterator()).done;) {\n var value = _step.value;\n\n if (value.state.context.instanceId == context.instanceId) {\n this_plugin = value;\n break;\n }\n }\n\n if (this_plugin.state.children.callControl !== undefined && this_plugin.state.children.callControl.listeners.size < 1) {\n this_plugin.state.children.callControl.listeners.add(function (state) {\n if (state.history === undefined) Janus.log(\"Machine callControl(\", context.instanceId, \") state change: \", state.history, \"-->\", state.value, \", event: \", state.event);else Janus.log(\"Machine callControl(\", context.instanceId, \") state change: \", state.history.value, \"-->\", state.value, \", event: \", state.event);\n });\n }\n\n context.pluginHandle = event.handle;\n }\n }\n}); //function ForwardEventToServiceInstance(context, event) {\n//\tfor (let value of sessionService.children.values()) {\n//\t\tif (value.machine.config.id === \"ipfxSipPluginSession\" && value.machine.context.opaqueId === context.opaqueId) {\n// value.send(event);\n// }\n//\t}\n//}\n\nfunction ForwardEventToServiceInstance(context, event, serviceId, service) {\n if (service.machine === undefined) {\n return false;\n }\n\n if (service.machine.config.id === serviceId && service.machine.context.instanceId == context.instanceId) {\n try {\n service.send(event);\n } catch (err) {\n Janus.warn('Failed to handle event', event, \", reason:\", err.message);\n }\n\n return true;\n }\n\n for (var _iterator2 = _createForOfIteratorHelperLoose(service.children.values()), _step2; !(_step2 = _iterator2()).done;) {\n var value = _step2.value;\n\n if (ForwardEventToServiceInstance(context, event, serviceId, value)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction OnRemoteStream(stream, context) {\n try {\n ForwardEventToServiceInstance(context, {\n type: 'MEDIA_ON_REMOTE_STREAM',\n instanceId: context.instanceId,\n stream: stream\n }, \"ipfxSipPluginSession\", context.sessionService);\n } catch (err) {\n Janus.error(\"OnRemoteStream: \", err);\n ForwardEventToServiceInstance(context, {\n type: 'SERVICE_ERROR',\n message: err.message\n }, \"ipfxSipPluginSession\", context.sessionService);\n }\n}\n\nfunction OnLocalStream(stream, context) {\n try {\n ForwardEventToServiceInstance(context, {\n type: 'MEDIA_ON_LOCAL_STREAM',\n instanceId: context.instanceId,\n stream: stream\n }, \"ipfxSipPluginSession\", context.sessionService);\n } catch (err) {\n Janus.error(\"OnLocalStream: \", err);\n ForwardEventToServiceInstance(context, {\n type: 'SERVICE_ERROR',\n message: err.message\n }, \"ipfxSipPluginSession\", context.sessionService);\n }\n}\n\nfunction OnMessage(msg, jsep, context) {\n try {\n Janus.debug(\" ::: Got a message :::\");\n Janus.debug(msg); // check for errors\n\n var error = msg[\"error\"];\n\n if (error !== null && error !== undefined) {\n ForwardEventToServiceInstance(context, {\n type: 'SIP_ERROR',\n message: error,\n error_code: msg[\"error_code\"]\n }, \"ipfxSipPluginSession\", context.sessionService);\n return;\n }\n\n var result = msg[\"result\"];\n\n if (result !== null && result !== undefined && result[\"event\"] !== undefined && result[\"event\"] !== null) {\n var sip_event = result[\"event\"];\n ForwardEventToServiceInstance(context, {\n type: sip_event.toUpperCase(),\n jsep: jsep,\n result: msg[\"result\"],\n call_id: msg[\"call_id\"]\n }, \"ipfxSipPluginSession\", context.sessionService);\n } else {\n Janus.warn(\"OnMessage: random message!\");\n }\n } catch (err) {\n Janus.error(\"OnMessage: \", err);\n ForwardEventToServiceInstance(context, {\n type: 'SERVICE_ERROR',\n message: err.message\n }, \"ipfxSipPluginSession\", context.sessionService);\n }\n}\n\nfunction OnPluginCleanup(error, context) {\n ForwardEventToServiceInstance(context, {\n type: 'CLEANUP',\n message: error\n }, \"ipfxSipPluginSession\", context.sessionService);\n}\n\nfunction OnPluginDetached(error, context) {\n ForwardEventToServiceInstance(context, {\n type: 'DETACHED',\n message: error\n }, \"ipfxSipPluginSession\", context.sessionService);\n}\n\nfunction OnSlowLink(uplink, media, lost, context) {\n ForwardEventToServiceInstance(context, {\n type: 'SLOWLINK',\n instanceId: context.instanceId,\n uplink: uplink,\n media: media,\n lost: lost\n }, \"ipfxSipPluginSession\", context.sessionService);\n}\n\nfunction OnInLinkStatus(status, media, context) {\n if (!status && media == \"audio\") {\n ForwardEventToServiceInstance(context, {\n type: 'DO_ICE_RESTART',\n instanceId: context.instanceId\n }, \"ipfxSipPluginSession\", context.sessionService);\n }\n}\n\nfunction OnReconnectRequested(context) {\n if (context.instanceId === 0) {\n ForwardEventToServiceInstance(context, {\n type: 'REQUEST_TO_RECONNECT',\n instanceId: context.instanceId\n }, \"ipfxSipPluginSession\", context.sessionService);\n }\n}\n\nfunction OnStatsUpdate(_x, _x2) {\n return _OnStatsUpdate.apply(this, arguments);\n}\n\nfunction _OnStatsUpdate() {\n _OnStatsUpdate = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(pc, context) {\n var stats;\n return runtime_1.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return pc.getStats(null);\n\n case 2:\n stats = _context.sent;\n ForwardEventToServiceInstance(context, {\n type: 'ON_STATS_UPDATED',\n instanceId: context.instanceId,\n stats: stats\n }, \"ipfxSipPluginSession\", context.sessionService);\n\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _OnStatsUpdate.apply(this, arguments);\n}\n\nvar endpointView;\nvar CallView = /*#__PURE__*/function () {\n function CallView() {\n this.uiCallbacks = {};\n this.instanceId = undefined;\n this.referInstanceId = undefined;\n this.sipserver = undefined;\n this.username = undefined;\n this.localStream = undefined;\n this.remoteStream = undefined;\n this.pbxPlatform = undefined;\n this.direction = undefined;\n this.state = 'idle';\n this.stateDesc = undefined;\n this.statusErrorCode = undefined;\n this.statusErrorDescription = undefined;\n this.peerUsername = undefined;\n this.peerDisplay = undefined;\n this.lastCallerUsername = undefined;\n this.lastCallerDisplay = undefined;\n this.lastCalleeUsername = undefined;\n this.lastCalleeDisplay = undefined;\n this.localStreamActive = false;\n this.remoteStreamActive = false;\n this.videoRequested = false;\n this.videoSource = undefined;\n this.lastHangupCode = undefined;\n this.lastHangupReason = undefined;\n this.lastHangupTone = undefined;\n this.lastDirection = undefined;\n this.canPlayBusyTone = false;\n this.canPlayReorderTone = false;\n this.canPlayNuTone = false;\n this.stats = undefined;\n this.isSlowAudioDownlink = false;\n this.isSlowAudioUplink = false;\n this.lineRegistered = false;\n this.callId = undefined;\n this.xferInstanceId = undefined;\n this.answerRequested = false;\n this.slowAudioUplinkTimer = undefined;\n this.slowAudioDownlinkTimer = undefined;\n this.canMakeCall = false;\n this.canHangup = false;\n this.canAnswer = false;\n this.canRingOut = false;\n this.featureHoldResume = true;\n this.canHold = false;\n this.canResume = false;\n this.canBlindXfer = false;\n this.canXfer = false;\n this.canSendDtmf = false;\n this.isMuted = false;\n this.hasLocalAudio = false;\n this.hasRemoteAudio = false;\n this.hasLocalVideo = false;\n this.hasRemoteVideo = false;\n this.enabledVideoSource = undefined;\n }\n\n var _proto = CallView.prototype;\n\n _proto.ToDialUri = function ToDialUri(userpart) {\n var dialUri = userpart;\n\n if (userpart.indexOf(\"sip:\") < 0 && userpart.indexOf(\"@\") < 0) {\n dialUri = this.sipserver.slice(0, 4) + userpart + \"@\" + this.sipserver.slice(4);\n }\n\n return dialUri;\n } //////////////////////////////////////////\n // public UI commands\n //////////////////////////////////////////\n ;\n\n _proto.doMakeCall = function doMakeCall(target) {\n var _this = this;\n\n this.clearError();\n\n if (!this.canMakeCall) {\n setTimeout(function () {\n return _this.onCallStatusError(CallStatusErrorCode.ERROR_MAKE_CALL, \"Unable to make call: line busy\");\n }, 0);\n return;\n }\n\n if (target.length === 0) {\n setTimeout(function () {\n return _this.onCallStatusError(CallStatusErrorCode.ERROR_MAKE_CALL, \"Unable to make call: target empty\");\n }, 0);\n return;\n }\n\n try {\n var targetUri = this.ToDialUri(target);\n\n _sessionService.send({\n type: 'FORWARD_TO_PLUGIN',\n event: {\n type: 'DO_MAKE_CALL',\n target: targetUri,\n referId: \"\",\n instanceId: this.instanceId\n }\n });\n } catch (err) {\n setTimeout(function () {\n return _this.onCallStatusError(CallStatusErrorCode.ERROR_MAKE_CALL, \"Unable to make call: \" + err.message);\n }, 0);\n return;\n }\n\n if (typeof this.uiCallbacks.onCallStatusChange === \"function\") this.uiCallbacks.onCallStatusChange(this.sipserver, this.username);\n };\n\n _proto.doAnswer = function doAnswer() {\n this.clearError();\n Janus.log(\"Answering call on instance ID: \", this.instanceId);\n\n if (this.answerRequested) {\n Janus.log(\"Answer already requested\");\n return;\n }\n\n if (!this.canAnswer) {\n Janus.log(\"Unabled to answer, instance ID: \", this.instanceId); // setTimeout(() => this.onCallStatusError(\"Unable to answer\"), 0);\n\n return;\n }\n\n try {\n JanusAnswerCall(this.instanceId);\n this.answerRequested = true;\n } catch (err) {\n Janus.log(\"Unabled to answer:\", err.message); // setTimeout(() => this.onCallStatusError(\"Unable to answer call: \" + err.message), 0);\n }\n };\n\n _proto.doHangup = function doHangup() {\n var _this2 = this;\n\n this.clearError();\n\n try {\n JanusHangupCall(this.instanceId);\n this.canHangup = false;\n this.canMakeCall = false;\n this.canAnswer = false;\n this.canRingOut = false;\n this.canHold = false;\n this.canResume = false;\n this.canBlindXfer = false;\n this.canXfer = false;\n this.canSendDtmf = false;\n this.isMuted = false;\n } catch (err) {\n setTimeout(function () {\n return _this2.onCallStatusError(CallStatusErrorCode.ERROR_HANG_UP, \"Unable to hangup call: \" + err.message);\n }, 0);\n return;\n }\n\n if (typeof this.uiCallbacks.onCallStatusChange === \"function\") this.uiCallbacks.onCallStatusChange(this.sipserver, this.username);\n };\n\n _proto.doIceRestart = function doIceRestart() {\n Janus.log('ICE Restart requested');\n\n _sessionService.send({\n type: 'FORWARD_TO_PLUGIN',\n event: {\n type: 'DO_ICE_RESTART',\n instanceId: this.instanceId\n }\n });\n };\n\n _proto.doHold = function doHold() {\n var _this3 = this;\n\n this.clearError();\n\n if (!this.canHold) {\n setTimeout(function () {\n return _this3.onCallStatusError(CallStatusErrorCode.ERROR_HOLD, \"Unable to hold\");\n }, 0);\n return;\n }\n\n try {\n _sessionService.send({\n type: 'FORWARD_TO_PLUGIN',\n event: {\n type: 'DO_HOLD',\n instanceId: this.instanceId\n }\n });\n } catch (err) {\n setTimeout(function () {\n return _this3.onCallStatusError(CallStatusErrorCode.ERROR_HOLD, \"Unable to hold call: \" + err.message);\n }, 0);\n return;\n }\n\n if (typeof this.uiCallbacks.onCallStatusChange === \"function\") this.uiCallbacks.onCallStatusChange(this.sipserver, this.username);\n };\n\n _proto.doResume = function doResume() {\n var _this4 = this;\n\n this.clearError();\n\n if (!this.canResume) {\n setTimeout(function () {\n return _this4.onCallStatusError(CallStatusErrorCode.ERROR_RESUME, \"Unable to resume\");\n }, 0);\n return;\n }\n\n try {\n _sessionService.send({\n type: 'FORWARD_TO_PLUGIN',\n event: {\n type: 'DO_RESUME',\n instanceId: this.instanceId\n }\n });\n } catch (err) {\n setTimeout(function () {\n return _this4.onCallStatusError(CallStatusErrorCode.ERROR_RESUME, \"Unable to resume call: \" + err.message);\n }, 0);\n return;\n }\n\n if (typeof this.uiCallbacks.onCallStatusChange === \"function\") this.uiCallbacks.onCallStatusChange(this.sipserver, this.username);\n };\n\n _proto.doBlindXfer = function doBlindXfer(refer_to) {\n var _this5 = this;\n\n this.clearError();\n\n if (!this.canBlindXfer || !refer_to) {\n setTimeout(function () {\n return _this5.onCallStatusError(CallStatusErrorCode.ERROR_TRANSFER, \"Unable to blind transfer\");\n }, 0);\n return;\n }\n\n try {\n var sip_refer_to = _sessionService.state.context.sipserver.replace(\"sip:\", \"sip:\" + refer_to + \"@\");\n\n _sessionService.send({\n type: 'FORWARD_TO_PLUGIN',\n event: {\n type: 'DO_BLIND_XFER',\n instanceId: this.instanceId,\n refer_to: sip_refer_to\n }\n });\n } catch (err) {\n setTimeout(function () {\n return _this5.onCallStatusError(CallStatusErrorCode.ERROR_TRANSFER, \"Unable to blind transfer call: \" + err.message);\n }, 0);\n return;\n }\n\n if (typeof this.uiCallbacks.onCallStatusChange === \"function\") this.uiCallbacks.onCallStatusChange(this.sipserver, this.username);\n };\n\n _proto.doXfer = function doXfer() {\n var _this6 = this;\n\n this.clearError();\n\n if (!this.canXfer || this.xferInstanceId === undefined) {\n setTimeout(function () {\n return _this6.onCallStatusError(CallStatusErrorCode.ERROR_TRANSFER, \"Unable to complete transfer\");\n }, 0);\n return;\n }\n\n try {\n JanusCompleteTransfer(this.xferInstanceId);\n } catch (err) {\n setTimeout(function () {\n return _this6.onCallStatusError(CallStatusErrorCode.ERROR_TRANSFER, \"Unable to complete transfer: \" + err.message);\n }, 0);\n return;\n }\n\n if (typeof this.uiCallbacks.onCallStatusChange === \"function\") this.uiCallbacks.onCallStatusChange(this.sipserver, this.username);\n };\n\n _proto.doSendDtmf = function doSendDtmf(digit) {\n var _this7 = this;\n\n this.clearError();\n\n if (!this.canSendDtmf) {\n setTimeout(function () {\n return _this7.onCallStatusError(CallStatusErrorCode.ERROR_DTMF, \"Unable to send DTMF\");\n }, 0);\n return;\n }\n\n if (!digit.match(/^[0-9*#]$/)) {\n setTimeout(function () {\n return _this7.onCallStatusError(CallStatusErrorCode.ERROR_DTMF, \"Unable to send DTMF: invalid dtmf value:[\" + digit + \"]\");\n }, 0);\n return;\n }\n\n try {\n _sessionService.send({\n type: 'FORWARD_TO_PLUGIN',\n event: {\n type: 'DO_SEND_DTMF',\n instanceId: this.instanceId,\n dtmf: digit\n }\n });\n } catch (err) {\n setTimeout(function () {\n return _this7.onCallStatusError(CallStatusErrorCode.ERROR_DTMF, \"Unable to send dtmf: [\" + digit + \"], \" + err.message);\n }, 0);\n }\n };\n\n _proto.doEnableVideo = function doEnableVideo(doVideo, videoSource) {\n var _this8 = this;\n\n if (videoSource === void 0) {\n videoSource = undefined;\n }\n\n this.clearError();\n Janus.log(\"Video requested: \", doVideo);\n this.videoRequested = doVideo;\n this.videoSource = videoSource;\n\n try {\n _sessionService.send({\n type: 'FORWARD_TO_PLUGIN',\n event: {\n type: 'DO_ENABLE_VIDEO',\n doVideo: doVideo,\n videoSource: videoSource,\n instanceId: this.instanceId\n }\n });\n } catch (err) {\n setTimeout(function () {\n return _this8.onCallStatusError(CallStatusErrorCode.ERROR_VIDEO, \"Unable to enable video \" + err.message);\n }, 0);\n }\n };\n\n _proto.doGetStats = function doGetStats() {\n var _this9 = this;\n\n this.clearError();\n\n try {\n _sessionService.send({\n type: 'FORWARD_TO_PLUGIN',\n event: {\n type: 'DO_GET_STATS',\n instanceId: this.instanceId\n }\n });\n } catch (err) {\n setTimeout(function () {\n return _this9.onCallStatusError(CallStatusErrorCode.ERROR_STATS, \"Unable to get statistics \" + err.message);\n }, 0);\n }\n };\n\n _proto.doMuteMicrophone = function doMuteMicrophone(mute) {\n var _this10 = this;\n\n try {\n Janus.log('Mute microphone requested:', mute, ', local stream:', this.localStream);\n var tracks = this.localStream && this.localStream.getAudioTracks();\n\n if (tracks == null) {\n Janus.warn('no local audio tracks to mute microphone');\n return;\n }\n\n for (var _iterator = _createForOfIteratorHelperLoose(tracks), _step; !(_step = _iterator()).done;) {\n var track = _step.value;\n track.enabled = !mute;\n }\n\n this.onCallStatusChange();\n\n if (typeof this.uiCallbacks.onCallStatusChange === 'function') {\n this.uiCallbacks.onCallStatusChange(this.sipserver, this.username);\n }\n } catch (err) {\n setTimeout(function () {\n return _this10.onCallStatusError(CallStatusErrorCode.ERROR_AUDIO, 'Unable to mute/unmute microphone ' + err.message);\n }, 0);\n }\n };\n\n _proto.clearError = function clearError() {\n this.statusErrorCode = undefined;\n this.statusErrorDescription = undefined;\n if (typeof this.uiCallbacks.onCallStatusChange === \"function\") this.uiCallbacks.onCallStatusChange(this.sipserver, this.username);\n } //////////////////////////////////////////\n // callbacks\n //////////////////////////////////////////\n ;\n\n _proto.onLineRegistered = function onLineRegistered() {\n this.lineRegistered = true;\n this.onCallStatusChange();\n if (typeof this.uiCallbacks.onCallStatusChange === \"function\") this.uiCallbacks.onCallStatusChange(this.sipserver, this.username);\n };\n\n _proto.onLineUnregistered = function onLineUnregistered() {\n this.lineRegistered = false;\n this.onCallStatusChange();\n if (typeof this.uiCallbacks.onCallStatusChange === \"function\") this.uiCallbacks.onCallStatusChange(this.sipserver, this.username);\n };\n\n _proto.onCallStatusError = function onCallStatusError(errorCode, errorMessage) {\n this.statusErrorCode = errorCode;\n this.statusErrorDescription = errorMessage;\n if (typeof this.uiCallbacks.onCallStatusChange === \"function\") this.uiCallbacks.onCallStatusChange(this.sipserver, this.username, errorMessage);\n };\n\n _proto.onLocalStream = function onLocalStream(stream, isActive) {\n var _this11 = this;\n\n this.localStream = isActive ? stream : undefined;\n this.localStreamActive = isActive;\n\n if (this.localStream) {\n var videoTrack = this.localStream.getVideoTracks()[0]; // do this.doEnableVideo(false) BS for none-SR calls only as it severly intefers with SR restart process\n\n if (this.SetupCallCaps.instanceId < 4 && videoTrack && videoTrack.readyState === 'live' && videoTrack.onended == null) {\n videoTrack.onended = function () {\n Janus.log('Video track ended. Updating statemachine to video disabled');\n\n _this11.doEnableVideo(false);\n };\n }\n }\n\n this.onCallStatusChange();\n if (typeof this.uiCallbacks.onCallStatusChange === \"function\") this.uiCallbacks.onMediaStatusChange(this.sipserver, this.username);\n };\n\n _proto.onRemoteStream = function onRemoteStream(stream, isActive) {\n this.remoteStream = isActive ? stream : undefined;\n this.remoteStreamActive = isActive;\n this.onCallStatusChange();\n if (typeof this.uiCallbacks.onMediaStatusChange === \"function\") this.uiCallbacks.onMediaStatusChange(this.sipserver, this.username);\n };\n\n _proto.onStatsUpdated = function onStatsUpdated(stats) {\n this.stats = stats;\n if (typeof this.uiCallbacks.onStatsUpdated === \"function\") this.uiCallbacks.onStatsUpdated(stats);\n };\n\n _proto.onSlowLink = function onSlowLink(uplink, media, lost) {\n var _this12 = this;\n\n // Janus reports the direction of uplink wrong\n if (media == \"audio\" && !uplink && typeof this.uiCallbacks.onSlowAudioUpLink === \"function\") {\n if (this.slowAudioUplinkTimer) clearTimeout(this.slowAudioUplinkTimer);\n this.slowAudioUplinkTimer = undefined;\n this.isSlowAudioUplink = true;\n this.uiCallbacks.onSlowAudioUpLink(true);\n this.slowAudioUplinkTimer = setTimeout(function () {\n _this12.isSlowAudioUplink = false;\n\n _this12.uiCallbacks.onSlowAudioUpLink(false);\n }, 4000);\n } else if (media == \"audio\" && uplink && typeof this.uiCallbacks.onSlowAudioDownLink === \"function\") {\n if (this.slowAudioDownlinkTimer) clearTimeout(this.slowAudioDownlinkTimer);\n this.slowAudioDownlinkTimer = undefined;\n this.isSlowAudioDownlink = true;\n this.uiCallbacks.onSlowAudioDownLink(true);\n this.slowAudioDownlinkTimer = setTimeout(function () {\n _this12.isSlowAudioDownlink = false;\n\n _this12.uiCallbacks.onSlowAudioDownLink(false);\n }, 4000);\n }\n };\n\n _proto.onCallStatusIdle = function onCallStatusIdle(code, reason) {\n this.lastHangupCode = code;\n this.lastHangupReason = reason;\n this.lastHangupTone = undefined;\n this.canPlayBusyTone = false;\n this.canPlayReorderTone = false;\n this.canPlayNuTone = false;\n if (this.slowAudioDownlinkTimer) clearTimeout(this.slowAudioDownlinkTimer);\n if (this.slowAudioUplinkTimer) clearTimeout(this.slowAudioUplinkTimer);\n this.slowAudioDownlinkTimer = undefined;\n this.slowAudioUplinkTimer = undefined;\n this.isSlowAudioUplink = false;\n this.isSlowAudioDownlink = false;\n this.hasLocalAudio = false;\n this.hasRemoteAudio = false;\n this.hasLocalVideo = false;\n this.hasRemoteAudio = false;\n this.enabledVideoSource = undefined; // do this.doEnableVideo(false) BS for none-SR calls only as it severly intefers with SR restart process\n\n if (this.instanceId < 3) this.doEnableVideo(false);\n\n if (code && (this.direction === 'outgoing' || this.state === 'connected' || this.state === 'reconnected')) {\n if (code === 404) {\n this.lastHangupTone = 'nu';\n this.canPlayNuTone = true;\n } else if (code == 486) {\n this.lastHangupTone = 'busy';\n this.canPlayBusyTone = true;\n } else if (code > 0) {\n this.lastHangupTone = 'reorder';\n this.canPlayReorderTone = true;\n }\n }\n };\n\n _proto.onCallStatusDeepIdle = function onCallStatusDeepIdle() {\n this.canPlayBusyTone = false;\n this.canPlayReorderTone = false;\n this.canPlayNuTone = false;\n };\n\n _proto.onCallStatusChange = function onCallStatusChange(callState, callStateDesc, remoteUri, remoteDisplay, media_caps) {\n var oldState = this.state;\n this.state = callState ? callState : oldState;\n\n if (callState) {\n if (this.state === 'idle') {\n // going idle\n this.lastDirection = this.direction;\n this.direction = undefined;\n this.callId = undefined;\n this.referInstanceId = undefined;\n this.localStreamActive = false;\n this.remoteStreamActive = false;\n this.localStream = undefined;\n this.remoteStream = undefined;\n\n if (this.lastDirection === 'incoming') {\n this.lastCallerUsername = this.peerUsername;\n this.lastCallerDisplay = this.peerDisplay;\n }\n\n if (this.lastDirection === 'outgoing') {\n this.lastCalleeUsername = this.peerUsername;\n this.lastCalleeDisplay = this.peerDisplay;\n }\n\n this.peerUsername = undefined;\n this.peerDisplay = undefined;\n this.answerRequested = false;\n } else if (oldState === 'idle') {\n // going non-idle\n this.direction = callState === 'incomingcall' || callState === 'incomingcallReplaces' || callState === 'connected' ? 'incoming' : 'outgoing';\n this.stateDesc = undefined;\n this.statusErrorCode = undefined;\n this.statusErrorDescription = undefined;\n this.lastHangupCode = undefined;\n this.lastHangupReason = undefined;\n this.lastHangupTone = undefined;\n this.canPlayBusyTone = false;\n this.canPlayReorderTone = false;\n this.canPlayNuTone = false;\n }\n }\n\n this.stateDesc = callStateDesc;\n\n if (remoteUri && remoteUri.indexOf(\"sip:\") >= 0) {\n this.peerUsername = remoteUri.indexOf(\"@\") < 0 ? \"anonymous\" : remoteUri.substring(remoteUri.indexOf(\"sip:\") + 4, remoteUri.indexOf(\"@\"));\n } else if (remoteUri) {\n this.peerUsername = remoteUri;\n }\n\n if (remoteDisplay) this.peerDisplay = remoteDisplay;\n this.SetupCallCaps();\n\n try {\n this.isMuted = this.localStreamActive && this.localStream != null && !this.localStream.getAudioTracks()[0].enabled;\n } catch (err) {\n Janus.warn('unable to determine isMuted state', err);\n this.isMuted = false;\n }\n\n if (media_caps) {\n if (this.hasLocalAudio !== media_caps.hasLocalAudio || this.hasRemoteAudio !== media_caps.hasRemoteAudio || this.hasLocalVideo !== media_caps.hasLocalVideo || this.hasRemoteVideo !== media_caps.hasRemoteVideo || this.enabledVideoSource !== media_caps.enabledVideoSource) {\n Janus.log('Media caps change:\\n', ' local audio: [', this.hasLocalAudio, '] --> [', media_caps.hasLocalAudio, ']\\n', ' remote audio: [', this.hasRemoteAudio, '] --> [', media_caps.hasRemoteAudio, ']\\n', ' local video: [', this.hasLocalVideo, '] --> [', media_caps.hasLocalVideo, ']\\n', ' remote video: [', this.hasRemoteVideo, '] --> [', media_caps.hasRemoteVideo, ']\\n', ' video source: [', this.enabledVideoSource, '] --> [', media_caps.enabledVideoSource, ']\\n');\n }\n\n this.hasLocalAudio = media_caps.hasLocalAudio;\n this.hasRemoteAudio = media_caps.hasRemoteAudio;\n this.hasLocalVideo = media_caps.hasLocalVideo;\n this.hasRemoteVideo = media_caps.hasRemoteVideo;\n this.enabledVideoSource = media_caps.enabledVideoSource;\n }\n };\n\n _proto.SetupCallCaps = function SetupCallCaps() {\n this.canMakeCall = this.lineRegistered && this.state === 'idle';\n this.canHangup = this.state !== 'idle';\n this.canAnswer = this.state === 'incomingcall' || this.state === 'incomingcallReplaces';\n this.canRingOut = this.state === 'ringingOut'; // this.featureHoldResume = this.pbxPlatform !== 'cucm'\n\n this.canHold = this.featureHoldResume && (this.state === 'connected' || this.state === 'reconnected');\n this.canResume = this.featureHoldResume && this.state === 'hold';\n this.canBlindXfer = this.pbxPlatform !== 'cucm' && this.state === 'hold';\n this.canSendDtmf = this.remoteStreamActive && (this.state === 'connected' || this.state === 'reconnected');\n };\n\n return CallView;\n}();\nvar SrCallView = /*#__PURE__*/function (_CallView) {\n _inheritsLoose(SrCallView, _CallView);\n\n function SrCallView() {\n var _this13;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this13 = _CallView.call.apply(_CallView, [this].concat(args)) || this;\n _this13.srRequested = false;\n _this13.srTarget = undefined;\n _this13.srFrameRate = undefined;\n return _this13;\n }\n\n var _proto2 = SrCallView.prototype;\n\n _proto2.doStartScreenRecording = function doStartScreenRecording(target, callId, frameRate, screenWidth, screenHeight) {\n var _this14 = this;\n\n if (!this.srTarget) {\n setTimeout(function () {\n return _this14.onCallStatusError(CallStatusErrorCode.ERROR_SCREEN_RECORDING, \"Unable to start screen recording (no target)\");\n }, 0);\n return;\n }\n\n this.srRequested = true;\n\n _CallView.prototype.doEnableVideo.call(this, true, 'screen');\n\n try {\n _sessionService.send({\n type: 'FORWARD_TO_PLUGIN',\n event: {\n type: 'DO_START_SR',\n instanceId: this.instanceId,\n callId: callId,\n frameRate: frameRate === undefined ? this.srFrameRate : frameRate,\n screenWidth: screenWidth,\n screenHeight: screenHeight,\n target: this.ToDialUri(target ? target : this.srTarget)\n }\n });\n } catch (err) {\n Janus.error('Unable to start screen recording', err);\n setTimeout(function () {\n return _this14.onCallStatusError(CallStatusErrorCode.ERROR_SCREEN_RECORDING, \"Unable to start screen recording: \" + err.message);\n }, 0);\n }\n };\n\n _proto2.doStopScreenRecording = function doStopScreenRecording() {\n var _this15 = this;\n\n this.srRequested = false;\n\n try {\n _sessionService.send({\n type: 'FORWARD_TO_PLUGIN',\n event: {\n type: 'DO_STOP_SR',\n instanceId: this.instanceId\n }\n });\n } catch (err) {\n Janus.error('Unable to stop screen recording', err);\n setTimeout(function () {\n return _this15.onCallStatusError(CallStatusErrorCode.ERROR_SCREEN_RECORDING, \"Unable to start screen recording: \" + err.message);\n }, 0);\n }\n };\n\n _proto2.onLineRegistered = function onLineRegistered() {\n Janus.log('SR call: line registered');\n\n _CallView.prototype.onLineRegistered.call(this);\n };\n\n _proto2.onLineUnregistered = function onLineUnregistered() {\n Janus.log('SR call: line unregistered');\n\n _CallView.prototype.onLineUnregistered.call(this);\n };\n\n _proto2.onCallStatusError = function onCallStatusError(errorCode, errorMessage) {};\n\n _proto2.onLocalStream = function onLocalStream(stream, isActive) {};\n\n _proto2.onRemoteStream = function onRemoteStream(stream, isActive) {};\n\n _proto2.onStatsUpdated = function onStatsUpdated(stats) {};\n\n _proto2.SetupCallCaps = function SetupCallCaps() {\n this.canMakeCall = this.lineRegistered && this.state === 'idle';\n this.canHangup = this.state !== 'idle';\n this.canAnswer = false;\n this.canRingOut = this.state === 'ringingOut';\n this.featureHoldResume = false;\n this.canHold = false;\n this.canResume = false;\n this.canBlindXfer = false;\n this.canSendDtmf = false;\n };\n\n return SrCallView;\n}(CallView);\nvar SmCallView = /*#__PURE__*/function (_CallView2) {\n _inheritsLoose(SmCallView, _CallView2);\n\n function SmCallView() {\n return _CallView2.apply(this, arguments) || this;\n }\n\n var _proto3 = SmCallView.prototype;\n\n _proto3.SetupCallCaps = function SetupCallCaps() {\n this.canMakeCall = this.lineRegistered && this.state === 'idle';\n this.canHangup = this.state !== 'idle';\n this.canAnswer = false;\n this.canRingOut = false;\n this.featureHoldResume = false;\n this.canHold = false;\n this.canResume = false;\n this.canBlindXfer = false;\n this.canSendDtmf = false;\n };\n\n _proto3.onCallStatusChange = function onCallStatusChange(callState, callStateDesc, remoteUri, remoteDisplay, media_caps) {\n var oldState = this.state;\n\n _CallView2.prototype.onCallStatusChange.call(this, callState, callStateDesc, remoteUri, remoteDisplay, media_caps);\n\n if (oldState != this.state && this.state === 'incomingcall' && !this.answerRequested) {\n try {\n JanusAnswerCall(this.instanceId);\n this.answerRequested = true;\n } catch (err) {\n Janus.warn(\"Unabled to answer:\", err.message);\n\n _CallView2.prototype.doHangup.call(this);\n }\n } else if (this.state === 'incomingcall' || this.state === 'connected' || this.direction === 'outgoing' || this.state === 'idle') ; else {\n Janus.warn(\"Invalid SM call state [\", this.state, \"] hanging up\");\n\n _CallView2.prototype.doHangup.call(this);\n }\n };\n\n return SmCallView;\n}(CallView);\nvar LineView = /*#__PURE__*/function () {\n function LineView() {\n this.uiCallbacks = null;\n this.sipserver = undefined;\n this.username = undefined;\n this.displayName = undefined;\n this.secret = undefined;\n this.is_ha1_secret = false;\n this.bgCalls = undefined;\n this.autoregister = false;\n this.pbxPlatform = undefined;\n this.srCall = undefined;\n this.srRequested = false;\n this.srTarget = undefined;\n this.canSrStart = false;\n this.canSrStop = false;\n this.calls = undefined;\n this.callIndex = 0;\n this.registerStatus = 'unregistered';\n this.registerStatusError = undefined;\n this.mwiStatus = undefined;\n this.canRequestRegister = false;\n this.canRequestUnregister = false;\n this.canToogle = false;\n }\n\n var _proto4 = LineView.prototype;\n\n //////////////////////////////////////////\n // public UI commands\n //////////////////////////////////////////\n _proto4.doStartScreenRecording = function doStartScreenRecording(target, callId, frameRate, screenWidth, screenHeight) {\n this.srRequested = true;\n this.canSrStart = !this.srRequested;\n this.canSrStop = this.srRequested;\n Janus.log(\"Requested to start screen recording to target [\", target, \"]\");\n\n if (this.srCall) {\n this.srCall.doStartScreenRecording(target, callId, frameRate, screenWidth, screenHeight);\n }\n };\n\n _proto4.doStopScreenRecording = function doStopScreenRecording() {\n this.srRequested = false;\n this.canSrStart = !this.srRequested;\n this.canSrStop = this.srRequested;\n Janus.log(\"Requested to stop screen recording\");\n if (this.srCall) this.srCall.doStopScreenRecording();\n };\n\n _proto4.doRequestRegister = function doRequestRegister() {\n var _this16 = this;\n\n if (!this.canRequestRegister || this.autoregister) {\n setTimeout(function () {\n return _this16.onLineRequestRegisterFailed(\"Cannot request register \");\n }, 0);\n return;\n }\n\n this.canRequestRegister = false;\n this.canRequestUnregister = false;\n\n try {\n JanusActivateSipRegistration(true, this.sipserver, this.username, this.secret, this.is_ha1_secret, this.displayName, this.smTarget);\n this.canRequestUnregister = true;\n setTimeout(function () {\n return _this16.onLineRegisterRequested();\n }, 0);\n } catch (error) {\n this.canRequestRegister = true;\n setTimeout(function () {\n return _this16.onLineRequestRegisterFailed(error.message);\n }, 0);\n }\n };\n\n _proto4.doRequestUnregister = function doRequestUnregister() {\n var _this17 = this;\n\n if (!this.canRequestUnregister || this.autoregister) {\n setTimeout(function () {\n return _this17.onLineRequestUnregisterFailed(\"Cannot request unregister \");\n }, 0);\n return;\n }\n\n this.canRequestRegister = false;\n this.canRequestUnregister = false;\n\n try {\n JanusDeactivateSipRegistration(false);\n this.canRequestRegister = true;\n setTimeout(function () {\n return _this17.onLineUnregisterRequested();\n }, 0);\n } catch (error) {\n this.canRequestUnregister = true;\n setTimeout(function () {\n return _this17.onLineRequestUnregisterFailed(error.message);\n }, 0);\n }\n };\n\n _proto4.doToogle = function doToogle() {\n var _this18 = this;\n\n if (!this.canToogle) {\n setTimeout(function () {\n return _this18.onCallStatusError(_this18.callIndex, CallStatusErrorCode.ERROR_TOGGLE_CALL, \"Unable to alternate call\");\n }, 0);\n return;\n }\n\n try {\n if (this.calls[this.callIndex].state !== 'hold') {\n _sessionService.send({\n type: 'FORWARD_TO_PLUGIN',\n event: {\n type: 'DO_HOLD',\n instanceId: this.calls[this.callIndex].instanceId\n }\n });\n }\n\n this.callIndex = this.callIndex === 0 ? 1 : 0;\n setTimeout(function () {\n return _this18.onCallStatusChange(_this18.callIndex);\n }, 0);\n } catch (error) {\n setTimeout(function () {\n return _this18.onCallStatusError(_this18.callIndex, CallStatusErrorCode.ERROR_TOGGLE_CALL, \"Unable to alternate call:\" + error.message);\n }, 0);\n }\n };\n\n _proto4.doMaintainCallFocus = function doMaintainCallFocus() {\n var _this19 = this;\n\n var activeCallIndex = this.calls.findIndex(function (call) {\n return (call.state === 'connected' || call.state === 'reconnected') && call.referInstanceId !== _this19.callIndex;\n });\n Janus.log('Index of active call=', activeCallIndex, ', current call index=', this.callIndex);\n\n if (activeCallIndex >= 0 & activeCallIndex != this.callIndex) {\n // make sure the current call is sent on hold (best effort)\t\t\t\n try {\n if (this.calls[this.callIndex].state !== 'hold') {\n _sessionService.send({\n type: 'FORWARD_TO_PLUGIN',\n event: {\n type: 'DO_HOLD',\n instanceId: this.calls[this.callIndex].instanceId\n }\n });\n }\n\n this.callIndex = this.callIndex === 0 ? 1 : 0;\n } catch (error) {\n // fail fast\n Janus.error('Unable to hold call with index', this.callIndex, 'hanging up the call');\n setTimeout(function () {\n return _this19.calls[_this19.callIndex].doHangup();\n });\n }\n }\n } ///////////////////////////////////////////\n // callbacks\n ///////////////////////////////////////////\n ;\n\n _proto4.onEndpointReconnecting = function onEndpointReconnecting() {\n this.canRequestRegister = false;\n this.canRequestUnregister = false;\n this.canToogle = false;\n this.onUnregistered();\n };\n\n _proto4.onEndpointConnected = function onEndpointConnected() {\n this.canRequestRegister = !this.autoregister;\n this.canRequestUnregister = false;\n };\n\n _proto4.onLineRequestRegisterFailed = function onLineRequestRegisterFailed(message) {\n if (typeof this.uiCallbacks.onLineRequestegisterFailed === \"function\") this.uiCallbacks.onLineRequestRegisterFailed(message, this.sipserver, this.username);\n };\n\n _proto4.onLineRequestUnregisterFailed = function onLineRequestUnregisterFailed(message) {\n if (typeof this.uiCallbacks.onLineRequestUnregisterFailed === \"function\") this.uiCallbacks.onLineRequestUnregisterFailed(message, this.sipserver, this.username);\n };\n\n _proto4.onLineRegisterRequested = function onLineRegisterRequested() {\n if (typeof this.uiCallbacks.onLineRegisterRequested === \"function\") this.uiCallbacks.onLineRegisterRequested(this.sipserver, this.username);\n };\n\n _proto4.onLineUnregisterRequested = function onLineUnregisterRequested() {\n if (typeof this.uiCallbacks.onLineUnregisterRequested === \"function\") this.uiCallbacks.onLineUnregisterRequested(this.sipserver, this.username);\n };\n\n _proto4.onRegistrationError = function onRegistrationError(message) {\n this.displayName = undefined;\n this.registerStatus = 'unregistered';\n this.registerStatusError = message;\n\n for (var _iterator2 = _createForOfIteratorHelperLoose(this.calls), _step2; !(_step2 = _iterator2()).done;) {\n var call = _step2.value;\n call.onLineUnregistered();\n }\n\n for (var _iterator3 = _createForOfIteratorHelperLoose(this.bgCalls), _step3; !(_step3 = _iterator3()).done;) {\n var _call = _step3.value;\n\n _call.onLineUnregistered();\n }\n\n if (this.srCall) this.srCall.onLineUnregistered();\n if (typeof this.uiCallbacks.onLineRegisterStatusChange === \"function\") this.uiCallbacks.onLineRegisterStatusChange(this.sipserver, this.username);\n };\n\n _proto4.onRegistrationTrying = function onRegistrationTrying() {\n this.registerStatus = 'registering';\n if (typeof this.uiCallbacks.onLineRegisterStatusChange === \"function\") this.uiCallbacks.onLineRegisterStatusChange(this.sipserver, this.username);\n };\n\n _proto4.onUnregistrationTrying = function onUnregistrationTrying() {\n this.registerStatus = 'unregistering';\n\n for (var _iterator4 = _createForOfIteratorHelperLoose(this.calls), _step4; !(_step4 = _iterator4()).done;) {\n var call = _step4.value;\n call.onLineUnregistered();\n this.onCallStatusChange(call.instanceId);\n }\n\n for (var _iterator5 = _createForOfIteratorHelperLoose(this.bgCalls), _step5; !(_step5 = _iterator5()).done;) {\n var _call2 = _step5.value;\n\n _call2.onLineUnregistered();\n\n this.onCallStatusChange(_call2.instanceId);\n }\n\n if (typeof this.uiCallbacks.onLineRegisterStatusChange === \"function\") this.uiCallbacks.onLineRegisterStatusChange(this.sipserver, this.username);\n };\n\n _proto4.onUnregistered = function onUnregistered() {\n this.displayName = undefined;\n this.registerStatus = 'unregistered';\n this.registerStatusError = undefined;\n\n for (var _iterator6 = _createForOfIteratorHelperLoose(this.calls), _step6; !(_step6 = _iterator6()).done;) {\n var call = _step6.value;\n call.onLineUnregistered();\n this.onCallStatusChange(call.instanceId);\n }\n\n for (var _iterator7 = _createForOfIteratorHelperLoose(this.bgCalls), _step7; !(_step7 = _iterator7()).done;) {\n var _call3 = _step7.value;\n\n _call3.onLineUnregistered();\n\n this.onCallStatusChange(_call3.instanceId);\n }\n\n if (this.srCall) this.srCall.onLineUnregistered();\n this.canSrStart = false;\n this.canSrStop = this.srRequested;\n if (this.srCall) this.onCallStatusChange(this.srCall.instanceId);\n if (typeof this.uiCallbacks.onLineRegisterStatusChange === \"function\") this.uiCallbacks.onLineRegisterStatusChange(this.sipserver, this.username);\n };\n\n _proto4.onRegistered = function onRegistered(displayName) {\n this.displayName = displayName;\n this.registerStatus = 'registered';\n this.registerStatusError = undefined;\n\n for (var _iterator8 = _createForOfIteratorHelperLoose(this.calls), _step8; !(_step8 = _iterator8()).done;) {\n var call = _step8.value;\n call.onLineRegistered();\n this.onCallStatusChange(call.instanceId);\n }\n\n for (var _iterator9 = _createForOfIteratorHelperLoose(this.bgCalls), _step9; !(_step9 = _iterator9()).done;) {\n var _call4 = _step9.value;\n\n _call4.onLineRegistered();\n\n this.onCallStatusChange(_call4.instanceId);\n }\n\n if (this.srCall) this.srCall.onLineRegistered();\n this.canSrStart = !this.srRequested;\n this.canSrStop = false;\n if (this.srCall) this.onCallStatusChange(this.srCall.instanceId);\n if (typeof this.uiCallbacks.onLineRegisterStatusChange === \"function\") this.uiCallbacks.onLineRegisterStatusChange(this.sipserver, this.username);\n };\n\n _proto4.onMwiStatusChange = function onMwiStatusChange(on) {\n this.mwiStatus = on;\n if (typeof this.uiCallbacks.onLineRegisterStatusChange === \"function\") this.uiCallbacks.onMwiStatusChange(this.sipserver, this.username);\n };\n\n _proto4.onPendingCallCanceled = function onPendingCallCanceled(callId) {\n if (typeof this.uiCallbacks.onPendingCallCanceled === \"function\") this.uiCallbacks.onPendingCallCanceled(callId);\n };\n\n _proto4.onCallStatusError = function onCallStatusError(instanceId, errorCode, errorMessage) {\n var call = this.calls.find(function (call) {\n return call.instanceId == instanceId;\n });\n\n if (!call) {\n call = this.bgCalls.find(function (call) {\n return call.instanceId == instanceId;\n });\n }\n\n if (!call && this.srCall && instanceId == this.srCall.instanceId) {\n call = this.srCall;\n }\n\n if (call) {\n call.onCallStatusError(errorCode, errorMessage);\n } else {\n Janus.error(\"Call instanceId:\", instanceId, \" not found\");\n }\n } // Line call status\n ;\n\n _proto4.onCallStatusIdle = function onCallStatusIdle(instanceId, code, reason) {\n var call = this.calls.find(function (call) {\n return call.instanceId == instanceId;\n });\n\n if (!call) {\n call = this.bgCalls.find(function (call) {\n return call.instanceId == instanceId;\n });\n }\n\n if (!call && this.srCall && instanceId === this.srCall.instanceId) {\n call = this.srCall;\n this.canSrStart = true;\n this.canSrStop = false;\n }\n\n if (call) {\n call.onCallStatusIdle(code, reason);\n }\n\n this.onCallStatusChange(instanceId, 'idle');\n };\n\n _proto4.onCallStatusDeepIdle = function onCallStatusDeepIdle(instanceId) {\n var call = this.calls.find(function (call) {\n return call.instanceId == instanceId;\n });\n\n if (!call) {\n call = this.bgCalls.find(function (call) {\n return call.instanceId == instanceId;\n });\n }\n\n if (!call && this.srCall && instanceId === this.srCall.instanceId) {\n call = this.srCall;\n }\n\n if (call) {\n call.onCallStatusDeepIdle();\n }\n\n this.onCallStatusChange(instanceId);\n };\n\n _proto4.onCallStatusChange = function onCallStatusChange(instanceId, callState, callStateDesc, remoteUri, remoteDisplay, media_caps) {\n var oldState = 'idle';\n var call = this.calls.find(function (call) {\n return call.instanceId == instanceId;\n });\n\n if (!call) {\n call = this.bgCalls.find(function (call) {\n return call.instanceId == instanceId;\n });\n }\n\n if (!call && this.srCall && instanceId === this.srCall.instanceId) {\n call = this.srCall;\n call.onCallStatusChange(callState, callStateDesc, remoteUri, remoteDisplay, media_caps);\n return;\n }\n\n if (call) {\n oldState = call.state;\n call.onCallStatusChange(callState, callStateDesc, remoteUri, remoteDisplay, media_caps);\n } else {\n Janus.error(\"Call instanceId:\", instanceId, \" not found\");\n return;\n }\n\n if (instanceId === this.srCall) return; // re-arrange\n\n if (this.calls[0].state === 'idle' && this.calls[1].state !== 'idle') {\n var callTemp = this.calls[0];\n this.calls[0] = this.calls[1];\n this.calls[1] = callTemp;\n this.callIndex = 0;\n }\n\n var fgIdleCallIndex = this.calls.findIndex(function (call) {\n return call.state === 'idle';\n });\n\n if (fgIdleCallIndex >= 0) {\n // both foreground call are idle\n var bgActiveCallIndex = this.bgCalls.findIndex(function (call) {\n return call.state !== 'idle';\n });\n\n if (bgActiveCallIndex >= 0) {\n var _callTemp = this.calls[fgIdleCallIndex];\n this.calls[fgIdleCallIndex] = this.bgCalls[bgActiveCallIndex];\n this.bgCalls[bgActiveCallIndex] = _callTemp;\n fgIdleCallIndex = this.calls.findIndex(function (call) {\n return call.state === 'idle';\n });\n bgActiveCallIndex = this.bgCalls.findIndex(function (call) {\n return call.state !== 'idle';\n });\n\n if (bgActiveCallIndex >= 0) {\n var _callTemp2 = this.calls[fgIdleCallIndex];\n this.calls[fgIdleCallIndex] = this.bgCalls[bgActiveCallIndex];\n this.bgCalls[bgActiveCallIndex] = _callTemp2;\n }\n }\n }\n\n var isCallConnected = [this.calls[0].state === 'hold' || this.calls[0].state === 'connected' || this.calls[0].state === 'reconnected', this.calls[1].state === 'hold' || this.calls[1].state === 'connected' || this.calls[1].state === 'reconnected'];\n this.canToogle = this.pbxPlatform !== 'cucm' && (this.callIndex === 0 && isCallConnected[0] || this.callIndex === 1 && (isCallConnected[1] || this.calls[1].state === 'idle'));\n this.calls[0].canXfer = false;\n this.calls[0].xferInstanceId = undefined;\n this.calls[1].canXfer = false;\n this.calls[1].xferInstanceId = undefined;\n\n if (this.calls[0].state !== 'idle' && this.calls[1].state !== 'idle') {\n if (isCallConnected[0]) {\n if (this.calls[1].state === 'callingOut' || this.calls[1].state === 'progressOut' || this.calls[1].state === 'ringingOut' || this.calls[1].state === 'hold' || this.calls[1].state === 'connected' || this.calls[1].state === 'reconnected') {\n // 1 - can complete xfer, self is replaces\n this.calls[1].canXfer = true;\n this.calls[1].xferInstanceId = this.calls[0].instanceId;\n }\n }\n\n if (isCallConnected[1]) {\n if (this.calls[0].state === 'callingOut' || this.calls[0].state === 'progressOut' || this.calls[0].state === 'ringingOut' || this.calls[0].state === 'hold' || this.calls[0].state === 'connected' || this.calls[0].state === 'reconnected') {\n // 1 - can complete xfer, self is replaces\n this.calls[0].canXfer = this.pbxPlatform !== 'cucm' && true;\n this.calls[0].xferInstanceId = this.calls[0].instanceId;\n }\n }\n } else if (this.calls[0].state === 'idle' && this.calls[1].state === 'idle') {\n // all calls are idle\n this.callIndex = 0;\n this.canToogle = false;\n }\n\n if (this.calls[0].state == 'incomingcallReplaces' || this.calls[0].state == 'callingOut') this.callIndex = 0;else if (this.calls[1].state == 'incomingcallReplaces' || this.calls[1].state == 'callingOut') this.callIndex = 1;\n\n if (oldState !== call.state && (call.state === 'connected' || call.state === 'reconnected')) {\n this.doMaintainCallFocus();\n }\n\n if (typeof this.uiCallbacks.onCallStatusChange === \"function\") this.uiCallbacks.onCallStatusChange(this.sipserver, this.username);\n };\n\n _proto4.onCallIdUpdate = function onCallIdUpdate(instanceId, callId) {\n var call = this.calls.find(function (call) {\n return call.instanceId == instanceId;\n });\n\n if (call) {\n call.callId = callId;\n }\n };\n\n _proto4.onMediaStatusChange = function onMediaStatusChange(instanceId, event, stream) {\n var call = this.calls.find(function (call) {\n return call.instanceId == instanceId;\n });\n\n if (call) {\n if (event === 'localstream') {\n call.onLocalStream(stream, stream.active);\n } else if (event === 'remotestream') {\n call.onRemoteStream(stream, stream.active);\n }\n } else if (this.srCall && instanceId === this.srCall.instanceId) {\n if (event === 'localstream') {\n this.srCall.onLocalStream(stream, stream.active);\n } else if (event === 'remotestream') {\n this.srCall.onRemoteStream(stream, stream.active);\n }\n }\n };\n\n _proto4.onStatsUpdated = function onStatsUpdated(instanceId, stats) {\n // stats is RTCStatsReport\n var call = this.calls.find(function (call) {\n return call.instanceId == instanceId;\n });\n\n if (call) {\n call.onStatsUpdated(stats);\n } else if (this.srCall && instanceId === this.srCall.instanceId) {\n this.srCall.onStatsUpdated(stats);\n }\n };\n\n _proto4.onSlowLink = function onSlowLink(instanceId, uplink, media, lost) {\n var call = this.calls.find(function (call) {\n return call.instanceId == instanceId;\n });\n\n if (call) {\n call.onSlowLink(uplink, media, lost);\n } else if (this.srCall && instanceId === this.srCall.instanceId) {\n this.srCall.onSlowLink(uplink, media, lost);\n }\n };\n\n _proto4.onReferHandled = function onReferHandled(instanceId, referInstanceId) {\n var call = this.calls.find(function (call) {\n return call.instanceId == instanceId;\n });\n\n if (call) {\n call.referInstanceId = referInstanceId;\n Janus.log(\"Call instanceId:\", instanceId, \" has handled REFER, REFER dial is by instance: \", referInstanceId);\n }\n };\n\n return LineView;\n}();\nvar SmLineView = /*#__PURE__*/function (_LineView) {\n _inheritsLoose(SmLineView, _LineView);\n\n function SmLineView(smTarget) {\n var _this20;\n\n _this20 = _LineView.call(this) || this;\n _this20.smTarget = undefined;\n _this20.smTarget = smTarget;\n return _this20;\n }\n\n var _proto5 = SmLineView.prototype;\n\n _proto5.doStartScreenRecording = function doStartScreenRecording(target, callId, frameRate, screenWidth, screenHeight) {};\n\n _proto5.doStopScreenRecording = function doStopScreenRecording() {};\n\n _proto5.doRequestRegister = function doRequestRegister() {\n var _this21 = this;\n\n if (!this.canRequestRegister || this.autoregister) {\n setTimeout(function () {\n return _this21.onLineRequestRegisterFailed(\"Cannot request register \");\n }, 0);\n return;\n }\n\n this.canRequestRegister = false;\n this.canRequestUnregister = false;\n\n try {\n JanusActivateSipRegistration(true, this.sipserver, this.username, this.secret, this.is_ha1_secret, this.displayName, this.smTarget);\n this.canRequestUnregister = true;\n setTimeout(function () {\n return _this21.onLineRegisterRequested();\n }, 0);\n } catch (error) {\n this.canRequestRegister = true;\n setTimeout(function () {\n return _this21.onLineRequestRegisterFailed(error.message);\n }, 0);\n }\n };\n\n _proto5.doToogle = function doToogle() {\n var _this22 = this;\n\n setTimeout(function () {\n return _this22.onCallStatusError(_this22.callIndex, CallStatusErrorCode.ERROR_TOGGLE_CALL, \"Unable to alternate call\");\n }, 0);\n return;\n };\n\n _proto5.doMaintainCallFocus = function doMaintainCallFocus() {\n this.callIndex = 0;\n this.canToogle = false;\n };\n\n _proto5.onCallStatusChange = function onCallStatusChange(instanceId, callState, callStateDesc, remoteUri, remoteDisplay, media_caps) {\n var call = this.calls.find(function (call) {\n return call.instanceId == instanceId;\n });\n\n if (call) {\n call.onCallStatusChange(callState, callStateDesc, remoteUri, remoteDisplay, media_caps);\n } else {\n Janus.error(\"Call instanceId:\", instanceId, \" not found\");\n return;\n }\n\n this.callIndex = 0;\n this.canToogle = false;\n if (typeof this.uiCallbacks.onCallStatusChange === \"function\") this.uiCallbacks.onCallStatusChange(this.sipserver, this.username);\n };\n\n return SmLineView;\n}(LineView); // endpointView:\n// // UI status\n//\t\tcanConnect:\t\ttrue/false,\n//\t\tcanDisconnect:\ttrue/false,\n//\n//\t\t// commands\n//\t\tconnect(janusServerUri):\tconnect to janus server where janusServerUri \"https://your.janus.server.org:8089/janus,\n//\t\tdisconnect():\t\t\t\tdisconnect from janus server\n//\t\n//\n//\n\nvar _sessionService = null;\nvar EndpointView = /*#__PURE__*/function () {\n function EndpointView() {\n this.uiCallbacks = null;\n this.janusServerUri = undefined;\n this.autoregister = false;\n this.pbxPlatform = undefined;\n this.lineView = undefined;\n this.status = 'offline';\n this.statusError = undefined;\n this.canConnect = false;\n this.canDisconnect = false;\n }\n\n var _proto6 = EndpointView.prototype;\n\n // public\n _proto6.init = function init() {\n var _this23 = this;\n\n this.janusServerUri = undefined;\n this.lineView = undefined;\n this.status = 'offline';\n this.statusError = undefined;\n this.canConnect = true;\n this.canDisconnect = false;\n if (typeof this.uiCallbacks.onEndpointStatusChange === \"function\") setTimeout(function () {\n return _this23.uiCallbacks.onEndpointStatusChange();\n }, 0);\n } //////////////////////////////////////////\n // UI commands\n //////////////////////////////////////////\n ;\n\n _proto6.doConnectGuest = function doConnectGuest(janusServerUri, turnServers, sipDomain, guestId, guestPasskey, pbxPlatformId, sipRealm, displayName) {\n this.doConnect(janusServerUri, sipDomain, \"guest-\" + Janus.randomString(6), \"\", turnServers, guestId, guestPasskey, true, null, null, null, pbxPlatformId, sipRealm, guestId, guestPasskey, displayName);\n };\n\n _proto6.doConnect = function doConnect(janusServerUri, sipDomain, username, password, turnServers, turnUsername, turnPassword, autoregister, pushToken, alertPushToken, pushPlatformName, pbxPlatformId, sipRealm, janusServerUsername, janusServerPassword, displayName) {\n var _this24 = this;\n\n if (!this.canConnect) {\n Janus.error(\"Cannot connect\");\n return;\n }\n\n if (this.lineView) {\n setTimeout(function () {\n return _this24.onEndpointConnectFailed(\"Line already added\", sipserver, username);\n }, 0);\n return;\n }\n\n var pbxPlatform = undefined;\n\n if (!isNaN(parseInt(pbxPlatformId)) && parseInt(pbxPlatformId) === 3) {\n pbxPlatform = 'cucm';\n }\n\n var sipserver = \"sip:\" + (sipDomain ? sipDomain : \"ipfx.pbx\") + \":5060\";\n\n if (username.length === 0) {\n setTimeout(function () {\n return _this24.onEndpointConnectFailed(\"Invalid username\", sipserver, username);\n }, 0);\n return;\n }\n\n this.autoregister = autoregister;\n this.canConnect = false;\n this.canDisconnect = false;\n\n try {\n this.janusServerUri = janusServerUri; // Make sure the browser supports WebRTC\n\n if (!Janus.isWebrtcSupported()) {\n setTimeout(function () {\n return _this24.onEndpointConnectFailed(\"No WebRTC support... \");\n }, 0);\n return;\n }\n\n this.addLine(sipDomain, sipserver, username, password, pbxPlatform, sipRealm, displayName, 'webrtc-recorder-sink');\n this.setupSessionService(janusServerUri, turnServers, turnUsername, turnPassword, autoregister, pushToken, alertPushToken, pushPlatformName, janusServerUsername, janusServerPassword, displayName, pbxPlatform);\n } catch (error) {\n this.lineView = undefined;\n setTimeout(function () {\n return _this24.onEndpointConnectFailed(error.message);\n }, 0);\n }\n } //////////////////////////////////////////\n ;\n\n _proto6.doConnectScreenMonitor = function doConnectScreenMonitor(janusServerUri, sipDomain, username, password, turnServers, turnUsername, turnPassword, pushPlatformName, pbxPlatformId, sipRealm, janusServerUsername, janusServerPassword, displayName, monitorTarget) {\n var _this25 = this;\n\n if (!this.canConnect) {\n Janus.error(\"Cannot connect screen monitor\");\n return;\n }\n\n if (this.lineView) {\n setTimeout(function () {\n return _this25.onEndpointConnectFailed(\"Screen monitor line already added\", sipserver, username);\n }, 0);\n return;\n }\n\n var pbxPlatform = undefined;\n\n if (isNaN(parseInt(pbxPlatformId)) && parseInt(pbxPlatformId) === 3) {\n pbxPlatform = 'cucm';\n setTimeout(function () {\n return _this25.onEndpointConnectFailed(\"Screen monitor not supported on CUCM platform\", sipserver, username);\n }, 0);\n return;\n }\n\n var sipserver = \"sip:\" + (sipDomain ? sipDomain : \"ipfx.pbx\") + \":5060\";\n\n if (!monitorTarget || monitorTarget.length === 0) {\n setTimeout(function () {\n return _this25.onEndpointConnectFailed(\"Invalid monitor target\", sipserver, username);\n }, 0);\n return;\n }\n\n if (username.length === 0) {\n setTimeout(function () {\n return _this25.onEndpointConnectFailed(\"Invalid username\", sipserver, username);\n }, 0);\n return;\n }\n\n this.autoregister = true;\n this.canConnect = false;\n this.canDisconnect = false;\n\n try {\n this.janusServerUri = janusServerUri; // Make sure the browser supports WebRTC\n\n if (!Janus.isWebrtcSupported()) {\n setTimeout(function () {\n return _this25.onEndpointConnectFailed(\"No WebRTC support... \");\n }, 0);\n return;\n }\n\n this.addScreenMonitorLine(sipDomain, sipserver, username, password, pbxPlatform, sipRealm, displayName, monitorTarget);\n this.setupSessionService(janusServerUri, turnServers, turnUsername, turnPassword, this.autoregister, undefined, undefined, pushPlatformName, janusServerUsername, janusServerPassword, displayName, pbxPlatform, monitorTarget);\n } catch (error) {\n this.lineView = undefined;\n setTimeout(function () {\n return _this25.onEndpointConnectFailed(error.message);\n }, 0);\n }\n };\n\n _proto6.setupSessionService = function setupSessionService(janusServerUri, turnServers, turnUsername, turnPassword, autoregister, pushToken, alertPushToken, pushPlatformName, janusServerUsername, janusServerPassword, displayName, pbxPlatform, monitorTarget) {\n if (_sessionService === null) {\n _sessionService = interpret(janusSession);\n\n _sessionService.onTransition(function (state) {\n if (state.history === undefined) Janus.log(\"Machine session state change: \", state.history, \"-->\", state.value, \", event: \", state.event);else Janus.log(\"Machine session state change: \", state.history.value, \"-->\", state.value, \", event: \", state.event);\n });\n\n _sessionService.machine.context.endpointView = this;\n\n _sessionService.start();\n } else {\n _sessionService.machine.context.endpointView = this;\n }\n\n if (turnServers && turnServers.length > 0) {\n _sessionService.send({\n type: 'DO_CONNECT',\n autoregister: autoregister,\n janusServer: janusServerUri,\n janusServerUsername: janusServerUsername,\n janusServerPassword: janusServerPassword,\n pushToken: pushToken,\n alertPushToken: alertPushToken,\n pushPlatformName: pushPlatformName,\n sipserver: this.lineView.sipserver,\n username: this.lineView.username,\n secret: this.lineView.secret,\n is_ha1_secret: this.lineView.is_ha1_secret,\n iceServers: [{\n 'urls': turnServers,\n 'credential': turnPassword,\n 'username': turnUsername\n }],\n pbxPlatform: pbxPlatform,\n displayName: this.lineView.displayName,\n monitorTarget: monitorTarget\n });\n } else {\n _sessionService.send({\n type: 'DO_CONNECT',\n autoregister: autoregister,\n janusServer: janusServerUri,\n janusServerUsername: janusServerUsername,\n janusServerPassword: janusServerPassword,\n pushToken: pushToken,\n alertPushToken: alertPushToken,\n pushPlatformName: pushPlatformName,\n sipserver: this.lineView.sipserver,\n username: this.lineView.username,\n secret: this.lineView.secret,\n is_ha1_secret: this.lineView.is_ha1_secret,\n pbxPlatform: pbxPlatform,\n displayName: this.lineView.displayName,\n monitorTarget: monitorTarget\n });\n }\n } //////////////////////////////////////////\n ;\n\n _proto6.doDisconnect = function doDisconnect(removeToken) {\n if (!this.canDisconnect) {\n Janus.error(\"Cannot disconnect\");\n return;\n }\n\n if (!this.lineView) {\n this.canConnect = true;\n this.canDisconnect = false;\n return;\n }\n\n this.canConnect = false;\n this.canDisconnect = false;\n\n try {\n this.removeLine(removeToken);\n\n if (_sessionService !== null) {\n _sessionService.send('DO_DISCONNECT');\n }\n } catch (error) {\n Janus.error(\"Failed to disconnect endpoint:\", error.message);\n }\n } //////////////////////////////////////////\n ;\n\n _proto6.addLine = function addLine(sipDomain, sipserver, username, password, pbxPlatform, sipRealm, displayName, srTarget) {\n this.pbxPlatform = pbxPlatform;\n this.lineView = new LineView();\n this.lineView.uiCallbacks = this.uiCallbacks;\n this.lineView.sipserver = sipserver;\n this.lineView.username = username;\n this.lineView.secret = sipRealm ? md5(this.lineView.username + ':' + sipRealm + ':' + password) : password;\n this.lineView.is_ha1_secret = sipRealm ? true : false;\n this.lineView.canRequestRegister = false;\n this.lineView.canRequestUnregister = false;\n this.lineView.calls = [new CallView(), new CallView()];\n this.lineView.autoregister = this.autoregister;\n this.lineView.pbxPlatform = pbxPlatform;\n this.lineView.displayName = displayName;\n var i = 0;\n\n for (var _iterator10 = _createForOfIteratorHelperLoose(this.lineView.calls), _step10; !(_step10 = _iterator10()).done;) {\n var call = _step10.value;\n call.uiCallbacks = this.uiCallbacks;\n call.sipserver = sipserver;\n call.username = username;\n call.instanceId = i++;\n call.pbxPlatform = pbxPlatform;\n }\n\n this.lineView.bgCalls = [new CallView(), new CallView()];\n\n for (var _iterator11 = _createForOfIteratorHelperLoose(this.lineView.bgCalls), _step11; !(_step11 = _iterator11()).done;) {\n var _call5 = _step11.value;\n _call5.uiCallbacks = this.uiCallbacks;\n _call5.sipserver = sipserver;\n _call5.username = username;\n _call5.instanceId = i++;\n _call5.pbxPlatform = pbxPlatform;\n }\n\n this.lineView.callIndex = 0;\n this.lineView.srCall = new SrCallView();\n this.lineView.srCall.srTarget = srTarget;\n this.srTarget = srTarget;\n this.lineView.srCall.srFrameRate = {\n ideal: 3\n };\n if (this.srRequested) this.doStartScreenRecording();\n this.lineView.srCall.sipserver = sipserver;\n this.lineView.srCall.username = username;\n this.lineView.srCall.instanceId = i++;\n this.lineView.srCall.pbxPlatform = pbxPlatform;\n } //////////////////////////////////////////\n ;\n\n _proto6.addScreenMonitorLine = function addScreenMonitorLine(sipDomain, sipserver, username, password, pbxPlatform, sipRealm, displayName, smTarget) {\n this.pbxPlatform = pbxPlatform;\n this.lineView = new SmLineView(smTarget);\n this.lineView.uiCallbacks = this.uiCallbacks;\n this.lineView.sipserver = sipserver;\n this.lineView.username = username;\n this.lineView.secret = sipRealm ? md5(this.lineView.username + ':' + sipRealm + ':' + password) : password;\n this.lineView.is_ha1_secret = sipRealm ? true : false;\n this.lineView.canRequestRegister = false;\n this.lineView.canRequestUnregister = false;\n this.lineView.calls = [new SmCallView()];\n this.lineView.autoregister = this.autoregister;\n this.lineView.pbxPlatform = pbxPlatform;\n this.lineView.displayName = displayName;\n var i = 0;\n\n for (var _iterator12 = _createForOfIteratorHelperLoose(this.lineView.calls), _step12; !(_step12 = _iterator12()).done;) {\n var call = _step12.value;\n call.uiCallbacks = this.uiCallbacks;\n call.sipserver = sipserver;\n call.username = username;\n call.instanceId = i++;\n call.pbxPlatform = pbxPlatform;\n }\n\n this.lineView.bgCalls = [];\n this.lineView.callIndex = 0;\n this.lineView.srCall = undefined;\n } //////////////////////////////////////////\n ;\n\n _proto6.removeLine = function removeLine(removeToken) {\n var lineView = this.lineView;\n this.lineView = undefined;\n\n if (lineView) {\n try {\n lineView.canRequestUnregister = false;\n JanusDeactivateSipRegistration(removeToken);\n } catch (error1) {\n Janus.warn(\"Failed to unregister:\", error1.message);\n }\n\n for (var _iterator13 = _createForOfIteratorHelperLoose(lineView.calls), _step13; !(_step13 = _iterator13()).done;) {\n var call = _step13.value;\n\n try {\n JanusHangupCall(call.instanceId);\n } catch (error1) {\n Janus.warn(\"Failed to hangup call:\", call.instanceId, \": \", error1.message);\n }\n }\n\n for (var _iterator14 = _createForOfIteratorHelperLoose(lineView.bgCalls), _step14; !(_step14 = _iterator14()).done;) {\n var _call6 = _step14.value;\n\n try {\n JanusHangupCall(_call6.instanceId);\n } catch (error1) {\n Janus.warn(\"Failed to hangup call:\", _call6.instanceId, \": \", error1.message);\n }\n }\n }\n } ///////////////////////////////////////////\n // callbacks\n ///////////////////////////////////////////\n ;\n\n _proto6.onEndpointConnectFailed = function onEndpointConnectFailed(message) {\n Janus.warn(\"Failed to connect endpoint: \", message);\n this.status = 'offline';\n this.statusError = message;\n this.canConnect = true;\n this.canDisconnect = false;\n if (typeof this.uiCallbacks.onEndpointStatusChange === \"function\") this.uiCallbacks.onEndpointStatusChange();\n };\n\n _proto6.onEndpointDisconnected = function onEndpointDisconnected(message) {\n var _this26 = this;\n\n Janus.log(\"Endpoint disconnected\");\n this.status = 'offline';\n this.statusError = message;\n this.canConnect = true;\n this.canDisconnect = false;\n var lineViewCopy = this.lineView;\n this.lineView = undefined;\n if (lineViewCopy && typeof this.uiCallbacks.onEndpointLineRemoved === \"function\") setTimeout(function () {\n return _this26.uiCallbacks.onEndpointLineRemoved(lineViewCopy.sipserver, lineViewCopy.username);\n }, 0);\n if (typeof this.uiCallbacks.onEndpointStatusChange === \"function\") setTimeout(function () {\n return _this26.uiCallbacks.onEndpointStatusChange();\n }, 0);\n };\n\n _proto6.onEndpointReconnecting = function onEndpointReconnecting() {\n var _this27 = this;\n\n // Reconnecting will see the client state momentarily going through online->offline->online.\n // Client can still initiate connect or disconnect during the reconnection\n Janus.log(\"Endpoint now reconnecting to a another server\");\n this.status = 'offline';\n this.statusError = undefined;\n this.canConnect = false;\n this.canDisconnect = true; // can still interrupt reconnecting process\n\n this.lineView.onEndpointReconnecting();\n if (typeof this.uiCallbacks.onEndpointStatusChange === \"function\") setTimeout(function () {\n return _this27.uiCallbacks.onEndpointStatusChange();\n }, 0);\n } ///////////////////////////////////////////\n ;\n\n _proto6.onEndpointConnecting = function onEndpointConnecting() {\n var _this28 = this;\n\n Janus.log(\"Endpoint connecting...\");\n this.status = 'connecting';\n this.statusError = undefined;\n this.canConnect = false;\n this.canDisconnect = false;\n if (typeof this.uiCallbacks.onEndpointStatusChange === \"function\") setTimeout(function () {\n return _this28.uiCallbacks.onEndpointStatusChange();\n }, 0);\n } ///////////////////////////////////////////\n ;\n\n _proto6.onEndpointConnected = function onEndpointConnected() {\n var _this29 = this;\n\n Janus.log(\"Endpoint connected\");\n this.status = 'online';\n this.statusError = undefined;\n this.canConnect = false;\n this.canDisconnect = true;\n this.lineView.onEndpointConnected();\n if (typeof this.uiCallbacks.onEndpointStatusChange === \"function\") setTimeout(function () {\n return _this29.uiCallbacks.onEndpointStatusChange();\n }, 0);\n } ///////////////////////////////////////////\n ;\n\n _proto6.onEndpointRemoveLineFailed = function onEndpointRemoveLineFailed(message, sipserver, username) {\n Janus.warn(\"Endpoint remove failed:\", message);\n this.canConnect = false;\n this.canDisconnect = this.status === 'online';\n if (typeof this.uiCallbacks.onEndpointStatusChange === \"function\") this.uiCallbacks.onEndpointRemoveLineFailed(message, sipserver, username);\n } ///////////////////////////////////////////\n ;\n\n _proto6.onEndpointLineRemoved = function onEndpointLineRemoved(sipserver, username) {\n Janus.log(\"Endpoint line removed:\");\n this.canConnect = this.status === 'online';\n this.canDisconnect = false;\n if (typeof this.uiCallbacks.onEndpointLineAdded === \"function\") this.uiCallbacks.onEndpointLineRemoved(sipserver, username);\n };\n\n return EndpointView;\n}();\n\nfunction CreateEndpointView(uiCallbacks) {\n endpointView = new EndpointView();\n endpointView.uiCallbacks = uiCallbacks;\n window.endpointView = endpointView;\n window.janusSession = janusSession;\n return endpointView;\n} ////////////////////////////////////////////////////////////////////////////////////\n\nvar janusSession = /*#__PURE__*/Machine({\n id: 'ipfxJanusSession',\n initial: 'inactive',\n context: {\n janusSession: null,\n janusServer: null,\n janusServerUsername: undefined,\n janusServerPassword: undefined,\n queuedStop: false,\n error: \"\",\n sipserver: \"\",\n username: \"\",\n secret: \"\",\n is_ha1_secret: false,\n idlePlugins: /*#__PURE__*/new Set([0, 1, 2, 3]),\n idleSrPlugins: /*#__PURE__*/new Set([4]),\n endpointView: null,\n autoregister: false,\n pushToken: null,\n alertPushToken: null,\n pushPlatformName: null,\n pbxPlatform: null,\n displayName: undefined,\n serverRequestToReconnect: false,\n iceServers: undefined,\n monitorTarget: undefined,\n isMonitorSession: false\n },\n on: {\n DO_CONNECT: {\n actions: function actions() {\n endpointView.onEndpointConnectFailed(\"Session machine in the wrong state for DO_CONNECT request\");\n }\n },\n DO_DISCONNECT: {\n actions: /*#__PURE__*/assign({\n queuedStop: function queuedStop() {\n return true;\n }\n })\n }\n },\n states: {\n inactive: {\n entry: 'onJanusSessionStoppedAction',\n on: {\n DO_CONNECT: {\n target: 'pending',\n actions: /*#__PURE__*/assign({\n autoregister: function autoregister(context, event) {\n return event.autoregister;\n },\n janusServer: function janusServer(context, event) {\n return event.janusServer;\n },\n janusServerUsername: function janusServerUsername(context, event) {\n return event.janusServerUsername;\n },\n janusServerPassword: function janusServerPassword(context, event) {\n return event.janusServerPassword;\n },\n pushToken: function pushToken(context, event) {\n return event.pushToken;\n },\n alertPushToken: function alertPushToken(context, event) {\n return event.alertPushToken;\n },\n pushPlatformName: function pushPlatformName(context, event) {\n return event.pushPlatformName;\n },\n sipserver: function sipserver(context, event) {\n return event.sipserver;\n },\n username: function username(context, event) {\n return event.sipserver.replace(\"sip:\", \"sip:\" + event.username + \"@\");\n },\n secret: function secret(context, event) {\n return event.secret;\n },\n is_ha1_secret: function is_ha1_secret(context, event) {\n return event.is_ha1_secret;\n },\n pbxPlatform: function pbxPlatform(context, event) {\n return event.pbxPlatform;\n },\n displayName: function displayName(context, event) {\n return event.displayName;\n },\n iceServers: function iceServers(context, event) {\n return event.iceServers;\n },\n monitorTarget: function monitorTarget(context, event) {\n return event.monitorTarget;\n },\n isMonitorSession: function isMonitorSession(context, event) {\n return event.monitorTarget != undefined;\n }\n })\n }\n }\n },\n reconnecting: {\n after: {\n 15000: 'inactive'\n },\n // if we are stuck in reconnecting - bail out\n entry: ['onJanusSessionReconnectingAction', 'stopJanusSessionAction'],\n on: {\n DO_DISCONNECT: 'inactive',\n DO_RECONNECT: 'pending',\n // use saved context set by DO_CONNECT event\n DO_CONNECT: {\n actions: /*#__PURE__*/assign({\n autoregister: function autoregister(context, event) {\n return event.autoregister;\n },\n janusServer: function janusServer(context, event) {\n return event.janusServer;\n },\n janusServerUsername: function janusServerUsername(context, event) {\n return event.janusServerUsername;\n },\n janusServerPassword: function janusServerPassword(context, event) {\n return event.janusServerPassword;\n },\n pushToken: function pushToken(context, event) {\n return event.pushToken;\n },\n alertPushToken: function alertPushToken(context, event) {\n return event.alertPushToken;\n },\n pushPlatformName: function pushPlatformName(context, event) {\n return event.pushPlatformName;\n },\n sipserver: function sipserver(context, event) {\n return event.sipserver;\n },\n username: function username(context, event) {\n return event.sipserver.replace(\"sip:\", \"sip:\" + event.username + \"@\");\n },\n secret: function secret(context, event) {\n return event.secret;\n },\n is_ha1_secret: function is_ha1_secret(context, event) {\n return event.is_ha1_secret;\n },\n pbxPlatform: function pbxPlatform(context, event) {\n return event.pbxPlatform;\n },\n displayName: function displayName(context, event) {\n return event.displayName;\n },\n iceServers: function iceServers(context, event) {\n return event.iceServers;\n },\n monitorTarget: function monitorTarget(context, event) {\n return event.monitorTarget;\n },\n isMonitorSession: function isMonitorSession(context, event) {\n return event.monitorTarget != undefined;\n }\n })\n },\n JANUS_SESSION_ERROR: 'pending',\n JANUS_SESSION_DESTROYED: 'pending'\n }\n },\n pending: {\n invoke: {\n id: 'sessionControl',\n src: 'sessionControlService'\n },\n entry: /*#__PURE__*/assign({\n opaqueSessionId: function opaqueSessionId() {\n return Janus.randomString(12);\n }\n }),\n exit: /*#__PURE__*/assign({\n serverRequestToReconnect: function serverRequestToReconnect() {\n return false;\n }\n }),\n on: {\n JANUS_SESSION_SUCCESS: [{\n cond: function cond(context, event) {\n return context.queuedStop;\n },\n actions: 'stopJanusSessionAction'\n }, {\n cond: function cond(context, event) {\n return context.serverRequestToReconnect;\n },\n target: 'reconnecting'\n }, {\n target: 'active'\n }],\n JANUS_SESSION_PROGRESS: {\n actions: function actions() {\n endpointView.onEndpointConnecting();\n }\n },\n JANUS_SESSION_ERROR: {\n target: 'inactive',\n actions: 'onJanusSessionErrorAction'\n },\n JANUS_SESSION_DESTROYED: 'inactive',\n REQUEST_TO_RECONNECT: {\n actions: /*#__PURE__*/assign({\n serverRequestToReconnect: function serverRequestToReconnect() {\n return true;\n }\n })\n }\n }\n },\n active: {\n initial: 'connected',\n states: {\n disconnecting: {\n entry: /*#__PURE__*/choose$1([{\n cond: function cond(context) {\n return !context.isMonitorSession;\n },\n actions: [/*#__PURE__*/send$1('DETACH', {\n to: 'masterPlugin'\n }), /*#__PURE__*/send$1('DETACH', {\n to: 'helperPlugin1'\n }), /*#__PURE__*/send$1('DETACH', {\n to: 'helperPlugin2'\n }), /*#__PURE__*/send$1('DETACH', {\n to: 'helperPlugin3'\n }), /*#__PURE__*/send$1('DETACH', {\n to: 'srPlugin'\n })]\n }, {\n cond: function cond(context) {\n return context.isMonitorSession;\n },\n actions: [/*#__PURE__*/send$1('DETACH', {\n to: 'masterPlugin'\n })]\n }]),\n after: {\n 4000: {\n target: 'destroying_session'\n }\n }\n },\n destroying_session: {\n after: {\n 2000: 'destroying_session_expired'\n },\n entry: 'stopJanusSessionAction'\n },\n destroying_session_expired: {\n entry: /*#__PURE__*/send$1('JANUS_SESSION_DESTROYED')\n },\n connected: {\n on: {\n DO_DISCONNECT: 'disconnecting'\n }\n }\n },\n invoke: [{\n id: 'masterPlugin',\n src: sipPluginSession,\n onError: {\n target: '.destroying_session'\n },\n data: {\n sessionService: function sessionService(context, event) {\n return _sessionService;\n },\n janusSession: function janusSession(context, event) {\n return context.janusSession;\n },\n opaqueId: function opaqueId(context, event) {\n return \"janus-sip-plugin-\" + context.opaqueSessionId;\n },\n instanceId: 0,\n autoregister: function autoregister(context, event) {\n return context.autoregister;\n },\n pushToken: function pushToken(context, event) {\n return context.pushToken;\n },\n alertPushToken: function alertPushToken(context, event) {\n return context.alertPushToken;\n },\n pushPlatformName: function pushPlatformName(context, event) {\n return context.pushPlatformName;\n },\n registerSipserver: function registerSipserver(context, event) {\n return context.sipserver;\n },\n registerUsername: function registerUsername(context, event) {\n return context.username;\n },\n registerSecret: function registerSecret(context, event) {\n return context.secret;\n },\n registerIsHa1Secret: function registerIsHa1Secret(context, event) {\n return context.is_ha1_secret;\n },\n pbxPlatform: function pbxPlatform(context, event) {\n return context.pbxPlatform;\n },\n registerDisplayname: function registerDisplayname(context, event) {\n return context.displayName;\n },\n monitorTarget: function monitorTarget(context, event) {\n return context.monitorTarget;\n },\n disabledPlugin: function disabledPlugin() {\n return false;\n }\n },\n onDone: {\n target: '.destroying_session',\n cond: function cond(context) {\n return context.idlePlugins.size == 4 && context.idleSrPlugins.size == 1;\n }\n }\n }, {\n id: 'helperPlugin1',\n src: sipPluginSession,\n onError: {\n target: '.destroying_session',\n cond: function cond(context) {\n return !context.isMonitorSession;\n }\n },\n data: {\n sessionService: function sessionService(context, event) {\n return _sessionService;\n },\n janusSession: function janusSession(context, event) {\n return context.janusSession;\n },\n opaqueId: function opaqueId(context, event) {\n return \"janus-helper-sip-plugin-1-\" + context.opaqueSessionId;\n },\n instanceId: 1,\n pbxPlatform: function pbxPlatform(context, event) {\n return context.pbxPlatform;\n },\n disabledPlugin: function disabledPlugin(context, event) {\n return context.isMonitorSession;\n }\n },\n onDone: {\n target: '.destroying_session',\n cond: function cond(context) {\n return !context.isMonitorSession && context.idlePlugins.size == 4 && context.idleSrPlugins.size == 1;\n }\n }\n }, {\n id: 'helperPlugin2',\n src: sipPluginSession,\n onError: {\n target: '.destroying_session',\n cond: function cond(context) {\n return !context.isMonitorSession;\n }\n },\n data: {\n sessionService: function sessionService(context, event) {\n return _sessionService;\n },\n janusSession: function janusSession(context, event) {\n return context.janusSession;\n },\n opaqueId: function opaqueId(context, event) {\n return \"janus-helper-sip-plugin-2-\" + context.opaqueSessionId;\n },\n instanceId: 2,\n pbxPlatform: function pbxPlatform(context, event) {\n return context.pbxPlatform;\n },\n disabledPlugin: function disabledPlugin(context, event) {\n return context.isMonitorSession;\n }\n },\n onDone: {\n target: '.destroying_session',\n cond: function cond(context) {\n return !context.isMonitorSession && context.idlePlugins.size == 4 && context.idleSrPlugins.size == 1;\n }\n }\n }, {\n id: 'helperPlugin3',\n src: sipPluginSession,\n onError: {\n target: '.destroying_session',\n cond: function cond(context) {\n return !context.isMonitorSession;\n }\n },\n data: {\n sessionService: function sessionService(context, event) {\n return _sessionService;\n },\n janusSession: function janusSession(context, event) {\n return context.janusSession;\n },\n opaqueId: function opaqueId(context, event) {\n return \"janus-helper-sip-plugin-3-\" + context.opaqueSessionId;\n },\n instanceId: 3,\n pbxPlatform: function pbxPlatform(context, event) {\n return context.pbxPlatform;\n },\n disabledPlugin: function disabledPlugin(context, event) {\n return context.isMonitorSession;\n }\n },\n onDone: {\n target: '.destroying_session',\n cond: function cond(context) {\n return !context.isMonitorSession && context.idlePlugins.size == 4 && context.idleSrPlugins.size == 1;\n }\n }\n }, {\n id: 'srPlugin',\n src: sipPluginSession,\n onError: {\n target: '.destroying_session',\n cond: function cond(context) {\n return !context.isMonitorSession;\n }\n },\n data: {\n sessionService: function sessionService(context, event) {\n return _sessionService;\n },\n janusSession: function janusSession(context, event) {\n return context.janusSession;\n },\n opaqueId: function opaqueId(context, event) {\n return \"janus-helper-sr-plugin-\" + context.opaqueSessionId;\n },\n instanceId: 4,\n pbxPlatform: function pbxPlatform(context, event) {\n return context.pbxPlatform;\n },\n disabledPlugin: function disabledPlugin(context, event) {\n return context.isMonitorSession;\n }\n },\n onDone: {\n target: '.destroying_session',\n cond: function cond(context) {\n return !context.isMonitorSession && context.idlePlugins.size == 4 && context.idleSrPlugins.size == 1;\n }\n }\n }],\n entry: 'onJanusSessionStartedAction',\n exit: /*#__PURE__*/assign({\n serverRequestToReconnect: function serverRequestToReconnect() {\n return false;\n }\n }),\n on: {\n JANUS_SESSION_DESTROYED: 'inactive',\n JANUS_SESSION_ERROR: {\n actions: [/*#__PURE__*/send$1(function (context, event) {\n return {\n type: 'JANUS_SESSION_ENDED'\n };\n }, {\n to: 'masterPlugin'\n }), /*#__PURE__*/send$1(function (context, event) {\n return {\n type: 'JANUS_SESSION_ENDED'\n };\n }, {\n to: 'helperPlugin1'\n }), /*#__PURE__*/send$1(function (context, event) {\n return {\n type: 'JANUS_SESSION_ENDED'\n };\n }, {\n to: 'helperPlugin2'\n }), /*#__PURE__*/send$1(function (context, event) {\n return {\n type: 'JANUS_SESSION_ENDED'\n };\n }, {\n to: 'helperPlugin3'\n }), /*#__PURE__*/send$1(function (context, event) {\n return {\n type: 'JANUS_SESSION_ENDED'\n };\n }, {\n to: 'srPlugin'\n })]\n },\n PLUGIN_REGISTRATION_FAILED: {\n actions: 'notifyRegistrationFailedAction',\n cond: function cond(context, event) {\n return event.instanceId == 0;\n }\n },\n PLUGIN_RETRYING_REGISTER: {\n actions: 'notifyRetryingRegistrationAction',\n cond: function cond(context, event) {\n return event.instanceId == 0;\n }\n },\n PLUGIN_TRYING_UNREGISTER: {\n actions: 'notifyTryingUnregistrationAction',\n cond: function cond(context, event) {\n return event.instanceId == 0;\n }\n },\n PLUGIN_UNREGISTERED: {\n actions: 'notifyUnregisteredAction',\n cond: function cond(context, event) {\n return event.instanceId == 0;\n }\n },\n PLUGIN_REGISTERED: {\n actions: ['notifyRegisteredAction', /*#__PURE__*/send$1(function (context, event) {\n return {\n type: 'ATTACH',\n masterId: event.masterId,\n registerUsername: event.registerUsername\n };\n }, {\n to: 'helperPlugin1'\n }), /*#__PURE__*/send$1(function (context, event) {\n return {\n type: 'ATTACH',\n masterId: event.masterId,\n registerUsername: event.registerUsername\n };\n }, {\n to: 'helperPlugin2'\n }), /*#__PURE__*/send$1(function (context, event) {\n return {\n type: 'ATTACH',\n masterId: event.masterId,\n registerUsername: event.registerUsername\n };\n }, {\n to: 'helperPlugin3'\n }), /*#__PURE__*/send$1(function (context, event) {\n return {\n type: 'ATTACH',\n masterId: event.masterId,\n registerUsername: event.registerUsername\n };\n }, {\n to: 'srPlugin'\n }), /*#__PURE__*/send$1(function (context, event) {\n return {\n type: 'SUBSCRIBE'\n };\n }, {\n to: 'masterPlugin'\n })],\n cond: function cond(context, event) {\n return event.instanceId == 0 && !context.isMonitorSession;\n }\n },\n CTI_MWI: {\n actions: 'notifyMwiAction'\n },\n CANCEL_PENDING_CALL: {\n actions: 'cancelPendingCallAction'\n },\n CTI_HOLD: {\n actions: /*#__PURE__*/send$1(function (context, event) {\n return {\n type: 'FORWARD_TO_PLUGIN',\n event: {\n type: 'DO_HOLD',\n instanceId: event.instanceId\n }\n };\n })\n },\n CTI_ANSWER: {\n actions: /*#__PURE__*/send$1(function (context, event) {\n return {\n type: 'FORWARD_TO_PLUGIN',\n event: {\n type: 'DO_ACCEPT',\n instanceId: event.instanceId\n }\n };\n })\n },\n CTI_RESUME: {\n actions: /*#__PURE__*/send$1(function (context, event) {\n return {\n type: 'FORWARD_TO_PLUGIN',\n event: {\n type: 'DO_RESUME',\n instanceId: event.instanceId\n }\n };\n })\n },\n CTI_DIAL: [{\n actions: /*#__PURE__*/send$1(function (context, event) {\n return {\n type: 'FORWARD_TO_PLUGIN',\n event: {\n type: 'DO_MAKE_CALL',\n target: event.dialUri,\n referId: \"\",\n instanceId: Array.from(context.idlePlugins).sort(function (a, b) {\n return a - b;\n })[0]\n }\n };\n }),\n cond: function cond(context) {\n return context.idlePlugins.size > 0;\n }\n }, {\n target: undefined\n } // consume\n ],\n START_CAPTURE: {\n actions: 'notifyStartMediaCapture'\n },\n STOP_CAPTURE: {\n actions: 'notifyStopMediaCapture'\n },\n SUSPEND_CAPTURE: {\n actions: 'notifySuspendMediaCapture'\n },\n RESUME_CAPTURE: {\n actions: 'notifyResumeMediaCapture'\n },\n CALL_STATE_ERROR: {\n actions: 'notifyCallStateErrorAction'\n },\n DO_REGISTER: {\n actions: [/*#__PURE__*/assign({\n sipserver: function sipserver(context, event) {\n return event.sipserver;\n }\n }), /*#__PURE__*/forwardTo$1('masterPlugin')]\n },\n DO_UNREGISTER: {\n actions: [/*#__PURE__*/send$1(function (context, event) {\n return {\n type: 'UNSUBSCRIBE',\n removeToken: event.removeToken\n };\n }, {\n to: 'masterPlugin'\n }), /*#__PURE__*/forwardTo$1('masterPlugin')]\n },\n // call commands\n FORWARD_TO_PLUGIN: [{\n actions: /*#__PURE__*/send$1(function (context, event) {\n return event.event;\n }, {\n to: 'masterPlugin'\n }),\n cond: function cond(context, event) {\n return event.event.instanceId == 0;\n }\n }, {\n actions: /*#__PURE__*/send$1(function (context, event) {\n return event.event;\n }, {\n to: 'helperPlugin1'\n }),\n cond: function cond(context, event) {\n return event.event.instanceId == 1;\n }\n }, {\n actions: /*#__PURE__*/send$1(function (context, event) {\n return event.event;\n }, {\n to: 'helperPlugin2'\n }),\n cond: function cond(context, event) {\n return event.event.instanceId == 2;\n }\n }, {\n actions: /*#__PURE__*/send$1(function (context, event) {\n return event.event;\n }, {\n to: 'helperPlugin3'\n }),\n cond: function cond(context, event) {\n return event.event.instanceId == 3;\n }\n }, {\n actions: /*#__PURE__*/send$1(function (context, event) {\n return event.event;\n }, {\n to: 'srPlugin'\n }),\n cond: function cond(context, event) {\n return event.event.instanceId == 4;\n }\n }],\n // call states\n CALL_STATE_IDLE: {\n actions: [/*#__PURE__*/assign({\n idlePlugins: function idlePlugins(context, event) {\n return event.instanceId < 4 ? context.idlePlugins.add(event.instanceId) : context.idlePlugins;\n }\n }), /*#__PURE__*/assign({\n idleSrPlugins: function idleSrPlugins(context, event) {\n return event.instanceId >= 4 ? context.idleSrPlugins.add(event.instanceId) : context.idleSrPlugins;\n }\n }), 'notifyCallStateIdleAction']\n },\n CALL_STATE_DEEP_IDLE: [{\n // make sure all calls are idle\n target: 'reconnecting',\n cond: 'canReconnect'\n }, {\n actions: 'notifyCallStateDeepIdleAction'\n }],\n CALL_STATE_TRYING_OUT: {\n actions: ['setPluginBusyAction', 'notifyCallStateTryingOutAction']\n },\n CALL_STATE_CALLING_OUT: {\n actions: 'notifyCallStateCallingOutAction'\n },\n CALL_STATE_RINGING_OUT: {\n actions: 'notifyCallStateRingingOutAction'\n },\n CALL_STATE_PROCEEDING_OUT: {\n actions: 'notifyCallStateProceedingOutAction'\n },\n CALL_STATE_PROGRESS_OUT: {\n actions: 'notifyCallStateProgressOutAction'\n },\n CALL_STATE_CONNECTING: {\n actions: 'notifyCallStateConnectingAction'\n },\n CALL_STATE_CONNECTED: {\n actions: 'notifyCallStateConnectedAction'\n },\n CALL_STATE_HANGINGUP: {\n actions: 'notifyCallStateHangingUpAction'\n },\n CALL_STATE_ONHOLD: {\n actions: 'notifyCallStateOnHoldAction'\n },\n CALL_STATE_INCOMING_CALL: {\n actions: ['setPluginBusyAction', 'handleCallStateIncomingCallAction']\n },\n CALL_STATE_DO_XFERRING: {\n actions: 'handleCallStateXferringtAction'\n },\n HANDLE_REFER: {\n actions: 'handleReferAction'\n },\n DO_BLIND_XFER_FAILED: {\n actions: 'notifyBlindXferFailedAction'\n },\n DO_BLIND_XFER_SUCCEEDED: {\n actions: 'notifyBlindXferSucceededAction'\n },\n DO_XFER_FAILED: {\n actions: 'notifyXferFailedAction'\n },\n DO_XFER_SUCCEEDED: {\n actions: 'notifyXferSucceededAction'\n },\n // media\n MEDIA_ON_LOCAL_STREAM: {\n actions: 'notifyMediaOnLocalStreamAction'\n },\n MEDIA_ON_REMOTE_STREAM: {\n actions: 'notifyMediaOnRemoteStreamAction'\n },\n SLOWLINK: {\n actions: 'notifySlowLinkAction'\n },\n ON_STATS_UPDATED: {\n actions: 'notifyOnStatsUpdatedAction'\n },\n REQUEST_TO_RECONNECT: [{\n // make sure all calls are idle\n target: 'reconnecting',\n cond: function cond(context) {\n return context.idlePlugins.size == 4 && context.idleSrPlugins.size == 1;\n }\n }, {\n actions: /*#__PURE__*/assign({\n serverRequestToReconnect: function serverRequestToReconnect() {\n return true;\n }\n }),\n cond: function cond(context) {\n return context.idlePlugins.size < 4 || context.idleSrPlugins.size < 1;\n }\n }]\n }\n },\n destroyed: {\n always: 'inactive'\n }\n }\n}, {\n guards: {\n canReconnect: function canReconnect(context, event) {\n return context.serverRequestToReconnect && context.idlePlugins.size == 4 && context.idleSrPlugins.size == 1;\n }\n },\n actions: {\n logEvent: function logEvent(context, event) {\n Janus.log(\"!!! Context: \", context);\n Janus.log(\"!!! Event: \", event);\n },\n onJanusSessionStoppedAction: function onJanusSessionStoppedAction(context, event) {\n if (event.type === \"xstate.init\") return;\n context.endpointView.onEndpointDisconnected(event.message);\n },\n onJanusSessionReconnectingAction: function onJanusSessionReconnectingAction(context, event) {\n context.endpointView.onEndpointReconnecting();\n },\n onJanusSessionStartedAction: function onJanusSessionStartedAction(context, event) {\n var plugins = [];\n if (_sessionService.state.children.masterPlugin !== undefined) plugins.push(_sessionService.state.children.masterPlugin);\n if (_sessionService.state.children.helperPlugin1 !== undefined) plugins.push(_sessionService.state.children.helperPlugin1);\n if (_sessionService.state.children.helperPlugin2 !== undefined) plugins.push(_sessionService.state.children.helperPlugin2);\n if (_sessionService.state.children.helperPlugin3 !== undefined) plugins.push(_sessionService.state.children.helperPlugin3);\n if (_sessionService.state.children.srPlugin !== undefined) plugins.push(_sessionService.state.children.srPlugin);\n\n var _loop = function _loop() {\n var plugin = _plugins[_i];\n var instanceId = plugin.state.context.instanceId;\n if (plugin.listeners.size >= 4) return \"break\";\n plugin.listeners.add(function (state) {\n if (state.history === undefined) Janus.log(\"Machine plugin(\", instanceId, \") state change: \", state.history, \"-->\", state.value, \", event: \", state.event);else Janus.log(\"Machine plugin(\", instanceId, \") state change: \", state.history.value, \"-->\", state.value, \", event: \", state.event);\n });\n };\n\n for (var _i = 0, _plugins = plugins; _i < _plugins.length; _i++) {\n var _ret = _loop();\n\n if (_ret === \"break\") break;\n }\n\n context.endpointView.onEndpointConnected();\n },\n onJanusSessionErrorAction: function onJanusSessionErrorAction(context, event) {// nothing\n },\n stopJanusSessionAction: function stopJanusSessionAction(context, event) {\n context.janusSession.destroy();\n },\n onMasterPluginError: function onMasterPluginError(context, error) {},\n notifyRegistrationFailedAction: function notifyRegistrationFailedAction(context, event) {\n if (context.endpointView.lineView) {\n context.endpointView.lineView.onRegistrationError(event.error);\n }\n },\n notifyRetryingRegistrationAction: function notifyRetryingRegistrationAction(context, event) {\n if (context.endpointView.lineView) {\n context.endpointView.lineView.onRegistrationTrying();\n }\n },\n notifyTryingUnregistrationAction: function notifyTryingUnregistrationAction(context, event) {\n if (context.endpointView.lineView) {\n context.endpointView.lineView.onUnregistrationTrying();\n }\n },\n notifyUnregisteredAction: function notifyUnregisteredAction(context, event) {\n if (context.endpointView.lineView) {\n context.endpointView.lineView.onUnregistered();\n }\n },\n notifyRegisteredAction: function notifyRegisteredAction(context, event) {\n if (context.endpointView.lineView && event.instanceId == 0) {\n context.endpointView.lineView.onRegistered(event.displayName);\n }\n },\n notifyMwiAction: function notifyMwiAction(context, event) {\n if (context.endpointView.lineView) {\n context.endpointView.lineView.onMwiStatusChange(event.mwi);\n }\n },\n cancelPendingCallAction: function cancelPendingCallAction(context, event) {\n if (context.endpointView.lineView) {\n context.endpointView.lineView.onPendingCallCanceled(event.callId);\n }\n },\n notifyCallStateErrorAction: function notifyCallStateErrorAction(context, event) {\n if (context.endpointView.lineView) {\n context.endpointView.lineView.onCallStatusError(event.instanceId, event.errorCode, event.errorMessage);\n }\n },\n notifyCallStateIdleAction: function notifyCallStateIdleAction(context, event) {\n if (context.endpointView.lineView) {\n context.endpointView.lineView.onCallStatusIdle(event.instanceId, event.code, event.reason);\n }\n },\n notifyCallStateDeepIdleAction: function notifyCallStateDeepIdleAction(context, event) {\n if (context.endpointView.lineView) {\n context.endpointView.lineView.onCallStatusDeepIdle(event.instanceId);\n }\n },\n notifyCallStateTryingOutAction: function notifyCallStateTryingOutAction(context, event) {},\n notifyCallStateCallingOutAction: function notifyCallStateCallingOutAction(context, event) {\n if (context.endpointView.lineView) {\n if (event.callId) context.endpointView.lineView.onCallIdUpdate(event.instanceId, event.callId);\n context.endpointView.lineView.onCallStatusChange(event.instanceId, 'callingOut', undefined, event.remoteUri);\n }\n },\n notifyCallStateRingingOutAction: function notifyCallStateRingingOutAction(context, event) {\n if (context.endpointView.lineView) {\n context.endpointView.lineView.onCallStatusChange(event.instanceId, 'ringingOut', undefined, event.remoteUri, event.remoteDisplay);\n }\n },\n notifyCallStateProceedingOutAction: function notifyCallStateProceedingOutAction(context, event) {\n if (context.endpointView.lineView) {\n context.endpointView.lineView.onCallStatusChange(event.instanceId, 'ringingOut');\n }\n },\n notifyCallStateProgressOutAction: function notifyCallStateProgressOutAction(context, event) {\n if (context.endpointView.lineView) {\n context.endpointView.lineView.onCallStatusChange(event.instanceId, 'progressOut', undefined, event.remoteUri, event.remoteDisplay);\n }\n },\n notifyCallStateConnectingAction: function notifyCallStateConnectingAction(context, event) {},\n notifyCallStateConnectedAction: function notifyCallStateConnectedAction(context, event) {\n if (context.endpointView.lineView) {\n var media_caps = {\n hasLocalAudio: event.hasLocalAudio,\n hasRemoteAudio: event.hasRemoteAudio,\n hasLocalVideo: event.hasLocalVideo,\n hasRemoteVideo: event.hasRemoteVideo,\n enabledVideoSource: event.enabledVideoSource\n };\n context.endpointView.lineView.onCallStatusChange(event.instanceId, event.isInitial ? 'connected' : 'reconnected', undefined, // call state desc\n event.remoteUri, event.remoteDisplay, media_caps);\n }\n },\n notifyCallStateHangingUpAction: function notifyCallStateHangingUpAction(context, event) {},\n notifyCallStateOnHoldAction: function notifyCallStateOnHoldAction(context, event) {\n if (context.endpointView.lineView) {\n var media_caps = {\n hasLocalAudio: event.hasLocalAudio,\n hasRemoteAudio: event.hasRemoteAudio,\n hasLocalVideo: event.hasLocalVideo,\n hasRemoteVideo: event.hasRemoteVideo,\n enabledVideoSource: event.enabledVideoSource\n };\n context.endpointView.lineView.onCallStatusChange(event.instanceId, 'hold', undefined, // call state desc\n undefined, // remte uri\n undefined, // remote display\n media_caps);\n }\n },\n setPluginBusyAction: function setPluginBusyAction(context, event) {\n if (event.instanceId < 4) context.idlePlugins[\"delete\"](event.instanceId);else context.idleSrPlugins[\"delete\"](event.instanceId);\n },\n handleCallStateIncomingCallAction: function handleCallStateIncomingCallAction(context, event) {\n if (event.replaces) {\n // handle replaces without user input\n Janus.log(\"Replaces incoming call, replaces sip-call-id\", event.replaces);\n var replaces_plugin = null;\n var replacing_plugin = null;\n\n for (var _iterator15 = _createForOfIteratorHelperLoose(_sessionService.children.values()), _step15; !(_step15 = _iterator15()).done;) {\n var value = _step15.value;\n\n if (value.state.context.instanceId == event.instanceId) {\n replacing_plugin = value;\n break;\n }\n }\n\n for (var _iterator16 = _createForOfIteratorHelperLoose(_sessionService.children.values()), _step16; !(_step16 = _iterator16()).done;) {\n var _value = _step16.value;\n\n if (_value.state.children.callControl.state.context.sip_call_id === event.replaces) {\n replaces_plugin = _value;\n break;\n }\n }\n\n if (replaces_plugin !== null && replacing_plugin !== null) {\n Janus.log(\"Replaces instance ID:\", replaces_plugin.state.context.instanceId);\n Janus.log(\"Replacing instance ID:\", replacing_plugin.state.context.instanceId); // answer replacing call and hangup replaces call\n\n if (context.endpointView.lineView) {\n context.endpointView.lineView.onCallStatusChange(event.instanceId, 'incomingcallReplaces', undefined, event.callerUsername, event.callerDisplay);\n\n if (replaces_plugin.state.context.isCallAnswered) {\n JanusAnswerCall(event.instanceId);\n JanusHangupCall(replaces_plugin.state.context.instanceId);\n } else {\n //JanusHangupCall(replaces_plugin.state.context.instanceId);\n if (event.callId) context.endpointView.lineView.onCallIdUpdate(event.instanceId, event.callId);\n }\n }\n } else {\n Janus.warn(\"Replaces call-id: \", event.replaces, \" doesn't match other session call-id\");\n JanusDeclineCall(event.instanceId, 481);\n }\n } else if (context.endpointView.lineView) {\n if (event.callId) context.endpointView.lineView.onCallIdUpdate(event.instanceId, event.callId);\n context.endpointView.lineView.onCallStatusChange(event.instanceId, 'incomingcall', undefined, event.callerUsername, event.callerDisplay);\n }\n },\n notifyMediaOnLocalStreamAction: function notifyMediaOnLocalStreamAction(context, event) {\n if (context.endpointView.lineView) {\n context.endpointView.lineView.onMediaStatusChange(event.instanceId, 'localstream', event.stream);\n }\n },\n notifyMediaOnRemoteStreamAction: function notifyMediaOnRemoteStreamAction(context, event) {\n if (context.endpointView.lineView) {\n context.endpointView.lineView.onMediaStatusChange(event.instanceId, 'remotestream', event.stream);\n }\n },\n notifyOnStatsUpdatedAction: function notifyOnStatsUpdatedAction(context, event) {\n if (context.endpointView.lineView) {\n context.endpointView.lineView.onStatsUpdated(event.instanceId, event.stats);\n }\n },\n notifySlowLinkAction: function notifySlowLinkAction(context, event) {\n if (context.endpointView.lineView) {\n context.endpointView.lineView.onSlowLink(event.instanceId, event.uplink, event.media, event.lost);\n }\n },\n handleReferAction: function handleReferAction(context, event) {\n // find idle plugin\n var idleArr = Array.from(context.idlePlugins).sort(function (a, b) {\n return a - b;\n });\n\n if (event.instanceId < 4 && idleArr.length > 0) {\n Janus.log(\"Refer dial to [\", event.refer_event.result[\"refer_to\"], \"] is to be performed by plugin instance \", idleArr[0]);\n\n _sessionService.send({\n type: 'FORWARD_TO_PLUGIN',\n event: {\n type: 'DO_MAKE_CALL',\n target: event.refer_event.result[\"refer_to\"],\n referId: event.refer_event.result[\"refer_id\"],\n instanceId: idleArr[0]\n }\n });\n\n context.endpointView.lineView.onReferHandled(event.instanceId, idleArr[0]);\n } else {\n // reject REFER\n _sessionService.send({\n type: 'FORWARD_TO_PLUGIN',\n event: {\n type: 'DO_REJECT_REFER',\n instanceId: event.instanceId,\n result: event.refer_event.result\n }\n });\n }\n },\n notifyBlindXferFailedAction: function notifyBlindXferFailedAction(context, event) {\n if (context.endpointView.lineView) {\n context.endpointView.lineView.onCallStatusError(event.instanceId, CallStatusErrorCode.ERROR_TRANSFER, event.message);\n context.endpointView.lineView.onCallStatusChange(event.instanceId, 'blindtransferfailed');\n }\n },\n notifyXferFailedAction: function notifyXferFailedAction(context, event) {\n if (context.endpointView.lineView) {\n context.endpointView.lineView.onCallStatusError(event.instanceId, CallStatusErrorCode.ERROR_TRANSFER, event.message);\n context.endpointView.lineView.onCallStatusChange(event.instanceId, 'transferfailed');\n }\n },\n notifyBlindXferSucceededAction: function notifyBlindXferSucceededAction(context, event) {\n if (context.endpointView.lineView) {\n context.endpointView.lineView.onCallStatusChange(event.instanceId, 'blindtransferok');\n }\n },\n notifyXferSucceededAction: function notifyXferSucceededAction(context, event) {\n if (context.endpointView.lineView) {\n context.endpointView.lineView.onCallStatusChange(event.instanceId, 'transferok');\n }\n },\n handleCallStateXferringtAction: function handleCallStateXferringtAction(context, event) {\n if (context.endpointView.lineView) {\n context.endpointView.lineView.onCallStatusChange(event.instanceId, 'transferring');\n }\n },\n notifyStartMediaCapture: function notifyStartMediaCapture(context, event) {\n if (context.endpointView.lineView) {\n context.endpointView.lineView.doStartScreenRecording(event.target, event.callId, event.frameRate, event.screenWidth, event.screenHeight);\n }\n },\n notifyStopMediaCapture: function notifyStopMediaCapture(context, event) {\n if (context.endpointView.lineView) {\n context.endpointView.lineView.doStopScreenRecording();\n }\n },\n notifySuspendMediaCapture: function notifySuspendMediaCapture(context, event) {\n if (!context.endpointView.lineView.srCall) Janus.error('Unable to suspend screen recording (no call)');\n\n try {\n _sessionService.send({\n type: 'FORWARD_TO_PLUGIN',\n event: {\n type: 'DO_HOLD',\n instanceId: context.endpointView.lineView.srCall.instanceId\n }\n });\n } catch (err) {\n Janus.error('Unable to suspend screen recording', err);\n }\n },\n notifyResumeMediaCapture: function notifyResumeMediaCapture(context, event) {\n if (!context.endpointView.lineView.srCall) Janus.error('Unable to resume screen recording (no call)');\n\n try {\n _sessionService.send({\n type: 'FORWARD_TO_PLUGIN',\n event: {\n type: 'DO_RESUME',\n instanceId: context.endpointView.lineView.srCall.instanceId\n }\n });\n } catch (err) {\n Janus.error('Unable to resume screen recording', err);\n }\n }\n },\n // Services\n services: {\n sessionControlService: function sessionControlService(context, event) {\n return function (callback, onReceive) {\n try {\n context.error = \"\";\n context.queuedStop = false;\n context.janusSession = new Janus({\n server: context.janusServer,\n janusServerUsername: context.janusServerUsername,\n janusServerPassword: context.janusServerPassword,\n iceServers: context.iceServers,\n longPollTimeout: 60000,\n // change that to 20000 once the janus service default is set to 15\n success: function success() {\n Janus.log(\"Janus session created\");\n callback('JANUS_SESSION_SUCCESS');\n },\n error: function error(_error) {\n Janus.error(\"Failed to create Janus session\", _error);\n\n if (_sessionService !== null) {\n context.error = _error.includes(\"network error\") ? \"Unable to connect due to a network error\" : _error;\n\n try {\n _sessionService.send({\n type: 'JANUS_SESSION_ERROR',\n message: context.error\n });\n } catch (error) {\n // don't care\n Janus.warn(\"Error while sending JANUS_SESSION_ERROR:\", error.message);\n }\n }\n },\n destroyed: function destroyed() {\n Janus.log(\"Janus session destroyed\");\n\n _sessionService.send('JANUS_SESSION_DESTROYED');\n }\n });\n callback('JANUS_SESSION_PROGRESS');\n } catch (error) {\n callback({\n type: 'JANUS_SESSION_ERROR',\n message: error.message\n });\n }\n };\n }\n }\n});\n\nfunction JanusActivateSipRegistration(on, sipserver, username, secret, is_ha1_secret, displayName, smTarget) {\n if (_sessionService !== null && on) {\n _sessionService.send({\n type: 'DO_REGISTER',\n sipserver: sipserver,\n username: username,\n secret: secret,\n is_ha1_secret: is_ha1_secret,\n displayName: displayName,\n smTarget: smTarget\n });\n } else if (!on) {\n _sessionService.send('DO_UNREGISTER');\n }\n}\n\nfunction JanusDeactivateSipRegistration(removeToken) {\n _sessionService.send({\n type: 'DO_UNREGISTER',\n removeToken: removeToken\n });\n}\n\nfunction JanusHangupCall(instanceId) {\n if (_sessionService !== null) {\n _sessionService.send({\n type: 'FORWARD_TO_PLUGIN',\n event: {\n type: 'DO_HANGUP',\n instanceId: instanceId\n }\n });\n }\n}\n\nfunction JanusAnswerCall(instanceId) {\n if (_sessionService !== null) {\n _sessionService.send({\n type: 'FORWARD_TO_PLUGIN',\n event: {\n type: 'DO_ACCEPT',\n instanceId: instanceId\n }\n });\n }\n}\n\nfunction JanusDeclineCall(instanceId, code) {\n if (_sessionService !== null) {\n _sessionService.send({\n type: 'FORWARD_TO_PLUGIN',\n event: {\n type: 'DO_DECLINE',\n instanceId: instanceId,\n code: code\n }\n });\n }\n}\n\nfunction JanusCompleteTransfer(instanceId) {\n if (_sessionService !== null) {\n // determine replaces call-id\n var replaces_call_id = \"\";\n var refer_to = \"\";\n\n for (var _iterator17 = _createForOfIteratorHelperLoose(_sessionService.children.values()), _step17; !(_step17 = _iterator17()).done;) {\n var value = _step17.value;\n\n if (value.state.context.instanceId !== instanceId && !_sessionService.state.context.idlePlugins.has(value.state.context.instanceId)) {\n replaces_call_id = value.state.children.callControl.state.context.sip_call_id;\n refer_to = value.state.children.callControl.state.context.remote_uri;\n break;\n }\n }\n\n if (!replaces_call_id || !refer_to) {\n _sessionService.send({\n type: 'XFER_FAILED',\n instanceId: instanceId,\n message: 'Consulation call not found'\n });\n\n return;\n }\n\n Janus.log(\"Completing transfer to [\", refer_to, \"], replaces-call-id [\", replaces_call_id, \"]\");\n\n _sessionService.send({\n type: 'FORWARD_TO_PLUGIN',\n event: {\n type: 'DO_XFER',\n instanceId: instanceId,\n refer_to: refer_to,\n replaces_call_id: replaces_call_id\n }\n });\n }\n}\n\nvar endpointView$1;\n\nfunction lineView() {\n return endpointView$1.lineView;\n}\n\nfunction callView(index) {\n return lineView().calls[index];\n}\n\nfunction getActiveCallView() {\n var lv = lineView();\n return lv.calls[lv.callIndex];\n}\n\nvar onInit = /*#__PURE__*/takeEvery(initApp, /*#__PURE__*/function () {\n var _ref = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(ctx) {\n var onLineStatusChanged, onCallStatusChanged;\n return runtime_1.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n onCallStatusChanged = function _onCallStatusChanged() {\n var lv = lineView();\n var calls = lv.calls;\n var tsCalls = calls.map(function (_value, index) {\n return getCall(index);\n });\n ctx.dispatch(callStatusChanged(lv.callIndex, tsCalls));\n };\n\n onLineStatusChanged = function _onLineStatusChanged() {\n var line = getLine();\n ctx.dispatch(lineStatusChanged(line));\n };\n\n window.citrixVdaSupport ? console.log('Initialising Janus with Citrix') : console.log('Initialising Janus');\n Janus.init({\n debug: true,\n dependencies: Janus.useDefaultDependencies({\n adapter: adapter$1\n }),\n callback: function callback() {\n endpointView$1 = CreateEndpointView({\n onEndpointStatusChange: function onEndpointStatusChange() {\n // add the created call\n if (lineView() && !selectCall(ctx.getState())) {\n onCallStatusChanged();\n }\n\n ctx.dispatch(endpointStatusChanged(getEndpoint()));\n\n if (getEndpoint().status === 'online') {\n onLineStatusChanged();\n }\n },\n onLineRequestRegisterFailed: onLineStatusChanged,\n onLineRequestUregisterFailed: onLineStatusChanged,\n onLineRegisterRequested: onLineStatusChanged,\n onLineUnregisterRequested: onLineStatusChanged,\n onLineRegisterStatusChange: onLineStatusChanged,\n onMwiStatusChange: onLineStatusChanged,\n onCallStatusChange: function onCallStatusChange(_sipserver, _username, _errorCode, _errorMessage) {\n onCallStatusChanged();\n },\n onMediaStatusChange: function onMediaStatusChange(_sipserver, _username) {\n onCallStatusChanged();\n },\n onStatsUpdated: function onStatsUpdated(_stats) {\n onCallStatusChanged();\n },\n onSlowAudioUpLink: function onSlowAudioUpLink(_slow) {\n onCallStatusChanged();\n },\n onSlowAudioDownLink: function onSlowAudioDownLink(_slow) {\n onCallStatusChanged();\n }\n });\n endpointView$1.init();\n }\n });\n setDefaultAudioConstraints(ctx.getState().janus.mediaConstraint);\n\n case 5:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n}());\nvar connectEndpoint$1 = /*#__PURE__*/takeEvery(connectEndpoint, /*#__PURE__*/function () {\n var _ref3 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2(ctx, _ref2) {\n var extension, pin, settings, turnServers, turnUsername, turnPassword, sipRealm, serverUsername, serverPassword;\n return runtime_1.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n extension = _ref2.extension, pin = _ref2.pin;\n settings = selectSettings(ctx.getState()); //const Url = 'https://mobility-dev.ipfx.com:8089/janus'\n //const SipDomain = 'NZVOIP02_001'\n //const TurnServers = ['turn:mobility-dev.ipfx.com:3473?transport=udp','turn:mobility-dev.ipfx.com:3473?transport=tcp']\n\n turnServers = [];\n\n if (settings.turnServer != null && settings.turnServer.length > 0) {\n if (settings.turnServerUdpPort !== '') {\n turnServers.push('turn:' + settings.turnServer + ':' + settings.turnServerUdpPort + '?transport=udp');\n }\n\n if (settings.turnServerTcpPort !== '') {\n turnServers.push('turn:' + settings.turnServer + ':' + settings.turnServerTcpPort + '?transport=tcp');\n }\n }\n\n turnUsername = settings.turnUsername ? settings.turnUsername : extension;\n turnPassword = settings.turnPassword ? settings.turnPassword : pin;\n sipRealm = settings.sipRealm ? settings.sipRealm : undefined; // empty string, null and undefined --> undefined\n\n serverUsername = settings.serverUsername ? settings.serverUsername : undefined; // empty string, null and undefined --> undefined\n\n serverPassword = settings.serverPassword ? settings.serverPassword : undefined; // empty string, null and undefined --> undefined\n // 4 for director\n\n endpointView$1.doConnect(settings.janus, settings.sipDomain, extension, pin, turnServers, turnUsername, turnPassword, true, null, null, null, 4, sipRealm, serverUsername, serverPassword, null);\n\n case 10:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n return function (_x2, _x3) {\n return _ref3.apply(this, arguments);\n };\n}());\nvar connectEndpointGuest$1 = /*#__PURE__*/takeEvery(connectEndpointGuest, /*#__PURE__*/function () {\n var _ref5 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee3(ctx, _ref4) {\n var guestId, guestPasskey, displayName, settings, turnServers, sipRealm;\n return runtime_1.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n guestId = _ref4.guestId, guestPasskey = _ref4.guestPasskey, displayName = _ref4.displayName;\n settings = selectSettings(ctx.getState()); //const TurnServers = ['turn:mobility-dev.ipfx.com:3473?transport=udp','turn:mobility-dev.ipfx.com:3473?transport=tcp']\n\n turnServers = [];\n\n if (settings.turnServer != null && settings.turnServer.length > 0) {\n if (settings.turnServerUdpPort !== '') {\n turnServers.push('turn:' + settings.turnServer + ':' + settings.turnServerUdpPort + '?transport=udp');\n }\n\n if (settings.turnServerTcpPort !== '') {\n turnServers.push('turn:' + settings.turnServer + ':' + settings.turnServerTcpPort + '?transport=tcp');\n }\n }\n\n sipRealm = settings.sipRealm ? settings.sipRealm : 'guest.ipfx.pbx'; // 4 for director\n\n endpointView$1.doConnectGuest(settings.janus, turnServers, settings.sipDomain, guestId, guestPasskey, 4, sipRealm, displayName);\n\n case 6:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n\n return function (_x4, _x5) {\n return _ref5.apply(this, arguments);\n };\n}());\nvar disconnectEndpoint$1 = /*#__PURE__*/takeEvery(disconnectEndpoint, /*#__PURE__*/function () {\n var _ref6 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee4(_ctx) {\n return runtime_1.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n endpointView$1.doDisconnect(undefined);\n\n case 1:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n\n return function (_x6) {\n return _ref6.apply(this, arguments);\n };\n}()); // const register = takeEvery(actions.register, async () => {\n// lineView().doRequestRegister()\n// })\n// const unregister = takeEvery(actions.unregister, async () => {\n// lineView().doRequestUnregister()\n// })\n\nvar configureMediaConstraints$1 = /*#__PURE__*/takeEvery(configureMediaConstraints, /*#__PURE__*/function () {\n var _ref7 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee5(_ctx, payload) {\n return runtime_1.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n setDefaultAudioConstraints(payload);\n\n case 1:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }));\n\n return function (_x7, _x8) {\n return _ref7.apply(this, arguments);\n };\n}());\nvar dial$1 = /*#__PURE__*/takeEvery(dial, /*#__PURE__*/function () {\n var _ref8 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee6(_ctx, payload) {\n return runtime_1.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n getActiveCallView().doMakeCall(payload);\n\n case 1:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }));\n\n return function (_x9, _x10) {\n return _ref8.apply(this, arguments);\n };\n}());\nvar hangUp$1 = /*#__PURE__*/takeEvery(hangUp, /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee7() {\n return runtime_1.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n getActiveCallView().doHangup();\n\n case 1:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7);\n})));\nvar muteMicrophone$1 = /*#__PURE__*/takeEvery(muteMicrophone, /*#__PURE__*/function () {\n var _ref10 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee8(_ctx, payload) {\n return runtime_1.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n getActiveCallView().doMuteMicrophone(payload);\n\n case 1:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8);\n }));\n\n return function (_x11, _x12) {\n return _ref10.apply(this, arguments);\n };\n}());\nvar dtmf$1 = /*#__PURE__*/takeEvery(dtmf, /*#__PURE__*/function () {\n var _ref11 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee9(_ctx, payload) {\n return runtime_1.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n getActiveCallView().doSendDtmf(payload);\n\n case 1:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9);\n }));\n\n return function (_x13, _x14) {\n return _ref11.apply(this, arguments);\n };\n}());\nvar answer$1 = /*#__PURE__*/takeEvery(answer, /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee10() {\n return runtime_1.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n getActiveCallView().doAnswer();\n\n case 1:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10);\n})));\nvar hold$1 = /*#__PURE__*/takeEvery(hold, /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee11() {\n return runtime_1.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n getActiveCallView().doHold();\n\n case 1:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11);\n})));\nvar resume$1 = /*#__PURE__*/takeEvery(resume, /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee12() {\n return runtime_1.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n getActiveCallView().doResume();\n\n case 1:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee12);\n})));\nvar toggleVideo$1 = /*#__PURE__*/takeEvery(toggleVideo, /*#__PURE__*/function () {\n var _ref15 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee13(_ctx, payload) {\n return runtime_1.wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n console.info('toggling video to', payload);\n getActiveCallView().doEnableVideo(payload.enable, payload.videoSource);\n\n case 2:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee13);\n }));\n\n return function (_x15, _x16) {\n return _ref15.apply(this, arguments);\n };\n}());\n\nfunction setPtz(ctx, key, payload) {\n var call = selectCall(ctx.getState());\n\n if (!call.ptz) {\n console.warn(key + \" feature is not available\");\n return;\n }\n\n var settings = call.ptz[key];\n\n if (call.hasLocalVideo && settings && payload >= settings.min && payload <= settings.max) {\n try {\n var _call$localStream, _constraintSet;\n\n var track = (_call$localStream = call.localStream) == null ? void 0 : _call$localStream.getVideoTracks()[0];\n var constraintSet = (_constraintSet = {}, _constraintSet[key] = payload, _constraintSet);\n track == null ? void 0 : track.applyConstraints({\n advanced: [constraintSet]\n });\n } catch (ex) {\n console.warn(\"failed to set \" + key + \" to \" + payload, ex);\n }\n }\n}\n\nvar setVideoPan$1 = /*#__PURE__*/takeEvery(setVideoPan, /*#__PURE__*/function () {\n var _ref16 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee14(ctx, payload) {\n return runtime_1.wrap(function _callee14$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n setPtz(ctx, 'pan', payload);\n\n case 1:\n case \"end\":\n return _context14.stop();\n }\n }\n }, _callee14);\n }));\n\n return function (_x17, _x18) {\n return _ref16.apply(this, arguments);\n };\n}());\nvar setVideoTilt$1 = /*#__PURE__*/takeEvery(setVideoTilt, /*#__PURE__*/function () {\n var _ref17 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee15(ctx, payload) {\n return runtime_1.wrap(function _callee15$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n setPtz(ctx, 'tilt', payload);\n\n case 1:\n case \"end\":\n return _context15.stop();\n }\n }\n }, _callee15);\n }));\n\n return function (_x19, _x20) {\n return _ref17.apply(this, arguments);\n };\n}());\nvar setVideoZoom$1 = /*#__PURE__*/takeEvery(setVideoZoom, /*#__PURE__*/function () {\n var _ref18 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee16(ctx, payload) {\n return runtime_1.wrap(function _callee16$(_context16) {\n while (1) {\n switch (_context16.prev = _context16.next) {\n case 0:\n setPtz(ctx, 'zoom', payload);\n\n case 1:\n case \"end\":\n return _context16.stop();\n }\n }\n }, _callee16);\n }));\n\n return function (_x21, _x22) {\n return _ref18.apply(this, arguments);\n };\n}());\nvar transfer$1 = /*#__PURE__*/takeEvery(transfer, /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee17() {\n return runtime_1.wrap(function _callee17$(_context17) {\n while (1) {\n switch (_context17.prev = _context17.next) {\n case 0:\n getActiveCallView().doXfer();\n\n case 1:\n case \"end\":\n return _context17.stop();\n }\n }\n }, _callee17);\n})));\nvar lineStatusChanged$1 = /*#__PURE__*/takeEvery(lineStatusChanged, /*#__PURE__*/function () {\n var _ref20 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee18(ctx, payload) {\n var line;\n return runtime_1.wrap(function _callee18$(_context18) {\n while (1) {\n switch (_context18.prev = _context18.next) {\n case 0:\n line = payload; // the registration will automatically retry by entering 'registering' state. Wait for 30s and then perform the retry.\n // we don't want to do this when it is forbidden, as the credentials are incorrect.\n\n if (line.statusError === '403 Forbidden' && line.status === 'registering') {\n console.warn('Incorrect registration credentials. Disconnecting endpoint');\n ctx.dispatch(disconnectEndpoint());\n }\n\n case 2:\n case \"end\":\n return _context18.stop();\n }\n }\n }, _callee18);\n }));\n\n return function (_x23, _x24) {\n return _ref20.apply(this, arguments);\n };\n}());\nvar getCallStats$1 = /*#__PURE__*/takeEvery(getCallStats, /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee19() {\n return runtime_1.wrap(function _callee19$(_context19) {\n while (1) {\n switch (_context19.prev = _context19.next) {\n case 0:\n getActiveCallView().doGetStats();\n\n case 1:\n case \"end\":\n return _context19.stop();\n }\n }\n }, _callee19);\n})));\n\nfunction getEndpoint() {\n var _endpointView = endpointView$1,\n canConnect = _endpointView.canConnect,\n canDisconnect = _endpointView.canDisconnect,\n status = _endpointView.status,\n statusError = _endpointView.statusError;\n return {\n canConnect: canConnect,\n canDisconnect: canDisconnect,\n status: status,\n statusError: statusError\n };\n}\n\nfunction getLine() {\n var _lineView = lineView(),\n canRequestRegister = _lineView.canRequestRegister,\n canRequestUnregister = _lineView.canRequestUnregister,\n registerStatus = _lineView.registerStatus,\n registerStatusError = _lineView.registerStatusError,\n mwiStatus = _lineView.mwiStatus,\n username = _lineView.username,\n displayName = _lineView.displayName;\n\n return {\n canRegister: canRequestRegister,\n canUnregister: canRequestUnregister,\n status: registerStatus,\n statusError: registerStatusError,\n mwiStatus: mwiStatus,\n username: username,\n displayName: trimQuotes(displayName)\n };\n}\n\nfunction constructPtzCapability(videoTrack) {\n if (!videoTrack) return undefined;\n var caps = videoTrack.getCapabilities();\n var settings = videoTrack.getSettings();\n\n if (settings.pan !== undefined || settings.tilt !== undefined || settings.zoom !== undefined) {\n return {\n pan: caps.pan ? _extends({}, caps.pan, {\n current: settings.pan\n }) : undefined,\n tilt: caps.tilt ? _extends({}, caps.tilt, {\n current: settings.tilt\n }) : undefined,\n zoom: caps.zoom ? _extends({}, caps.zoom, {\n current: settings.zoom\n }) : undefined\n };\n }\n\n return undefined;\n}\n\nfunction getCall(index) {\n var _localStream$getVideo, _ref22, _remoteStream$getVide;\n\n var _callView = callView(index),\n callId = _callView.callId,\n state = _callView.state,\n statusErrorCode = _callView.statusErrorCode,\n statusErrorDescription = _callView.statusErrorDescription,\n localStream = _callView.localStream,\n remoteStream = _callView.remoteStream,\n canMakeCall = _callView.canMakeCall,\n canRingOut = _callView.canRingOut,\n canHangup = _callView.canHangup,\n canAnswer = _callView.canAnswer,\n answerRequested = _callView.answerRequested,\n featureHoldResume = _callView.featureHoldResume,\n canHold = _callView.canHold,\n canResume = _callView.canResume,\n canBlindXfer = _callView.canBlindXfer,\n canXfer = _callView.canXfer,\n canSendDtmf = _callView.canSendDtmf,\n isMuted = _callView.isMuted,\n videoSource = _callView.videoSource,\n peerUsername = _callView.peerUsername,\n peerDisplay = _callView.peerDisplay,\n stats = _callView.stats,\n canPlayBusyTone = _callView.canPlayBusyTone,\n canPlayReorderTone = _callView.canPlayReorderTone,\n canPlayNuTone = _callView.canPlayNuTone,\n lastHangupCode = _callView.lastHangupCode,\n isSlowAudioDownlink = _callView.isSlowAudioDownlink,\n isSlowAudioUplink = _callView.isSlowAudioUplink; // we're overriding this because because\n\n\n var videoTrack = (localStream == null ? void 0 : (_localStream$getVideo = localStream.getVideoTracks()) == null ? void 0 : _localStream$getVideo.length) > 0 ? localStream.getVideoTracks()[0] : null;\n var hasRemoteVideo = (_ref22 = (remoteStream == null ? void 0 : (_remoteStream$getVide = remoteStream.getVideoTracks()) == null ? void 0 : _remoteStream$getVide.length) > 0) != null ? _ref22 : false;\n var hasLocalVideo = videoTrack != null;\n var ptz = constructPtzCapability(videoTrack);\n return {\n callId: callId,\n status: state,\n statusErrorCode: statusErrorCode,\n statusErrorDescription: statusErrorDescription == null ? undefined : typeof statusErrorDescription === 'object' ? JSON.stringify(statusErrorDescription) : statusErrorDescription,\n localStream: localStream,\n remoteStream: remoteStream,\n canDial: canMakeCall,\n canRingOut: canRingOut,\n canHangUp: canHangup,\n canAnswer: canAnswer,\n answerRequested: answerRequested,\n featureHoldResume: featureHoldResume,\n canHold: canHold,\n canResume: canResume,\n canBlindXfer: canBlindXfer,\n canXfer: canXfer,\n canSendDtmf: canSendDtmf,\n isMuted: isMuted,\n hasRemoteVideo: hasRemoteVideo,\n hasLocalVideo: hasLocalVideo,\n videoSource: videoSource,\n ptz: ptz,\n peerUsername: peerUsername,\n peerDisplayName: trimQuotes(peerDisplay),\n canPlayBusyTone: canPlayBusyTone,\n canPlayReorderTone: canPlayReorderTone,\n canPlayNuTone: canPlayNuTone,\n lastHangupCode: lastHangupCode,\n isSlowAudioDownlink: isSlowAudioDownlink,\n isSlowAudioUplink: isSlowAudioUplink,\n stats: stats,\n isScreenSharing: function isScreenSharing() {\n return hasLocalVideo && (videoSource === 'window' || videoSource === 'screen');\n }\n };\n}\n\nvar janus$1 = /*#__PURE__*/all(onInit, connectEndpoint$1, connectEndpointGuest$1, disconnectEndpoint$1, // register,\n// unregister,\nconfigureMediaConstraints$1, dial$1, hangUp$1, muteMicrophone$1, dtmf$1, answer$1, hold$1, resume$1, toggleVideo$1, setVideoPan$1, setVideoTilt$1, setVideoZoom$1, transfer$1, lineStatusChanged$1, getCallStats$1);\nvar TrimQuotesRegExp = /^\"|\"$/g;\n\nfunction trimQuotes(peerDisplay) {\n return String(peerDisplay).replace(TrimQuotesRegExp, '');\n}\n\nfunction script(_x) {\n return _script.apply(this, arguments);\n}\n\nfunction _script() {\n _script = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(ctx) {\n var onIncomingCall, script, ac, action, state, call, _ac, _ac2;\n\n return runtime_1.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n onIncomingCall = new URLSearchParams(window.location.search).get('onIncomingCall');\n\n if (onIncomingCall) {\n _context.next = 3;\n break;\n }\n\n return _context.abrupt(\"return\");\n\n case 3:\n _context.prev = 3;\n script = parseScript(onIncomingCall, ctx.dispatch);\n _context.next = 11;\n break;\n\n case 7:\n _context.prev = 7;\n _context.t0 = _context[\"catch\"](3);\n console.error(_context.t0);\n return _context.abrupt(\"return\");\n\n case 11:\n _context.next = 13;\n return ctx.takeAny();\n\n case 13:\n action = _context.sent;\n state = ctx.getState();\n\n switch (action.type) {\n case getType(callStatusChanged):\n {\n call = selectCall(state);\n\n if (call && call.canAnswer && !call.answerRequested) {\n (_ac = ac) == null ? void 0 : _ac.abort();\n ac = new AbortController(); // forking (without await)\n\n run(script, ac.signal);\n } else if (call.status === 'idle') {\n (_ac2 = ac) == null ? void 0 : _ac2.abort();\n }\n }\n }\n\n case 16:\n _context.next = 11;\n break;\n\n case 18:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[3, 7]]);\n }));\n return _script.apply(this, arguments);\n}\n\nfunction parseScript(script, dispatch) {\n return script.split(',').map(function (cmd) {\n switch (cmd[0]) {\n case 'a':\n return function () {\n return dispatch(answer());\n };\n\n case 'w':\n return function () {\n return delay(parseInt(cmd.substr(1)));\n };\n\n case 'h':\n return function () {\n return dispatch(hold());\n };\n\n case 'r':\n return function () {\n return dispatch(resume());\n };\n\n case 'u':\n return function () {\n return dispatch(hangUp());\n };\n }\n\n throw new Error('Unable to parse: ' + cmd);\n });\n}\n\nfunction run(_x2, _x3) {\n return _run.apply(this, arguments);\n}\n\nfunction _run() {\n _run = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2(script, signal) {\n var _iterator, _step, cmd;\n\n return runtime_1.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _iterator = _createForOfIteratorHelperLoose(script);\n\n case 1:\n if ((_step = _iterator()).done) {\n _context2.next = 9;\n break;\n }\n\n cmd = _step.value;\n\n if (!signal.aborted) {\n _context2.next = 5;\n break;\n }\n\n return _context2.abrupt(\"return\");\n\n case 5:\n _context2.next = 7;\n return cmd();\n\n case 7:\n _context2.next = 1;\n break;\n\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n return _run.apply(this, arguments);\n}\n\nfunction delay(ms) {\n return new Promise(function (resolve) {\n window.setTimeout(function () {\n return resolve();\n }, ms);\n });\n}\n\nvar index = /*#__PURE__*/all(janus$1, script);\n\nfunction useSelector(selector, equalityFn) {\n return useSelector$1(selector, equalityFn);\n}\n\nvar css = {\"app\":\"WebRtcClient-module_app__22wH-\",\"settings\":\"WebRtcClient-module_settings__3fAdw\",\"register\":\"WebRtcClient-module_register__2i_VU\",\"error\":\"WebRtcClient-module_error__7evte\",\"logout\":\"WebRtcClient-module_logout__3RYCu\"};\n\nfunction Audio() {\n var audioRef = useRef(null);\n var call = useSelector(selectCall);\n useEffect(function () {\n if (!audioRef.current) {\n return;\n }\n\n try {\n var _call$remoteStream;\n\n audioRef.current.srcObject = (_call$remoteStream = call.remoteStream) != null ? _call$remoteStream : null;\n } catch (err) {\n console.error('failed to set srcObject for call', call.remoteStream, err);\n }\n }, [call.remoteStream]);\n return React__default.createElement(\"audio\", {\n id: 'remoteAudio',\n autoPlay: true,\n loop: true,\n ref: audioRef\n });\n}\n\nvar css$1 = {\"connectScreen\":\"ConnectScreen-module_connectScreen__2a2TX\",\"status\":\"ConnectScreen-module_status__2rUfy\",\"error\":\"ConnectScreen-module_error__2SB_R\"};\n\nfunction ConnectScreen(props) {\n var _useState = useState(false),\n triedAutoConnect = _useState[0],\n setTriedAutoConnect = _useState[1];\n\n var _useState2 = useState(props.extension),\n extension = _useState2[0],\n setExtension = _useState2[1];\n\n var _useState3 = useState(props.pin),\n pin = _useState3[0],\n setPin = _useState3[1];\n\n var endpoint = useSelector(selectEndpoint);\n var line = useSelector(selectLine);\n var dispatch = useDispatch();\n useEffect(function () {\n return setPin(props.pin);\n }, [props.pin]);\n useEffect(function () {\n return setExtension(props.extension);\n }, [props.extension]); //if offline and password is passed in the props\n\n useEffect(function () {\n if (!props.enabled) return;\n\n if (!triedAutoConnect && props.extension && props.pin && endpoint.status === 'offline' && endpoint.canConnect) {\n console.log('Auto connecting account using temp password');\n setTriedAutoConnect(true);\n dispatch(connectEndpoint(props.extension, props.pin));\n setPin(undefined);\n }\n\n if (props.pin == null || props.pin.length === 0) {\n setTriedAutoConnect(false);\n }\n }, [dispatch, endpoint.canConnect, endpoint.status, props.extension, props.pin, triedAutoConnect, props.enabled]);\n useEffect(function () {\n if (line.statusError === '403 Forbidden' && line.status === 'registering') {\n setPin('');\n }\n }, [line.statusError, line.status]);\n useEffect(function () {\n if (!props.enabled && endpoint.canDisconnect) {\n console.log('Softphone is being disabled, disconnecting...');\n dispatch(disconnectEndpoint());\n }\n\n if (!props.enabled) {\n // unset so we can retry next time it gets enabled\n setTriedAutoConnect(false);\n }\n }, [dispatch, endpoint.canDisconnect, props.enabled]);\n\n function onSubmit(e) {\n e.preventDefault();\n if (!pin || !extension) return;\n dispatch(connectEndpoint(extension, pin));\n }\n\n return React__default.createElement(\"form\", {\n autoComplete: 'on',\n className: css$1.connectScreen,\n onSubmit: onSubmit\n }, React__default.createElement(\"label\", null, \"Extension #\", React__default.createElement(\"input\", {\n value: extension != null ? extension : '',\n onChange: function onChange(e) {\n return setExtension(e.currentTarget.value);\n }\n })), React__default.createElement(\"label\", null, \"PIN\", React__default.createElement(\"input\", {\n type: 'password',\n value: pin != null ? pin : '',\n onChange: function onChange(e) {\n return setPin(e.currentTarget.value);\n }\n })), React__default.createElement(\"button\", {\n disabled: !endpoint.canConnect || endpoint.status === 'connecting' || !extension || !pin\n }, \"Connect\"), React__default.createElement(\"div\", {\n className: css$1.status\n }, \"Endpoint Status: \", endpoint.status), endpoint.statusError && React__default.createElement(\"div\", {\n className: css$1.error\n }, endpoint.statusError), line.statusError && React__default.createElement(\"div\", {\n className: css$1.error\n }, line.statusError));\n}\n\nfunction _extends$1() { _extends$1 = 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$1.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar _ref2 = /*#__PURE__*/createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\"\n});\n\nfunction SvgBack(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/createElement(\"svg\", _extends$1({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/forwardRef(SvgBack);\n\nfunction _extends$2() { _extends$2 = 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$2.apply(this, arguments); }\n\nfunction _objectWithoutProperties$1(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$1(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose$1(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar _ref2$1 = /*#__PURE__*/createElement(\"path\", {\n className: \"icons-unfilled\",\n d: \"M23.96,19.84c0,0.28-0.06,0.55-0.18,0.8s-0.27,0.47-0.47,0.66s-0.42,0.34-0.68,0.45s-0.52,0.16-0.8,0.16H13.5 c-0.31,0-0.61-0.06-0.89-0.19s-0.53-0.3-0.73-0.54l-3.34-3.9c-0.16-0.18-0.28-0.39-0.36-0.62c-0.09-0.23-0.13-0.47-0.13-0.71 c0-0.24,0.04-0.48,0.13-0.71c0.09-0.23,0.21-0.44,0.37-0.62l3.34-3.89c0.2-0.23,0.44-0.42,0.73-0.54c0.29-0.13,0.59-0.19,0.89-0.19 h8.34c0.28,0,0.55,0.05,0.8,0.16s0.48,0.26,0.68,0.45s0.35,0.41,0.47,0.66s0.18,0.52,0.18,0.8V19.84z M23.04,19.84v-7.8 c0-0.16-0.03-0.3-0.1-0.45s-0.16-0.26-0.27-0.36s-0.24-0.18-0.38-0.24c-0.14-0.06-0.29-0.09-0.45-0.09H13.5 c-0.18,0-0.35,0.04-0.51,0.11c-0.16,0.07-0.3,0.17-0.42,0.31l-3.34,3.9c-0.09,0.1-0.16,0.21-0.2,0.34s-0.07,0.26-0.07,0.39 c0,0.27,0.09,0.51,0.27,0.73l3.34,3.9c0.11,0.14,0.25,0.24,0.42,0.31s0.33,0.11,0.5,0.11h8.34c0.16,0,0.31-0.03,0.45-0.09 c0.14-0.06,0.27-0.14,0.38-0.24s0.2-0.22,0.27-0.36S23.04,19.99,23.04,19.84z M20.3,13.44c0,0.14-0.05,0.25-0.15,0.35l-2.2,2.2 l2.2,2.2c0.1,0.1,0.15,0.22,0.15,0.35c0,0.14-0.05,0.25-0.15,0.35c-0.1,0.1-0.22,0.15-0.35,0.15c-0.13,0-0.25-0.05-0.35-0.14 l-2.2-2.2l-2.2,2.2c-0.1,0.09-0.22,0.14-0.35,0.14c-0.14,0-0.25-0.05-0.35-0.15c-0.1-0.1-0.15-0.22-0.15-0.35 c0-0.13,0.05-0.25,0.15-0.35l2.2-2.2l-2.2-2.2c-0.1-0.1-0.15-0.22-0.15-0.35c0-0.14,0.05-0.25,0.15-0.35 c0.1-0.1,0.22-0.15,0.35-0.15c0.14,0,0.25,0.05,0.35,0.15l2.2,2.2l2.2-2.2c0.1-0.1,0.22-0.15,0.35-0.15s0.25,0.05,0.35,0.15 C20.25,13.19,20.3,13.3,20.3,13.44z\"\n});\n\nvar _ref3 = /*#__PURE__*/createElement(\"path\", {\n className: \"icons-filled\",\n d: \"M23.98,12.06v7.8c0,0.28-0.06,0.55-0.18,0.8s-0.27,0.47-0.47,0.66s-0.42,0.34-0.68,0.45c-0.25,0.11-0.52,0.16-0.8,0.16 h-8.34c-0.31,0-0.61-0.06-0.9-0.19s-0.53-0.3-0.73-0.54l-3.34-3.9c-0.16-0.18-0.28-0.39-0.36-0.62s-0.13-0.47-0.13-0.72 c0-0.25,0.04-0.49,0.13-0.72c0.09-0.23,0.21-0.43,0.37-0.62l3.34-3.89c0.2-0.23,0.44-0.42,0.73-0.54c0.29-0.13,0.59-0.19,0.9-0.19 h8.34c0.28,0,0.55,0.05,0.8,0.16c0.26,0.11,0.48,0.26,0.68,0.45s0.35,0.41,0.47,0.66S23.98,11.77,23.98,12.06z M20.31,13.45 c0-0.14-0.05-0.25-0.15-0.35c-0.1-0.1-0.21-0.15-0.35-0.15c-0.13,0-0.25,0.05-0.35,0.15l-2.2,2.2l-2.2-2.2 c-0.1-0.1-0.22-0.15-0.35-0.15S14.47,13,14.37,13.1c-0.1,0.1-0.15,0.22-0.15,0.35c0,0.14,0.05,0.25,0.15,0.35l2.2,2.19l-2.2,2.2 c-0.1,0.1-0.15,0.22-0.15,0.35s0.05,0.25,0.15,0.35s0.22,0.15,0.35,0.15c0.14,0,0.26-0.05,0.35-0.14l2.2-2.2l2.2,2.2 c0.09,0.09,0.21,0.14,0.35,0.14c0.14,0,0.25-0.05,0.35-0.15c0.1-0.1,0.15-0.22,0.15-0.35s-0.05-0.25-0.15-0.35l-2.2-2.2l2.2-2.19 C20.26,13.71,20.31,13.59,20.31,13.45z\"\n});\n\nfunction SvgBackspace(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties$1(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/createElement(\"svg\", _extends$2({\n viewBox: \"0 0 32 32\",\n role: \"presentation\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2$1, _ref3);\n}\n\nvar ForwardRef$1 = /*#__PURE__*/forwardRef(SvgBackspace);\n\nfunction _extends$3() { _extends$3 = 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$3.apply(this, arguments); }\n\nfunction _objectWithoutProperties$2(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$2(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose$2(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar _ref2$2 = /*#__PURE__*/createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M11,6H13V14L16.5,10.5L17.92,11.92L12,17.84L6.08,11.92L7.5,10.5L11,14V6M12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22M12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20Z\"\n});\n\nfunction SvgConnectionDownLink(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties$2(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/createElement(\"svg\", _extends$3({\n style: {\n width: 24,\n height: 24\n },\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2$2);\n}\n\nvar ForwardRef$2 = /*#__PURE__*/forwardRef(SvgConnectionDownLink);\n\nfunction _extends$4() { _extends$4 = 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$4.apply(this, arguments); }\n\nfunction _objectWithoutProperties$3(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$3(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose$3(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar _ref2$3 = /*#__PURE__*/createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M18,11H14.82C14.4,9.84 13.3,9 12,9C10.7,9 9.6,9.84 9.18,11H6C5.67,11 4,10.9 4,9V8C4,6.17 5.54,6 6,6H16.18C16.6,7.16 17.7,8 19,8A3,3 0 0,0 22,5A3,3 0 0,0 19,2C17.7,2 16.6,2.84 16.18,4H6C4.39,4 2,5.06 2,8V9C2,11.94 4.39,13 6,13H9.18C9.6,14.16 10.7,15 12,15C13.3,15 14.4,14.16 14.82,13H18C18.33,13 20,13.1 20,15V16C20,17.83 18.46,18 18,18H7.82C7.4,16.84 6.3,16 5,16A3,3 0 0,0 2,19A3,3 0 0,0 5,22C6.3,22 7.4,21.16 7.82,20H18C19.61,20 22,18.93 22,16V15C22,12.07 19.61,11 18,11M19,4A1,1 0 0,1 20,5A1,1 0 0,1 19,6A1,1 0 0,1 18,5A1,1 0 0,1 19,4M5,20A1,1 0 0,1 4,19A1,1 0 0,1 5,18A1,1 0 0,1 6,19A1,1 0 0,1 5,20Z\"\n});\n\nfunction SvgConnectionStatus(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties$3(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/createElement(\"svg\", _extends$4({\n style: {\n width: 24,\n height: 24\n },\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2$3);\n}\n\nvar ForwardRef$3 = /*#__PURE__*/forwardRef(SvgConnectionStatus);\n\nfunction _extends$5() { _extends$5 = 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$5.apply(this, arguments); }\n\nfunction _objectWithoutProperties$4(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$4(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose$4(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar _ref2$4 = /*#__PURE__*/createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M13,18H11V10L7.5,13.5L6.08,12.08L12,6.16L17.92,12.08L16.5,13.5L13,10V18M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z\"\n});\n\nfunction SvgConnectionUpLink(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties$4(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/createElement(\"svg\", _extends$5({\n style: {\n width: 24,\n height: 24\n },\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2$4);\n}\n\nvar ForwardRef$4 = /*#__PURE__*/forwardRef(SvgConnectionUpLink);\n\nfunction _extends$6() { _extends$6 = 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$6.apply(this, arguments); }\n\nfunction _objectWithoutProperties$5(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$5(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose$5(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar _ref2$5 = /*#__PURE__*/createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M16,17V14H9V10H16V7L21,12L16,17M14,2A2,2 0 0,1 16,4V6H14V4H5V20H14V18H16V20A2,2 0 0,1 14,22H5A2,2 0 0,1 3,20V4A2,2 0 0,1 5,2H14Z\"\n});\n\nfunction SvgLogOut(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties$5(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/createElement(\"svg\", _extends$6({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2$5);\n}\n\nvar ForwardRef$5 = /*#__PURE__*/forwardRef(SvgLogOut);\n\nfunction _extends$7() { _extends$7 = 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$7.apply(this, arguments); }\n\nfunction _objectWithoutProperties$6(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$6(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose$6(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar _ref2$6 = /*#__PURE__*/createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M6.62,10.79C8.06,13.62 10.38,15.94 13.21,17.38L15.41,15.18C15.69,14.9 16.08,14.82 16.43,14.93C17.55,15.3 18.75,15.5 20,15.5A1,1 0 0,1 21,16.5V20A1,1 0 0,1 20,21A17,17 0 0,1 3,4A1,1 0 0,1 4,3H7.5A1,1 0 0,1 8.5,4C8.5,5.25 8.7,6.45 9.07,7.57C9.18,7.92 9.1,8.31 8.82,8.59L6.62,10.79Z\"\n});\n\nfunction SvgPhoneDial(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties$6(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/createElement(\"svg\", _extends$7({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2$6);\n}\n\nvar ForwardRef$6 = /*#__PURE__*/forwardRef(SvgPhoneDial);\n\nfunction _extends$8() { _extends$8 = 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$8.apply(this, arguments); }\n\nfunction _objectWithoutProperties$7(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$7(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose$7(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar _ref2$7 = /*#__PURE__*/createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M17,10.5V7A1,1 0 0,0 16,6H4A1,1 0 0,0 3,7V17A1,1 0 0,0 4,18H16A1,1 0 0,0 17,17V13.5L21,17.5V6.5L17,10.5Z\"\n});\n\nfunction SvgPhoneDialVideo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties$7(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/createElement(\"svg\", _extends$8({\n style: {\n width: 24,\n height: 24\n },\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2$7);\n}\n\nvar ForwardRef$7 = /*#__PURE__*/forwardRef(SvgPhoneDialVideo);\n\nfunction _extends$9() { _extends$9 = 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$9.apply(this, arguments); }\n\nfunction _objectWithoutProperties$8(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$8(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose$8(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar _ref2$8 = /*#__PURE__*/createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M12,9C10.4,9 8.85,9.25 7.4,9.72V12.82C7.4,13.22 7.17,13.56 6.84,13.72C5.86,14.21 4.97,14.84 4.17,15.57C4,15.75 3.75,15.86 3.5,15.86C3.2,15.86 2.95,15.74 2.77,15.56L0.29,13.08C0.11,12.9 0,12.65 0,12.38C0,12.1 0.11,11.85 0.29,11.67C3.34,8.77 7.46,7 12,7C16.54,7 20.66,8.77 23.71,11.67C23.89,11.85 24,12.1 24,12.38C24,12.65 23.89,12.9 23.71,13.08L21.23,15.56C21.05,15.74 20.8,15.86 20.5,15.86C20.25,15.86 20,15.75 19.82,15.57C19.03,14.84 18.14,14.21 17.16,13.72C16.83,13.56 16.6,13.22 16.6,12.82V9.72C15.15,9.25 13.6,9 12,9Z\"\n});\n\nfunction SvgPhoneHangUp(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties$8(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/createElement(\"svg\", _extends$9({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2$8);\n}\n\nvar ForwardRef$8 = /*#__PURE__*/forwardRef(SvgPhoneHangUp);\n\nfunction _extends$a() { _extends$a = 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$a.apply(this, arguments); }\n\nfunction _objectWithoutProperties$9(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$9(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose$9(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar _ref2$9 = /*#__PURE__*/createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M14,19H18V5H14M6,19H10V5H6V19Z\"\n});\n\nfunction SvgPhoneHold(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties$9(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/createElement(\"svg\", _extends$a({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2$9);\n}\n\nvar ForwardRef$9 = /*#__PURE__*/forwardRef(SvgPhoneHold);\n\nfunction _extends$b() { _extends$b = 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$b.apply(this, arguments); }\n\nfunction _objectWithoutProperties$a(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$a(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose$a(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar _ref2$a = /*#__PURE__*/createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M12,19A2,2 0 0,0 10,21A2,2 0 0,0 12,23A2,2 0 0,0 14,21A2,2 0 0,0 12,19M6,1A2,2 0 0,0 4,3A2,2 0 0,0 6,5A2,2 0 0,0 8,3A2,2 0 0,0 6,1M6,7A2,2 0 0,0 4,9A2,2 0 0,0 6,11A2,2 0 0,0 8,9A2,2 0 0,0 6,7M6,13A2,2 0 0,0 4,15A2,2 0 0,0 6,17A2,2 0 0,0 8,15A2,2 0 0,0 6,13M18,5A2,2 0 0,0 20,3A2,2 0 0,0 18,1A2,2 0 0,0 16,3A2,2 0 0,0 18,5M12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17A2,2 0 0,0 14,15A2,2 0 0,0 12,13M18,13A2,2 0 0,0 16,15A2,2 0 0,0 18,17A2,2 0 0,0 20,15A2,2 0 0,0 18,13M18,7A2,2 0 0,0 16,9A2,2 0 0,0 18,11A2,2 0 0,0 20,9A2,2 0 0,0 18,7M12,7A2,2 0 0,0 10,9A2,2 0 0,0 12,11A2,2 0 0,0 14,9A2,2 0 0,0 12,7M12,1A2,2 0 0,0 10,3A2,2 0 0,0 12,5A2,2 0 0,0 14,3A2,2 0 0,0 12,1Z\"\n});\n\nfunction SvgPhoneKeypad(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties$a(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/createElement(\"svg\", _extends$b({\n style: {\n width: 24,\n height: 24\n },\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2$a);\n}\n\nvar ForwardRef$a = /*#__PURE__*/forwardRef(SvgPhoneKeypad);\n\nfunction _extends$c() { _extends$c = 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$c.apply(this, arguments); }\n\nfunction _objectWithoutProperties$b(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$b(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose$b(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar _ref2$b = /*#__PURE__*/createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M12,2A3,3 0 0,1 15,5V11A3,3 0 0,1 12,14A3,3 0 0,1 9,11V5A3,3 0 0,1 12,2M19,11C19,14.53 16.39,17.44 13,17.93V21H11V17.93C7.61,17.44 5,14.53 5,11H7A5,5 0 0,0 12,16A5,5 0 0,0 17,11H19Z\"\n});\n\nfunction SvgPhoneMicrophone(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties$b(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/createElement(\"svg\", _extends$c({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2$b);\n}\n\nvar ForwardRef$b = /*#__PURE__*/forwardRef(SvgPhoneMicrophone);\n\nfunction _extends$d() { _extends$d = 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$d.apply(this, arguments); }\n\nfunction _objectWithoutProperties$c(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$c(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose$c(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar _ref2$c = /*#__PURE__*/createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M19,11C19,12.19 18.66,13.3 18.1,14.28L16.87,13.05C17.14,12.43 17.3,11.74 17.3,11H19M15,11.16L9,5.18V5A3,3 0 0,1 12,2A3,3 0 0,1 15,5V11L15,11.16M4.27,3L21,19.73L19.73,21L15.54,16.81C14.77,17.27 13.91,17.58 13,17.72V21H11V17.72C7.72,17.23 5,14.41 5,11H6.7C6.7,14 9.24,16.1 12,16.1C12.81,16.1 13.6,15.91 14.31,15.58L12.65,13.92L12,14A3,3 0 0,1 9,11V10.28L3,4.27L4.27,3Z\"\n});\n\nfunction SvgPhoneMicrophoneMuted(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties$c(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/createElement(\"svg\", _extends$d({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2$c);\n}\n\nvar ForwardRef$c = /*#__PURE__*/forwardRef(SvgPhoneMicrophoneMuted);\n\nfunction _extends$e() { _extends$e = 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$e.apply(this, arguments); }\n\nfunction _objectWithoutProperties$d(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$d(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose$d(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar _ref2$d = /*#__PURE__*/createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M8,5.14V19.14L19,12.14L8,5.14Z\"\n});\n\nfunction SvgPhoneResume(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties$d(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/createElement(\"svg\", _extends$e({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2$d);\n}\n\nvar ForwardRef$d = /*#__PURE__*/forwardRef(SvgPhoneResume);\n\nfunction _extends$f() { _extends$f = 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$f.apply(this, arguments); }\n\nfunction _objectWithoutProperties$e(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$e(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose$e(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar _ref2$e = /*#__PURE__*/createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M11,6.82H1.7V17.41H20.63V12.13l1.61-1.73v7.51A1.11,1.11,0,0,1,21.14,19H12.77v1.67H15.6a1.09,1.09,0,0,1,1.11,1.08v1.09H5.54V21.77a1.08,1.08,0,0,1,1.1-1.08H9.46V19H1.11A1.11,1.11,0,0,1,0,17.91V6.29A1.16,1.16,0,0,1,1.11,5.12H13A9.1,9.1,0,0,0,11,6.82Z\",\n transform: \"translate(0 -1)\"\n});\n\nvar _ref3$1 = /*#__PURE__*/createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M24,6.79l-5.79,5.79V9.19c-4.14,0-7,1.33-9,4.22.83-4.14,3.26-8.27,9.05-9.1V1Z\",\n transform: \"translate(0 -1)\"\n});\n\nfunction SvgPhoneShareScreen(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties$e(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/createElement(\"svg\", _extends$f({\n xmlns: \"http://www.w3.org/2000/svg\",\n style: {\n width: 24,\n height: 24\n },\n viewBox: \"0 0 24 21.86\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2$e, _ref3$1);\n}\n\nvar ForwardRef$e = /*#__PURE__*/forwardRef(SvgPhoneShareScreen);\n\nfunction _extends$g() { _extends$g = 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$g.apply(this, arguments); }\n\nfunction _objectWithoutProperties$f(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$f(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose$f(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar _ref2$f = /*#__PURE__*/createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M17,10.5V7A1,1 0 0,0 16,6H4A1,1 0 0,0 3,7V17A1,1 0 0,0 4,18H16A1,1 0 0,0 17,17V13.5L21,17.5V6.5L17,10.5Z\"\n});\n\nfunction SvgPhoneVideo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties$f(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/createElement(\"svg\", _extends$g({\n style: {\n width: 24,\n height: 24\n },\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2$f);\n}\n\nvar ForwardRef$f = /*#__PURE__*/forwardRef(SvgPhoneVideo);\n\nvar css$2 = {\"buttons\":\"InCallControl-module_buttons__2rwFd\",\"active\":\"InCallControl-module_active__2RCmG\",\"callButtons\":\"InCallControl-module_callButtons__SF5B_\",\"hangUp\":\"InCallControl-module_hangUp__2MEXv\",\"keypadDismiss\":\"InCallControl-module_keypadDismiss__3XESZ\"};\n\nfunction mapAudio(audioObject) {\n if (typeof audioObject === 'object' && audioObject[\"default\"]) {\n return audioObject[\"default\"];\n } else {\n return audioObject;\n }\n}\n\nvar css$3 = {\"dialpad\":\"Keypad-module_dialpad__1WxWP\",\"disabled\":\"Keypad-module_disabled__3L8jX\",\"big\":\"Keypad-module_big__2Adm3\"};\n\nfunction Keypad(props) {\n var audioRef = useRef(null);\n\n function handleDtmfClick(digit) {\n props.onKeyPressed(digit);\n\n if (!audioRef.current) {\n return;\n }\n\n try {\n if (digit === '*') {\n audioRef.current.src = mapAudio(require('./sounds/dtmf-star.mp3'));\n } else if (digit === '#') {\n audioRef.current.src = mapAudio(require('./sounds/dtmf-hash.mp3'));\n } else {\n audioRef.current.src = mapAudio(require(\"./sounds/dtmf-\" + digit + \".mp3\"));\n }\n } catch (err) {\n console.error('failed to set dtmf audio for', digit, err);\n }\n }\n\n function renderButton(digit, footer, bigFooter) {\n if (footer === void 0) {\n footer = null;\n }\n\n if (bigFooter === void 0) {\n bigFooter = false;\n }\n\n return React__default.createElement(\"button\", {\n onClick: function onClick() {\n return handleDtmfClick(digit);\n }\n }, digit, React__default.createElement(\"div\", {\n className: classNames(bigFooter && css$3.big)\n }, footer));\n }\n\n return React__default.createElement(\"div\", {\n className: classNames(props.className, css$3.dialpad)\n }, renderButton('1'), renderButton('2', 'ABC'), renderButton('3', 'DEF'), renderButton('4', 'GHI'), renderButton('5', 'JKL'), renderButton('6', 'MNO'), renderButton('7', 'PQRS'), renderButton('8', 'TUV'), renderButton('9', 'WXYZ'), renderButton('*'), renderButton('0', '+', true), renderButton('#'), React__default.createElement(\"audio\", {\n autoPlay: true,\n ref: audioRef\n }));\n}\n\nfunction isCallConnected(call) {\n return call.status === 'connected' || call.status === 'reconnected';\n}\n\nfunction InCallControl() {\n var dispatch = useDispatch();\n var call = useSelector(selectCall);\n var prevCanDial = useRef(false);\n\n var _useState = useState(true),\n showDialpad = _useState[0],\n setShowDialpad = _useState[1];\n\n useEffect(function () {\n if (call.canHangUp) {\n setShowDialpad(false);\n } else if (!call.canDial && prevCanDial.current) {\n setShowDialpad(false);\n } else if (call.canDial && !prevCanDial.current) {\n setShowDialpad(true);\n }\n\n prevCanDial.current = call.canDial;\n }, [call.canDial, call.canHangUp]);\n\n function onDigit(digit) {\n if (call.canSendDtmf) {\n dispatch(dtmf(digit));\n }\n }\n\n function toggleVideo$1(isScreenSharing) {\n dispatch(toggleVideo(!call.hasLocalVideo, isScreenSharing ? 'window' : 'fhdres'));\n }\n\n return React__default.createElement(\"div\", null, showDialpad ? React__default.createElement(\"div\", null, React__default.createElement(Keypad, {\n onKeyPressed: onDigit\n }), React__default.createElement(\"button\", {\n className: css$2.keypadDismiss,\n onClick: function onClick() {\n return setShowDialpad(false);\n }\n }, React__default.createElement(ForwardRef, null))) : React__default.createElement(\"div\", {\n className: css$2.buttons\n }, React__default.createElement(\"button\", {\n onClick: function onClick() {\n return setShowDialpad(true);\n }\n }, React__default.createElement(ForwardRef$a, null)), React__default.createElement(\"button\", {\n onClick: function onClick() {\n dispatch(muteMicrophone(!call.isMuted));\n },\n className: classNames(call.isMuted && css$2.active)\n }, React__default.createElement(ForwardRef$c, null)), React__default.createElement(\"button\", {\n onClick: function onClick() {\n if (call.canHold) {\n dispatch(hold());\n } else if (call.canResume) {\n dispatch(resume());\n }\n },\n disabled: !call.featureHoldResume || !call.canHold && !call.canResume,\n className: classNames(call.canResume && css$2.active)\n }, React__default.createElement(ForwardRef$9, null)), React__default.createElement(\"button\", {\n onClick: function onClick() {\n return toggleVideo$1(false);\n },\n className: classNames(call.hasLocalVideo && !call.isScreenSharing() && css$2.active),\n disabled: !isCallConnected(call) || call.hasLocalVideo && call.isScreenSharing()\n }, React__default.createElement(ForwardRef$f, null)), React__default.createElement(\"button\", {\n onClick: function onClick() {\n return toggleVideo$1(true);\n },\n className: classNames(call.hasLocalVideo && call.isScreenSharing() && css$2.active),\n disabled: !isCallConnected(call) || call.hasLocalVideo && !call.isScreenSharing()\n }, React__default.createElement(ForwardRef$e, null))), React__default.createElement(\"div\", {\n className: css$2.callButtons\n }, call.canAnswer && React__default.createElement(\"button\", {\n onClick: function onClick() {\n return dispatch(answer());\n }\n }, React__default.createElement(ForwardRef$6, null)), call.canHangUp && React__default.createElement(\"button\", {\n className: css$2.hangUp,\n onClick: function onClick() {\n return dispatch(hangUp());\n }\n }, React__default.createElement(ForwardRef$8, null))));\n}\n\nvar css$4 = {\"phone\":\"Phone-module_phone__1-ZNG\",\"closeDialpad\":\"Phone-module_closeDialpad__3AaFb\",\"callButtons\":\"Phone-module_callButtons__2P_P5\",\"hangUp\":\"Phone-module_hangUp__2wPhZ\",\"number\":\"Phone-module_number__3Rjhi\",\"phoneNumber\":\"Phone-module_phoneNumber__cXeKr\",\"backspace\":\"Phone-module_backspace___fW_C\",\"statsContainer\":\"Phone-module_statsContainer__1nfje\"};\n\nvar css$5 = {\"toggle\":\"MediaConstraintSetup-module_toggle__1qIKB\",\"mediaConstraintsContainer\":\"MediaConstraintSetup-module_mediaConstraintsContainer__2XUzt\",\"audioQualityContainer\":\"MediaConstraintSetup-module_audioQualityContainer__3AWzb\"};\n\nvar css$6 = {\"toggle\":\"Toggle-module_toggle__2VY7s\",\"icon\":\"Toggle-module_icon__uAP-S\",\"checked\":\"Toggle-module_checked__2OX0i\"};\n\nfunction Toggle(_ref) {\n var className = _ref.className,\n value = _ref.value,\n onChange = _ref.onChange,\n children = _ref.children,\n disabled = _ref.disabled;\n var onClick = useCallback(function () {\n onChange && onChange(!value);\n }, [value, onChange]);\n return React__default.createElement(\"button\", {\n disabled: disabled,\n className: classNames(css$6.toggle, className, value && css$6.checked),\n onClick: onClick\n }, React__default.createElement(\"div\", {\n className: css$6.icon\n }), children);\n}\n\nfunction MediaConstraintSetup() {\n var mediaConstraints = useSelector(function (s) {\n return s.janus.mediaConstraint;\n });\n var dispatch = useDispatch();\n\n function input(prop, label, type, inputProps) {\n if (type === void 0) {\n type = 'text';\n }\n\n return React__default.createElement(\"label\", null, label, React__default.createElement(\"div\", null, React__default.createElement(\"input\", Object.assign({\n type: type,\n value: String(mediaConstraints[prop]),\n onChange: function onChange(e) {\n var _extends2;\n\n var numberValue = parseInt(e.currentTarget.value);\n dispatch(configureMediaConstraints(_extends({}, mediaConstraints, (_extends2 = {}, _extends2[prop] = numberValue, _extends2))));\n }\n }, inputProps))));\n }\n\n function toggle(prop, label) {\n return React__default.createElement(Toggle, {\n className: css$5.toggle,\n value: Boolean(mediaConstraints[prop]),\n onChange: function onChange(value) {\n var _extends3;\n\n return dispatch(configureMediaConstraints(_extends({}, mediaConstraints, (_extends3 = {}, _extends3[prop] = value, _extends3))));\n }\n }, label);\n }\n\n return React__default.createElement(\"div\", {\n className: css$5.mediaConstraintsContainer\n }, React__default.createElement(\"div\", {\n className: css$5.audioQualityContainer\n }, input('channelCount', 'Channels', 'number', {\n min: 0,\n max: 2,\n step: 1\n }), input('sampleRate', 'Sampling Rate', 'number'), input('sampleSize', 'Bit Depth', 'number', {\n min: 8,\n max: 16,\n step: 8\n })), toggle('autoGainControl', 'Auto Gain Control'), toggle('echoCancellation', 'Echo Cancellation'), toggle('noiseSuppression', 'Noise Supression'));\n}\n\nvar css$7 = {\"display\":\"PhoneDisplay-module_display__1LlKH\",\"video\":\"PhoneDisplay-module_video__3lqh7\",\"caller\":\"PhoneDisplay-module_caller__1A2iz\",\"loggedInUser\":\"PhoneDisplay-module_loggedInUser__xRRuX\",\"connectionStatusContainer\":\"PhoneDisplay-module_connectionStatusContainer__jguPZ\",\"connectionStatusIcon\":\"PhoneDisplay-module_connectionStatusIcon__38XKm\",\"connectionIcon\":\"PhoneDisplay-module_connectionIcon__1K1il\",\"slow\":\"PhoneDisplay-module_slow__3jFKt\",\"warning\":\"PhoneDisplay-module_warning__yWXBt\"};\n\nvar css$8 = {\"videoContainer\":\"Video-module_videoContainer__OCeFl\",\"remote\":\"Video-module_remote__KwRFb\",\"local\":\"Video-module_local__3MERJ\"};\n\nfunction Video(_ref) {\n var className = _ref.className,\n remoteVideoClassName = _ref.remoteVideoClassName,\n localVideoClassName = _ref.localVideoClassName;\n var call = useSelector(selectCall);\n var remoteVideoRef = useCallback(function (element) {\n var _call$remoteStream;\n\n if (!element) {\n return;\n }\n\n element.srcObject = (_call$remoteStream = call == null ? void 0 : call.remoteStream) != null ? _call$remoteStream : null;\n }, [call == null ? void 0 : call.remoteStream]);\n var localVideoRef = useCallback(function (element) {\n var _call$localStream;\n\n if (!element) {\n return;\n }\n\n element.srcObject = (_call$localStream = call == null ? void 0 : call.localStream) != null ? _call$localStream : null;\n }, [call == null ? void 0 : call.localStream]);\n return React__default.createElement(\"div\", {\n className: classNames(css$8.videoContainer, className)\n }, (call == null ? void 0 : call.hasRemoteVideo) && isCallConnected(call) && React__default.createElement(\"video\", {\n className: classNames(css$8.remote, remoteVideoClassName),\n autoPlay: true,\n ref: remoteVideoRef,\n muted: true\n }), (call == null ? void 0 : call.hasLocalVideo) && isCallConnected(call) && React__default.createElement(\"video\", {\n className: classNames(css$8.local, localVideoClassName),\n autoPlay: true,\n ref: localVideoRef,\n muted: true\n }));\n}\n\nvar callStatusMap = /*#__PURE__*/new Map();\ncallStatusMap.set('idle', 'Idling');\ncallStatusMap.set('incomingcall', 'Incoming Call');\ncallStatusMap.set('connected', 'Connected');\ncallStatusMap.set('reconnected', 'Reconnected');\ncallStatusMap.set('callingOut', 'Calling Out');\ncallStatusMap.set('ringingOut', 'Ringing Out');\ncallStatusMap.set('progressOut', 'Progress Out');\ncallStatusMap.set('hold', 'On Hold');\ncallStatusMap.set('transferring', 'Transferring');\nfunction PhoneDisplay() {\n var _call$peerDisplayName;\n\n var line = useSelector(selectLine);\n var call = useSelector(selectCall);\n return React__default.createElement(\"div\", {\n className: css$7.display\n }, React__default.createElement(Video, {\n className: css$7.video\n }), React__default.createElement(\"div\", {\n className: css$7.loggedInUser\n }, \"Logged in as \", line.displayName, \" - \", line.username), call.status !== 'idle' && React__default.createElement(\"div\", {\n className: css$7.caller\n }, (_call$peerDisplayName = call.peerDisplayName) != null ? _call$peerDisplayName : call.peerUsername, React__default.createElement(\"div\", null, callStatusMap.get(call.status))), call.canDial && React__default.createElement(MediaConstraintSetup, null), call.canHangUp && React__default.createElement(\"div\", {\n className: css$7.connectionStatusContainer\n }, React__default.createElement(ForwardRef$2, {\n className: classNames(css$7.connectionIcon, call.isSlowAudioDownlink && css$7.slow)\n }), React__default.createElement(ForwardRef$3, {\n className: css$7.connectionStatusIcon\n }), React__default.createElement(ForwardRef$4, {\n className: classNames(css$7.connectionIcon, call.isSlowAudioUplink && css$7.slow)\n })));\n}\n\nfunction Phone() {\n var _useState = useState(''),\n number = _useState[0],\n setNumber = _useState[1];\n\n var inputRef = useRef(null);\n var dispatch = useDispatch();\n var line = useSelector(selectLine);\n var call = useSelector(selectCall);\n\n var _useState2 = useState(false),\n showStats = _useState2[0];\n\n useEffect(function () {\n console.log('stats have changed');\n }, [call.stats]);\n useEffect(function () {\n var timeout = setTimeout(function () {\n if (showStats) {\n dispatch(getCallStats());\n }\n }, 100);\n return function () {\n return clearTimeout(timeout);\n };\n });\n\n function onBackspace() {\n setNumber(number.substr(0, number.length - 1));\n }\n\n function onDigit(digit) {\n setNumber(function (n) {\n return n + digit;\n });\n }\n\n function shouldShowInCallControl() {\n if (call == null) {\n return false;\n }\n\n return call.canHangUp;\n }\n\n return React__default.createElement(\"div\", {\n className: css$4.phone\n }, React__default.createElement(PhoneDisplay, null), shouldShowInCallControl() ? React__default.createElement(InCallControl, null) : renderDialler(), call.canHangUp && showStats && call.stats != null ? React__default.createElement(\"div\", {\n className: css$4.statsContainer\n }, stringifyStats(call)) : null);\n\n function renderDialler() {\n return React__default.createElement(\"div\", null, React__default.createElement(\"div\", {\n className: css$4.number\n }, React__default.createElement(\"input\", {\n id: css$4.phoneNumber,\n ref: inputRef,\n value: number,\n onChange: function onChange(e) {\n return setNumber(e.currentTarget.value);\n }\n }), React__default.createElement(\"button\", {\n className: css$4.backspace,\n onClick: onBackspace\n }, React__default.createElement(ForwardRef$1, null))), React__default.createElement(Keypad, {\n onKeyPressed: onDigit\n }), React__default.createElement(\"div\", {\n className: css$4.callButtons\n }, call.canDial && React__default.createElement(\"button\", {\n disabled: !number,\n onClick: function onClick() {\n dispatch(toggleVideo(false));\n dispatch(dial(number));\n }\n }, React__default.createElement(ForwardRef$6, null)), call.canDial && React__default.createElement(\"button\", {\n disabled: !number,\n onClick: function onClick() {\n dispatch(toggleVideo(true, 'fhdres'));\n dispatch(dial(number));\n }\n }, React__default.createElement(ForwardRef$7, null))));\n }\n\n function stringifyStats(call) {\n if (call.stats == null) return '';\n var statsOutput = \"\";\n call.stats.forEach(function (report) {\n if (report.type.indexOf('inbound') === -1 && report.type.indexOf('outbound') === -1) return;\n statsOutput += \"\\r\\nReport: \" + report.type + \"\\r\\nID: \" + report.id + \"\\r\\n\" + (\"Timestamp: \" + report.timestamp + \"\\r\\n\"); // Now the statistics for this report; we intentially drop the ones we\n // sorted to the top above\n\n Object.keys(report).forEach(function (statName) {\n if (statName !== \"id\" && statName !== \"timestamp\" && statName !== \"type\") {\n statsOutput += statName + \": \" + report[statName] + \"\\n\";\n }\n });\n });\n return statsOutput;\n }\n}\n\nfunction Ringer() {\n var call = useSelector(selectCall);\n var secondaryRingerDeviceId = useSelector(selectSecondaryRingerDeviceId);\n var setSyncId = useCallback(function (audio) {\n if (!audio) {\n return;\n }\n\n if (supportsSinkApi(audio)) {\n audio.setSinkId(secondaryRingerDeviceId);\n }\n }, [secondaryRingerDeviceId]);\n return React__default.createElement(React__default.Fragment, null, call.canAnswer ? React__default.createElement(\"audio\", {\n autoPlay: true,\n loop: true,\n src: mapAudio(require('./sounds/incoming-call.wav'))\n }) : null, call.canAnswer && secondaryRingerDeviceId ? React__default.createElement(\"audio\", {\n id: 'secondaryRinger',\n autoPlay: true,\n loop: true,\n src: mapAudio(require('./sounds/incoming-call.wav')),\n ref: setSyncId\n }) : null, call.canRingOut ? React__default.createElement(\"audio\", {\n autoPlay: true,\n loop: true,\n src: mapAudio(require('./sounds/ringback-tone-nz.mp3'))\n }) : null, call.canPlayReorderTone ? React__default.createElement(\"audio\", {\n autoPlay: true,\n loop: true,\n src: mapAudio(require('./sounds/reorder-tone-nz.mp3'))\n }) : null, call.canPlayBusyTone ? React__default.createElement(\"audio\", {\n autoPlay: true,\n loop: true,\n src: mapAudio(require('./sounds/busy-tone-nz.mp3'))\n }) : null, call.canPlayNuTone ? React__default.createElement(\"audio\", {\n autoPlay: true,\n loop: true,\n src: mapAudio(require('./sounds/nu-tone-nz.mp3'))\n }) : null);\n}\n\nfunction supportsSinkApi(audio) {\n return 'setSinkId' in audio;\n}\n\nfunction initCitrixWebRTC() {\n !function (e, r) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = r() : \"function\" == typeof define && define.amd ? define([], r) : \"object\" == typeof exports ? exports.CitrixWebRTC = r() : e.CitrixWebRTC = r();\n }({}, function () {\n return function (e) {\n var r = {};\n\n function n(t) {\n if (r[t]) return r[t].exports;\n var i = r[t] = {\n i: t,\n l: !1,\n exports: {}\n };\n return e[t].call(i.exports, i, i.exports, n), i.l = !0, i.exports;\n }\n\n return n.m = e, n.c = r, n.d = function (e, r, t) {\n n.o(e, r) || Object.defineProperty(e, r, {\n enumerable: !0,\n get: t\n });\n }, n.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, n.t = function (e, r) {\n if (1 & r && (e = n(e)), 8 & r) return e;\n if (4 & r && \"object\" == typeof e && e && e.__esModule) return e;\n var t = Object.create(null);\n if (n.r(t), Object.defineProperty(t, \"default\", {\n enumerable: !0,\n value: e\n }), 2 & r && \"string\" != typeof e) for (var i in e) {\n n.d(t, i, function (r) {\n return e[r];\n }.bind(null, i));\n }\n return t;\n }, n.n = function (e) {\n var r = e && e.__esModule ? function () {\n return e[\"default\"];\n } : function () {\n return e;\n };\n return n.d(r, \"a\", r), r;\n }, n.o = function (e, r) {\n return Object.prototype.hasOwnProperty.call(e, r);\n }, n.p = \"\", n(n.s = \"../../../out/shim/sdk/int/sdk/vdiCitrixWebRTC_sdk.js\");\n }({\n \"../../../out/shim/sdk/int/sdk/audioelement.js\":\n /*!**************************************************************************!*\\\r\n !*** E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/audioelement.js ***!\r\n \\**************************************************************************/\n\n /*! no static exports found */\n function outShimSdkIntSdkAudioelementJs(module, exports, __webpack_require__) {\n\n eval(\"\\r\\nvar __extends = (this && this.__extends) || (function () {\\r\\n var 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 return function (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\\nObject.defineProperty(exports, \\\"__esModule\\\", { value: true });\\r\\nvar proxyobject_1 = __webpack_require__(/*! ./proxyobject */ \\\"../../../out/shim/sdk/int/sdk/proxyobject.js\\\");\\r\\nvar lib = __webpack_require__(/*! ./webrpcclassinfo */ \\\"../../../out/shim/sdk/int/sdk/webrpcclassinfo.js\\\");\\r\\nvar logger_1 = __webpack_require__(/*! ./logger */ \\\"../../../out/shim/sdk/int/sdk/logger.js\\\");\\r\\nvar hdxms_1 = __webpack_require__(/*! ./hdxms */ \\\"../../../out/shim/sdk/int/sdk/hdxms.js\\\");\\r\\nvar AudioElement = /** @class */ (function (_super) {\\r\\n __extends(AudioElement, _super);\\r\\n function AudioElement() {\\r\\n var _this = _super.call(this, null, lib.class_id_t.AudioElement, 0, proxyobject_1.ProxyMode.Local) || this;\\r\\n _this.sinkId_ = '';\\r\\n _this.srcObject_ = null;\\r\\n return _this;\\r\\n }\\r\\n AudioElement.prototype.setSinkId = function (value) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.setSinkId: set sinkId to ' + value);\\r\\n return new Promise(function (resolve, reject) {\\r\\n _this.waitUntilConnected('AudioElement.sinkId')\\r\\n .then(function () {\\r\\n var result = _this.remoteInvoke(true, lib.method_id_AudioElement_t.sinkId, value);\\r\\n // support backward compatibility with old HdxTeams\\r\\n if (!hdxms_1.getRedirector().getFeatureValue(lib.FEATURE_ms_teams_pstn)) {\\r\\n _this.sinkId_ = value;\\r\\n resolve();\\r\\n }\\r\\n return result;\\r\\n })\\r\\n .then(function () {\\r\\n _this.sinkId_ = value;\\r\\n resolve();\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.sinkId setter: failed to connect!');\\r\\n reject();\\r\\n });\\r\\n });\\r\\n };\\r\\n AudioElement.prototype.sinkId = function () {\\r\\n return this.sinkId_;\\r\\n };\\r\\n Object.defineProperty(AudioElement.prototype, \\\"srcObject\\\", {\\r\\n get: function () {\\r\\n return this.srcObject_;\\r\\n },\\r\\n set: function (value) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.srcObject: set srcObject to ' + JSON.stringify(value));\\r\\n if (value === this.srcObject_) {\\r\\n return;\\r\\n }\\r\\n var stream = value;\\r\\n var remoteValue = ((stream !== null && stream !== undefined) ? stream.object_id() : \\\"null\\\");\\r\\n this.waitUntilConnected('AudioElement.srcObject')\\r\\n .then(function () { return _this.remoteInvoke(true, lib.method_id_AudioElement_t.srcObject, remoteValue); })\\r\\n .then(function () {\\r\\n _this.srcObject_ = stream;\\r\\n if (stream === null) {\\r\\n _this.release();\\r\\n }\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.srcObject setter: failed to connect!');\\r\\n if (stream === null) {\\r\\n _this.release();\\r\\n }\\r\\n });\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(AudioElement.prototype, \\\"src\\\", {\\r\\n get: function () {\\r\\n return this.src_;\\r\\n },\\r\\n set: function (value) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.src: set src to ' + value);\\r\\n this.src_ = value;\\r\\n this.waitUntilConnected('AudioElement.src')\\r\\n .then(function () { _this.remoteInvoke(true, lib.method_id_AudioElement_t.src, value); })\\r\\n .catch(function () { logger_1.logger.log(_this.user_friendly_id() + '.src setter: failed to connect!'); });\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n AudioElement.prototype.play = function () {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.play() called.');\\r\\n this.waitUntilConnected('AudioElement.play')\\r\\n .then(function () { _this.remoteInvoke(false, lib.method_id_AudioElement_t.play, []); })\\r\\n .catch(function () { logger_1.logger.log(_this.user_friendly_id() + '.play: failed to connect!'); });\\r\\n };\\r\\n AudioElement.prototype.pause = function () {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.pause() called.');\\r\\n this.waitUntilConnected('AudioElement.pause')\\r\\n .then(function () { _this.remoteInvoke(false, lib.method_id_AudioElement_t.pause, []); })\\r\\n .catch(function () { logger_1.logger.log(_this.user_friendly_id() + '.pause: failed to connect!'); });\\r\\n };\\r\\n return AudioElement;\\r\\n}(proxyobject_1.ProxyObject));\\r\\nexports.AudioElement = AudioElement;\\r\\n\\n\\n//# sourceURL=webpack://CitrixWebRTC/E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/audioelement.js?\");\n },\n \"../../../out/shim/sdk/int/sdk/enginecontrol.js\":\n /*!***************************************************************************!*\\\r\n !*** E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/enginecontrol.js ***!\r\n \\***************************************************************************/\n\n /*! no static exports found */\n function outShimSdkIntSdkEnginecontrolJs(module, exports, __webpack_require__) {\n\n eval('\\r\\nvar __extends = (this && this.__extends) || (function () {\\r\\n var 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 return function (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\\nObject.defineProperty(exports, \"__esModule\", { value: true });\\r\\nvar webrpcclassinfo_1 = __webpack_require__(/*! ./webrpcclassinfo */ \"../../../out/shim/sdk/int/sdk/webrpcclassinfo.js\");\\r\\nvar hdxms_1 = __webpack_require__(/*! ./hdxms */ \"../../../out/shim/sdk/int/sdk/hdxms.js\");\\r\\nvar proxyobject_1 = __webpack_require__(/*! ./proxyobject */ \"../../../out/shim/sdk/int/sdk/proxyobject.js\");\\r\\nvar logger_1 = __webpack_require__(/*! ./logger */ \"../../../out/shim/sdk/int/sdk/logger.js\");\\r\\nvar VersionType;\\r\\n(function (VersionType) {\\r\\n VersionType[VersionType[\"Webrpc\"] = 0] = \"Webrpc\";\\r\\n VersionType[VersionType[\"WebrtcCodecs\"] = 1] = \"WebrtcCodecs\";\\r\\n VersionType[VersionType[\"Receiver\"] = 2] = \"Receiver\";\\r\\n VersionType[VersionType[\"Vda\"] = 3] = \"Vda\";\\r\\n VersionType[VersionType[\"Endpoint\"] = 4] = \"Endpoint\";\\r\\n VersionType[VersionType[\"TypeScript\"] = 5] = \"TypeScript\";\\r\\n VersionType[VersionType[\"Max\"] = 6] = \"Max\";\\r\\n})(VersionType = exports.VersionType || (exports.VersionType = {}));\\r\\nvar EngineControl = /** @class */ (function (_super) {\\r\\n __extends(EngineControl, _super);\\r\\n function EngineControl() {\\r\\n return _super.call(this, null, webrpcclassinfo_1.class_id_t.EngineControl, 0, proxyobject_1.ProxyMode.Local) || this;\\r\\n }\\r\\n EngineControl.prototype.bind = function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + \\'.bind() called.\\');\\r\\n this.reconstructor(null, webrpcclassinfo_1.class_id_t.EngineControl, 0);\\r\\n };\\r\\n // syncBarrier is used because methods on this interface return synchronously and we cant block in JavaScript\\r\\n EngineControl.prototype.syncBarrier = function () {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + \\'.syncBarrier() called.\\');\\r\\n return new Promise(function (resolve, reject) {\\r\\n _this.waitUntilConnected(\\'EngineControl.syncBarrier\\')\\r\\n .then(function () {\\r\\n //release-1905 client\\r\\n return Promise.all([\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_EngineControl_t.version, { \"major\": 0, \"minor\": 0, \"revision\": 0, \"build\": 0 }),\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_EngineControl_t.feature_flags, [])\\r\\n ]);\\r\\n })\\r\\n .then(function (results) {\\r\\n var _a;\\r\\n logger_1.logger.log(_this.user_friendly_id() + \\'received webrpc version and supported feature list.\\');\\r\\n _a = results.map(function (result) { return _this.param0(result); }), _this.version_ = _a[0], _this.features_ = _a[1];\\r\\n //update feature list that is supported by webrpc\\r\\n hdxms_1.getRedirector().setFeatures(_this.features_);\\r\\n var requests = [];\\r\\n //release-1906 client: supports new feature \\'ms_teams_desktop_sharing\\'\\r\\n for (var _i = 0, _b = _this.features_; _i < _b.length; _i++) {\\r\\n var f = _b[_i];\\r\\n if (f.name === \"ms_teams_desktop_sharing\" && f.value) {\\r\\n requests.push(_this.remoteInvoke(false, webrpcclassinfo_1.method_id_EngineControl_t.version_info, []));\\r\\n }\\r\\n else if (f.name === \"ms_teams_osinfo\" && f.value) {\\r\\n requests.push(_this.remoteInvoke(false, webrpcclassinfo_1.method_id_EngineControl_t.osinfo, { \"family\": \"\", \"version\": \"\", \"architecture\": \"\", \"distro\": \"\", \"edition\": \"\" }));\\r\\n }\\r\\n else if (f.name === \"ms_teams_sessionidentifier\" && f.value) {\\r\\n requests.push(_this.remoteInvoke(false, webrpcclassinfo_1.method_id_EngineControl_t.session_identifier, { \"machine_id\": \"\", \"user_id\": \"\" }));\\r\\n }\\r\\n }\\r\\n if (requests.length > 0) {\\r\\n return Promise.all(requests);\\r\\n }\\r\\n })\\r\\n .then(function (results) {\\r\\n if (results === undefined) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + \\'release-1905 client.\\');\\r\\n }\\r\\n else {\\r\\n logger_1.logger.log(_this.user_friendly_id() + \\'release-1906 or later client: received detailed client version list.\\');\\r\\n for (var _i = 0, results_1 = results; _i < results_1.length; _i++) {\\r\\n var result = results_1[_i];\\r\\n if (result.hdr.proc.iid == webrpcclassinfo_1.class_id_t.EngineControl && result.hdr.proc.methodid == webrpcclassinfo_1.method_id_EngineControl_t.version_info) {\\r\\n _this.versions_ = _this.param0(result);\\r\\n }\\r\\n else if (result.hdr.proc.iid == webrpcclassinfo_1.class_id_t.EngineControl && result.hdr.proc.methodid == webrpcclassinfo_1.method_id_EngineControl_t.osinfo) {\\r\\n _this.osinfo_ = _this.param0(result);\\r\\n }\\r\\n else if (result.hdr.proc.iid == webrpcclassinfo_1.class_id_t.EngineControl && result.hdr.proc.methodid == webrpcclassinfo_1.method_id_EngineControl_t.session_identifier) {\\r\\n _this.sessionidentifier_ = _this.param0(result);\\r\\n }\\r\\n }\\r\\n }\\r\\n //this must be release-1906 or later client, we are done\\r\\n resolve(_this);\\r\\n })\\r\\n .catch(function () {\\r\\n //this must be from release-1904 or earlier client\\r\\n logger_1.logger.log(_this.user_friendly_id() + \\'failure to retrieve version/feature related client info.\\');\\r\\n reject();\\r\\n });\\r\\n });\\r\\n };\\r\\n return EngineControl;\\r\\n}(proxyobject_1.ProxyObject));\\r\\nexports.EngineControl = EngineControl;\\r\\n\\n\\n//# sourceURL=webpack://CitrixWebRTC/E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/enginecontrol.js?');\n },\n \"../../../out/shim/sdk/int/sdk/frametracker.js\":\n /*!**************************************************************************!*\\\r\n !*** E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/frametracker.js ***!\r\n \\**************************************************************************/\n\n /*! no static exports found */\n function outShimSdkIntSdkFrametrackerJs(module, exports, __webpack_require__) {\n\n eval(\"\\r\\nObject.defineProperty(exports, \\\"__esModule\\\", { value: true });\\r\\nvar logger_1 = __webpack_require__(/*! ./logger */ \\\"../../../out/shim/sdk/int/sdk/logger.js\\\");\\r\\nvar hdxms_1 = __webpack_require__(/*! ./hdxms */ \\\"../../../out/shim/sdk/int/sdk/hdxms.js\\\");\\r\\nvar FrameTracker = /** @class */ (function () {\\r\\n function FrameTracker() {\\r\\n var _this = this;\\r\\n this.running_ = false;\\r\\n this.elements_ = [];\\r\\n this.clipRects = new Set(); // active clip rectangles\\r\\n //call update on scroll\\r\\n this.wheelEventHandler = function (event) {\\r\\n //allow time between mouse event and actual scroll in Teams\\r\\n setTimeout(function () { _this.updateAll(); }, 10);\\r\\n };\\r\\n //call update on navigation keys\\r\\n this.keyupEventHandler = function (event) {\\r\\n if (event.code == 'Tab' ||\\r\\n event.code == 'ArrowUp' || event.code == 'ArrowDown' ||\\r\\n event.code == 'ArrowLeft' || event.code == 'ArrowRight' ||\\r\\n event.code == 'PageUp' || event.code == 'PageDown' ||\\r\\n event.code == 'Home' || event.code == 'End') {\\r\\n _this.updateAll();\\r\\n }\\r\\n };\\r\\n FrameTracker.sendOverlayInfo();\\r\\n this.observer_ = new MutationObserver(function (mutations) {\\r\\n _this.updateAll();\\r\\n });\\r\\n }\\r\\n FrameTracker.sendOverlayInfo = function () {\\r\\n var getWindowHandle = window['getWindowHandleAsHex'];\\r\\n if (getWindowHandle === undefined || getWindowHandle === null) {\\r\\n logger_1.logger.log('FrameTracker.sendOverlayInfo: getWindowHandle method is undefined or null');\\r\\n return;\\r\\n }\\r\\n var hdxms = hdxms_1.getRedirector();\\r\\n Promise.all([\\r\\n getWindowHandle(),\\r\\n hdxms.startRedirection(false, 'sendOverlayInfo')\\r\\n ]).then(function (results) {\\r\\n logger_1.logger.log('FrameTracker.sendOverlayInfo: set window handle: ' + results[0]);\\r\\n // tell WebSocketAgent about our window so it can start tracking it.\\r\\n hdxms.WSSendObject({\\r\\n /**@nocollapse*/ v: 'overlay',\\r\\n /**@nocollapse*/ command: 'window',\\r\\n /**@nocollapse*/ windowHandle: results[0]\\r\\n });\\r\\n });\\r\\n };\\r\\n /// returns true iff the two rectangles intersect each other.\\r\\n FrameTracker.prototype.rectanglesIntersect = function (r1, r2) {\\r\\n if (r1.x < r2.x + r2.width &&\\r\\n r1.x + r1.width > r2.x &&\\r\\n r1.y < r2.y + r2.height &&\\r\\n r1.y + r1.height > r2.y) {\\r\\n return true;\\r\\n }\\r\\n return false;\\r\\n };\\r\\n /// return the intersection of rectangles assuming that they actually do intersect.\\r\\n FrameTracker.prototype.intersectingRect = function (r1, r2) {\\r\\n var r = {\\r\\n left: Math.max(r1.left, r2.left),\\r\\n right: Math.min(r1.right, r2.right),\\r\\n top: Math.max(r1.top, r2.top),\\r\\n bottom: Math.min(r1.bottom, r2.bottom)\\r\\n };\\r\\n return new DOMRect(r.left, r.top, r.right - r.left, r.bottom - r.top);\\r\\n };\\r\\n /// figure out how close the specified element is to the specified ancestor.\\r\\n FrameTracker.prototype.pedigreeCount = function (element, ancestor) {\\r\\n var pedigree = 0;\\r\\n var parent = element.parentElement;\\r\\n while (parent != null && parent != ancestor) {\\r\\n pedigree++;\\r\\n parent = parent.parentElement;\\r\\n }\\r\\n return {\\r\\n 'isAncestor': (parent != null),\\r\\n 'pedigree': pedigree\\r\\n };\\r\\n };\\r\\n /// return whichever of the two elements is on top of the other.\\r\\n FrameTracker.prototype.selectTopmost = function (itemA, itemB) {\\r\\n var rA = itemA.getBoundingClientRect();\\r\\n var rB = itemB.getBoundingClientRect();\\r\\n // compute the intersecting rectangle.\\r\\n var rect = this.intersectingRect(rA, rB);\\r\\n // compute the center of the intersecting rectangle.\\r\\n var pt = {\\r\\n x: (rect.left + (rect.width / 2)),\\r\\n y: (rect.top + (rect.height / 2))\\r\\n };\\r\\n // do a hit-test to see which one is on top.\\r\\n var topmost = document.elementFromPoint(pt.x, pt.y);\\r\\n if (topmost == itemA) {\\r\\n return itemA;\\r\\n }\\r\\n else if (topmost == itemB) {\\r\\n return itemB;\\r\\n }\\r\\n // this happens sometimes. see if we can resolve it by checking the parent.\\r\\n var pedigreeA = this.pedigreeCount(itemA, topmost);\\r\\n var pedigreeB = this.pedigreeCount(itemB, topmost);\\r\\n if (pedigreeA['isAncestor'] && pedigreeB['isAncestor']) {\\r\\n // both itemA and itemB are children of topmost.\\r\\n // see if one of them is a closer relative.\\r\\n if (pedigreeA['pedigree'] < pedigreeB['pedigree']) {\\r\\n return itemA;\\r\\n }\\r\\n else if (pedigreeB['pedigree'] < pedigreeA['pedigree']) {\\r\\n return itemB;\\r\\n }\\r\\n }\\r\\n else if (pedigreeA['isAncestor']) {\\r\\n // itemA is a child of topmost and itemB is not.\\r\\n return itemA;\\r\\n }\\r\\n else if (pedigreeB['isAncestor']) {\\r\\n // itemB is a child of topmost and itemA is not.\\r\\n return itemB;\\r\\n }\\r\\n return undefined;\\r\\n };\\r\\n FrameTracker.prototype.checkOverlappingVideos = function (item) {\\r\\n var _this = this;\\r\\n var currentRect = item.target.getBoundingClientRect();\\r\\n // purge (invalidate) any clip rects for item\\r\\n item.overlaps.forEach(function (o) { item.target['remoteVideoElement'].removeClipRect(o['rect']); });\\r\\n item.overlaps = [];\\r\\n // check if this new position overlaps another video.\\r\\n this.elements_.forEach(function (el) {\\r\\n // skip ourselves.\\r\\n if (el != item) {\\r\\n // check if this element used to overlap and clear clip rectangle if so.\\r\\n var overlappingElements = el.overlaps.map(function (o) { return o['element']; });\\r\\n var idx = overlappingElements.indexOf(item.target);\\r\\n if (idx != -1) {\\r\\n var ovlp = el.overlaps.splice(idx, 1)[0];\\r\\n el.target['remoteVideoElement'].removeClipRect(ovlp['rect']);\\r\\n }\\r\\n // get the bounding rectangle for this element.\\r\\n var elRect = el.target.getBoundingClientRect();\\r\\n // if it intersects the current element...\\r\\n if (_this.rectanglesIntersect(currentRect, elRect)) {\\r\\n // ...check which one is on top.\\r\\n var topmost = _this.selectTopmost(item.target, el.target);\\r\\n if (topmost == item.target) {\\r\\n // cache the rect so we can clear the clip rect when it moves to another spot.\\r\\n el.overlaps.push({ 'element': item.target, 'rect': currentRect });\\r\\n // add the occlusion\\r\\n el.target['remoteVideoElement'].addClipRect(currentRect);\\r\\n }\\r\\n else if (topmost == el.target) {\\r\\n // the item is being added or moved into a spot which contains an overlapping\\r\\n // element which should appear on top.\\r\\n item.overlaps.push({ 'element': el.target, 'rect': elRect });\\r\\n item.target['remoteVideoElement'].addClipRect(elRect);\\r\\n }\\r\\n }\\r\\n }\\r\\n });\\r\\n };\\r\\n FrameTracker.prototype.updateAll = function () {\\r\\n var _this = this;\\r\\n this.elements_.forEach(function (item) {\\r\\n var currentRect = item.target.getBoundingClientRect();\\r\\n if (currentRect === undefined) {\\r\\n return;\\r\\n }\\r\\n var lastRect = item.clientRect;\\r\\n if (lastRect === undefined\\r\\n || lastRect.x !== currentRect.x\\r\\n || lastRect.y !== currentRect.y\\r\\n || lastRect.width !== currentRect.width\\r\\n || lastRect.height !== currentRect.height) {\\r\\n item.clientRect = currentRect;\\r\\n item.callback(currentRect);\\r\\n _this.checkOverlappingVideos(item);\\r\\n }\\r\\n });\\r\\n };\\r\\n FrameTracker.prototype.track = function (element, cb) {\\r\\n var _this = this;\\r\\n var rect = element.getBoundingClientRect();\\r\\n logger_1.logger.log('Track element frame', element, JSON.stringify(rect));\\r\\n console.log(element);\\r\\n this.elements_.push({\\r\\n target: element,\\r\\n clientRect: undefined,\\r\\n callback: cb,\\r\\n overlaps: []\\r\\n });\\r\\n // initialize clip rectangles for the new video Element\\r\\n try {\\r\\n logger_1.logger.log('[HdxWebRTC.js] Initializing occlusion for new videoElement');\\r\\n this.clipRects.forEach(function (r) { _this.applyOcclusion(element, JSON.parse(r)); });\\r\\n }\\r\\n catch (error) {\\r\\n logger_1.logger.log('[HdxWebRTC.js] addOcclusionInit failed! ' + error);\\r\\n }\\r\\n if (!this.running_) {\\r\\n logger_1.logger.log('Start FrameTracker observer...');\\r\\n this.observer_.observe(document.body, {\\r\\n attributes: true,\\r\\n childList: true,\\r\\n subtree: true\\r\\n });\\r\\n window.addEventListener('wheel', this.wheelEventHandler);\\r\\n window.addEventListener('keyup', this.keyupEventHandler);\\r\\n this.running_ = true;\\r\\n }\\r\\n this.updateAll();\\r\\n };\\r\\n FrameTracker.prototype.untrack = function (element) {\\r\\n logger_1.logger.log('Untrack element frame', element);\\r\\n var idx = -1;\\r\\n this.elements_.forEach(function (item, index) {\\r\\n if (item.target === element) {\\r\\n idx = index;\\r\\n return;\\r\\n }\\r\\n });\\r\\n if (idx >= 0) {\\r\\n this.elements_.splice(idx, 1);\\r\\n if (this.elements_.length === 0) {\\r\\n logger_1.logger.log('Stop FrameTracker observer...');\\r\\n this.observer_.disconnect();\\r\\n window.removeEventListener('wheel', this.wheelEventHandler);\\r\\n window.removeEventListener('keyup', this.keyupEventHandler);\\r\\n this.running_ = false;\\r\\n }\\r\\n }\\r\\n };\\r\\n FrameTracker.prototype.applyOcclusion = function (element, rect) {\\r\\n var r1 = rect;\\r\\n var r2 = element.getBoundingClientRect();\\r\\n if (this.rectanglesIntersect(r1, r2)) {\\r\\n if (element.remoteVideoElement !== undefined) {\\r\\n element.remoteVideoElement.addClipRect(r1);\\r\\n }\\r\\n }\\r\\n };\\r\\n /// add an occlusion that is global (applies to all video elements)\\r\\n FrameTracker.prototype.addOcclusion = function (rect) {\\r\\n var _this = this;\\r\\n logger_1.logger.log('[HdxWebRTC.js] Adding occlusion ' + JSON.stringify(rect));\\r\\n logger_1.logger.log(\\\"[HdxWebRTC.js] Tracking '\\\" + this.elements_.length + \\\"' elements.\\\");\\r\\n this.clipRects.add(JSON.stringify(rect));\\r\\n this.elements_.forEach(function (e) {\\r\\n _this.applyOcclusion(e.target, rect);\\r\\n });\\r\\n };\\r\\n /// remove a global occlusion.\\r\\n FrameTracker.prototype.removeOcclusion = function (rect) {\\r\\n logger_1.logger.log('[HdxWebRTC.js] Removing occlusion ' + JSON.stringify(rect));\\r\\n logger_1.logger.log(\\\"[HdxWebRTC.js] Tracking '\\\" + this.elements_.length + \\\"' elements.\\\");\\r\\n this.clipRects.delete(JSON.stringify(rect));\\r\\n this.elements_.forEach(function (e) {\\r\\n var r1 = rect;\\r\\n if (e.target.remoteVideoElement !== undefined) {\\r\\n e.target.remoteVideoElement.removeClipRect(r1);\\r\\n }\\r\\n });\\r\\n };\\r\\n return FrameTracker;\\r\\n}());\\r\\nexports.FrameTracker = FrameTracker;\\r\\n\\n\\n//# sourceURL=webpack://CitrixWebRTC/E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/frametracker.js?\");\n },\n \"../../../out/shim/sdk/int/sdk/garbagecollector.js\":\n /*!******************************************************************************!*\\\r\n !*** E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/garbagecollector.js ***!\r\n \\******************************************************************************/\n\n /*! no static exports found */\n function outShimSdkIntSdkGarbagecollectorJs(module, exports, __webpack_require__) {\n\n eval('\\r\\nObject.defineProperty(exports, \"__esModule\", { value: true });\\r\\nvar Node = /** @class */ (function () {\\r\\n function Node(obj) {\\r\\n this.object_ = null;\\r\\n this.parent_ = null;\\r\\n this.children_ = [];\\r\\n this.object_ = obj;\\r\\n }\\r\\n //add child and set child\\'s parent to this\\r\\n Node.prototype.addChild = function (child) {\\r\\n if (child.parent_ == this) {\\r\\n return;\\r\\n }\\r\\n child.parent_ = this;\\r\\n this.children_.push(child);\\r\\n };\\r\\n //remove child\\r\\n Node.prototype.removeChild = function (child) {\\r\\n var index = this.children_.indexOf(child);\\r\\n this.children_.splice(index, 1);\\r\\n child.parent_ = null;\\r\\n };\\r\\n return Node;\\r\\n}());\\r\\nvar GC = /** @class */ (function () {\\r\\n function GC() {\\r\\n this.root_ = new Node(null);\\r\\n }\\r\\n //register object\\r\\n GC.prototype.trackObject = function (obj, parent) {\\r\\n if (parent === void 0) { parent = null; }\\r\\n if (this.findNode(obj, this.root_) !== null) {\\r\\n //object is already tracked\\r\\n return;\\r\\n }\\r\\n var parentNode = this.findNode(parent, this.root_);\\r\\n var n = new Node(obj);\\r\\n parentNode.addChild(n);\\r\\n //print for debugging\\r\\n //console.log(\"GC addnode\");\\r\\n //console.log(this.root_);\\r\\n };\\r\\n //release object and children\\r\\n GC.prototype.releaseObject = function (obj) {\\r\\n var n = this.findNode(obj, this.root_);\\r\\n if (n === null || n === this.root_) {\\r\\n return false;\\r\\n }\\r\\n this.destroyNodeObjectRecurse(n);\\r\\n //unlink node from parent\\r\\n n.parent_.removeChild(n);\\r\\n //print for debugging\\r\\n //console.log(\"GC removenode\");\\r\\n //console.log(this.root_);\\r\\n return true;\\r\\n };\\r\\n //recursive destroy\\r\\n GC.prototype.destroyNodeObjectRecurse = function (node) {\\r\\n for (var _i = 0, _a = node.children_; _i < _a.length; _i++) {\\r\\n var c = _a[_i];\\r\\n this.destroyNodeObjectRecurse(c);\\r\\n }\\r\\n node.object_.destroy();\\r\\n };\\r\\n GC.prototype.setParent = function (obj, parent) {\\r\\n var n = this.findNode(obj, this.root_);\\r\\n if (n === null) {\\r\\n return false;\\r\\n }\\r\\n var p = this.findNode(parent, this.root_);\\r\\n if (p === null) {\\r\\n return false;\\r\\n }\\r\\n //if already the same parent\\r\\n if (n.parent_ === p)\\r\\n return true;\\r\\n //break existing parent-child relation\\r\\n n.parent_.removeChild(n);\\r\\n //create new relation\\r\\n p.addChild(n);\\r\\n return true;\\r\\n };\\r\\n //clear garbage collection tree\\r\\n GC.prototype.reset = function () {\\r\\n this.root_.children_ = [];\\r\\n };\\r\\n //node = Node to start search at\\r\\n // returns null if node not found\\r\\n GC.prototype.findNode = function (obj, searchNode) {\\r\\n if (searchNode.object_ === obj) {\\r\\n return searchNode;\\r\\n }\\r\\n var result = null;\\r\\n for (var _i = 0, _a = searchNode.children_; _i < _a.length; _i++) {\\r\\n var c = _a[_i];\\r\\n result = this.findNode(obj, c);\\r\\n if (result !== null) {\\r\\n break;\\r\\n }\\r\\n }\\r\\n return result;\\r\\n };\\r\\n return GC;\\r\\n}());\\r\\nexports.GC = GC;\\r\\nexports.gc = new GC();\\r\\n\\n\\n//# sourceURL=webpack://CitrixWebRTC/E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/garbagecollector.js?');\n },\n \"../../../out/shim/sdk/int/sdk/hdxms.js\":\n /*!*******************************************************************!*\\\r\n !*** E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/hdxms.js ***!\r\n \\*******************************************************************/\n\n /*! no static exports found */\n function outShimSdkIntSdkHdxmsJs(module, exports, __webpack_require__) {\n\n eval(\"\\r\\nObject.defineProperty(exports, \\\"__esModule\\\", { value: true });\\r\\nvar proxyobject_1 = __webpack_require__(/*! ./proxyobject */ \\\"../../../out/shim/sdk/int/sdk/proxyobject.js\\\");\\r\\nvar logger_1 = __webpack_require__(/*! ./logger */ \\\"../../../out/shim/sdk/int/sdk/logger.js\\\");\\r\\nvar webrpcclassinfo_1 = __webpack_require__(/*! ./webrpcclassinfo */ \\\"../../../out/shim/sdk/int/sdk/webrpcclassinfo.js\\\");\\r\\nvar wsjsonutil_1 = __webpack_require__(/*! ./wsjsonutil */ \\\"../../../out/shim/sdk/int/sdk/wsjsonutil.js\\\");\\r\\nvar telemetry_1 = __webpack_require__(/*! ./telemetry */ \\\"../../../out/shim/sdk/int/sdk/telemetry.js\\\");\\r\\nvar completion = /** @class */ (function () {\\r\\n function completion(resolve, reject, iid, oid, cbid, oneShot, mid) {\\r\\n this.resolve = resolve;\\r\\n this.reject = reject;\\r\\n this.iid = iid;\\r\\n this.oid = oid;\\r\\n this.cbid = cbid;\\r\\n this.oneShot = oneShot;\\r\\n this.mid = mid;\\r\\n }\\r\\n return completion;\\r\\n}());\\r\\nvar RedirectionStatus;\\r\\n(function (RedirectionStatus) {\\r\\n RedirectionStatus[RedirectionStatus[\\\"NotRedirected\\\"] = 0] = \\\"NotRedirected\\\";\\r\\n RedirectionStatus[RedirectionStatus[\\\"Connecting\\\"] = 1] = \\\"Connecting\\\";\\r\\n RedirectionStatus[RedirectionStatus[\\\"Binding\\\"] = 2] = \\\"Binding\\\";\\r\\n RedirectionStatus[RedirectionStatus[\\\"Redirected\\\"] = 3] = \\\"Redirected\\\"; //websocket connection is established, and sessioninfo handshaking is complete\\r\\n})(RedirectionStatus = exports.RedirectionStatus || (exports.RedirectionStatus = {}));\\r\\nvar HdxMediaStream = /** @class */ (function () {\\r\\n function HdxMediaStream() {\\r\\n this.pingactive = false;\\r\\n this.status = RedirectionStatus.NotRedirected;\\r\\n this.reqs = [];\\r\\n this.cbs = [];\\r\\n this.deferredActions = new Array();\\r\\n this.telemetry_ = new telemetry_1.Telemetry();\\r\\n this.stateChangeNotifcations = [];\\r\\n }\\r\\n Object.defineProperty(HdxMediaStream.prototype, \\\"telemetry\\\", {\\r\\n get: function () {\\r\\n return this.telemetry_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n HdxMediaStream.prototype.setRemoteSessionInfoCb = function (remoteSessionInfoCb) {\\r\\n this.remoteSessionInfoCb = remoteSessionInfoCb;\\r\\n };\\r\\n HdxMediaStream.prototype.setFeatures = function (features) {\\r\\n this.features = features;\\r\\n };\\r\\n HdxMediaStream.prototype.getFeatureValue = function (featureName) {\\r\\n var result = this.features.find(function (value) { return value.name === featureName; });\\r\\n return result !== undefined ? result.value : false;\\r\\n };\\r\\n HdxMediaStream.prototype.onRedirectionComplete = function () {\\r\\n while (this.deferredActions && this.deferredActions.length > 0) {\\r\\n this.deferredActions.shift().post(this.status == RedirectionStatus.Redirected);\\r\\n }\\r\\n };\\r\\n HdxMediaStream.prototype.connectToService = function () {\\r\\n // change our status to connecting...\\r\\n logger_1.logger.log('Redirection status: Connecting...');\\r\\n this.status = RedirectionStatus.Connecting;\\r\\n // create the websocket.\\r\\n return new Promise(function (resolve, reject) {\\r\\n var sock = new WebSocket('wss://127.0.0.1:9002');\\r\\n sock.onopen = function () {\\r\\n resolve(sock);\\r\\n };\\r\\n sock.onerror = function (err) {\\r\\n logger_1.logger.log('websocket connection error: ' + err.type);\\r\\n reject(err);\\r\\n };\\r\\n });\\r\\n };\\r\\n HdxMediaStream.prototype.waitUntilRedirected = function (count) {\\r\\n var self = this;\\r\\n return new Promise(function (resolve, reject) {\\r\\n if (self.status == RedirectionStatus.Redirected) {\\r\\n resolve();\\r\\n }\\r\\n else {\\r\\n if (count <= 0) {\\r\\n reject();\\r\\n }\\r\\n else {\\r\\n setTimeout(function () {\\r\\n logger_1.logger.log('waitUntilRedirected() timeout. count=' + count);\\r\\n if (self.status != RedirectionStatus.Redirected) {\\r\\n self.waitUntilRedirected(--count).then(function () {\\r\\n resolve();\\r\\n }).catch(function () {\\r\\n reject();\\r\\n });\\r\\n }\\r\\n else {\\r\\n //todo: push a completion so the promise can be resolved when the configure response is received\\r\\n resolve();\\r\\n }\\r\\n }, 2000); //2seconds each time\\r\\n }\\r\\n }\\r\\n });\\r\\n };\\r\\n HdxMediaStream.prototype.handleRemoteSessionInfo = function () {\\r\\n var _this = this;\\r\\n logger_1.logger.log('handleRemoteSessionInfo called.');\\r\\n var self = this;\\r\\n if (self.remoteSessionInfoCb) {\\r\\n self.remoteSessionInfoCb().then(function (info) {\\r\\n logger_1.logger.log('remoteSessionInfo success! info:' + JSON.stringify(info));\\r\\n logger_1.logger.log('Redirection status: Redirected');\\r\\n self.status = RedirectionStatus.Redirected;\\r\\n //stop connection ping timer\\r\\n self.pingConnectionEnd();\\r\\n //notify MS Teams about connection status\\r\\n var vdiClientConnected = window['onVdiClientConnected'];\\r\\n vdiClientConnected();\\r\\n // send telemetry init request data to websocket agent\\r\\n _this.telemetry.SendTelemetryInit();\\r\\n //dispatch all delayed redirection requests\\r\\n self.onRedirectionComplete();\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log('remoteSessionInfo failure!');\\r\\n // unable to connect to service for some reason.\\r\\n self.suspendRedirection(true);\\r\\n //dispatch all delayed redirection requests\\r\\n self.onRedirectionComplete();\\r\\n });\\r\\n }\\r\\n else {\\r\\n logger_1.logger.log('remoteSessionInfoCb is invalid!');\\r\\n // unable to connect to service for some reason.\\r\\n self.suspendRedirection(true);\\r\\n //dispatch all delayed redirection requests\\r\\n self.onRedirectionComplete();\\r\\n }\\r\\n };\\r\\n HdxMediaStream.prototype.startRedirection = function (sessioninfo, name) {\\r\\n var self = this;\\r\\n //notify MS Teams about connection failure\\r\\n var vdiClientDisconnected = window['onVdiClientDisconnected'];\\r\\n return new Promise(function (resolve, reject) {\\r\\n if (self.status != RedirectionStatus.Redirected) {\\r\\n logger_1.logger.log('Attempting to start redirection: ' + name);\\r\\n if (sessioninfo === false) {\\r\\n //delay anything that is not related to sessioninfo\\r\\n self.deferredActions.push(new proxyobject_1.deferred_action(resolve, reject, name));\\r\\n }\\r\\n else {\\r\\n self.connectToService().then(function (sock) {\\r\\n logger_1.logger.log('Redirection status: Binding...');\\r\\n self.status = RedirectionStatus.Binding;\\r\\n self.websocket = sock;\\r\\n // connected to Citrix WebSocket Service!!! setup handlers...\\r\\n self.websocket.onmessage = function (obj) { self.onWSMessage(obj); }; //self.onWSMessage;\\r\\n self.websocket.onclose = function (closeEvent) { self.onWSClose(closeEvent); }; //self.onWSClose;\\r\\n //this.onWSOpen();\\r\\n resolve();\\r\\n self.handleRemoteSessionInfo();\\r\\n }).catch(function (err) {\\r\\n logger_1.logger.log('Unable to connect to websocket service!');\\r\\n reject();\\r\\n // unable to connect to service for some reason.\\r\\n self.suspendRedirection(true);\\r\\n //dispatch all delayed redirection requests\\r\\n self.onRedirectionComplete();\\r\\n //notify MS Teams about connection failure\\r\\n vdiClientDisconnected(true);\\r\\n });\\r\\n }\\r\\n }\\r\\n else {\\r\\n logger_1.logger.log('Redirection already started.');\\r\\n resolve();\\r\\n }\\r\\n });\\r\\n };\\r\\n HdxMediaStream.prototype.suspendRedirection = function (svrender) {\\r\\n var _this = this;\\r\\n logger_1.logger.log('Suspending redirection.');\\r\\n //this.hdxvr.suspend(svrender);\\r\\n //this.hdxbcr.suspend(svrender);\\r\\n //notify MS Teams about connection status\\r\\n var vdiClientDisconnected = window['onVdiClientDisconnected'];\\r\\n vdiClientDisconnected(false);\\r\\n var regkeyexists = false;\\r\\n var CitrixMSTeamsRedir = window['getCitrixMSTeamsRedir'];\\r\\n var regkey = CitrixMSTeamsRedir();\\r\\n regkey.then(function (value) {\\r\\n logger_1.logger.log(\\\"sucesss on disconnect\\\" + value);\\r\\n if ((value == 1) && (value !== \\\"\\\")) {\\r\\n regkeyexists = true;\\r\\n logger_1.logger.log(\\\"Reg key exists while disconnecting\\\");\\r\\n }\\r\\n //need to start reconnect timer only if we were previously connected\\r\\n if (_this.status === RedirectionStatus.Redirected && (regkeyexists == true)) {\\r\\n logger_1.logger.log(\\\"Calling ping not normal disconnect\\\");\\r\\n _this.pingConnectionBegin(false);\\r\\n }\\r\\n logger_1.logger.log('Redirection status: NotRedirected');\\r\\n _this.status = RedirectionStatus.NotRedirected;\\r\\n });\\r\\n this.dispatchStateChangeNotifications();\\r\\n };\\r\\n HdxMediaStream.prototype.onWSOpen = function () {\\r\\n //var eUri = encodeURI((typeof HDX_DO_PAGE_REDIRECTION === 'string') ? HDX_DO_PAGE_REDIRECTION : document.location.href)\\r\\n //this.WSSendObject({\\r\\n // /**@expose*/ v: 'pageurl',\\r\\n // /**@expose*/ url: eUri\\r\\n //});\\r\\n //hdxMediaStream.getOrigin();\\r\\n //hdxMediaStream.onVisibilityChange();\\r\\n //hdxMediaStream.onResize();\\r\\n };\\r\\n HdxMediaStream.prototype.onWSClose = function (closeEvent) {\\r\\n logger_1.logger.log('disconnected from websocket service.');\\r\\n try {\\r\\n this.suspendRedirection(true);\\r\\n }\\r\\n catch (exc) {\\r\\n logger_1.logger.log('suspendRedirection(): exception closing WebSocket: ' + exc.message);\\r\\n }\\r\\n };\\r\\n HdxMediaStream.prototype.onWSError = function () {\\r\\n try {\\r\\n this.suspendRedirection(true);\\r\\n }\\r\\n catch (exc) {\\r\\n logger_1.logger.log('suspendRedirection(): exception on WebSocket error: ' + exc.message);\\r\\n }\\r\\n };\\r\\n HdxMediaStream.prototype.WSSendObjectWrapper = function (feature, iid, mid, obj) {\\r\\n var check = true;\\r\\n if ((iid == webrpcclassinfo_1.class_id_t.EngineControl) &&\\r\\n (mid == webrpcclassinfo_1.method_id_EngineControl_t.ctor || mid == webrpcclassinfo_1.method_id_EngineControl_t.version || mid == webrpcclassinfo_1.method_id_EngineControl_t.feature_flags)) {\\r\\n //always skip check for this case\\r\\n check = false;\\r\\n }\\r\\n //need to check against features?\\r\\n var send = true;\\r\\n if (check) {\\r\\n //by default set this iid/mid is not supported in the current feature list\\r\\n send = false;\\r\\n if (this.features != undefined) {\\r\\n for (var _i = 0, _a = this.features; _i < _a.length; _i++) {\\r\\n var f = _a[_i];\\r\\n if (f.value === true && f.name == feature) {\\r\\n //all good to send\\r\\n send = true;\\r\\n break;\\r\\n }\\r\\n }\\r\\n }\\r\\n }\\r\\n if (send == true) {\\r\\n return this.WSSendObject(obj);\\r\\n }\\r\\n else {\\r\\n return Promise.reject('Cannot invoke method that is not supported by webrpc: iid(' + iid + ') mid(' + mid + ')');\\r\\n }\\r\\n };\\r\\n HdxMediaStream.prototype.WSSendObject = function (obj) {\\r\\n var _this = this;\\r\\n return new Promise(function (resolve, reject) {\\r\\n if (obj['v'] == 'webrtc') {\\r\\n var iid = obj['hdr']['proc']['iid'];\\r\\n var mid = obj['hdr']['proc']['methodid'];\\r\\n var oid = obj['objref']['oid'];\\r\\n var destroy = obj['hdr']['destroy'];\\r\\n if (!destroy) {\\r\\n var comp = new completion(resolve, reject, iid, oid, 0, true, mid);\\r\\n _this.reqs.push(comp);\\r\\n }\\r\\n var message = JSON.stringify(obj);\\r\\n logger_1.logger.trace('WSSendObject: >>> ' + webrpcclassinfo_1.WebrpcClassLibInfoUtil.composeClassInfoData(obj) + ' ' + message);\\r\\n try {\\r\\n _this.websocket.send(message);\\r\\n }\\r\\n catch (exc) {\\r\\n //ToDo: remove promise from the queue\\r\\n logger_1.logger.log('WSSendObject(): exception: ' + exc.message);\\r\\n reject(exc.message);\\r\\n }\\r\\n }\\r\\n else if (obj['v'] == 'overlay') {\\r\\n var message = JSON.stringify(obj);\\r\\n logger_1.logger.log('HDXMS: SendOverlayData: >>> ' + message + \\\"'\\\");\\r\\n _this.websocket.send(message);\\r\\n }\\r\\n else if (obj['v'] == 'telemetry') {\\r\\n var message = JSON.stringify(obj);\\r\\n logger_1.logger.log('HDXMS: SendTelemetryData: >>> ' + message + \\\"'\\\");\\r\\n _this.websocket.send(message);\\r\\n }\\r\\n else {\\r\\n logger_1.logger.log(\\\"HDXMS: Unknown protocol: '\\\" + JSON.stringify(obj) + \\\"'\\\");\\r\\n }\\r\\n });\\r\\n };\\r\\n HdxMediaStream.prototype.onWSMessage = function (messageEvent) {\\r\\n var data = messageEvent['data'];\\r\\n var v;\\r\\n try {\\r\\n v = JSON.parse(data);\\r\\n }\\r\\n catch (err) {\\r\\n console.log('invalid JSON!!!');\\r\\n console.log(err);\\r\\n console.log(data);\\r\\n }\\r\\n if (v['v'] == 'webrtc') {\\r\\n logger_1.logger.trace('onWSMessage: <<< ' + webrpcclassinfo_1.WebrpcClassLibInfoUtil.composeClassInfoData(v) + ' ' + data);\\r\\n var iid_1 = v['hdr']['proc']['iid'];\\r\\n var mid_1 = v['hdr']['proc']['methodid'];\\r\\n var oid_1 = v['objref']['oid'];\\r\\n var status_1 = v['status'];\\r\\n if (v['hdr']['msg_type'] == wsjsonutil_1.WsJsonUtil.getMsgType(wsjsonutil_1.ws_msg_type_t.reply)) {\\r\\n var idx = this.reqs.findIndex(function (req) { return req.iid == iid_1 && req.oid == oid_1 && req.mid == mid_1; });\\r\\n if (idx >= 0) {\\r\\n if (status_1 == 0) { //success\\r\\n this.reqs.splice(idx, 1).shift().resolve(v);\\r\\n }\\r\\n else {\\r\\n this.reqs.splice(idx, 1).shift().reject();\\r\\n }\\r\\n }\\r\\n else {\\r\\n logger_1.logger.log('HDXMS didnt find this one. (reqs)');\\r\\n logger_1.logger.log(this.reqs);\\r\\n }\\r\\n }\\r\\n else if (v['hdr']['msg_type'] == wsjsonutil_1.WsJsonUtil.getMsgType(wsjsonutil_1.ws_msg_type_t.event_req)) {\\r\\n var cbid_1 = v['func']['id'];\\r\\n var idx = this.cbs.findIndex(function (cb) { return cb.iid == iid_1 && cb.oid == oid_1 && cb.cbid == (cbid_1 >> 16); });\\r\\n if (idx >= 0) {\\r\\n if ((cbid_1 & 0xffff) == 0) {\\r\\n this.cbs[idx].resolve(v);\\r\\n }\\r\\n else {\\r\\n this.cbs[idx].reject(v);\\r\\n }\\r\\n if (this.cbs[idx].oneShot == true) {\\r\\n this.cbs.splice(idx, 1);\\r\\n }\\r\\n }\\r\\n else {\\r\\n logger_1.logger.log('HDXMS didnt find this one. (cbs)');\\r\\n logger_1.logger.log(this.cbs);\\r\\n }\\r\\n }\\r\\n else {\\r\\n // not valid. not expected.\\r\\n logger_1.logger.log('HDXMS Received bogus message: ' + data + \\\"'\\\");\\r\\n }\\r\\n }\\r\\n else if (v['v'] == 'telemetry') {\\r\\n var status_2 = v['status'];\\r\\n if (status_2 == 0) {\\r\\n var command = v['hdr']['command'];\\r\\n if ((command & 0x7fffffff) == 2) {\\r\\n var id = v['hdr']['id'];\\r\\n this.telemetry.onInitialized(id);\\r\\n logger_1.logger.log('Telemetry init response received');\\r\\n }\\r\\n }\\r\\n }\\r\\n else {\\r\\n logger_1.logger.log('HDXMS: Unknown protocol: ' + data + \\\"'\\\");\\r\\n }\\r\\n };\\r\\n HdxMediaStream.prototype.registerHandler = function (iid, oid, cb) {\\r\\n var comp = new completion(cb.resolve.bind(cb), cb.reject.bind(cb), iid, oid, cb.id, cb.oneShot, 0);\\r\\n this.cbs.push(comp);\\r\\n };\\r\\n HdxMediaStream.prototype.unregisterHandler = function (iid, oid, id) {\\r\\n //logger.log('HDXMS unregister handler for iid=' + iid + ', oid=' + oid + ', id=' + id);\\r\\n var idx = this.cbs.findIndex(function (cb) { return cb.iid == iid && cb.oid == oid && cb.cbid == id; });\\r\\n if (idx >= 0) {\\r\\n this.cbs.splice(idx, 1);\\r\\n }\\r\\n else {\\r\\n logger_1.logger.log('HDXMS Didnt find this callback in the list!');\\r\\n console.log(this.cbs);\\r\\n }\\r\\n };\\r\\n HdxMediaStream.prototype.isRedirected = function () {\\r\\n return (this.status === RedirectionStatus.Redirected ||\\r\\n this.status === RedirectionStatus.Binding ||\\r\\n this.status === RedirectionStatus.Connecting);\\r\\n };\\r\\n HdxMediaStream.prototype.isPingActive = function () {\\r\\n return this.pingactive;\\r\\n };\\r\\n HdxMediaStream.prototype.pingConnectionBegin = function (immediate) {\\r\\n logger_1.logger.log(\\\"Started timer\\\");\\r\\n this.pingactive = true;\\r\\n var VdiClientDisconnectedTimer = window['onVdiClientDisconnectedTimer'];\\r\\n if (immediate == true) {\\r\\n logger_1.logger.log('checking if we are connected...');\\r\\n VdiClientDisconnectedTimer();\\r\\n }\\r\\n else {\\r\\n this.conntimer = setTimeout(function () {\\r\\n //need to wait for another round\\r\\n logger_1.logger.log('checking if we are connected...');\\r\\n VdiClientDisconnectedTimer();\\r\\n }, 15000); //first ping starts after 15seconds\\r\\n }\\r\\n };\\r\\n HdxMediaStream.prototype.pingConnectionEnd = function () {\\r\\n this.pingactive = false;\\r\\n //clearInterval(this.conntimer);\\r\\n clearTimeout(this.conntimer);\\r\\n };\\r\\n HdxMediaStream.prototype.SendTelemetryData_Speaker = function (speaker) {\\r\\n this.telemetry.SendTelemetryData(telemetry_1.tel_cmd.Data, telemetry_1.tel_key_SpeakerDeviceUsed, speaker, 0);\\r\\n };\\r\\n HdxMediaStream.prototype.registerStateChangeNotification = function (f) {\\r\\n this.stateChangeNotifcations.push(f);\\r\\n };\\r\\n HdxMediaStream.prototype.unregisterStateChangeNotification = function (f) {\\r\\n this.stateChangeNotifcations = this.stateChangeNotifcations.filter(function (item) {\\r\\n return item != f;\\r\\n });\\r\\n };\\r\\n HdxMediaStream.prototype.dispatchStateChangeNotifications = function () {\\r\\n this.stateChangeNotifcations.forEach(function (e) {\\r\\n e();\\r\\n });\\r\\n };\\r\\n return HdxMediaStream;\\r\\n}());\\r\\nexports.HdxMediaStream = HdxMediaStream;\\r\\n/*export*/ var hdxMediaStream = new HdxMediaStream();\\r\\nfunction getRedirector() {\\r\\n return hdxMediaStream;\\r\\n}\\r\\nexports.getRedirector = getRedirector;\\r\\n\\n\\n//# sourceURL=webpack://CitrixWebRTC/E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/hdxms.js?\");\n },\n \"../../../out/shim/sdk/int/sdk/icecandidate.js\":\n /*!**************************************************************************!*\\\r\n !*** E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/icecandidate.js ***!\r\n \\**************************************************************************/\n\n /*! no static exports found */\n function outShimSdkIntSdkIcecandidateJs(module, exports, __webpack_require__) {\n\n eval('\\r\\nvar __extends = (this && this.__extends) || (function () {\\r\\n var 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 return function (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\\nObject.defineProperty(exports, \"__esModule\", { value: true });\\r\\nvar proxyobject_1 = __webpack_require__(/*! ./proxyobject */ \"../../../out/shim/sdk/int/sdk/proxyobject.js\");\\r\\nvar webrpcclassinfo_1 = __webpack_require__(/*! ./webrpcclassinfo */ \"../../../out/shim/sdk/int/sdk/webrpcclassinfo.js\");\\r\\nvar logger_1 = __webpack_require__(/*! ./logger */ \"../../../out/shim/sdk/int/sdk/logger.js\");\\r\\n//RTCIceCandidate wrapper\\r\\nvar IceCandidate = /** @class */ (function (_super) {\\r\\n __extends(IceCandidate, _super);\\r\\n function IceCandidate(parent, oid) {\\r\\n return _super.call(this, parent, webrpcclassinfo_1.class_id_t.RTCIceCandidate, oid, proxyobject_1.ProxyMode.Remote) || this;\\r\\n }\\r\\n Object.defineProperty(IceCandidate.prototype, \"candidate\", {\\r\\n get: function () {\\r\\n return this.candidate_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(IceCandidate.prototype, \"sdpMid\", {\\r\\n get: function () {\\r\\n return this.sdpMid_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(IceCandidate.prototype, \"sdpMLineIndex\", {\\r\\n get: function () {\\r\\n return this.sdpMLineIndex_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n IceCandidate.prototype.syncBarrier = function () {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + \\'.syncBarrier() called.\\');\\r\\n return new Promise(function (resolve, reject) {\\r\\n _this.waitUntilConnected(\\'IceCandidate.syncBarrier\\')\\r\\n .then(function () {\\r\\n return Promise.all([\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCIceCandidate_t.candidate, \"\"),\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCIceCandidate_t.sdpMid, \"\"),\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCIceCandidate_t.sdpMLineIndex, 0)\\r\\n ]);\\r\\n })\\r\\n .then(function (results) {\\r\\n var _a;\\r\\n _a = results.map(function (result) { return _this.param0(result); }), _this.candidate_ = _a[0], _this.sdpMid_ = _a[1], _this.sdpMLineIndex_ = _a[2];\\r\\n resolve(_this);\\r\\n })\\r\\n .catch(function () { reject(); });\\r\\n });\\r\\n };\\r\\n return IceCandidate;\\r\\n}(proxyobject_1.ProxyObject));\\r\\nexports.IceCandidate = IceCandidate;\\r\\n//RTCIceCandidatePair wrapper\\r\\nvar IceCandidatePair = /** @class */ (function (_super) {\\r\\n __extends(IceCandidatePair, _super);\\r\\n function IceCandidatePair(parent, oid) {\\r\\n return _super.call(this, parent, webrpcclassinfo_1.class_id_t.RTCIceCandidatePair, oid, proxyobject_1.ProxyMode.Remote) || this;\\r\\n }\\r\\n Object.defineProperty(IceCandidatePair.prototype, \"local\", {\\r\\n get: function () {\\r\\n return this.local_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(IceCandidatePair.prototype, \"remote\", {\\r\\n get: function () {\\r\\n return this.remote_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n IceCandidatePair.prototype.syncBarrier = function () {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + \\'.syncBarrier() called.\\');\\r\\n return new Promise(function (resolve, reject) {\\r\\n _this.waitUntilConnected(\\'IceCandidatePair.syncBarrier\\')\\r\\n .then(function () {\\r\\n return Promise.all([\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCIceCandidatePair_t.local, {}),\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCIceCandidatePair_t.remote, {}),\\r\\n ]);\\r\\n })\\r\\n .then(function (results) {\\r\\n var _a;\\r\\n _a = results.map(function (result) { return _this.param0(result); }), _this.local_ = _a[0], _this.remote_ = _a[1];\\r\\n resolve(_this);\\r\\n })\\r\\n .catch(function () { reject(); });\\r\\n });\\r\\n };\\r\\n return IceCandidatePair;\\r\\n}(proxyobject_1.ProxyObject));\\r\\nexports.IceCandidatePair = IceCandidatePair;\\r\\n\\n\\n//# sourceURL=webpack://CitrixWebRTC/E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/icecandidate.js?');\n },\n \"../../../out/shim/sdk/int/sdk/logger.js\":\n /*!********************************************************************!*\\\r\n !*** E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/logger.js ***!\r\n \\********************************************************************/\n\n /*! no static exports found */\n function outShimSdkIntSdkLoggerJs(module, exports, __webpack_require__) {\n\n eval(\"\\r\\nObject.defineProperty(exports, \\\"__esModule\\\", { value: true });\\r\\nvar Logger = /** @class */ (function () {\\r\\n function Logger(tag) {\\r\\n this.tracing = false;\\r\\n this.mslogger_ = undefined;\\r\\n this.tag = tag;\\r\\n this.enabled = true;\\r\\n }\\r\\n Logger.prototype.setMSLogger = function (mslogger) {\\r\\n this.mslogger_ = mslogger;\\r\\n };\\r\\n Logger.prototype.log = function () {\\r\\n var args = [];\\r\\n for (var _i = 0; _i < arguments.length; _i++) {\\r\\n args[_i] = arguments[_i];\\r\\n }\\r\\n if (this.enabled) {\\r\\n if (this.mslogger_ != undefined) {\\r\\n this.mslogger_.info(this.tag + ' ' + args);\\r\\n }\\r\\n else {\\r\\n console.log(this.tag + ' ' + args);\\r\\n }\\r\\n }\\r\\n };\\r\\n Logger.prototype.trace = function () {\\r\\n var args = [];\\r\\n for (var _i = 0; _i < arguments.length; _i++) {\\r\\n args[_i] = arguments[_i];\\r\\n }\\r\\n if (this.tracing) {\\r\\n this.log.apply(this, args);\\r\\n }\\r\\n };\\r\\n return Logger;\\r\\n}());\\r\\nexports.Logger = Logger;\\r\\nexports.logger = new Logger('[HdxWebRTC.js]');\\r\\nexports.logger.enabled = true; // Enabled for now\\r\\n\\n\\n//# sourceURL=webpack://CitrixWebRTC/E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/logger.js?\");\n },\n \"../../../out/shim/sdk/int/sdk/peerconnection.js\":\n /*!****************************************************************************!*\\\r\n !*** E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/peerconnection.js ***!\r\n \\****************************************************************************/\n\n /*! no static exports found */\n function outShimSdkIntSdkPeerconnectionJs(module, exports, __webpack_require__) {\n\n eval(\"\\r\\nvar __extends = (this && this.__extends) || (function () {\\r\\n var 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 return function (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\\nvar __awaiter = (this && this.__awaiter) || function (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\\nvar __generator = (this && this.__generator) || function (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\\nObject.defineProperty(exports, \\\"__esModule\\\", { value: true });\\r\\nvar hdxms_1 = __webpack_require__(/*! ./hdxms */ \\\"../../../out/shim/sdk/int/sdk/hdxms.js\\\");\\r\\nvar remotemedia_1 = __webpack_require__(/*! ./remotemedia */ \\\"../../../out/shim/sdk/int/sdk/remotemedia.js\\\");\\r\\nvar rtpsender_1 = __webpack_require__(/*! ./rtpsender */ \\\"../../../out/shim/sdk/int/sdk/rtpsender.js\\\");\\r\\nvar proxyobject_1 = __webpack_require__(/*! ./proxyobject */ \\\"../../../out/shim/sdk/int/sdk/proxyobject.js\\\");\\r\\nvar icecandidate_1 = __webpack_require__(/*! ./icecandidate */ \\\"../../../out/shim/sdk/int/sdk/icecandidate.js\\\");\\r\\nvar rtptransceiver_1 = __webpack_require__(/*! ./rtptransceiver */ \\\"../../../out/shim/sdk/int/sdk/rtptransceiver.js\\\");\\r\\nvar webrpcclassinfo_1 = __webpack_require__(/*! ./webrpcclassinfo */ \\\"../../../out/shim/sdk/int/sdk/webrpcclassinfo.js\\\");\\r\\nvar logger_1 = __webpack_require__(/*! ./logger */ \\\"../../../out/shim/sdk/int/sdk/logger.js\\\");\\r\\nvar stats_1 = __webpack_require__(/*! ./stats */ \\\"../../../out/shim/sdk/int/sdk/stats.js\\\");\\r\\nvar telemetry_1 = __webpack_require__(/*! ./telemetry */ \\\"../../../out/shim/sdk/int/sdk/telemetry.js\\\");\\r\\nfunction ensure_config_defined(v) {\\r\\n if (v != undefined) {\\r\\n return v;\\r\\n }\\r\\n return {};\\r\\n}\\r\\n//RTCIceCandidateEvent wrapper\\r\\nvar IceCandidateEvent = /** @class */ (function (_super) {\\r\\n __extends(IceCandidateEvent, _super);\\r\\n //private url_: string;\\r\\n function IceCandidateEvent(parent, oid, target) {\\r\\n var _this = _super.call(this, parent, webrpcclassinfo_1.class_id_t.RTCIceCandidateEvent, oid, proxyobject_1.ProxyMode.Remote) || this;\\r\\n _this.target = target;\\r\\n _this.type = \\\"icecandidate\\\";\\r\\n return _this;\\r\\n }\\r\\n Object.defineProperty(IceCandidateEvent.prototype, \\\"candidate\\\", {\\r\\n get: function () {\\r\\n return this.candidate_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n /*\\r\\n public get url(): string {\\r\\n logger.log('IceCandidateEvent.url() called.');\\r\\n return this.url_;\\r\\n } */\\r\\n IceCandidateEvent.prototype.syncBarrier = function () {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.syncBarrier() called.');\\r\\n return new Promise(function (resolve, reject) {\\r\\n _this.waitUntilConnected(_this.user_friendly_id() + '.syncBarrier')\\r\\n .then(function () { return _this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCIceCandidateEvent_t.candidate, { \\\"oid\\\": 0 }); })\\r\\n .then(function (obj) {\\r\\n var reply = _this.param0(obj);\\r\\n if (reply['is_null'] === false) {\\r\\n var ice = new icecandidate_1.IceCandidate(_this, reply['oid']);\\r\\n return ice.syncBarrier();\\r\\n }\\r\\n return Promise.resolve(null);\\r\\n })\\r\\n .then(function (ice) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.onicecandidate: icecandidate available!');\\r\\n _this.candidate_ = ice;\\r\\n resolve(_this);\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.onicecandidate() failed.');\\r\\n reject();\\r\\n });\\r\\n });\\r\\n };\\r\\n return IceCandidateEvent;\\r\\n}(proxyobject_1.ProxyObject));\\r\\nexports.IceCandidateEvent = IceCandidateEvent;\\r\\nvar IceGatherer = /** @class */ (function () {\\r\\n function IceGatherer(pc) {\\r\\n this.state_ = \\\"new\\\";\\r\\n this.candidates_ = [];\\r\\n this.pc_ = pc;\\r\\n }\\r\\n IceGatherer.prototype.pushState = function (state) {\\r\\n logger_1.logger.log(this.pc_.user_friendly_id() + '.onicegatheringstatechange: new state is ' + state);\\r\\n this.state_ = state;\\r\\n if (this.state_ == \\\"gathering\\\") {\\r\\n this.candidates_ = [];\\r\\n this.postUpdate();\\r\\n }\\r\\n else {\\r\\n this.processRemaining();\\r\\n }\\r\\n };\\r\\n IceGatherer.prototype.addIceCandidate = function (ice_event) {\\r\\n var _this = this;\\r\\n // add it to the tracking list\\r\\n this.candidates_.push(ice_event);\\r\\n // begin the synchronization process\\r\\n ice_event.syncBarrier()\\r\\n .then(function (evt) {\\r\\n // object has been synchronized, update the local description before posting\\r\\n logger_1.logger.log(_this.pc_.user_friendly_id() + '.onicecandidate: icecandidate available!');\\r\\n return Promise.all([\\r\\n _this.pc_.updateLocalDescription(),\\r\\n Promise.resolve(evt)\\r\\n ]);\\r\\n })\\r\\n .then(function (results) {\\r\\n // local description updated, post the ice candidate now.\\r\\n _this.postIceCandidate(results[1]);\\r\\n });\\r\\n };\\r\\n IceGatherer.prototype.postIceCandidate = function (evt) {\\r\\n logger_1.logger.log(this.pc_.user_friendly_id() + '.onicecandidate: posting ice candidate now!');\\r\\n if (this.pc_.onicecandidate != null) {\\r\\n this.pc_.onicecandidate(evt);\\r\\n }\\r\\n else {\\r\\n logger_1.logger.log(this.pc_.user_friendly_id() + 'onicecandidate is NULL!!!');\\r\\n }\\r\\n //remove the ice candidate from the tracking list.\\r\\n this.candidates_.shift();\\r\\n this.processRemaining();\\r\\n };\\r\\n IceGatherer.prototype.postUpdate = function () {\\r\\n logger_1.logger.log(this.pc_.user_friendly_id() + '.onicegatheringstatechange: posting event now!');\\r\\n var new_evt = new PeerConnectionEvent('onicegatheringstatechange', this.pc_);\\r\\n this.pc_.onicegatheringstatechange(new_evt);\\r\\n };\\r\\n IceGatherer.prototype.processRemaining = function () {\\r\\n if (this.candidates_.length == 0 && this.state_ == \\\"complete\\\") {\\r\\n // Teams doesn't actually use the ice gathering state to decide when ice candidate gathering\\r\\n // is complete. They apparently rely on on getting a null ice candidate instead, which seems\\r\\n // to be another way to signal it. This fixes delay on incoming calls.\\r\\n this.pc_.onicecandidate({ candidate: null, target: this });\\r\\n this.postUpdate();\\r\\n }\\r\\n else {\\r\\n logger_1.logger.log(this.pc_.user_friendly_id() + '.onicecandidate: candidates remaining=[' + this.candidates_.map(function (ice) { return ice.object_id(); }) + '], state=' + this.state_);\\r\\n }\\r\\n };\\r\\n return IceGatherer;\\r\\n}());\\r\\n//RTCSessionDescription wrapper\\r\\nvar SessionDescription = /** @class */ (function (_super) {\\r\\n __extends(SessionDescription, _super);\\r\\n function SessionDescription(parent, oid, mode) {\\r\\n var args = [];\\r\\n for (var _i = 3; _i < arguments.length; _i++) {\\r\\n args[_i - 3] = arguments[_i];\\r\\n }\\r\\n return _super.apply(this, [parent, webrpcclassinfo_1.class_id_t.RTCSessionDescription, oid, mode, null].concat(args)) || this;\\r\\n }\\r\\n SessionDescription.prototype.toJSON = function () {\\r\\n return { \\\"type\\\": this.type_, \\\"sdp\\\": this.sdp_ };\\r\\n };\\r\\n Object.defineProperty(SessionDescription.prototype, \\\"sdp\\\", {\\r\\n get: function () {\\r\\n return this.sdp_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(SessionDescription.prototype, \\\"type\\\", {\\r\\n get: function () {\\r\\n return this.type_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n SessionDescription.prototype.syncBarrier = function () {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.syncBarrier() called.');\\r\\n return new Promise(function (resolve, reject) {\\r\\n _this.waitUntilConnected(_this.user_friendly_id() + '.syncBarrier')\\r\\n .then(function () {\\r\\n return Promise.all([\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCSessionDescription_t.type, 0),\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCSessionDescription_t.sdp, \\\"\\\")\\r\\n ]);\\r\\n })\\r\\n .then(function (results) {\\r\\n _this.type_ = _this.convertType(_this.param0(results[0]));\\r\\n _this.sdp_ = _this.param0(results[1]);\\r\\n resolve(_this);\\r\\n })\\r\\n .catch(function () { reject(); });\\r\\n });\\r\\n };\\r\\n SessionDescription.prototype.convertType = function (id) {\\r\\n if (id == 0) {\\r\\n return \\\"offer\\\";\\r\\n }\\r\\n else if (id == 1) {\\r\\n return \\\"pranswer\\\";\\r\\n }\\r\\n else {\\r\\n return \\\"answer\\\";\\r\\n }\\r\\n };\\r\\n SessionDescription.convertC2H = function (type) {\\r\\n if (type == \\\"offer\\\") {\\r\\n return 0;\\r\\n }\\r\\n else if (type == \\\"pranswer\\\") {\\r\\n return 1;\\r\\n }\\r\\n else {\\r\\n return 2;\\r\\n }\\r\\n };\\r\\n return SessionDescription;\\r\\n}(proxyobject_1.ProxyObject));\\r\\nexports.SessionDescription = SessionDescription;\\r\\n/**@nocollapse*/\\r\\nvar PeerConnectionEvent = /** @class */ (function () {\\r\\n function PeerConnectionEvent(type, obj) {\\r\\n this.type = type;\\r\\n this.target = obj;\\r\\n }\\r\\n return PeerConnectionEvent;\\r\\n}());\\r\\n/**@nocollapse*/\\r\\nvar TrackEvent = /** @class */ (function () {\\r\\n function TrackEvent() {\\r\\n }\\r\\n return TrackEvent;\\r\\n}());\\r\\n/**@nocollapse*/\\r\\nvar CallStatus = /** @class */ (function () {\\r\\n function CallStatus(local, remote) {\\r\\n this.local = local;\\r\\n this.remote = remote;\\r\\n }\\r\\n Object.defineProperty(CallStatus.prototype, \\\"active\\\", {\\r\\n get: function () {\\r\\n var rv = false;\\r\\n if (this.local == true || this.remote == true) {\\r\\n rv = true;\\r\\n }\\r\\n return rv;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n return CallStatus;\\r\\n}());\\r\\n/**@nocollapse*/\\r\\nvar PeerConnection = /** @class */ (function (_super) {\\r\\n __extends(PeerConnection, _super);\\r\\n /// construct a new peer connection object\\r\\n function PeerConnection(configuration) {\\r\\n var _this = _super.call(this, null, webrpcclassinfo_1.class_id_t.RTCPeerConnection, 0, proxyobject_1.ProxyMode.Local, null, ensure_config_defined(configuration), {}) || this;\\r\\n _this.timeerstarted_ = false;\\r\\n _this.firsttimeremoteoffer_ = false;\\r\\n _this.firststable_ = false;\\r\\n _this.firsttimelocaloffer_ = false;\\r\\n _this.audiocall_ = new CallStatus(false, false);\\r\\n _this.videocall_ = new CallStatus(false, false);\\r\\n _this.screensharingcall_ = new CallStatus(false, false);\\r\\n _this.conferencecall_ = false;\\r\\n _this.incomingcall_ = false;\\r\\n _this.outgoingcall_ = false;\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.constructor');\\r\\n _this.localStreams = [];\\r\\n _this.remoteStreams = [];\\r\\n _this.onaddstream_ = null;\\r\\n _this.signalingState_ = \\\"stable\\\";\\r\\n _this.iceConnectionState_ = \\\"new\\\";\\r\\n _this.iceGatheringState_ = \\\"new\\\";\\r\\n _this.iceQ_ = new IceGatherer(_this);\\r\\n _this.receivers_ = [];\\r\\n _this.senders_ = [];\\r\\n _this.registerStateChangeNotification(_this.onStateChange);\\r\\n return _this;\\r\\n }\\r\\n PeerConnection.prototype.onStateChange = function () {\\r\\n var evt = new PeerConnectionEvent('iceconnectionstatechange', this);\\r\\n if (this.oniceconnectionstatechange_) {\\r\\n this.oniceconnectionstatechange_(evt); // not sure if this is the best way to post the event.\\r\\n }\\r\\n };\\r\\n PeerConnection.prototype.addIceCandidate = function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.addIceCandidate');\\r\\n logger_1.logger.log(arguments);\\r\\n };\\r\\n Object.defineProperty(PeerConnection.prototype, \\\"onicecandidate\\\", {\\r\\n get: function () {\\r\\n return this.onicecandidate_;\\r\\n },\\r\\n set: function (cb) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.set_onicecandidate() called.');\\r\\n this.onicecandidate_ = cb;\\r\\n this.waitUntilConnected(this.user_friendly_id() + '.onicecandidate')\\r\\n .then(function () {\\r\\n var callbacks = _this.registerCallbacks(false, _this.isNullCallback(cb), webrpcclassinfo_1.method_id_RTCPeerConnection_t.onicecandidate);\\r\\n callbacks.then(function (obj) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.onicecandidate callback received!!!');\\r\\n var ice_event = new IceCandidateEvent(_this, _this.param0(obj)['oid'], _this);\\r\\n if (_this.iceQ_ != null) {\\r\\n _this.iceQ_.addIceCandidate(ice_event);\\r\\n }\\r\\n });\\r\\n return _this.remoteInvoke(true, webrpcclassinfo_1.method_id_RTCPeerConnection_t.onicecandidate, callbacks['success']);\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.set_onicecandidate() failed.');\\r\\n });\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n //*****************************\\r\\n //native side enum value:\\r\\n //enum class IceConnectionState {\\r\\n // New,\\r\\n // Checking,\\r\\n // Connected,\\r\\n // Completed,\\r\\n // Failed,\\r\\n // Disconnected,\\r\\n // Closed,\\r\\n // Max\\r\\n //};\\r\\n //*****************************\\r\\n //JS side enum value\\r\\n //enum RTCIceConnectionState {\\r\\n //\\\"new\\\",\\r\\n //\\\"checking\\\",\\r\\n //\\\"connected\\\",\\r\\n //\\\"completed\\\",\\r\\n //\\\"disconnected\\\",\\r\\n //\\\"failed\\\",\\r\\n //\\\"closed\\\"\\r\\n //};\\r\\n PeerConnection.prototype.convertIceConnectionState = function (id) {\\r\\n if (id == 0) {\\r\\n return \\\"new\\\";\\r\\n }\\r\\n else if (id == 1) {\\r\\n return \\\"checking\\\";\\r\\n }\\r\\n else if (id == 2) {\\r\\n return \\\"connected\\\";\\r\\n }\\r\\n else if (id == 3) {\\r\\n return \\\"completed\\\";\\r\\n }\\r\\n else if (id == 4) {\\r\\n return \\\"failed\\\";\\r\\n }\\r\\n else if (id == 5) {\\r\\n return \\\"disconnected\\\";\\r\\n }\\r\\n else if (id == 6) {\\r\\n return \\\"closed\\\";\\r\\n }\\r\\n return \\\"closed\\\";\\r\\n };\\r\\n Object.defineProperty(PeerConnection.prototype, \\\"oniceconnectionstatechange\\\", {\\r\\n get: function () {\\r\\n return this.oniceconnectionstatechange_;\\r\\n },\\r\\n set: function (cb) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.set_oniceconnectionstatechange() called.');\\r\\n this.oniceconnectionstatechange_ = cb;\\r\\n this.waitUntilConnected(this.user_friendly_id() + '.oniceconnectionstatechange')\\r\\n .then(function () {\\r\\n var callbacks = _this.registerCallbacks(false, _this.isNullCallback(cb), webrpcclassinfo_1.method_id_RTCPeerConnection_t.oniceconnectionstatechange);\\r\\n callbacks.then(function (obj) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.oniceconnectionstatechange(): success callback received!!!');\\r\\n // when we get the callback, we just update the property and post a notification.\\r\\n _this.iceConnectionState_ = _this.convertIceConnectionState(_this.param0(obj)); // return val is enum (int) so convert to appropriate string value\\r\\n var evt = new PeerConnectionEvent('iceconnectionstatechange', _this);\\r\\n _this.oniceconnectionstatechange_(evt); // not sure if this is the best way to post the event.\\r\\n });\\r\\n return _this.remoteInvoke(true, webrpcclassinfo_1.method_id_RTCPeerConnection_t.oniceconnectionstatechange, callbacks.success);\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.set_oniceconnectionstatechange() failed.');\\r\\n });\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(PeerConnection.prototype, \\\"iceConnectionState\\\", {\\r\\n // iceConnectionState\\r\\n get: function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.get_iceConnectionState() called, value = ' + this.iceConnectionState_);\\r\\n if (this.isRedirected()) {\\r\\n return this.iceConnectionState_;\\r\\n }\\r\\n else {\\r\\n return \\\"failed\\\";\\r\\n }\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n //*****************************\\r\\n //native side enum value:\\r\\n //enum class IceGatheringState {\\r\\n // New,\\r\\n // Gathering,\\r\\n // Complete\\r\\n //};\\r\\n //*****************************\\r\\n //JS side enum value \\r\\n //enum RTCIceGatheringState {\\r\\n //\\\"new\\\",\\r\\n //\\\"gathering\\\",\\r\\n //\\\"complete\\\"\\r\\n //};\\r\\n PeerConnection.prototype.convertIceGatheringState = function (id) {\\r\\n if (id == 0) {\\r\\n return \\\"new\\\";\\r\\n }\\r\\n else if (id == 1) {\\r\\n return \\\"gathering\\\";\\r\\n }\\r\\n else if (id == 2) {\\r\\n return \\\"complete\\\";\\r\\n }\\r\\n return \\\"complete\\\";\\r\\n };\\r\\n Object.defineProperty(PeerConnection.prototype, \\\"onicegatheringstatechange\\\", {\\r\\n get: function () {\\r\\n return this.onicegatheringstatechange_;\\r\\n },\\r\\n set: function (cb) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.set_onicegatheringstatechange() called.');\\r\\n this.onicegatheringstatechange_ = cb;\\r\\n this.waitUntilConnected(this.user_friendly_id() + '.onicegatheringstatechange')\\r\\n .then(function () {\\r\\n var callbacks = _this.registerCallbacks(false, _this.isNullCallback(cb), webrpcclassinfo_1.method_id_RTCPeerConnection_t.onicegatheringstatechange);\\r\\n callbacks.then(function (obj) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.onicegatheringstatechange(): callback received!!!');\\r\\n // when we get the callback, we just update the property and post a notification.\\r\\n _this.iceGatheringState_ = _this.convertIceGatheringState(_this.param0(obj)); // return val is enum (int) so convert to appropriate string value\\r\\n if (_this.iceQ_ != null) {\\r\\n _this.iceQ_.pushState(_this.iceGatheringState_);\\r\\n }\\r\\n });\\r\\n return _this.remoteInvoke(true, webrpcclassinfo_1.method_id_RTCPeerConnection_t.onicegatheringstatechange, callbacks.success);\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.set_onicegatheringstatechange() failed.');\\r\\n });\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(PeerConnection.prototype, \\\"iceGatheringState\\\", {\\r\\n // iceGatheringState\\r\\n get: function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.get_iceGatheringState() called, value = ' + this.iceGatheringState_);\\r\\n return this.iceGatheringState_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n //*****************************\\r\\n //native side enum value:\\r\\n //enum class SignalingState {\\r\\n // Stable,\\r\\n // HaveLocalOffer,\\r\\n // HaveLocalPrAnswer,\\r\\n // HaveRemoteOffer,\\r\\n // HaveRemotePrAnswer,\\r\\n // Closed\\r\\n //};\\r\\n //*****************************\\r\\n //JS side enum value\\r\\n //enum RTCSignalingState {\\r\\n // \\\"stable\\\",\\r\\n // \\\"have-local-offer\\\",\\r\\n // \\\"have-remote-offer\\\",\\r\\n // \\\"have-local-pranswer\\\",\\r\\n // \\\"have-remote-pranswer\\\",\\r\\n // \\\"closed\\\"\\r\\n //};\\r\\n PeerConnection.prototype.convertSignalState = function (id) {\\r\\n if (id == 0) {\\r\\n return \\\"stable\\\";\\r\\n }\\r\\n else if (id == 1) {\\r\\n return \\\"have-local-offer\\\";\\r\\n }\\r\\n else if (id == 2) {\\r\\n return \\\"have-local-pranswer\\\";\\r\\n }\\r\\n else if (id == 3) {\\r\\n return \\\"have-remote-offer\\\";\\r\\n }\\r\\n else if (id == 4) {\\r\\n return \\\"have-remote-pranswer\\\";\\r\\n }\\r\\n else if (id == 5) {\\r\\n return \\\"closed\\\";\\r\\n }\\r\\n return \\\"closed\\\";\\r\\n };\\r\\n PeerConnection.prototype.TelemtryReadings_ = function () {\\r\\n if ((this.signalingState_ == \\\"have-local-offer\\\") && (this.firsttimelocaloffer_ == false) && (this.firsttimeremoteoffer_ == false)) {\\r\\n this.outgoingcallstart_ = (new Date()).getTime();\\r\\n if (this.outgoingcall_ == false) {\\r\\n //Perf: we are about to start outgoing call\\r\\n this.SendTelemetryData(telemetry_1.tel_key_PerfCallState, telemetry_1.tel_CallState.active, 1);\\r\\n this.SendTelemetryData(telemetry_1.tel_key_PerfCallDirection, telemetry_1.tel_CallDirection.outgoing, 1);\\r\\n this.outgoingcall_ = true;\\r\\n }\\r\\n this.firsttimelocaloffer_ = true;\\r\\n }\\r\\n if ((this.signalingState_ == \\\"have-remote-offer\\\") && (this.firsttimeremoteoffer_ == false) && (this.firsttimelocaloffer_ == false)) {\\r\\n this.incomingcallstart_ = (new Date()).getTime();\\r\\n if (this.incomingcall_ == false) {\\r\\n //Perf: we are about to start incoming call\\r\\n this.SendTelemetryData(telemetry_1.tel_key_PerfCallState, telemetry_1.tel_CallState.active, 1);\\r\\n this.SendTelemetryData(telemetry_1.tel_key_PerfCallDirection, telemetry_1.tel_CallDirection.incoming, 1);\\r\\n this.incomingcall_ = true;\\r\\n }\\r\\n this.firsttimeremoteoffer_ = true;\\r\\n }\\r\\n if ((this.signalingState_ == \\\"stable\\\") && (this.firststable_ == false)) {\\r\\n this.callstartTime_ = (new Date()).getTime();\\r\\n this.timeerstarted_ = true;\\r\\n this.firststable_ = true;\\r\\n }\\r\\n if (this.signalingState_ == \\\"stable\\\") {\\r\\n for (var _i = 0, _a = this.localStreams; _i < _a.length; _i++) {\\r\\n var s = _a[_i];\\r\\n var localaud = s.getAudioTracks();\\r\\n if (localaud.length >= 1) {\\r\\n if (this.audiocall_.local == false) {\\r\\n //Perf: audio channel is active\\r\\n this.SendTelemetryData(telemetry_1.tel_key_PerfCallType, telemetry_1.tel_CallType.audio, 1);\\r\\n this.audiocall_.local = true;\\r\\n //console.log(\\\"local Audio call\\\");\\r\\n }\\r\\n }\\r\\n var localvid = s.getVideoTracks();\\r\\n if (localvid.length >= 1) {\\r\\n for (var _b = 0, localvid_1 = localvid; _b < localvid_1.length; _b++) {\\r\\n var track = localvid_1[_b];\\r\\n var deviceid = track.getSettings().deviceId;\\r\\n var screensharingdeviceid = \\\"display\\\";\\r\\n var outscreensharing = deviceid.includes(screensharingdeviceid);\\r\\n if (outscreensharing == true) {\\r\\n if (this.screensharingcall_.local == false) {\\r\\n //Perf: conference is active\\r\\n this.SendTelemetryData(telemetry_1.tel_key_PerfCallType, telemetry_1.tel_CallType.dshare, 1);\\r\\n this.screensharingcall_.local = true;\\r\\n // console.log(\\\"Outgoing Desktop ScreenSharing\\\");\\r\\n }\\r\\n }\\r\\n else {\\r\\n if (this.videocall_.local == false) {\\r\\n //Perf: video channel is active\\r\\n this.SendTelemetryData(telemetry_1.tel_key_PerfCallType, telemetry_1.tel_CallType.video, 1);\\r\\n this.videocall_.local = true;\\r\\n // console.log(\\\"local Video Call\\\");\\r\\n }\\r\\n }\\r\\n }\\r\\n }\\r\\n }\\r\\n for (var _c = 0, _d = this.remoteStreams; _c < _d.length; _c++) {\\r\\n var track = _d[_c];\\r\\n var remoteaud = track.getAudioTracks();\\r\\n if (remoteaud.length >= 1) {\\r\\n if (this.audiocall_.remote == false) {\\r\\n //Perf: audio channel is active\\r\\n this.SendTelemetryData(telemetry_1.tel_key_PerfCallType, telemetry_1.tel_CallType.audio, 1);\\r\\n this.audiocall_.remote = true;\\r\\n //console.log(\\\"remote Audio call\\\");\\r\\n }\\r\\n }\\r\\n var remotevid = track.getVideoTracks();\\r\\n if (remotevid.length >= 1) {\\r\\n for (var _e = 0, remotevid_1 = remotevid; _e < remotevid_1.length; _e++) {\\r\\n var track_1 = remotevid_1[_e];\\r\\n var id = track_1.id;\\r\\n var screensharingid = \\\"applicationsharingVideo\\\";\\r\\n var inscreensharing = id.includes(screensharingid);\\r\\n if (inscreensharing == true) {\\r\\n if (this.screensharingcall_.remote == false) {\\r\\n //Perf: conference is active\\r\\n this.SendTelemetryData(telemetry_1.tel_key_PerfCallType, telemetry_1.tel_CallType.dshare, 1);\\r\\n this.screensharingcall_.remote = true;\\r\\n //console.log(\\\"Incoming Desktop ScreenSharing\\\");\\r\\n }\\r\\n }\\r\\n else {\\r\\n if (this.videocall_.remote == false) {\\r\\n //Perf: video channel is active\\r\\n this.SendTelemetryData(telemetry_1.tel_key_PerfCallType, telemetry_1.tel_CallType.video, 1);\\r\\n this.videocall_.remote = true;\\r\\n // console.log(\\\"remote Video Call\\\");\\r\\n }\\r\\n }\\r\\n }\\r\\n }\\r\\n }\\r\\n var conferncecall = this.getReceivers();\\r\\n if (conferncecall.length > 2) {\\r\\n if (this.conferencecall_ == false) {\\r\\n //Perf: conference is active\\r\\n this.SendTelemetryData(telemetry_1.tel_key_PerfCallType, telemetry_1.tel_CallType.multi, 1);\\r\\n this.conferencecall_ = true;\\r\\n }\\r\\n }\\r\\n }\\r\\n };\\r\\n Object.defineProperty(PeerConnection.prototype, \\\"onsignalingstatechange\\\", {\\r\\n set: function (f) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.set_onsignalingstatechange() called.');\\r\\n this.onsignalingstatechange_ = f;\\r\\n this.waitUntilConnected(this.user_friendly_id() + '.onsignalingstatechanged')\\r\\n .then(function () {\\r\\n var callbacks = _this.registerCallbacks(false, _this.isNullCallback(f), webrpcclassinfo_1.method_id_RTCPeerConnection_t.onsignalingstatechange);\\r\\n callbacks.then(function (obj) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.onsignalingstatechange(): callback received!!!');\\r\\n // when we get the callback, we just update the property and post a notification.\\r\\n _this.signalingState_ = _this.convertSignalState(_this.param0(obj)); // return val is enum (int) so convert to appropriate string value\\r\\n var evt = new PeerConnectionEvent('onsignalingstatechange', _this);\\r\\n _this.onsignalingstatechange_(evt); // not sure if this is the best way to post the event.\\r\\n _this.TelemtryReadings_();\\r\\n });\\r\\n return _this.remoteInvoke(true, webrpcclassinfo_1.method_id_RTCPeerConnection_t.onsignalingstatechange, callbacks.success);\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.set_onsignalingstatechange(): failed.');\\r\\n });\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(PeerConnection.prototype, \\\"onsignalingstatechanged\\\", {\\r\\n get: function () {\\r\\n return this.onsignalingstatechange_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(PeerConnection.prototype, \\\"ontrack\\\", {\\r\\n get: function () {\\r\\n return this.ontrack_;\\r\\n },\\r\\n set: function (f) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.set_ontrack() called.');\\r\\n this.ontrack_ = f;\\r\\n this.waitUntilConnected(this.user_friendly_id() + '.ontrack')\\r\\n .then(function () {\\r\\n var callbacks = _this.registerCallbacks(false, _this.isNullCallback(f), webrpcclassinfo_1.method_id_RTCPeerConnection_t.ontrack);\\r\\n callbacks.then(function (obj) { return __awaiter(_this, void 0, void 0, function () {\\r\\n var track_event, receiver, remote_streams, _loop_1, this_1, _i, _a, s, evt;\\r\\n return __generator(this, function (_b) {\\r\\n switch (_b.label) {\\r\\n case 0:\\r\\n logger_1.logger.log(this.user_friendly_id() + '.ontrack(): callback received!!!');\\r\\n track_event = this.param0(obj);\\r\\n receiver = this.receivers_.find(function (r) { return (track_event.receiver['is_null'] === false && r.object_id() === track_event.receiver['oid']); });\\r\\n if (!(receiver === undefined)) return [3 /*break*/, 2];\\r\\n receiver = new rtpsender_1.RtpReceiver(this, track_event.receiver['oid']);\\r\\n return [4 /*yield*/, receiver.syncBarrier()];\\r\\n case 1:\\r\\n _b.sent();\\r\\n this.receivers_.push(receiver);\\r\\n _b.label = 2;\\r\\n case 2:\\r\\n if (!(track_event.transceiver['is_null'] === false && (this.transceiver_ === null || this.transceiver_ === undefined || this.transceiver_.object_id() != track_event.transceiver['oid']))) return [3 /*break*/, 4];\\r\\n this.transceiver_ = new rtptransceiver_1.RtpTransceiver(this, track_event.transceiver['oid']);\\r\\n return [4 /*yield*/, this.transceiver_.syncBarrier()];\\r\\n case 3:\\r\\n _b.sent();\\r\\n _b.label = 4;\\r\\n case 4:\\r\\n remote_streams = [];\\r\\n _loop_1 = function (s) {\\r\\n var stream;\\r\\n return __generator(this, function (_a) {\\r\\n switch (_a.label) {\\r\\n case 0:\\r\\n stream = this_1.remoteStreams.find(function (r) { return (s['is_null'] === false && r.object_id() === s['oid']); });\\r\\n if (!(stream === undefined)) return [3 /*break*/, 2];\\r\\n stream = new remotemedia_1.RemoteStream(this_1, s['oid']);\\r\\n return [4 /*yield*/, stream.syncBarrier()];\\r\\n case 1:\\r\\n _a.sent();\\r\\n _a.label = 2;\\r\\n case 2:\\r\\n remote_streams.push(stream);\\r\\n return [2 /*return*/];\\r\\n }\\r\\n });\\r\\n };\\r\\n this_1 = this;\\r\\n _i = 0, _a = track_event.streams;\\r\\n _b.label = 5;\\r\\n case 5:\\r\\n if (!(_i < _a.length)) return [3 /*break*/, 8];\\r\\n s = _a[_i];\\r\\n return [5 /*yield**/, _loop_1(s)];\\r\\n case 6:\\r\\n _b.sent();\\r\\n _b.label = 7;\\r\\n case 7:\\r\\n _i++;\\r\\n return [3 /*break*/, 5];\\r\\n case 8:\\r\\n this.remoteStreams = remote_streams;\\r\\n evt = new TrackEvent();\\r\\n evt.receiver = receiver;\\r\\n evt.streams = this.remoteStreams;\\r\\n evt.transceiver = this.transceiver_;\\r\\n evt.track = receiver.track;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.ontrack(): notified!!!');\\r\\n this.ontrack_(evt);\\r\\n return [2 /*return*/];\\r\\n }\\r\\n });\\r\\n }); });\\r\\n return _this.remoteInvoke(true, webrpcclassinfo_1.method_id_RTCPeerConnection_t.ontrack, callbacks.success);\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.set_ontrack(): failed.');\\r\\n });\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(PeerConnection.prototype, \\\"signalingState\\\", {\\r\\n // signalingState\\r\\n get: function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.get_signalingState() called, value = ' + this.signalingState_);\\r\\n return this.signalingState_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(PeerConnection.prototype, \\\"onnegotiationneeded\\\", {\\r\\n get: function () {\\r\\n return this.onnegotiationneeded_;\\r\\n },\\r\\n // on renegotiation needed event\\r\\n set: function (f) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.set_onnegotiationneeded() called.');\\r\\n this.onnegotiationneeded_ = f;\\r\\n this.waitUntilConnected(this.user_friendly_id() + '.onnegotiationneeded')\\r\\n .then(function () {\\r\\n var callbacks = _this.registerCallbacks(false, _this.isNullCallback(f), webrpcclassinfo_1.method_id_RTCPeerConnection_t.onnegotiationneeded);\\r\\n callbacks.then(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.onnegotiationneeded(): callback received!!!');\\r\\n var evt = new PeerConnectionEvent('negotiationneeded', _this);\\r\\n _this.onnegotiationneeded_(evt); // not sure if this is the best way to post the event.\\r\\n });\\r\\n return _this.remoteInvoke(true, webrpcclassinfo_1.method_id_RTCPeerConnection_t.onnegotiationneeded, callbacks['success']);\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.set_onnegotiationneeded(): failed.');\\r\\n });\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n PeerConnection.prototype.fix_constraints = function (constraints) {\\r\\n var av = { audio: true, video: true };\\r\\n if (constraints) {\\r\\n if (typeof constraints.video !== undefined)\\r\\n av['video'] = constraints['offerToReceiveVideo'];\\r\\n if (typeof constraints.audio !== undefined)\\r\\n av['audio'] = constraints['offerToReceiveAudio'];\\r\\n }\\r\\n return av;\\r\\n };\\r\\n PeerConnection.prototype.createOffer = function (successCallback, errorCallback, constraints) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.createOffer() called.', JSON.stringify(constraints));\\r\\n this.waitUntilConnected(this.user_friendly_id() + '.createOffer')\\r\\n .then(function () {\\r\\n var callbacks = _this.registerCallbacks(true, false, webrpcclassinfo_1.method_id_RTCPeerConnection_t.createOffer);\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCPeerConnection_t.createOffer, callbacks.success, callbacks.fail, _this.fix_constraints(constraints));\\r\\n return callbacks.prom();\\r\\n })\\r\\n .then(function (obj) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.createOffer(): success callback received!!!');\\r\\n var sdp = new SessionDescription(_this, _this.param0(obj)['oid'], proxyobject_1.ProxyMode.Remote);\\r\\n return sdp.syncBarrier();\\r\\n })\\r\\n .then(function (sdp) {\\r\\n if (successCallback) {\\r\\n successCallback(sdp);\\r\\n }\\r\\n })\\r\\n .catch(function (err) {\\r\\n if ((err) != undefined) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.createOffer() failed, with error' + _this.param0(err));\\r\\n if (errorCallback) {\\r\\n errorCallback(new DOMException('PeerConnection.createOffer() failed with error' + _this.param0(err), 'PeerConnection'));\\r\\n }\\r\\n }\\r\\n });\\r\\n };\\r\\n PeerConnection.prototype.createAnswer = function (successCallback, errorCallback, constraints) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.createAnswer() called.', JSON.stringify(constraints));\\r\\n this.waitUntilConnected(this.user_friendly_id() + '.createAnswer')\\r\\n .then(function () {\\r\\n var callbacks = _this.registerCallbacks(true, false, webrpcclassinfo_1.method_id_RTCPeerConnection_t.createAnswer);\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCPeerConnection_t.createAnswer, callbacks.success, callbacks.fail, _this.fix_constraints(constraints), {});\\r\\n return callbacks.prom();\\r\\n })\\r\\n .then(function (obj) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.createAnswer(): success callback received!!!');\\r\\n var sdp = new SessionDescription(_this, _this.param0(obj)['oid'], proxyobject_1.ProxyMode.Remote);\\r\\n return sdp.syncBarrier();\\r\\n })\\r\\n .then(function (sdp) {\\r\\n if (successCallback) {\\r\\n successCallback(sdp);\\r\\n }\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.createAnswer() failed.');\\r\\n if (errorCallback) {\\r\\n errorCallback('PeerConnection::createAnswer() failed.');\\r\\n }\\r\\n });\\r\\n };\\r\\n PeerConnection.prototype.updateLocalDescription = function () {\\r\\n return __awaiter(this, void 0, void 0, function () {\\r\\n var obj, sdp, updated_sdp;\\r\\n var _this = this;\\r\\n return __generator(this, function (_a) {\\r\\n switch (_a.label) {\\r\\n case 0:\\r\\n logger_1.logger.log(this.user_friendly_id() + '.updateLocalDescription() called.');\\r\\n return [4 /*yield*/, this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCPeerConnection_t.localDescription, { \\\"oid\\\": this.object_id() })];\\r\\n case 1:\\r\\n obj = _a.sent();\\r\\n sdp = new SessionDescription(this, this.param0(obj)['oid'], proxyobject_1.ProxyMode.Remote);\\r\\n return [4 /*yield*/, sdp.syncBarrier()\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + 'sdp.syncBarrier(): failed!');\\r\\n return null;\\r\\n })];\\r\\n case 2:\\r\\n updated_sdp = _a.sent();\\r\\n this.localDescription = updated_sdp;\\r\\n return [2 /*return*/];\\r\\n }\\r\\n });\\r\\n });\\r\\n };\\r\\n PeerConnection.prototype.setLocalDescription = function (description, successCallback, errorCallback) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.setLocalDescription() called.');\\r\\n // I was expecting description to be one our SessionDescription objects but it is really a RTCSessionDescription object.\\r\\n // Teams/Electron must have constructed a RTCSessionDescription object from what we returned.\\r\\n this.waitUntilConnected(this.user_friendly_id() + '.setLocalDescription')\\r\\n .then(function () {\\r\\n // create a new session description (RPC engine side) for the RTCSessionDescription\\r\\n var ldesc = new SessionDescription(_this, 0, proxyobject_1.ProxyMode.Local, { \\\"type\\\": SessionDescription.convertC2H(description.type), \\\"sdp\\\": description.sdp });\\r\\n // synchronize it\\r\\n return ldesc.syncBarrier();\\r\\n })\\r\\n .then(function (sdp) {\\r\\n var callbacks = _this.registerCallbacks(true, false, webrpcclassinfo_1.method_id_RTCPeerConnection_t.setLocalDescription);\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCPeerConnection_t.setLocalDescription, { \\\"oid\\\": sdp.object_id() }, callbacks.success, callbacks.fail);\\r\\n callbacks.prom().then(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.setLocalDescription(): success callback received!!!');\\r\\n _this.localDescription = sdp;\\r\\n if (successCallback) {\\r\\n successCallback();\\r\\n }\\r\\n //to support createDTMFSender\\r\\n //this.getSenders();\\r\\n });\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.setLocalDescription() failed.');\\r\\n if (errorCallback) {\\r\\n errorCallback('PeerConnection::setLocalDescription() failed.');\\r\\n }\\r\\n });\\r\\n };\\r\\n PeerConnection.prototype.setRemoteDescription = function (description, successCallback, errorCallback) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.setRemoteDescription() called.');\\r\\n this.waitUntilConnected(this.user_friendly_id() + '.setRemoteDescription')\\r\\n .then(function () {\\r\\n // create a new session description (RPC engine side) for the RTCSessionDescription\\r\\n var rdesc = new SessionDescription(_this, 0, proxyobject_1.ProxyMode.Local, { \\\"type\\\": SessionDescription.convertC2H(description.type), \\\"sdp\\\": description.sdp });\\r\\n // synchronize it\\r\\n return rdesc.syncBarrier();\\r\\n })\\r\\n .then(function (sdp) {\\r\\n var callbacks = _this.registerCallbacks(true, false, webrpcclassinfo_1.method_id_RTCPeerConnection_t.setRemoteDescription);\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCPeerConnection_t.setRemoteDescription, { \\\"oid\\\": sdp.object_id() }, callbacks.success, callbacks.fail);\\r\\n callbacks.prom().then(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.setRemoteDescription(): success callback received!!!');\\r\\n _this.remoteDescription = sdp;\\r\\n if (successCallback) {\\r\\n successCallback();\\r\\n }\\r\\n //to support createDTMFSender\\r\\n _this.getSenders();\\r\\n });\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.setRemoteDescription() failed.');\\r\\n if (errorCallback) {\\r\\n errorCallback('PeerConnection::setRemoteDescription() failed.');\\r\\n }\\r\\n });\\r\\n };\\r\\n // getLocalStreams: what do we do here?\\r\\n PeerConnection.prototype.getLocalStreams = function () {\\r\\n logger_1.logger.log('PeerConnection.getLocalStreams() called. [oid=' + this.object_id() + ']');\\r\\n for (var _i = 0, _a = this.localStreams; _i < _a.length; _i++) {\\r\\n var s = _a[_i];\\r\\n logger_1.logger.log(JSON.stringify(s));\\r\\n }\\r\\n return this.localStreams;\\r\\n };\\r\\n PeerConnection.prototype.getRemoteStreams = function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.getRemoteStreams() called.');\\r\\n for (var _i = 0, _a = this.remoteStreams; _i < _a.length; _i++) {\\r\\n var s = _a[_i];\\r\\n logger_1.logger.log(JSON.stringify(s));\\r\\n }\\r\\n return this.remoteStreams;\\r\\n };\\r\\n PeerConnection.prototype.addTrack = function (track, streams) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.addTrack() called: ' + JSON.stringify(streams));\\r\\n var streamids = [];\\r\\n if (streams instanceof remotemedia_1.RemoteStream) {\\r\\n streamids.push(streams.id);\\r\\n }\\r\\n else {\\r\\n for (var i = 0; i < streams.length; i++) {\\r\\n streamids.push(streams[i].id);\\r\\n }\\r\\n }\\r\\n var sender = new rtpsender_1.RtpSender(this, 0, proxyobject_1.ProxyMode.Pseudo); //create TS side pseudo object first\\r\\n this.senders_.push(sender);\\r\\n this.waitUntilConnected(this.user_friendly_id() + '.addTrack')\\r\\n .then(function () {\\r\\n return _this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCPeerConnection_t.addTrack, { \\\"oid\\\": track.object_id() }, streamids);\\r\\n })\\r\\n .then(function (obj) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.addTrack() success with oid: ' + _this.param0(obj)['oid']);\\r\\n sender.bind(_this, _this.param0(obj)['oid']);\\r\\n sender.syncBarrier()\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + 'sender.syncBarrier(): failed!');\\r\\n });\\r\\n })\\r\\n .catch(function (obj) {\\r\\n var err = _this.param0(obj);\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.addTrack() failed with error: ' + err);\\r\\n });\\r\\n logger_1.logger.log(this.user_friendly_id() + '.addTrack() returning: ' + sender);\\r\\n return sender;\\r\\n };\\r\\n PeerConnection.prototype.removeTrack = function (sender) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.removeTrack() called.');\\r\\n for (var i = 0; i < this.senders_.length; i++) {\\r\\n if (this.senders_[i] == sender) {\\r\\n this.senders_.splice(i, 1);\\r\\n }\\r\\n }\\r\\n this.waitUntilConnected(this.user_friendly_id() + '.removeTrack')\\r\\n .then(function () {\\r\\n return _this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCPeerConnection_t.removeTrack, { \\\"oid\\\": sender.object_id() });\\r\\n })\\r\\n .then(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.removeTrack() success.');\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.removeTrack() failed.');\\r\\n });\\r\\n };\\r\\n PeerConnection.prototype.addStream = function (stream /*, constraints: MediaConstraints*/) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.addStream() called: ' + JSON.stringify(stream));\\r\\n stream.dumpTrackInfo();\\r\\n this.localStreams.push(stream);\\r\\n this.waitUntilConnected(this.user_friendly_id() + '.addStream')\\r\\n .then(function () { return _this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCPeerConnection_t.addStream, { \\\"oid\\\": stream.object_id() }, {}); })\\r\\n .then(function () { logger_1.logger.log(_this.user_friendly_id() + '.addStream() success.'); })\\r\\n .catch(function () { logger_1.logger.log(_this.user_friendly_id() + '.addStream() failed.'); });\\r\\n };\\r\\n PeerConnection.prototype.removeStream = function (stream) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.removeStream() called: ' + JSON.stringify(stream));\\r\\n for (var i = 0; i < this.localStreams.length; i++) {\\r\\n if (this.localStreams[i] == stream) {\\r\\n this.localStreams.splice(i, 1);\\r\\n }\\r\\n }\\r\\n this.waitUntilConnected(this.user_friendly_id() + '.removeStream')\\r\\n .then(function () { return _this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCPeerConnection_t.removeStream, { \\\"oid\\\": stream.object_id() }); })\\r\\n .then(function () { logger_1.logger.log(_this.user_friendly_id() + '.removeStream() success.'); })\\r\\n .catch(function () { logger_1.logger.log(_this.user_friendly_id() + '.removeStream() failed.'); });\\r\\n };\\r\\n Object.defineProperty(PeerConnection.prototype, \\\"onaddstream\\\", {\\r\\n get: function () {\\r\\n return this.onaddstream_;\\r\\n },\\r\\n set: function (f) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.set_onaddstream() called.');\\r\\n this.onaddstream_ = f;\\r\\n this.waitUntilConnected(this.user_friendly_id() + '.onaddstream')\\r\\n .then(function () {\\r\\n var callbacks = _this.registerCallbacks(false, _this.isNullCallback(f), webrpcclassinfo_1.method_id_RTCPeerConnection_t.onaddstream);\\r\\n callbacks.then(function (obj) {\\r\\n var streamEvent = new remotemedia_1.RemoteStreamEvent(_this, _this.param0(obj)['oid']);\\r\\n streamEvent.syncBarrier().then(function (evt) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.onaddstream callback received!');\\r\\n var stream = _this.remoteStreams.find(function (r) { return (evt.stream != undefined && r.object_id() === evt.stream.object_id()); });\\r\\n if (stream === undefined) {\\r\\n _this.remoteStreams.push(evt.stream);\\r\\n }\\r\\n if (_this.onaddstream_ != undefined) {\\r\\n _this.onaddstream_(evt);\\r\\n }\\r\\n });\\r\\n });\\r\\n return _this.remoteInvoke(true, webrpcclassinfo_1.method_id_RTCPeerConnection_t.onaddstream, callbacks.success);\\r\\n })\\r\\n .catch(function () { logger_1.logger.log(_this.user_friendly_id() + '.set_onaddstream(): failed!'); });\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(PeerConnection.prototype, \\\"onremovestream\\\", {\\r\\n get: function () {\\r\\n return this.onremovestream_;\\r\\n },\\r\\n set: function (f) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.set_onremovestream() called.');\\r\\n this.onremovestream_ = f;\\r\\n this.waitUntilConnected(this.user_friendly_id() + '.onremovestream')\\r\\n .then(function () {\\r\\n var cbs = _this.registerCallbacks(false, _this.isNullCallback(f), webrpcclassinfo_1.method_id_RTCPeerConnection_t.onremovestream);\\r\\n cbs.then(function (obj) {\\r\\n var event = new remotemedia_1.RemoteStreamEvent(_this, _this.param0(obj)['oid']);\\r\\n event.syncBarrier().then(function (e) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.onremovestream callback received!');\\r\\n var idx = _this.remoteStreams.findIndex(function (item) { return item.id == e.stream.id; });\\r\\n if (idx >= 0) {\\r\\n _this.remoteStreams.splice(idx, 1);\\r\\n }\\r\\n _this.onremovestream_(e);\\r\\n });\\r\\n });\\r\\n return _this.remoteInvoke(true, webrpcclassinfo_1.method_id_RTCPeerConnection_t.onremovestream, cbs.success);\\r\\n })\\r\\n .catch(function () { logger_1.logger.log(_this.user_friendly_id() + '.set_onremovestream(): failed!'); });\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n //https://www.w3.org/TR/webrtc-stats/#dfn-stats-object\\r\\n //a collection of stats objects, which is dictionary type RTCStats\\r\\n PeerConnection.prototype.getStats = function (cb) {\\r\\n //too verbose\\r\\n //logger.log(this.user_friendly_id() + '.getStats');\\r\\n var self = this;\\r\\n return new Promise(function (resolve, reject) {\\r\\n if (!self.isRedirected()) {\\r\\n logger_1.logger.log(self.user_friendly_id() + '.getStats(): not in active redirection!');\\r\\n cb({});\\r\\n resolve();\\r\\n }\\r\\n else {\\r\\n self.waitUntilConnected(self.user_friendly_id() + '.getStats')\\r\\n .then(function () {\\r\\n var callback = self.registerCallbacks(true, false, webrpcclassinfo_1.method_id_RTCPeerConnection_t.getStats);\\r\\n callback.then(function (obj) {\\r\\n if (obj['params'] === undefined || obj['params'].length === 0) {\\r\\n return;\\r\\n }\\r\\n cb(stats_1.StatsReport.fromJSON(JSON.parse(obj['params'][0])));\\r\\n resolve();\\r\\n });\\r\\n return self.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCPeerConnection_t.getStats, callback.success);\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(self.user_friendly_id() + '.getStats(): failed!');\\r\\n reject();\\r\\n });\\r\\n }\\r\\n });\\r\\n };\\r\\n PeerConnection.prototype.SendTelemetryData = function (key_, value_, flags_) {\\r\\n hdxms_1.getRedirector().telemetry.SendTelemetryData(telemetry_1.tel_cmd.Data, key_, value_, flags_);\\r\\n };\\r\\n PeerConnection.prototype.MillisecondstoDisplayformat_ = function (time) {\\r\\n var day, hour, minute, seconds;\\r\\n seconds = Math.floor(time / 1000);\\r\\n minute = Math.floor(seconds / 60);\\r\\n seconds = seconds % 60;\\r\\n hour = Math.floor(minute / 60);\\r\\n minute = minute % 60;\\r\\n day = Math.floor(hour / 24);\\r\\n hour = hour % 24;\\r\\n logger_1.logger.log(day + ':' + hour + ':' + minute + ':' + seconds);\\r\\n };\\r\\n PeerConnection.prototype.CalculateCallDurationandType_ = function () {\\r\\n if (this.timeerstarted_ == true) {\\r\\n this.timeerstarted_ = false;\\r\\n this.callendTime_ = (new Date()).getTime();\\r\\n var timeelapsed = ((this.callendTime_) - (this.callstartTime_));\\r\\n this.MillisecondstoDisplayformat_(timeelapsed);\\r\\n timeelapsed = Math.round(timeelapsed / 1000);\\r\\n //call durations\\r\\n logger_1.logger.log(\\\"Call Duration \\\" + timeelapsed);\\r\\n if (this.conferencecall_ == true) {\\r\\n this.SendTelemetryData(telemetry_1.tel_key_ConferenceCallDuration, timeelapsed, 1);\\r\\n }\\r\\n //If Conference call, do not caluculate audio,video or screensharing\\r\\n else {\\r\\n if (this.audiocall_.active == true) {\\r\\n this.SendTelemetryData(telemetry_1.tel_key_AudioCallDuration, timeelapsed, 1);\\r\\n }\\r\\n if (this.videocall_.active == true) {\\r\\n this.SendTelemetryData(telemetry_1.tel_key_VideoCallDuration, timeelapsed, 1);\\r\\n }\\r\\n if (this.screensharingcall_.active == true) {\\r\\n this.SendTelemetryData(telemetry_1.tel_key_ScreensharingCallDuration, timeelapsed, 1);\\r\\n }\\r\\n }\\r\\n //call establishment time\\r\\n var callestablishtime;\\r\\n if (this.firsttimelocaloffer_ == true) {\\r\\n callestablishtime = ((this.callstartTime_) - (this.outgoingcallstart_));\\r\\n }\\r\\n if (this.firsttimeremoteoffer_ == true) {\\r\\n callestablishtime = ((this.callstartTime_) - (this.incomingcallstart_));\\r\\n }\\r\\n this.MillisecondstoDisplayformat_(callestablishtime);\\r\\n callestablishtime = Math.round(callestablishtime / 1000);\\r\\n logger_1.logger.log(\\\"Call Establish Time \\\" + callestablishtime);\\r\\n if (this.incomingcall_ == true) {\\r\\n this.SendTelemetryData(telemetry_1.tel_key_CallEstIncoming, callestablishtime, 1);\\r\\n }\\r\\n else if (this.outgoingcall_ == true) {\\r\\n this.SendTelemetryData(telemetry_1.tel_key_CallEstOutgoing, callestablishtime, 1);\\r\\n }\\r\\n //call state\\r\\n this.SendTelemetryData(telemetry_1.tel_key_PerfCallState, telemetry_1.tel_CallState.idle, 1);\\r\\n }\\r\\n };\\r\\n PeerConnection.prototype.close = function () {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.close() called.');\\r\\n this.CalculateCallDurationandType_();\\r\\n this.unregisterStateChangeNotification(this.onStateChange);\\r\\n // release event handlers in case the app doesn't.\\r\\n this.onaddstream = null;\\r\\n this.onicecandidate = null;\\r\\n this.oniceconnectionstatechange = null;\\r\\n this.onicegatheringstatechange = null;\\r\\n this.onsignalingstatechange = null;\\r\\n this.onnegotiationneeded = null;\\r\\n this.waitUntilConnected(this.user_friendly_id() + '.close')\\r\\n .then(function () { return _this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCPeerConnection_t.close); })\\r\\n .then(function () {\\r\\n _this.iceQ_ = null;\\r\\n _this.release();\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.close() success.');\\r\\n })\\r\\n .catch(function () {\\r\\n _this.iceQ_ = null;\\r\\n _this.release();\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.close() failed.');\\r\\n });\\r\\n };\\r\\n //this is old API that is deprecated in newer webrtc web api.\\r\\n //this method returns correct DtmfSender object, however,\\r\\n //DtmfSender::insertDtmf() fails later on when DTMF keys are pressed\\r\\n //therefore, should disable this API call from the shim\\r\\n PeerConnection.prototype.createDTMFSender = function (track) {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.createDTMFSender() called.');\\r\\n var rv;\\r\\n var senders = this.senders_;\\r\\n if (senders === undefined || senders.length === 0) {\\r\\n senders = this.getSenders();\\r\\n }\\r\\n if (senders != undefined) {\\r\\n var s = senders.find(function (r) { return r.track.id === track.id; });\\r\\n if (s != undefined) {\\r\\n logger_1.logger.log(this.user_friendly_id() + ' returning RtpSender with oid:' + s.object_id());\\r\\n rv = s.dtmf;\\r\\n }\\r\\n }\\r\\n return rv;\\r\\n };\\r\\n PeerConnection.prototype.getSenders = function () {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.getSenders() called.');\\r\\n //refresh senders from native side\\r\\n this.waitUntilConnected(this.user_friendly_id() + '.getSenders')\\r\\n .then(function () {\\r\\n return _this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCPeerConnection_t.getSenders, []);\\r\\n })\\r\\n .then(function (obj) {\\r\\n var promises = [];\\r\\n obj.params[0].forEach(function (item) {\\r\\n var sender = _this.senders_.find(function (r) { return r.object_id() === item.oid; });\\r\\n if (sender === undefined) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + ' adding a RtpSender with oid:' + item.oid);\\r\\n sender = new rtpsender_1.RtpSender(_this, item.oid, proxyobject_1.ProxyMode.Remote);\\r\\n promises.push(sender.syncBarrier());\\r\\n }\\r\\n else {\\r\\n promises.push(sender);\\r\\n }\\r\\n });\\r\\n return Promise.all(promises);\\r\\n })\\r\\n .then(function (senders) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.getSenders: returning senders with ids [' + senders.map(function (r) { return r.object_id(); }) + ']');\\r\\n //save new senders\\r\\n _this.senders_ = senders;\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.getSenders() didnt get response.');\\r\\n _this.senders_ = [];\\r\\n });\\r\\n return this.senders_;\\r\\n };\\r\\n //this function is syncronous call, therefore, it always return the value from previous remoteInvoke\\r\\n PeerConnection.prototype.getReceivers = function () {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.getReceivers() called.');\\r\\n this.waitUntilConnected(this.user_friendly_id() + '.getReceivers')\\r\\n .then(function () {\\r\\n return _this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCPeerConnection_t.getReceivers, []);\\r\\n })\\r\\n .then(function (obj) {\\r\\n var promises = [];\\r\\n obj.params[0].forEach(function (item) {\\r\\n var receiver = _this.receivers_.find(function (r) { return r.object_id() === item.oid; });\\r\\n if (receiver === undefined) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + ' adding a RtpReceiver with oid:' + item.oid);\\r\\n receiver = new rtpsender_1.RtpReceiver(_this, item.oid);\\r\\n promises.push(receiver.syncBarrier());\\r\\n }\\r\\n else {\\r\\n promises.push(receiver);\\r\\n }\\r\\n });\\r\\n return Promise.all(promises);\\r\\n })\\r\\n .then(function (receivers) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.getReceivers: returning receiver with ids [' + receivers.map(function (r) { return r.object_id(); }) + ']');\\r\\n //note: commenting out the following explicit memory release, however, \\r\\n //activate if this causes too big memory impact\\r\\n //release receivers that are no longer on the client\\r\\n /*this.receivers_.forEach(item => {\\r\\n let receiver = receivers.find(r => r.object_id() === item.object_id());\\r\\n if (receiver === undefined) {\\r\\n item.release();\\r\\n }\\r\\n });*/\\r\\n //save new receivers\\r\\n _this.receivers_ = receivers;\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.getReceivers() didnt get response.');\\r\\n _this.receivers_ = [];\\r\\n });\\r\\n return this.receivers_;\\r\\n };\\r\\n return PeerConnection;\\r\\n}(proxyobject_1.ProxyObject));\\r\\nexports.PeerConnection = PeerConnection;\\r\\n\\n\\n//# sourceURL=webpack://CitrixWebRTC/E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/peerconnection.js?\");\n },\n \"../../../out/shim/sdk/int/sdk/proxyobject.js\":\n /*!*************************************************************************!*\\\r\n !*** E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/proxyobject.js ***!\r\n \\*************************************************************************/\n\n /*! no static exports found */\n function outShimSdkIntSdkProxyobjectJs(module, exports, __webpack_require__) {\n\n eval(\"\\r\\nObject.defineProperty(exports, \\\"__esModule\\\", { value: true });\\r\\nvar hdxms_1 = __webpack_require__(/*! ./hdxms */ \\\"../../../out/shim/sdk/int/sdk/hdxms.js\\\");\\r\\nvar logger_1 = __webpack_require__(/*! ./logger */ \\\"../../../out/shim/sdk/int/sdk/logger.js\\\");\\r\\nvar wsjsonutil_1 = __webpack_require__(/*! ./wsjsonutil */ \\\"../../../out/shim/sdk/int/sdk/wsjsonutil.js\\\");\\r\\nvar garbagecollector_1 = __webpack_require__(/*! ./garbagecollector */ \\\"../../../out/shim/sdk/int/sdk/garbagecollector.js\\\");\\r\\nvar webrpcclassinfo_1 = __webpack_require__(/*! ./webrpcclassinfo */ \\\"../../../out/shim/sdk/int/sdk/webrpcclassinfo.js\\\");\\r\\nvar deferred_action = /** @class */ (function () {\\r\\n function deferred_action(resolve, reject, name) {\\r\\n this.resolve = resolve;\\r\\n this.reject = reject;\\r\\n this.name = name;\\r\\n }\\r\\n deferred_action.prototype.post = function (success) {\\r\\n if (success == true) {\\r\\n logger_1.logger.log('deferred_action.post(): resolving \\\"' + this.name + '\\\"');\\r\\n this.resolve();\\r\\n }\\r\\n else {\\r\\n logger_1.logger.log('deferred_action.post(): rejecting \\\"' + this.name + '\\\"');\\r\\n this.reject();\\r\\n }\\r\\n };\\r\\n return deferred_action;\\r\\n}());\\r\\nexports.deferred_action = deferred_action;\\r\\nvar rpc_callback = /** @class */ (function () {\\r\\n function rpc_callback(id, is_null) {\\r\\n this.id = id;\\r\\n this.is_null = is_null;\\r\\n }\\r\\n return rpc_callback;\\r\\n}());\\r\\nexports.rpc_callback = rpc_callback;\\r\\nvar callback = /** @class */ (function () {\\r\\n function callback(id, isNull, oneShot) {\\r\\n this.success = new rpc_callback(id << 16, isNull);\\r\\n this.fail = new rpc_callback((id << 16) | 1, isNull);\\r\\n this.id = id;\\r\\n this.oneShot = oneShot;\\r\\n }\\r\\n callback.prototype.resolve = function (obj) {\\r\\n logger_1.logger.trace('callback.resolve() called. [id=' + this.id + ']');\\r\\n if (this.handler != null) {\\r\\n this.handler(obj);\\r\\n }\\r\\n };\\r\\n callback.prototype.reject = function (obj) {\\r\\n if (this.err_handler != null) {\\r\\n this.err_handler(obj);\\r\\n }\\r\\n };\\r\\n callback.prototype.then = function (f) {\\r\\n this.handler = f;\\r\\n };\\r\\n callback.prototype.prom = function () {\\r\\n var _this = this;\\r\\n return new Promise(function (resolve, reject) {\\r\\n _this.handler = resolve;\\r\\n _this.err_handler = reject;\\r\\n });\\r\\n };\\r\\n return callback;\\r\\n}());\\r\\nexports.callback = callback;\\r\\nvar ProxyReadyState;\\r\\n(function (ProxyReadyState) {\\r\\n ProxyReadyState[ProxyReadyState[\\\"NotConfigured\\\"] = 0] = \\\"NotConfigured\\\";\\r\\n ProxyReadyState[ProxyReadyState[\\\"Configured\\\"] = 1] = \\\"Configured\\\";\\r\\n ProxyReadyState[ProxyReadyState[\\\"Error\\\"] = 2] = \\\"Error\\\";\\r\\n ProxyReadyState[ProxyReadyState[\\\"Destroyed\\\"] = 3] = \\\"Destroyed\\\"; //means the object is destroyed\\r\\n})(ProxyReadyState || (ProxyReadyState = {}));\\r\\nvar ProxyMode;\\r\\n(function (ProxyMode) {\\r\\n ProxyMode[ProxyMode[\\\"Local\\\"] = 0] = \\\"Local\\\";\\r\\n ProxyMode[ProxyMode[\\\"Remote\\\"] = 1] = \\\"Remote\\\";\\r\\n ProxyMode[ProxyMode[\\\"Pseudo\\\"] = 2] = \\\"Pseudo\\\";\\r\\n})(ProxyMode = exports.ProxyMode || (exports.ProxyMode = {}));\\r\\nvar ProxyObject = /** @class */ (function () {\\r\\n function ProxyObject(parent, iid, oid, mode, configcb) {\\r\\n if (configcb === void 0) { configcb = null; }\\r\\n var args = [];\\r\\n for (var _i = 5; _i < arguments.length; _i++) {\\r\\n args[_i - 5] = arguments[_i];\\r\\n }\\r\\n var _this = this;\\r\\n this.hdxms = hdxms_1.getRedirector();\\r\\n this.iid = iid;\\r\\n this.oid = oid;\\r\\n this.mode = mode;\\r\\n this.state = ProxyReadyState.NotConfigured;\\r\\n this.deferredActions = new Array();\\r\\n this.cbs = new Map();\\r\\n if (mode === ProxyMode.Local) {\\r\\n //EngineControl will query sessioninfo, thus we will treat it specially in terms of redirection status\\r\\n var sessioninfo = false;\\r\\n if (this.iid === webrpcclassinfo_1.class_id_t.EngineControl) {\\r\\n sessioninfo = true;\\r\\n }\\r\\n this.hdxms.startRedirection(sessioninfo, this.user_friendly_id())\\r\\n .then(function () {\\r\\n // set a temporary oid for construction and bump the counter\\r\\n _this.oid = ProxyObject.nextId++;\\r\\n logger_1.logger.log(_this.user_friendly_id() + ' assigned local oid:' + _this.oid);\\r\\n var feature = webrpcclassinfo_1.WebrpcClassLibInfoUtil.getMethodFeatureByid(iid, 0);\\r\\n return _this.hdxms.WSSendObjectWrapper(feature, iid, 0, wsjsonutil_1.WsJsonUtil.createMessageByid.apply(wsjsonutil_1.WsJsonUtil, [false, false, wsjsonutil_1.ws_msg_type_t.req, iid, 0, _this.oid].concat(args)));\\r\\n })\\r\\n .then(function (obj) {\\r\\n logger_1.logger.trace('ProxyObject: setting state to configured. (iid: ' + _this.iid + ' oid: ' + _this.oid + ')');\\r\\n var local_oid = _this.oid;\\r\\n _this.state = ProxyReadyState.Configured;\\r\\n _this.oid = _this.param0(obj); // save the oid allocated by the constructor.\\r\\n logger_1.logger.log(_this.user_friendly_id() + ' assigned remote oid for local oid:' + local_oid);\\r\\n _this.onConnected();\\r\\n if (configcb) {\\r\\n configcb();\\r\\n }\\r\\n garbagecollector_1.gc.trackObject(_this, parent);\\r\\n })\\r\\n .catch(function () {\\r\\n _this.state = ProxyReadyState.Error;\\r\\n _this.onConnected();\\r\\n });\\r\\n }\\r\\n else if (mode === ProxyMode.Remote) {\\r\\n this.state = ProxyReadyState.Configured;\\r\\n garbagecollector_1.gc.trackObject(this, parent);\\r\\n }\\r\\n }\\r\\n ProxyObject.prototype.bind = function (parent, oid) {\\r\\n logger_1.logger.trace('ProxyObject: binding object. (iid: ' + this.iid + ' oid: ' + oid + ' mode: ' + this.mode + ')');\\r\\n if (this.mode === ProxyMode.Pseudo) {\\r\\n this.state = ProxyReadyState.Configured;\\r\\n var local_oid = this.oid;\\r\\n this.oid = oid;\\r\\n logger_1.logger.log(this.user_friendly_id() + ' assigned remote oid for local oid:' + local_oid);\\r\\n this.onConnected();\\r\\n garbagecollector_1.gc.trackObject(this, parent);\\r\\n //update mode to prevent subsequent binding.\\r\\n this.mode = ProxyMode.Remote;\\r\\n }\\r\\n else {\\r\\n logger_1.logger.log('ProxyObject: binding failure. incorrect mode!');\\r\\n }\\r\\n };\\r\\n ProxyObject.prototype.reconstructor = function (parent, iid, oid) {\\r\\n var _this = this;\\r\\n var args = [];\\r\\n for (var _i = 3; _i < arguments.length; _i++) {\\r\\n args[_i - 3] = arguments[_i];\\r\\n }\\r\\n //reset state\\r\\n this.state = ProxyReadyState.NotConfigured;\\r\\n //clear deferred actions\\r\\n this.deferredActions = [];\\r\\n //invoke remote constructor\\r\\n var feature = webrpcclassinfo_1.WebrpcClassLibInfoUtil.getMethodFeatureByid(iid, 0);\\r\\n this.hdxms.WSSendObjectWrapper(feature, iid, 0, wsjsonutil_1.WsJsonUtil.createMessageByid.apply(wsjsonutil_1.WsJsonUtil, [false, false, wsjsonutil_1.ws_msg_type_t.req, iid, 0, this.oid].concat(args)))\\r\\n .then(function (obj) {\\r\\n logger_1.logger.trace('ProxyObject: setting state to configured. (iid: ' + _this.iid + ' oid: ' + _this.oid + ')');\\r\\n var local_oid = _this.oid;\\r\\n _this.state = ProxyReadyState.Configured;\\r\\n _this.oid = _this.param0(obj); // save the oid allocated by the constructor.\\r\\n logger_1.logger.log(_this.user_friendly_id() + ' assigned remote oid for local oid:' + local_oid);\\r\\n _this.onConnected();\\r\\n garbagecollector_1.gc.trackObject(_this, parent);\\r\\n })\\r\\n .catch(function () {\\r\\n _this.state = ProxyReadyState.Error;\\r\\n _this.onConnected();\\r\\n });\\r\\n };\\r\\n ProxyObject.prototype.setParent = function (parent) {\\r\\n garbagecollector_1.gc.setParent(this, parent);\\r\\n };\\r\\n ProxyObject.prototype.release = function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.release() called.');\\r\\n garbagecollector_1.gc.releaseObject(this);\\r\\n };\\r\\n ProxyObject.prototype.destroy = function () {\\r\\n this.state = ProxyReadyState.Destroyed;\\r\\n var feature = webrpcclassinfo_1.WebrpcClassLibInfoUtil.getMethodFeatureByid(this.iid, 0);\\r\\n this.hdxms.WSSendObjectWrapper(feature, this.iid, 0, wsjsonutil_1.WsJsonUtil.createMessageByid(false, true, wsjsonutil_1.ws_msg_type_t.req, this.iid, 0, this.oid)); //invoke destructor\\r\\n };\\r\\n ProxyObject.prototype.onConnected = function () {\\r\\n while (this.deferredActions && this.deferredActions.length > 0) {\\r\\n this.deferredActions.shift().post(this.state == ProxyReadyState.Configured);\\r\\n }\\r\\n };\\r\\n ProxyObject.prototype.checkState = function (count, delay) {\\r\\n var self = this;\\r\\n if (count <= 0) {\\r\\n logger_1.logger.log('ProxyObject.checkState() timeout waiting for connection response! failed. (iid: ' + self.iid + ' oid: ' + self.oid + ')');\\r\\n self.onConnected();\\r\\n }\\r\\n else {\\r\\n setTimeout(function () {\\r\\n if (self.state == ProxyReadyState.Configured) {\\r\\n self.onConnected();\\r\\n }\\r\\n else if (self.state == ProxyReadyState.Error) {\\r\\n self.onConnected();\\r\\n }\\r\\n else if (self.state == ProxyReadyState.Destroyed) {\\r\\n self.onConnected();\\r\\n }\\r\\n else {\\r\\n //need to wait for another round\\r\\n logger_1.logger.log('ProxyObject.checkState(): count= \\\"' + count + '\\\". (iid: ' + self.iid + ' oid: ' + self.oid + ')');\\r\\n self.checkState(--count, delay);\\r\\n }\\r\\n }, delay);\\r\\n }\\r\\n };\\r\\n ProxyObject.prototype.waitUntilConnected = function (name) {\\r\\n var self = this;\\r\\n return new Promise(function (resolve, reject) {\\r\\n logger_1.logger.trace('ProxyObject.waitUntilConnected(): readyState=' + self.state + '. (iid: ' + self.iid + ' oid: ' + self.oid + ')');\\r\\n if (self.state == ProxyReadyState.Destroyed) {\\r\\n self.onConnected();\\r\\n reject('Object already destroyed :' + self.user_friendly_id());\\r\\n }\\r\\n if (self.state == ProxyReadyState.Configured) {\\r\\n self.onConnected();\\r\\n resolve();\\r\\n }\\r\\n else if (self.state == ProxyReadyState.Error) {\\r\\n logger_1.logger.trace('ProxyObject.waitUntilConnected(): readyState=' + self.state + '. (iid: ' + self.iid + ' oid: ' + self.oid + ')');\\r\\n self.onConnected();\\r\\n reject();\\r\\n }\\r\\n else {\\r\\n logger_1.logger.log('ProxyObject.waitUntilConnected(): deferring action \\\"' + name + '\\\". (iid: ' + self.iid + ' oid: ' + self.oid + ')');\\r\\n self.deferredActions.push(new deferred_action(resolve, reject, name));\\r\\n self.checkState(15, 1000); //increase time out for debugging\\r\\n }\\r\\n });\\r\\n };\\r\\n ProxyObject.prototype.remoteInvoke = function (modifier, mid) {\\r\\n var args = [];\\r\\n for (var _i = 2; _i < arguments.length; _i++) {\\r\\n args[_i - 2] = arguments[_i];\\r\\n }\\r\\n if (this.state == ProxyReadyState.Destroyed)\\r\\n return Promise.reject('Cannot invoke destroyed object :' + this.user_friendly_id());\\r\\n if (this.state == ProxyReadyState.Error)\\r\\n return Promise.reject('Cannot invoke object in Error state:' + this.user_friendly_id());\\r\\n var feature = webrpcclassinfo_1.WebrpcClassLibInfoUtil.getMethodFeatureByid(this.iid, mid);\\r\\n return this.hdxms.WSSendObjectWrapper(feature, this.iid, mid, wsjsonutil_1.WsJsonUtil.createMessageByid.apply(wsjsonutil_1.WsJsonUtil, [modifier, false, wsjsonutil_1.ws_msg_type_t.req, this.iid, mid, this.oid].concat(args)));\\r\\n };\\r\\n ProxyObject.prototype.registerCallbacks = function (oneShot, isNull, mid) {\\r\\n // unregister old one.\\r\\n this.unregisterCallbacks(mid);\\r\\n // create a new callback.\\r\\n var id = ProxyObject.nextcbid++;\\r\\n var cb = new callback(id, isNull, oneShot);\\r\\n if (!isNull) {\\r\\n // keep track of it if it is not one shot.\\r\\n if (!oneShot) {\\r\\n //logger.log('registering callback for mid: ' + mid + ' with id: ' + id);\\r\\n this.cbs.set(mid, id);\\r\\n }\\r\\n // register it.\\r\\n this.hdxms.registerHandler(this.iid, this.oid, cb);\\r\\n }\\r\\n // return it.\\r\\n return cb;\\r\\n };\\r\\n ProxyObject.prototype.unregisterCallbacks = function (mid) {\\r\\n if (this.cbs.has(mid)) {\\r\\n //logger.log('unregistering callback handler for mid: ' + mid);\\r\\n this.hdxms.unregisterHandler(this.iid, this.oid, this.cbs.get(mid));\\r\\n this.cbs.delete(mid);\\r\\n }\\r\\n else {\\r\\n //logger.log('ProxyObject: Cant find callback handler registration for mid: ' + mid);\\r\\n logger_1.logger.trace(this.cbs);\\r\\n }\\r\\n };\\r\\n ProxyObject.prototype.object_id = function () {\\r\\n return this.oid;\\r\\n };\\r\\n ProxyObject.prototype.param0 = function (obj) {\\r\\n return obj['params'][0];\\r\\n };\\r\\n ProxyObject.prototype.isNullCallback = function (f) {\\r\\n return f == undefined || f == null;\\r\\n };\\r\\n ProxyObject.prototype.user_friendly_id = function () {\\r\\n return this.constructor.name + '[' + this.oid + ']';\\r\\n };\\r\\n ProxyObject.prototype.isRedirected = function () {\\r\\n return this.hdxms.isRedirected();\\r\\n };\\r\\n ProxyObject.prototype.isValid = function () {\\r\\n return !(this.state === ProxyReadyState.Error || this.state === ProxyReadyState.Destroyed);\\r\\n };\\r\\n ProxyObject.prototype.registerStateChangeNotification = function (f) {\\r\\n this.hdxms.registerStateChangeNotification(f);\\r\\n };\\r\\n ProxyObject.prototype.unregisterStateChangeNotification = function (f) {\\r\\n this.hdxms.unregisterStateChangeNotification(f);\\r\\n };\\r\\n //next available oid\\r\\n ProxyObject.nextId = 0;\\r\\n //next available callback id\\r\\n ProxyObject.nextcbid = 0;\\r\\n return ProxyObject;\\r\\n}());\\r\\nexports.ProxyObject = ProxyObject;\\r\\n\\n\\n//# sourceURL=webpack://CitrixWebRTC/E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/proxyobject.js?\");\n },\n \"../../../out/shim/sdk/int/sdk/remotemedia.js\":\n /*!*************************************************************************!*\\\r\n !*** E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/remotemedia.js ***!\r\n \\*************************************************************************/\n\n /*! no static exports found */\n function outShimSdkIntSdkRemotemediaJs(module, exports, __webpack_require__) {\n\n eval(\"\\r\\nvar __extends = (this && this.__extends) || (function () {\\r\\n var 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 return function (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\\nvar __awaiter = (this && this.__awaiter) || function (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\\nvar __generator = (this && this.__generator) || function (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\\nObject.defineProperty(exports, \\\"__esModule\\\", { value: true });\\r\\nvar webrpcclassinfo_1 = __webpack_require__(/*! ./webrpcclassinfo */ \\\"../../../out/shim/sdk/int/sdk/webrpcclassinfo.js\\\");\\r\\nvar proxyobject_1 = __webpack_require__(/*! ./proxyobject */ \\\"../../../out/shim/sdk/int/sdk/proxyobject.js\\\");\\r\\nvar logger_1 = __webpack_require__(/*! ./logger */ \\\"../../../out/shim/sdk/int/sdk/logger.js\\\");\\r\\nvar hdxms_1 = __webpack_require__(/*! ./hdxms */ \\\"../../../out/shim/sdk/int/sdk/hdxms.js\\\");\\r\\nvar telemetry_1 = __webpack_require__(/*! ./telemetry */ \\\"../../../out/shim/sdk/int/sdk/telemetry.js\\\");\\r\\nvar enumerateddecices;\\r\\nexports.enumerateddecices = enumerateddecices;\\r\\nvar SimpleEvent = /** @class */ (function () {\\r\\n function SimpleEvent(type, obj) {\\r\\n this.type = type;\\r\\n this.target = obj;\\r\\n }\\r\\n return SimpleEvent;\\r\\n}());\\r\\nvar CloneState = /** @class */ (function () {\\r\\n /// constructor. construct default state.\\r\\n function CloneState() {\\r\\n this.is_local_clone = false;\\r\\n this.clone_count = 0;\\r\\n this.clone_id = 0;\\r\\n }\\r\\n /// clone our state and return the new one.\\r\\n CloneState.prototype.clone = function () {\\r\\n this.clone_count++;\\r\\n var newState = new CloneState();\\r\\n newState.is_local_clone = true;\\r\\n newState.clone_id = this.clone_count;\\r\\n return newState;\\r\\n };\\r\\n /// synchronize the local object with the remotely cloned object.\\r\\n CloneState.prototype.synchronize = function (original /* T */) {\\r\\n return __awaiter(this, void 0, void 0, function () {\\r\\n return __generator(this, function (_a) {\\r\\n // first check if this is even a clone.\\r\\n if (this.is_local_clone) {\\r\\n //let cloned_object: T = await original.asyncClone();\\r\\n //original.impersonate(cloned_object);\\r\\n //original.synchronize(original, cloned_object); // original <= cloned\\r\\n return [2 /*return*/, original.asyncClone()];\\r\\n }\\r\\n // not a clone so just return the original object.\\r\\n return [2 /*return*/, original];\\r\\n });\\r\\n });\\r\\n };\\r\\n return CloneState;\\r\\n}());\\r\\n/// MediaStreamTrack implementation\\r\\nvar RemoteMediaTrack = /** @class */ (function (_super) {\\r\\n __extends(RemoteMediaTrack, _super);\\r\\n function RemoteMediaTrack(parent, oid) {\\r\\n var _this = _super.call(this, parent, webrpcclassinfo_1.class_id_t.MediaStreamTrack, oid, proxyobject_1.ProxyMode.Remote) || this;\\r\\n _this.refCount_ = 0;\\r\\n _this.refCount_++;\\r\\n _this.clone_state = new CloneState();\\r\\n return _this;\\r\\n }\\r\\n Object.defineProperty(RemoteMediaTrack.prototype, \\\"refcount\\\", {\\r\\n get: function () {\\r\\n return this.refCount_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n RemoteMediaTrack.prototype.addRef = function () {\\r\\n this.refCount_++;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.addRef() called. [id=' + this.id + ']' + ' refcount=' + this.refCount_);\\r\\n };\\r\\n Object.defineProperty(RemoteMediaTrack.prototype, \\\"onended\\\", {\\r\\n get: function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.get_onended() called. [id=' + this.id + ']');\\r\\n return this.onended_;\\r\\n },\\r\\n //onended\\r\\n set: function (f) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.set_onended() called. [id=' + this.id + ']');\\r\\n this.onended_ = f;\\r\\n this.waitUntilConnected('MediaStreamTrack.onended')\\r\\n .then(function () {\\r\\n var callbacks = _this.registerCallbacks(false, _this.isNullCallback(f), webrpcclassinfo_1.method_id_MediaStreamTrack_t.onended);\\r\\n callbacks.then(function (obj) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + 'onended event received!!!');\\r\\n var evt = new SimpleEvent('ended', _this);\\r\\n _this.readyState_ = \\\"ended\\\";\\r\\n _this.onended_(evt); // not sure if this is the best way to post the event.\\r\\n });\\r\\n return _this.remoteInvoke(true, webrpcclassinfo_1.method_id_MediaStreamTrack_t.onended, callbacks.success);\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.onended failed!!!');\\r\\n });\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(RemoteMediaTrack.prototype, \\\"onmute\\\", {\\r\\n get: function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.get_onmute() called. [id=' + this.id + ']');\\r\\n return this.onmute_;\\r\\n },\\r\\n //onmute\\r\\n set: function (f) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.set_onmute() called. [id=' + this.id + ']');\\r\\n this.onmute_ = f;\\r\\n this.waitUntilConnected('MediaStreamTrack.onmute')\\r\\n .then(function () {\\r\\n var callbacks = _this.registerCallbacks(false, _this.isNullCallback(f), webrpcclassinfo_1.method_id_MediaStreamTrack_t.onmute);\\r\\n callbacks.then(function (obj) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + 'onmute event received!!!');\\r\\n var evt = new SimpleEvent('mute', _this);\\r\\n _this.muted = true;\\r\\n _this.onmute_(evt);\\r\\n });\\r\\n return _this.remoteInvoke(true, webrpcclassinfo_1.method_id_MediaStreamTrack_t.onmute, callbacks.success);\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.onmute failed!!!');\\r\\n });\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(RemoteMediaTrack.prototype, \\\"onunmute\\\", {\\r\\n get: function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.get_onunmute() called. [id=' + this.id + ']');\\r\\n return this.onunmute_;\\r\\n },\\r\\n //onunmute\\r\\n set: function (f) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.set_onunmute() called. [id=' + this.id + ']');\\r\\n this.onunmute_ = f;\\r\\n this.waitUntilConnected('MediaStreamTrack.onunmute')\\r\\n .then(function () {\\r\\n var callbacks = _this.registerCallbacks(false, _this.isNullCallback(f), webrpcclassinfo_1.method_id_MediaStreamTrack_t.onunmute);\\r\\n callbacks.then(function (obj) {\\r\\n logger_1.logger.log('onunmute event received!!!');\\r\\n var evt = new SimpleEvent('unmute', _this);\\r\\n _this.muted = false;\\r\\n _this.onunmute_(evt);\\r\\n });\\r\\n return _this.remoteInvoke(true, webrpcclassinfo_1.method_id_MediaStreamTrack_t.onunmute, callbacks.success);\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.onunmute failed!!!');\\r\\n });\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(RemoteMediaTrack.prototype, \\\"onstop\\\", {\\r\\n set: function (f) {\\r\\n this.onstop_ = f;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(RemoteMediaTrack.prototype, \\\"enabled\\\", {\\r\\n //enabled\\r\\n get: function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.get_enabled() called. [id=' + this.id + ', value=' + this.enabled_ + ']');\\r\\n return this.enabled_;\\r\\n },\\r\\n set: function (value) {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.set_enabled() called. [id=' + this.id + ', value=' + value + ']');\\r\\n this.enabled_ = value;\\r\\n this.remoteInvoke(true, webrpcclassinfo_1.method_id_MediaStreamTrack_t.enabled, value);\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(RemoteMediaTrack.prototype, \\\"readyState\\\", {\\r\\n //readyState\\r\\n get: function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.get_readyState() called. [id=' + this.id + ']');\\r\\n return this.readyState_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n /// perform an asynchronous clone. [Citrix extension API for clone]\\r\\n RemoteMediaTrack.prototype.asyncClone = function () {\\r\\n return __awaiter(this, void 0, void 0, function () {\\r\\n var reply, objref, track;\\r\\n return __generator(this, function (_a) {\\r\\n switch (_a.label) {\\r\\n case 0: \\r\\n // await stable state for websocket communications.\\r\\n return [4 /*yield*/, this.waitUntilConnected(\\\"RemoteMediaTrack.asyncClone\\\")];\\r\\n case 1:\\r\\n // await stable state for websocket communications.\\r\\n _a.sent();\\r\\n return [4 /*yield*/, this.remoteInvoke(false, webrpcclassinfo_1.method_id_MediaStreamTrack_t.clone, [])];\\r\\n case 2:\\r\\n reply = _a.sent();\\r\\n objref = this.param0(reply);\\r\\n track = new RemoteMediaTrack(this, objref['oid']);\\r\\n // synchronize it.\\r\\n return [2 /*return*/, track.syncBarrier()];\\r\\n }\\r\\n });\\r\\n });\\r\\n };\\r\\n RemoteMediaTrack.prototype.clone = function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.clone() called. [id=' + this.id + ']');\\r\\n var cloned_state = this.clone_state.clone();\\r\\n var track = new RemoteMediaTrack(this, this.object_id());\\r\\n track.id = this.id + '.' + cloned_state.clone_id.toString();\\r\\n track.label = this.label;\\r\\n track.kind = this.kind;\\r\\n track.enabled_ = this.enabled_;\\r\\n track.muted = this.muted;\\r\\n track.readyState_ = this.readyState_;\\r\\n track.trackSettings_ = this.trackSettings_;\\r\\n track.clone_state = cloned_state;\\r\\n track.constraints_ = this.constraints_;\\r\\n track.capabilities_ = this.capabilities_;\\r\\n return track;\\r\\n };\\r\\n RemoteMediaTrack.prototype.stop = function () {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.stop() called. [id=' + this.id + ']' + ' refcount=' + this.refCount_);\\r\\n this.readyState_ = \\\"ended\\\";\\r\\n if (this.refCount_ > 0) {\\r\\n this.refCount_--;\\r\\n if (this.refCount_ === 0) {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.stop() called. [id=' + this.id + ']' + ' remote invoking...');\\r\\n //stop remote media stream\\r\\n this.remoteInvoke(false, webrpcclassinfo_1.method_id_MediaStreamTrack_t.stop)\\r\\n .catch(function (e) { logger_1.logger.log(_this.user_friendly_id() + '.stop() failed with:' + e); });\\r\\n if (this.onstop_ !== null && this.onstop_ != undefined) {\\r\\n this.onstop_(); //notify Stream that the Track is stopped\\r\\n }\\r\\n }\\r\\n }\\r\\n };\\r\\n RemoteMediaTrack.prototype.getCapabilities = function () {\\r\\n return this.capabilities_;\\r\\n };\\r\\n RemoteMediaTrack.prototype.getConstraints = function () {\\r\\n return this.constraints_;\\r\\n };\\r\\n RemoteMediaTrack.prototype.getSettings = function () {\\r\\n if (this.kind == 'audio') {\\r\\n return (function (_a) {\\r\\n var deviceId = _a.deviceId, echoCancellation = _a.echoCancellation;\\r\\n return ({ deviceId: deviceId, echoCancellation: echoCancellation });\\r\\n })(this.trackSettings_);\\r\\n }\\r\\n else {\\r\\n return (function (_a) {\\r\\n var aspectRatio = _a.aspectRatio, deviceId = _a.deviceId, frameRate = _a.frameRate, height = _a.height, width = _a.width;\\r\\n return ({ aspectRatio: aspectRatio, deviceId: deviceId, frameRate: frameRate, height: height, width: width });\\r\\n })(this.trackSettings_);\\r\\n }\\r\\n };\\r\\n RemoteMediaTrack.prototype.applyConstraints = function (constraints) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.applyConstraints() called.');\\r\\n return new Promise(function (resolve, reject) {\\r\\n _this.waitUntilConnected('MediaStreamTrack.applyConstraints')\\r\\n .then(function () {\\r\\n return Promise.all([\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_MediaStreamTrack_t.applyConstraints, constraints),\\r\\n _this.syncBarrier()\\r\\n ]);\\r\\n })\\r\\n .catch(function () { reject({ name: \\\"OverconstrainedError\\\", message: \\\"Failed to apply constraints.\\\" }); }) // reject with MediaStreamError\\r\\n .then(function () {\\r\\n // fallback. save current input object as constraint and try to sync it with a client side values\\r\\n _this.constraints_ = constraints;\\r\\n return _this.remoteInvoke(false, webrpcclassinfo_1.method_id_MediaStreamTrack_t.getConstraints);\\r\\n })\\r\\n .then(function (result) { _this.constraints_ = _this.param0(result); })\\r\\n .catch(function () {\\r\\n // do not reject in currecyt case due to not all of clients can support getConstraints.\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.syncBarrier() remote client doesn\\\\'t support getConstraints method. Ignore it');\\r\\n })\\r\\n .then(function () { return resolve(); });\\r\\n });\\r\\n };\\r\\n RemoteMediaTrack.convertReadyState = function (id) {\\r\\n if (id == 0)\\r\\n return \\\"live\\\";\\r\\n else\\r\\n return \\\"ended\\\";\\r\\n };\\r\\n // syncBarrier is used because methods on this interface return synchronously and we cant block in JavaScript\\r\\n RemoteMediaTrack.prototype.syncBarrier = function () {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.syncBarrier() called.');\\r\\n return new Promise(function (resolve, reject) {\\r\\n _this.waitUntilConnected('MediaStreamTrack.syncBarrier')\\r\\n .then(function () {\\r\\n return Promise.all([\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_MediaStreamTrack_t.kind, \\\"\\\"),\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_MediaStreamTrack_t.id, \\\"\\\"),\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_MediaStreamTrack_t.label, \\\"\\\"),\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_MediaStreamTrack_t.enabled, false),\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_MediaStreamTrack_t.muted, false),\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_MediaStreamTrack_t.readyState, 0),\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_MediaStreamTrack_t.getSettings),\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_MediaStreamTrack_t.getCapabilities)\\r\\n ]);\\r\\n })\\r\\n .then(function (results) {\\r\\n var _a;\\r\\n var readyState = 0;\\r\\n // destructuring assignment\\r\\n _a = results.map(function (result) { return _this.param0(result); }), _this.kind = _a[0], _this.id = _a[1], _this.label = _a[2], _this.enabled_ = _a[3], _this.muted = _a[4], readyState = _a[5], _this.trackSettings_ = _a[6], _this.capabilities_ = _a[7];\\r\\n _this.readyState_ = RemoteMediaTrack.convertReadyState(readyState);\\r\\n resolve(_this);\\r\\n })\\r\\n .catch(function () { reject(); });\\r\\n });\\r\\n };\\r\\n return RemoteMediaTrack;\\r\\n}(proxyobject_1.ProxyObject));\\r\\nexports.RemoteMediaTrack = RemoteMediaTrack;\\r\\nvar StreamInfo = /** @class */ (function () {\\r\\n function StreamInfo() {\\r\\n }\\r\\n return StreamInfo;\\r\\n}());\\r\\n/// MediaStream implementation\\r\\nvar RemoteStream = /** @class */ (function (_super) {\\r\\n __extends(RemoteStream, _super);\\r\\n function RemoteStream(parent, oid) {\\r\\n var _this = _super.call(this, parent, webrpcclassinfo_1.class_id_t.MediaStream, oid, proxyobject_1.ProxyMode.Remote) || this;\\r\\n _this.clone_state = new CloneState();\\r\\n return _this;\\r\\n }\\r\\n RemoteStream.prototype.dumpTrackInfo = function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.dumpTrackInfo() called. [id=' + this.id + ']');\\r\\n for (var _i = 0, _a = this.tracks_; _i < _a.length; _i++) {\\r\\n var track = _a[_i];\\r\\n logger_1.logger.log(track.user_friendly_id() + ' [id=' + track.id + ']' + ' refcount=' + track.refcount);\\r\\n }\\r\\n };\\r\\n RemoteStream.prototype.toJSON = function () {\\r\\n var info = new StreamInfo();\\r\\n info.id = this.id;\\r\\n info.active = this.active;\\r\\n info.oid = this.object_id();\\r\\n return \\\"RemoteStream:\\\" + JSON.stringify(info);\\r\\n };\\r\\n RemoteStream.prototype.getAudioTracks = function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.getAudioTracks() called. [id=' + this.id + ']');\\r\\n var auds = new Array();\\r\\n for (var _i = 0, _a = this.tracks_; _i < _a.length; _i++) {\\r\\n var track = _a[_i];\\r\\n if (track.kind == 'audio') {\\r\\n auds.push(track);\\r\\n }\\r\\n }\\r\\n //logger.log(this.user_friendly_id() + '.getAudioTracks() returning ' + auds.length + ' tracks.');\\r\\n return auds;\\r\\n };\\r\\n RemoteStream.prototype.getVideoTracks = function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.getVideoTracks() called. [id=' + this.id + ']');\\r\\n var vids = new Array();\\r\\n for (var _i = 0, _a = this.tracks_; _i < _a.length; _i++) {\\r\\n var track = _a[_i];\\r\\n if (track.kind == 'video') {\\r\\n vids.push(track);\\r\\n }\\r\\n }\\r\\n //logger.log(this.user_friendly_id() + '.getVideoTracks() returning ' + vids.length + ' tracks.');\\r\\n return vids;\\r\\n };\\r\\n RemoteStream.prototype.getTracks = function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.getTracks() called. [id=' + this.id + ']');\\r\\n return this.tracks_;\\r\\n };\\r\\n RemoteStream.prototype.getTrackById = function (trackId) {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.getTrackById() called. [id=' + this.id + ']');\\r\\n for (var _i = 0, _a = this.tracks_; _i < _a.length; _i++) {\\r\\n var next = _a[_i];\\r\\n if (next.id == trackId) {\\r\\n return next;\\r\\n }\\r\\n }\\r\\n return undefined;\\r\\n };\\r\\n RemoteStream.prototype.addTrack = function (track) {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.addTrack() called. [id=' + this.id + ']');\\r\\n this.tracks_.push(track);\\r\\n this.remoteInvoke(false, webrpcclassinfo_1.method_id_MediaStream_t.addTrack, { 'oid': track.object_id() });\\r\\n };\\r\\n RemoteStream.prototype.removeTrack = function (track) {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.removeTrack() called. [id=' + this.id + ']');\\r\\n var idx = this.tracks_.indexOf(track);\\r\\n this.tracks_.splice(idx, 1);\\r\\n this.remoteInvoke(false, webrpcclassinfo_1.method_id_MediaStream_t.removeTrack, { 'oid': track.object_id() });\\r\\n };\\r\\n /// perform an asynchronous clone. [Citrix extension API for clone]\\r\\n RemoteStream.prototype.asyncClone = function () {\\r\\n return __awaiter(this, void 0, void 0, function () {\\r\\n var reply, objref, stream;\\r\\n return __generator(this, function (_a) {\\r\\n switch (_a.label) {\\r\\n case 0:\\r\\n logger_1.logger.log(this.user_friendly_id() + '.asyncClone() called. [id=' + this.id + ']');\\r\\n // await stable state.\\r\\n return [4 /*yield*/, this.waitUntilConnected(\\\"asyncClone\\\")];\\r\\n case 1:\\r\\n // await stable state.\\r\\n _a.sent();\\r\\n return [4 /*yield*/, this.remoteInvoke(false, webrpcclassinfo_1.method_id_MediaStream_t.clone, [])];\\r\\n case 2:\\r\\n reply = _a.sent();\\r\\n console.log(reply);\\r\\n objref = this.param0(reply);\\r\\n stream = new RemoteStream(this, objref['oid']);\\r\\n // synchronize it.\\r\\n return [2 /*return*/, stream.syncBarrier()];\\r\\n }\\r\\n });\\r\\n });\\r\\n };\\r\\n RemoteStream.prototype.clone = function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.clone() called. [id=' + this.id + ']');\\r\\n var cloned_state = this.clone_state.clone();\\r\\n var stream = new RemoteStream(this, this.object_id());\\r\\n stream.id = this.id + '.' + cloned_state.clone_id.toString();\\r\\n this.tracks_.forEach(function (track) { track.addRef(); }); //++refCount since we use the same tracks in the clone\\r\\n stream.tracks_ = this.tracks_;\\r\\n //stream.tracks_ = this.tracks_.map((track) => { return track.clone(); });\\r\\n stream.clone_state = cloned_state;\\r\\n return stream;\\r\\n };\\r\\n // syncBarrier is used because methods on this interface return synchronously and we cant block in JavaScript\\r\\n RemoteStream.prototype.syncBarrier = function () {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.syncBarrier() called. [id=' + this.id + ']');\\r\\n return new Promise(function (resolve, reject) {\\r\\n _this.waitUntilConnected('MediaStream.syncBarrier')\\r\\n .then(function () {\\r\\n return Promise.all([\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_MediaStream_t.id, \\\"\\\"),\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_MediaStream_t.active, false),\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_MediaStream_t.getTracks, [])\\r\\n ]);\\r\\n })\\r\\n .then(function (results) {\\r\\n var _a;\\r\\n var objs;\\r\\n _a = results.map(function (result) { return _this.param0(result); }), _this.id = _a[0], _this.active = _a[1], objs = _a[2];\\r\\n var promises = [];\\r\\n for (var _i = 0, objs_1 = objs; _i < objs_1.length; _i++) {\\r\\n var trackRef = objs_1[_i];\\r\\n var track = new RemoteMediaTrack(_this, trackRef['oid']);\\r\\n promises.push(track.syncBarrier());\\r\\n }\\r\\n return Promise.all(promises);\\r\\n //return Promise.all(objs.map((trackRef) => {\\r\\n // let track: RemoteMediaTrack = new RemoteMediaTrack(trackRef['oid']);\\r\\n // return track.syncBarrier();\\r\\n //}));\\r\\n })\\r\\n .then(function (tracks) {\\r\\n _this.tracks_ = [];\\r\\n tracks.forEach(function (track) {\\r\\n track.onstop = (function () {\\r\\n var allstopped_ = true;\\r\\n _this.tracks_.forEach(function (t) {\\r\\n if (t.readyState != \\\"ended\\\") {\\r\\n allstopped_ = false;\\r\\n }\\r\\n });\\r\\n if (allstopped_)\\r\\n _this.release();\\r\\n }); //end callback\\r\\n _this.tracks_.push(track);\\r\\n });\\r\\n resolve(_this);\\r\\n })\\r\\n .catch(function () { reject(); });\\r\\n });\\r\\n };\\r\\n return RemoteStream;\\r\\n}(proxyobject_1.ProxyObject));\\r\\nexports.RemoteStream = RemoteStream;\\r\\nvar RemoteStreamEvent = /** @class */ (function (_super) {\\r\\n __extends(RemoteStreamEvent, _super);\\r\\n function RemoteStreamEvent(parent, oid) {\\r\\n return _super.call(this, parent, webrpcclassinfo_1.class_id_t.MediaStreamEvent, oid, proxyobject_1.ProxyMode.Remote) || this;\\r\\n }\\r\\n RemoteStreamEvent.prototype.syncBarrier = function () {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.syncBarrier() called.');\\r\\n return new Promise(function (resolve, reject) {\\r\\n _this.waitUntilConnected('MediaStreamEvent.syncBarrier')\\r\\n .then(function () { return _this.remoteInvoke(false, webrpcclassinfo_1.method_id_MediaStreamEvent_t.stream, { \\\"oid\\\": 0 }); })\\r\\n .then(function (obj) {\\r\\n var stream = new RemoteStream(_this, obj['params'][0]['oid']);\\r\\n return stream.syncBarrier();\\r\\n })\\r\\n .then(function (stream) {\\r\\n _this.stream = stream;\\r\\n resolve(_this);\\r\\n })\\r\\n .catch(function () { reject(); });\\r\\n });\\r\\n };\\r\\n return RemoteStreamEvent;\\r\\n}(proxyobject_1.ProxyObject));\\r\\nexports.RemoteStreamEvent = RemoteStreamEvent;\\r\\nvar RemoteDeviceInfo = /** @class */ (function (_super) {\\r\\n __extends(RemoteDeviceInfo, _super);\\r\\n function RemoteDeviceInfo(oid) {\\r\\n return _super.call(this, null, webrpcclassinfo_1.class_id_t.MediaDeviceInfo, oid, proxyobject_1.ProxyMode.Remote) || this;\\r\\n }\\r\\n RemoteDeviceInfo.prototype.convertKind = function (id) {\\r\\n if (id == 0) {\\r\\n return \\\"audioinput\\\";\\r\\n }\\r\\n else if (id == 1) {\\r\\n return \\\"audiooutput\\\";\\r\\n }\\r\\n else {\\r\\n return \\\"videoinput\\\";\\r\\n }\\r\\n };\\r\\n // syncBarrier is used because methods on this interface return synchronously and we cant block in JavaScript\\r\\n RemoteDeviceInfo.prototype.syncBarrier = function () {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.syncBarrier() called.');\\r\\n return new Promise(function (resolve, reject) {\\r\\n _this.waitUntilConnected('RemoteDeviceInfo.syncBarrier')\\r\\n .then(function () {\\r\\n return Promise.all([\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_MediaDeviceInfo_t.deviceId, \\\"\\\"),\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_MediaDeviceInfo_t.kind, 0),\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_MediaDeviceInfo_t.label, \\\"\\\"),\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_MediaDeviceInfo_t.groupId, \\\"\\\")\\r\\n ]);\\r\\n })\\r\\n .then(function (results) {\\r\\n var _a;\\r\\n _this.kind = _this.convertKind(_this.param0(results.splice(1, 1)[0]));\\r\\n _a = results.map(function (result) { return _this.param0(result); }), _this.deviceId = _a[0], _this.label = _a[1], _this.groupId = _a[2];\\r\\n resolve(_this);\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.syncBarrier(): rejected.');\\r\\n reject();\\r\\n });\\r\\n });\\r\\n };\\r\\n return RemoteDeviceInfo;\\r\\n}(proxyobject_1.ProxyObject));\\r\\nexports.RemoteDeviceInfo = RemoteDeviceInfo;\\r\\nvar RemoteDevices = /** @class */ (function (_super) {\\r\\n __extends(RemoteDevices, _super);\\r\\n function RemoteDevices() {\\r\\n var _this = _super.call(this, null, webrpcclassinfo_1.class_id_t.MediaDevices, 0, proxyobject_1.ProxyMode.Local, function () {\\r\\n _this.setDeviceChangeCallback();\\r\\n }) || this;\\r\\n _this.devices_ = [];\\r\\n return _this;\\r\\n }\\r\\n RemoteDevices.prototype.enumerateDevices = function () {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.enumerateDevices() called');\\r\\n return new Promise(function (resolve, reject) {\\r\\n _this.waitUntilConnected('RemoteDevices.enumerateDevices')\\r\\n .then(function () {\\r\\n return _this.remoteInvoke(false, webrpcclassinfo_1.method_id_MediaDevices_t.enumerateDevices, []);\\r\\n })\\r\\n .then(function (obj) {\\r\\n var promises = [];\\r\\n obj.params[0].forEach(function (item) {\\r\\n var device = _this.devices_.find(function (d) { return d.object_id() === item.oid; });\\r\\n if (device === undefined) {\\r\\n device = new RemoteDeviceInfo(item.oid);\\r\\n promises.push(device.syncBarrier());\\r\\n }\\r\\n else {\\r\\n promises.push(device);\\r\\n }\\r\\n });\\r\\n return Promise.all(promises);\\r\\n })\\r\\n .then(function (devices) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.enumerateDevices: returning enumerated devices with ids [' + devices.map(function (dev) { return dev.object_id(); }) + ']');\\r\\n resolve(devices);\\r\\n //release devices that are no longer on the client\\r\\n _this.devices_.forEach(function (oldDevice) {\\r\\n var dispose = true;\\r\\n for (var _i = 0, devices_1 = devices; _i < devices_1.length; _i++) {\\r\\n var newDevice = devices_1[_i];\\r\\n if (oldDevice === newDevice) {\\r\\n dispose = false;\\r\\n break;\\r\\n }\\r\\n }\\r\\n if (dispose) {\\r\\n oldDevice.release();\\r\\n }\\r\\n });\\r\\n //save new devices\\r\\n _this.devices_ = devices;\\r\\n exports.enumerateddecices = enumerateddecices = devices;\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.enumerateDevices() didnt get response.');\\r\\n _this.devices_ = [];\\r\\n reject();\\r\\n });\\r\\n });\\r\\n };\\r\\n RemoteDevices.prototype.getDisplayMedia = function (constraints) {\\r\\n var _this = this;\\r\\n return new Promise(function (resolve, reject) {\\r\\n _this.waitUntilConnected('RemoteDevices.getDisplayMedia')\\r\\n .then(function () {\\r\\n // prepare internal constraints because WebRTC media constraints supported started from 1.3.0.5 version only\\r\\n var internalConstraints = _this.prepareDisplayConstraints(constraints);\\r\\n return _this.remoteInvoke(false, webrpcclassinfo_1.method_id_MediaDevices_t.getDisplayMedia, internalConstraints);\\r\\n })\\r\\n .then(function (obj) {\\r\\n var displayStream = new RemoteStream(null, obj.params[0].oid);\\r\\n return displayStream.syncBarrier();\\r\\n })\\r\\n .then(function (stream) {\\r\\n resolve(stream);\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.getDisplayMedia() returned an error.');\\r\\n reject(new DOMException(\\\"Unable to get a display stream.\\\", \\\"NotReadableError\\\"));\\r\\n });\\r\\n });\\r\\n };\\r\\n RemoteDevices.prototype.setDeviceChangeCallback = function () {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.set_DeviceChangeCallback() called.');\\r\\n this.waitUntilConnected('MediaDevices.ondevicechange')\\r\\n .then(function () {\\r\\n var callbacks = _this.registerCallbacks(false, false, webrpcclassinfo_1.method_id_MediaDevices_t.ondevicechange);\\r\\n callbacks.then(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.ondevicechange(): callback received!!!');\\r\\n navigator.mediaDevices.dispatchEvent(new CustomEvent('devicechange'));\\r\\n });\\r\\n return _this.remoteInvoke(true, webrpcclassinfo_1.method_id_MediaDevices_t.ondevicechange, callbacks['success']);\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.set_ondevicechange(): failed.');\\r\\n });\\r\\n };\\r\\n RemoteDevices.prototype.prepareDisplayConstraints = function (constraints) {\\r\\n if (hdxms_1.getRedirector().getFeatureValue(webrpcclassinfo_1.FEATURE_ms_teams_common_media_constraints)) {\\r\\n return constraints;\\r\\n }\\r\\n // support custom media constraints structures\\r\\n // prepare default constraints value\\r\\n var video_constraints = {\\r\\n frameRate: 15,\\r\\n width: {\\r\\n max: 1920\\r\\n },\\r\\n height: {\\r\\n max: 1080\\r\\n }\\r\\n };\\r\\n // replace if the original ine is exists\\r\\n if (constraints.video !== undefined && constraints.video !== null) {\\r\\n var video = constraints.video;\\r\\n if (video.frameRate !== undefined && video.width !== undefined && video.height !== undefined) {\\r\\n video_constraints.frameRate = video.frameRate;\\r\\n video_constraints.width['max'] = video.width['max'] || video.width;\\r\\n video_constraints.height['max'] = video.height['max'] || video.height;\\r\\n }\\r\\n }\\r\\n return { video: video_constraints };\\r\\n };\\r\\n return RemoteDevices;\\r\\n}(proxyobject_1.ProxyObject));\\r\\nexports.RemoteDevices = RemoteDevices;\\r\\n/**@nocollapse*/\\r\\nvar NavigatorUserMedia = /** @class */ (function (_super) {\\r\\n __extends(NavigatorUserMedia, _super);\\r\\n function NavigatorUserMedia() {\\r\\n return _super.call(this, null, webrpcclassinfo_1.class_id_t.NavigatorUserMedia, 0, proxyobject_1.ProxyMode.Local) || this;\\r\\n }\\r\\n NavigatorUserMedia.prototype.webkitGetUserMedia = function (constraints, successCallback, errorCallback) {\\r\\n this.getUserMedia(constraints, successCallback, errorCallback);\\r\\n };\\r\\n NavigatorUserMedia.prototype.LogTelemetryDevice_ = function (constraints) {\\r\\n try {\\r\\n var audioundefined = constraints.audio;\\r\\n if (typeof (audioundefined) !== 'undefined') {\\r\\n var audio = constraints.audio;\\r\\n var audiosrc_1 = audio.deviceId;\\r\\n var MatchedAudioDevice_1;\\r\\n enumerateddecices.forEach(function (enumerateddecices) {\\r\\n if (audiosrc_1 == enumerateddecices.deviceId) {\\r\\n MatchedAudioDevice_1 = enumerateddecices.label;\\r\\n }\\r\\n });\\r\\n logger_1.logger.log(MatchedAudioDevice_1);\\r\\n //send audiomatched device to websocket service\\r\\n this.SendTelemetryData(telemetry_1.tel_key_AudioDeviceUsed, MatchedAudioDevice_1, 0);\\r\\n }\\r\\n var videoundefined = constraints.video;\\r\\n if (typeof (videoundefined) !== 'undefined') {\\r\\n var video = constraints.video;\\r\\n var videosrc_1 = video.mandatory.sourceId;\\r\\n var MatchedVideoDevice_1;\\r\\n enumerateddecices.forEach(function (enumerateddecices) {\\r\\n if (videosrc_1 == enumerateddecices.deviceId) {\\r\\n MatchedVideoDevice_1 = enumerateddecices.label;\\r\\n }\\r\\n });\\r\\n logger_1.logger.log(MatchedVideoDevice_1);\\r\\n //send audiomatched device to websocket service\\r\\n this.SendTelemetryData(telemetry_1.tel_key_VideoDeviceUsed, MatchedVideoDevice_1, 0);\\r\\n }\\r\\n }\\r\\n catch (err) {\\r\\n logger_1.logger.log(err);\\r\\n }\\r\\n };\\r\\n NavigatorUserMedia.prototype.getUserMedia = function (constraints, successCallback, errorCallback) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.getUserMedia() called: ' + JSON.stringify(constraints));\\r\\n this.waitUntilConnected('NavigatorUserMedia.getUserMedia')\\r\\n .then(function () {\\r\\n var callbacks = _this.registerCallbacks(true, false, webrpcclassinfo_1.method_id_NavigatorUserMedia_t.getUserMedia);\\r\\n if (typeof constraints.audio !== 'undefined') {\\r\\n if (Object.keys(constraints.audio).length == 0)\\r\\n constraints.audio = { dummy: 1 }; //for cases where audio:{}, add a dummy element so we can unmarshall audio\\r\\n }\\r\\n if (typeof constraints.video !== 'undefined') {\\r\\n var vids = constraints.video;\\r\\n if (vids.mandatory.maxFrameRate == undefined) {\\r\\n vids.mandatory.maxFrameRate = 30;\\r\\n }\\r\\n if (vids.mandatory.minWidth == undefined) {\\r\\n vids.mandatory.minWidth = 360;\\r\\n }\\r\\n if (vids.mandatory.maxWidth == undefined) {\\r\\n vids.mandatory.maxWidth = 1920;\\r\\n }\\r\\n if (vids.mandatory.minHeight == undefined) {\\r\\n vids.mandatory.minHeight = 180;\\r\\n }\\r\\n if (vids.mandatory.maxHeight == undefined) {\\r\\n vids.mandatory.maxHeight = 1080;\\r\\n }\\r\\n }\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_NavigatorUserMedia_t.getUserMedia, constraints, callbacks.success, callbacks.fail);\\r\\n return callbacks.prom();\\r\\n })\\r\\n .then(function (obj) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.getUserMedia: received success callback!');\\r\\n var stream = new RemoteStream(null, _this.param0(obj)['oid']);\\r\\n return stream.syncBarrier();\\r\\n })\\r\\n .then(function (stream) {\\r\\n var s = stream;\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.getUserMedia: MediaStream ready to deliver', JSON.stringify(s));\\r\\n if (s.getTracks().length == 0) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.getUserMedia: reporting no tracks as error.');\\r\\n errorCallback({ constraintName: \\\"\\\", name: \\\"OverconstrainedError\\\", message: \\\"\\\" });\\r\\n }\\r\\n else {\\r\\n _this.LogTelemetryDevice_(constraints);\\r\\n successCallback(s);\\r\\n }\\r\\n })\\r\\n .catch(function (err) {\\r\\n if (hdxms_1.getRedirector().getFeatureValue(webrpcclassinfo_1.FEATURE_ms_teams_1912)) {\\r\\n errorCallback(_this.param0(err));\\r\\n }\\r\\n else {\\r\\n errorCallback({ constraintName: \\\"\\\", name: \\\"OverconstrainedError\\\", message: \\\"\\\" });\\r\\n }\\r\\n });\\r\\n };\\r\\n NavigatorUserMedia.prototype.SendTelemetryData = function (key_, value_, flags_) {\\r\\n hdxms_1.getRedirector().telemetry.SendTelemetryData(telemetry_1.tel_cmd.Data, key_, value_, flags_);\\r\\n };\\r\\n return NavigatorUserMedia;\\r\\n}(proxyobject_1.ProxyObject));\\r\\nexports.NavigatorUserMedia = NavigatorUserMedia;\\r\\n\\n\\n//# sourceURL=webpack://CitrixWebRTC/E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/remotemedia.js?\");\n },\n \"../../../out/shim/sdk/int/sdk/remotesession.js\":\n /*!***************************************************************************!*\\\r\n !*** E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/remotesession.js ***!\r\n \\***************************************************************************/\n\n /*! no static exports found */\n function outShimSdkIntSdkRemotesessionJs(module, exports, __webpack_require__) {\n\n eval('\\r\\nObject.defineProperty(exports, \"__esModule\", { value: true });\\r\\nvar hdxms_1 = __webpack_require__(/*! ./hdxms */ \"../../../out/shim/sdk/int/sdk/hdxms.js\");\\r\\nvar webrpcclassinfo_1 = __webpack_require__(/*! ./webrpcclassinfo */ \"../../../out/shim/sdk/int/sdk/webrpcclassinfo.js\");\\r\\nvar enginecontrol_1 = __webpack_require__(/*! ./enginecontrol */ \"../../../out/shim/sdk/int/sdk/enginecontrol.js\");\\r\\nvar logger_1 = __webpack_require__(/*! ./logger */ \"../../../out/shim/sdk/int/sdk/logger.js\");\\r\\nvar webrpcclassinfo_2 = __webpack_require__(/*! ./webrpcclassinfo */ \"../../../out/shim/sdk/int/sdk/webrpcclassinfo.js\");\\r\\nvar telemetry_1 = __webpack_require__(/*! ./telemetry */ \"../../../out/shim/sdk/int/sdk/telemetry.js\");\\r\\nvar RemoteType;\\r\\n(function (RemoteType) {\\r\\n RemoteType[RemoteType[\"Unknown\"] = 0] = \"Unknown\";\\r\\n RemoteType[RemoteType[\"Windows\"] = 1] = \"Windows\";\\r\\n RemoteType[RemoteType[\"Linux\"] = 2] = \"Linux\";\\r\\n})(RemoteType = exports.RemoteType || (exports.RemoteType = {}));\\r\\nvar SessionInfo = /** @class */ (function () {\\r\\n function SessionInfo() {\\r\\n }\\r\\n return SessionInfo;\\r\\n}());\\r\\nexports.SessionInfo = SessionInfo;\\r\\nvar RemoteSession = /** @class */ (function () {\\r\\n function RemoteSession() {\\r\\n var _this = this;\\r\\n this.isremote_ = false;\\r\\n this.isremote_ = true; //set default to remote\\r\\n this.type_ = RemoteType.Windows; //set default to windows\\r\\n this.address_ = \"0.0.0.0\"; //not supported yet\\r\\n this.sessioninfo_ = null;\\r\\n hdxms_1.getRedirector().setRemoteSessionInfoCb(function () { return _this.remoteSessionInfo(); });\\r\\n this.enginecontrol_ = new enginecontrol_1.EngineControl();\\r\\n }\\r\\n RemoteSession.prototype.release = function () {\\r\\n hdxms_1.getRedirector().setRemoteSessionInfoCb(null);\\r\\n };\\r\\n RemoteSession.prototype.user_friendly_id = function () {\\r\\n return \\'[RemoteSession]\\';\\r\\n };\\r\\n RemoteSession.prototype.getFeatureFlags = function () {\\r\\n var features = {};\\r\\n if (this.enginecontrol_ !== null && this.enginecontrol_.features_ !== null && this.enginecontrol_.features_ !== undefined) {\\r\\n this.enginecontrol_.features_.forEach(function (e) {\\r\\n features[e.name] = e.value;\\r\\n });\\r\\n }\\r\\n return features;\\r\\n };\\r\\n /*\\r\\n * Check feature_flags against a list of sub-features that make up a ms feature from the featureNameMap. Returns true if all sub features\\r\\n * are present in feature_flags and their values are true.\\r\\n */\\r\\n RemoteSession.prototype.isFeatureSupported = function (feature) {\\r\\n // TODO : implement proper feature support check for \"video\"\\r\\n if (feature === \"video\") {\\r\\n return true;\\r\\n }\\r\\n // this feature is not in our feature_flags list\\r\\n if (!(feature in webrpcclassinfo_2.featureNameMap)) {\\r\\n return false;\\r\\n }\\r\\n // get list of all sub-features for this feature\\r\\n var subFeatures = webrpcclassinfo_2.featureNameMap[feature];\\r\\n // get a hash map of feature_flags\\r\\n var featureFlags = this.getFeatureFlags();\\r\\n for (var i = 0; i < subFeatures.length; i++) {\\r\\n if (!(subFeatures[i] in featureFlags) || (featureFlags[subFeatures[i]] !== true)) {\\r\\n return false;\\r\\n }\\r\\n }\\r\\n return true;\\r\\n };\\r\\n RemoteSession.isFeaturePstnSupported = function () {\\r\\n return RemoteSession.pstn_;\\r\\n };\\r\\n // syncBarrier is used because methods on this interface return synchronously and we cant block in JavaScript\\r\\n RemoteSession.prototype.getSessionInfo = function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + \\'.getSessionInfo() called.\\');\\r\\n //we already have session info\\r\\n if (this.sessioninfo_ != null) {\\r\\n return Promise.resolve(this.sessioninfo_);\\r\\n }\\r\\n else {\\r\\n return Promise.reject();\\r\\n }\\r\\n };\\r\\n RemoteSession.prototype.remoteSessionInfo = function () {\\r\\n var _this = this;\\r\\n var self = this;\\r\\n logger_1.logger.log(self.user_friendly_id() + \\'.remoteSessionInfo() called.\\');\\r\\n //retrieve sessioninfo\\r\\n return new Promise(function (resolve, reject) {\\r\\n //webrpc engine version\\r\\n self.enginecontrol_.syncBarrier().then(function (e) {\\r\\n logger_1.logger.log(self.user_friendly_id() + \\'enginecontrol info received!\\');\\r\\n self.sessioninfo_ = new SessionInfo();\\r\\n //TypeScript version\\r\\n self.sessioninfo_.type_script = webrpcclassinfo_1.HDXMS_VERSION;\\r\\n //webrpc default version that is returned from e.version_\\r\\n var webrpc_version = e.version_.major.toString() + \".\" + e.version_.minor.toString() + \".\" + e.version_.revision.toString() + \".\" + e.version_.build.toString();\\r\\n self.sessioninfo_.webrpc = webrpc_version;\\r\\n //convert version to string format\\r\\n //e.versions_ contains valid value only if the client is 1906 or later (ds feature)\\r\\n if (e.versions_ != undefined && e.versions_ != null) {\\r\\n //Perf data\\r\\n self.SendTelemetryData(telemetry_1.tel_key_VerTypeScript, webrpcclassinfo_1.HDXMS_VERSION, 0);\\r\\n var i = 0;\\r\\n for (var _i = 0, _a = e.versions_; _i < _a.length; _i++) {\\r\\n var v = _a[_i];\\r\\n var version_str = v.major.toString() + \".\" + v.minor.toString() + \".\" + v.revision.toString() + \".\" + v.build.toString();\\r\\n switch (i) {\\r\\n case enginecontrol_1.VersionType.Webrpc:\\r\\n self.sessioninfo_.webrpc = version_str;\\r\\n //Perf data\\r\\n self.SendTelemetryData(telemetry_1.tel_key_VerWebrpc, version_str, 0);\\r\\n break;\\r\\n case enginecontrol_1.VersionType.WebrtcCodecs:\\r\\n self.sessioninfo_.webrtc_codecs = version_str;\\r\\n //Perf data\\r\\n self.SendTelemetryData(telemetry_1.tel_key_VerWebrtcCodecs, version_str, 0);\\r\\n break;\\r\\n case enginecontrol_1.VersionType.Receiver:\\r\\n self.sessioninfo_.receiver = version_str;\\r\\n //Perf data\\r\\n self.SendTelemetryData(telemetry_1.tel_key_VerReceiver, version_str, 0);\\r\\n break;\\r\\n case enginecontrol_1.VersionType.Vda:\\r\\n self.sessioninfo_.vda = version_str;\\r\\n self.SendTelemetryData(telemetry_1.tel_key_VerVda, version_str, 0);\\r\\n break;\\r\\n case enginecontrol_1.VersionType.Endpoint:\\r\\n self.sessioninfo_.endpoint = version_str;\\r\\n //Perf data\\r\\n self.SendTelemetryData(telemetry_1.tel_key_VerEndpoint, version_str, 0);\\r\\n break;\\r\\n default:\\r\\n logger_1.logger.log(self.user_friendly_id() + \\'Unknown version type!\\');\\r\\n break;\\r\\n }\\r\\n i++;\\r\\n }\\r\\n }\\r\\n if (e.osinfo_ != undefined && e.osinfo_ != null) {\\r\\n self.sessioninfo_.osinfo = e.osinfo_;\\r\\n self.SendTelemetryData(telemetry_1.tel_key_OSFamily, e.osinfo_.family, 0);\\r\\n self.SendTelemetryData(telemetry_1.tel_key_OSVersion, e.osinfo_.version, 0);\\r\\n self.SendTelemetryData(telemetry_1.tel_key_OSArchitecture, e.osinfo_.architecture, 0);\\r\\n self.SendTelemetryData(telemetry_1.tel_key_OSDistro, e.osinfo_.distro, 0);\\r\\n self.SendTelemetryData(telemetry_1.tel_key_OSEdition, e.osinfo_.edition, 0);\\r\\n }\\r\\n if (e.sessionidentifier_ != undefined && e.sessionidentifier_ != null) {\\r\\n self.sessioninfo_.session_identifier = e.sessionidentifier_;\\r\\n }\\r\\n RemoteSession.pstn_ = _this.isFeatureSupported(webrpcclassinfo_1.FEATURE_public_pstn);\\r\\n resolve(self.sessioninfo_);\\r\\n //cleanup\\r\\n self.enginecontrol_.release();\\r\\n })\\r\\n .catch(function () {\\r\\n //start timer to re-try if ping is active\\r\\n if (hdxms_1.getRedirector().isPingActive()) {\\r\\n self.retrySessionInfo();\\r\\n }\\r\\n else {\\r\\n //reject current promise\\r\\n reject();\\r\\n //cleanup\\r\\n self.enginecontrol_.release();\\r\\n self.enginecontrol_ = null;\\r\\n }\\r\\n });\\r\\n });\\r\\n };\\r\\n RemoteSession.prototype.retrySessionInfo = function () {\\r\\n var self = this;\\r\\n setTimeout(function () {\\r\\n //need to wait for another round\\r\\n logger_1.logger.log(\\'checking if we are connected...\\');\\r\\n self.enginecontrol_.bind();\\r\\n hdxms_1.getRedirector().handleRemoteSessionInfo();\\r\\n }, 15000);\\r\\n };\\r\\n RemoteSession.prototype.SendTelemetryData = function (key_, value_, flags_) {\\r\\n hdxms_1.getRedirector().telemetry.SendTelemetryData(telemetry_1.tel_cmd.Data, key_, value_, flags_);\\r\\n };\\r\\n RemoteSession.pstn_ = false;\\r\\n return RemoteSession;\\r\\n}());\\r\\nexports.RemoteSession = RemoteSession;\\r\\n\\n\\n//# sourceURL=webpack://CitrixWebRTC/E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/remotesession.js?');\n },\n \"../../../out/shim/sdk/int/sdk/rtpsender.js\":\n /*!***********************************************************************!*\\\r\n !*** E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/rtpsender.js ***!\r\n \\***********************************************************************/\n\n /*! no static exports found */\n function outShimSdkIntSdkRtpsenderJs(module, exports, __webpack_require__) {\n\n eval(\"\\r\\nvar __extends = (this && this.__extends) || (function () {\\r\\n var 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 return function (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\\nvar __awaiter = (this && this.__awaiter) || function (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\\nvar __generator = (this && this.__generator) || function (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\\nObject.defineProperty(exports, \\\"__esModule\\\", { value: true });\\r\\nvar proxyobject_1 = __webpack_require__(/*! ./proxyobject */ \\\"../../../out/shim/sdk/int/sdk/proxyobject.js\\\");\\r\\nvar webrpcclassinfo_1 = __webpack_require__(/*! ./webrpcclassinfo */ \\\"../../../out/shim/sdk/int/sdk/webrpcclassinfo.js\\\");\\r\\nvar logger_1 = __webpack_require__(/*! ./logger */ \\\"../../../out/shim/sdk/int/sdk/logger.js\\\");\\r\\nvar remotemedia_1 = __webpack_require__(/*! ./remotemedia */ \\\"../../../out/shim/sdk/int/sdk/remotemedia.js\\\");\\r\\nvar stats_1 = __webpack_require__(/*! ./stats */ \\\"../../../out/shim/sdk/int/sdk/stats.js\\\");\\r\\nvar remotesession_1 = __webpack_require__(/*! ./remotesession */ \\\"../../../out/shim/sdk/int/sdk/remotesession.js\\\");\\r\\nvar DTMFToneChangeEvent = /** @class */ (function (_super) {\\r\\n __extends(DTMFToneChangeEvent, _super);\\r\\n function DTMFToneChangeEvent(parent, oid) {\\r\\n var _this = _super.call(this, parent, webrpcclassinfo_1.class_id_t.RTCDTMFToneChangeEvent, oid, proxyobject_1.ProxyMode.Remote) || this;\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.constructor');\\r\\n return _this;\\r\\n }\\r\\n DTMFToneChangeEvent.prototype.syncBarrier = function () {\\r\\n return __awaiter(this, void 0, void 0, function () {\\r\\n var _a, promises;\\r\\n var _this = this;\\r\\n return __generator(this, function (_b) {\\r\\n switch (_b.label) {\\r\\n case 0:\\r\\n logger_1.logger.log(this.user_friendly_id() + '.syncBarrier() called.');\\r\\n return [4 /*yield*/, this.waitUntilConnected('DTMFToneChangeEvent.syncBarrier')];\\r\\n case 1:\\r\\n _b.sent();\\r\\n return [4 /*yield*/, Promise.all([\\r\\n this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCDTMFToneChangeEvent_t.tone, \\\"\\\"),\\r\\n this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCDTMFToneChangeEvent_t.tone_buffer, \\\"\\\")\\r\\n ])];\\r\\n case 2:\\r\\n promises = _b.sent();\\r\\n _a = promises.map(function (result) { return _this.param0(result); }), this.tone = _a[0], this.tone_buffer_ = _a[1];\\r\\n return [2 /*return*/, this];\\r\\n }\\r\\n });\\r\\n });\\r\\n };\\r\\n Object.defineProperty(DTMFToneChangeEvent.prototype, \\\"tone_buffer\\\", {\\r\\n get: function () {\\r\\n return this.tone_buffer_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n return DTMFToneChangeEvent;\\r\\n}(proxyobject_1.ProxyObject));\\r\\nexports.DTMFToneChangeEvent = DTMFToneChangeEvent;\\r\\nvar DtmfSender = /** @class */ (function (_super) {\\r\\n __extends(DtmfSender, _super);\\r\\n function DtmfSender(parent, oid) {\\r\\n var _this = _super.call(this, parent, webrpcclassinfo_1.class_id_t.RTCDTMFSender, oid, proxyobject_1.ProxyMode.Remote) || this;\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.constructor');\\r\\n _this.canInsertDTMF = true;\\r\\n _this.toneBuffer_ = \\\"\\\";\\r\\n return _this;\\r\\n }\\r\\n DtmfSender.prototype.insertDTMF = function (tones, duration, interToneGap) {\\r\\n var _this = this;\\r\\n if (duration === void 0) { duration = 100; }\\r\\n if (interToneGap === void 0) { interToneGap = 70; }\\r\\n logger_1.logger.log(this.user_friendly_id() + '.insertDTMF() called, tones: ' + tones);\\r\\n this.waitUntilConnected('DtmfSender.insertDTMF')\\r\\n .then(function () {\\r\\n return _this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCDTMFSender_t.insertDTMF, tones, duration, interToneGap);\\r\\n })\\r\\n .then(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.insertDTMF() success, tones: ' + tones);\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.insertDTMF() failed, tones: ' + tones);\\r\\n });\\r\\n };\\r\\n Object.defineProperty(DtmfSender.prototype, \\\"ontonechange\\\", {\\r\\n get: function () {\\r\\n return this.ontonechange_;\\r\\n },\\r\\n set: function (f) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.set_ontonechange() called.');\\r\\n this.ontonechange_ = f;\\r\\n this.waitUntilConnected('DtmfSender.ontonechange')\\r\\n .then(function () {\\r\\n var callbacks = _this.registerCallbacks(false, _this.isNullCallback(f), webrpcclassinfo_1.method_id_RTCDTMFSender_t.ontonechange);\\r\\n callbacks.then(function (obj) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.ontonechange callback received!');\\r\\n var toneEvt = new DTMFToneChangeEvent(_this, _this.param0(obj)['oid']);\\r\\n toneEvt.syncBarrier()\\r\\n .then(function (evt) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + 'tone: ' + evt.tone + ' tone_buffer: ' + evt.tone_buffer);\\r\\n _this.toneBuffer_ = evt.tone_buffer;\\r\\n _this.ontonechange_(evt);\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + 'toneEvt.syncBarrier(): failed!');\\r\\n });\\r\\n });\\r\\n return _this.remoteInvoke(true, webrpcclassinfo_1.method_id_RTCDTMFSender_t.ontonechange, callbacks.success);\\r\\n })\\r\\n .catch(function () { logger_1.logger.log(_this.user_friendly_id() + '.set_ontonechange(): failed!'); });\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(DtmfSender.prototype, \\\"toneBuffer\\\", {\\r\\n get: function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.toneBuffer() called.');\\r\\n return this.toneBuffer_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n return DtmfSender;\\r\\n}(proxyobject_1.ProxyObject));\\r\\nexports.DtmfSender = DtmfSender;\\r\\nvar IceTransport = /** @class */ (function (_super) {\\r\\n __extends(IceTransport, _super);\\r\\n function IceTransport(parent, oid) {\\r\\n var _this = _super.call(this, parent, webrpcclassinfo_1.class_id_t.RTCIceTransport, oid, proxyobject_1.ProxyMode.Remote) || this;\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.constructor');\\r\\n _this.selectedPair = null;\\r\\n _this.localCandidates_ = [];\\r\\n _this.remoteCandidates_ = [];\\r\\n return _this;\\r\\n }\\r\\n IceTransport.prototype.syncBarrier = function () {\\r\\n return __awaiter(this, void 0, void 0, function () {\\r\\n var _a, promises, stateIdx, gatherStateIdx;\\r\\n var _this = this;\\r\\n return __generator(this, function (_b) {\\r\\n switch (_b.label) {\\r\\n case 0:\\r\\n logger_1.logger.log(this.user_friendly_id() + '.syncBarrier() called.');\\r\\n return [4 /*yield*/, this.waitUntilConnected('IceTransport.syncBarrier')];\\r\\n case 1:\\r\\n _b.sent();\\r\\n return [4 /*yield*/, Promise.all([\\r\\n this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCIceTransport_t.role, 0),\\r\\n this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCIceTransport_t.component, 0),\\r\\n this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCIceTransport_t.state, 0),\\r\\n this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCIceTransport_t.gatheringState, 0)\\r\\n ])];\\r\\n case 2:\\r\\n promises = _b.sent();\\r\\n stateIdx = 0;\\r\\n gatherStateIdx = 0;\\r\\n _a = promises.map(function (result) { return _this.param0(result); }), this.role_ = _a[0], this.component_ = _a[1], stateIdx = _a[2], gatherStateIdx = _a[3];\\r\\n this.state_ = IceTransport.convertState(stateIdx);\\r\\n this.gatheringState_ = IceTransport.convertGatheringState(gatherStateIdx);\\r\\n //sync candidates\\r\\n this.syncCandidates().then(function (e) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + 'received updated ice candidates!');\\r\\n });\\r\\n return [2 /*return*/, this];\\r\\n }\\r\\n });\\r\\n });\\r\\n };\\r\\n IceTransport.prototype.syncCandidates = function () {\\r\\n return __awaiter(this, void 0, void 0, function () {\\r\\n var _a, promises;\\r\\n var _this = this;\\r\\n return __generator(this, function (_b) {\\r\\n switch (_b.label) {\\r\\n case 0:\\r\\n logger_1.logger.log(this.user_friendly_id() + '.syncCandidates() called.');\\r\\n return [4 /*yield*/, this.waitUntilConnected('IceTransport.syncCandidates')];\\r\\n case 1:\\r\\n _b.sent();\\r\\n return [4 /*yield*/, Promise.all([\\r\\n this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCIceTransport_t.localcandidates, []),\\r\\n this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCIceTransport_t.remotecandidates, [])\\r\\n ])];\\r\\n case 2:\\r\\n promises = _b.sent();\\r\\n _a = promises.map(function (result) { return _this.param0(result); }), this.localCandidates_ = _a[0], this.remoteCandidates_ = _a[1];\\r\\n return [2 /*return*/, this];\\r\\n }\\r\\n });\\r\\n });\\r\\n };\\r\\n Object.defineProperty(IceTransport.prototype, \\\"role\\\", {\\r\\n get: function () {\\r\\n return this.role_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(IceTransport.prototype, \\\"component\\\", {\\r\\n get: function () {\\r\\n return this.component_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(IceTransport.prototype, \\\"State\\\", {\\r\\n get: function () {\\r\\n return this.state_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(IceTransport.prototype, \\\"gatheringState\\\", {\\r\\n get: function () {\\r\\n return this.gatheringState_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(IceTransport.prototype, \\\"onstatechange\\\", {\\r\\n get: function () {\\r\\n return this.onstatechange_;\\r\\n },\\r\\n set: function (f) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.set_onstatechange() called.');\\r\\n this.onstatechange_ = f;\\r\\n this.waitUntilConnected('IceTransport.onstatechange')\\r\\n .then(function () {\\r\\n var callbacks = _this.registerCallbacks(false, _this.isNullCallback(f), webrpcclassinfo_1.method_id_RTCIceTransport_t.onstatechange);\\r\\n callbacks.then(function (obj) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.onstatechange callback received!');\\r\\n //sync candidates\\r\\n _this.syncCandidates().then(function (e) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + 'received updated ice candidates!');\\r\\n });\\r\\n //notify state change\\r\\n _this.state_ = IceTransport.convertState(_this.param0(obj));\\r\\n logger_1.logger.log(_this.user_friendly_id() + 'state: ' + _this.state_);\\r\\n _this.onstatechange_();\\r\\n });\\r\\n return _this.remoteInvoke(true, webrpcclassinfo_1.method_id_RTCIceTransport_t.onstatechange, callbacks.success);\\r\\n })\\r\\n .catch(function () { logger_1.logger.log(_this.user_friendly_id() + '.set_onstatechange failed!'); });\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(IceTransport.prototype, \\\"ongatheringstatechange\\\", {\\r\\n get: function () {\\r\\n return this.ongatheringstatechange_;\\r\\n },\\r\\n set: function (f) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.set_ongatheringstatechange() called.');\\r\\n this.ongatheringstatechange_ = f;\\r\\n this.waitUntilConnected('IceTransport.ongatheringstatechange')\\r\\n .then(function () {\\r\\n var callbacks = _this.registerCallbacks(false, _this.isNullCallback(f), webrpcclassinfo_1.method_id_RTCIceTransport_t.ongatheringstatechange);\\r\\n callbacks.then(function (obj) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.ongatheringstatechange callback received!');\\r\\n //sync candidates\\r\\n _this.syncCandidates().then(function (e) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + 'received updated ice candidates!');\\r\\n });\\r\\n //notify gathering state change\\r\\n _this.gatheringState_ = IceTransport.convertGatheringState(_this.param0(obj));\\r\\n logger_1.logger.log(_this.user_friendly_id() + 'gatheringState: ' + _this.gatheringState_);\\r\\n _this.ongatheringstatechange_();\\r\\n });\\r\\n return _this.remoteInvoke(true, webrpcclassinfo_1.method_id_RTCIceTransport_t.ongatheringstatechange, callbacks.success);\\r\\n })\\r\\n .catch(function () { logger_1.logger.log(_this.user_friendly_id() + '.set_ongatheringstatechange failed!'); });\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(IceTransport.prototype, \\\"onselectedcandidatepairchange\\\", {\\r\\n get: function () {\\r\\n return this.onselectedcandidatepairchange_;\\r\\n },\\r\\n set: function (f) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.set_onselectedcandidatepairchange() called.');\\r\\n this.onselectedcandidatepairchange_ = f;\\r\\n this.waitUntilConnected('IceTransport.onselectedcandidatepairchange')\\r\\n .then(function () {\\r\\n var callbacks = _this.registerCallbacks(false, _this.isNullCallback(f), webrpcclassinfo_1.method_id_RTCIceTransport_t.onselectedcandidatepairchange);\\r\\n callbacks.then(function (obj) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.onselectedcandidatepairchange callback received!');\\r\\n //sync candidates\\r\\n _this.syncCandidates().then(function (e) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + 'received updated ice candidates!');\\r\\n });\\r\\n //notify candidate pair change\\r\\n _this.selectedPair = _this.param0(obj);\\r\\n logger_1.logger.log(_this.user_friendly_id() + 'selectedPair: ' + _this.selectedPair);\\r\\n _this.onselectedcandidatepairchange_();\\r\\n });\\r\\n return _this.remoteInvoke(true, webrpcclassinfo_1.method_id_RTCIceTransport_t.onselectedcandidatepairchange, callbacks.success);\\r\\n })\\r\\n .catch(function () { logger_1.logger.log(_this.user_friendly_id() + '.set_onselectedcandidatepairchange failed!'); });\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n IceTransport.prototype.getLocalCandidates = function () {\\r\\n return this.localCandidates_;\\r\\n };\\r\\n IceTransport.prototype.getRemoteCandidates = function () {\\r\\n return this.remoteCandidates_;\\r\\n };\\r\\n IceTransport.prototype.getLocalParameters = function () {\\r\\n return null;\\r\\n };\\r\\n IceTransport.prototype.getRemoteParameters = function () {\\r\\n return null;\\r\\n };\\r\\n IceTransport.prototype.getSelectedCandidatePair = function () {\\r\\n return this.selectedPair;\\r\\n };\\r\\n IceTransport.convertState = function (idx) {\\r\\n if (idx == 0) {\\r\\n return \\\"new\\\";\\r\\n }\\r\\n else if (idx == 1) {\\r\\n return \\\"checking\\\";\\r\\n }\\r\\n else if (idx == 2) {\\r\\n return \\\"connected\\\";\\r\\n }\\r\\n else if (idx == 3) {\\r\\n return \\\"completed\\\";\\r\\n }\\r\\n else if (idx == 4) {\\r\\n return \\\"failed\\\";\\r\\n }\\r\\n else if (idx == 5) {\\r\\n return \\\"disconnected\\\";\\r\\n }\\r\\n else {\\r\\n return \\\"closed\\\";\\r\\n }\\r\\n };\\r\\n IceTransport.convertGatheringState = function (idx) {\\r\\n if (idx == 0) {\\r\\n return \\\"new\\\";\\r\\n }\\r\\n else if (idx == 1) {\\r\\n return \\\"gathering\\\";\\r\\n }\\r\\n else {\\r\\n return \\\"complete\\\";\\r\\n }\\r\\n };\\r\\n return IceTransport;\\r\\n}(proxyobject_1.ProxyObject));\\r\\nexports.IceTransport = IceTransport;\\r\\n//this enum value matches with native side\\r\\nvar DtlsTransportState;\\r\\n(function (DtlsTransportState) {\\r\\n DtlsTransportState[DtlsTransportState[\\\"new\\\"] = 0] = \\\"new\\\";\\r\\n DtlsTransportState[DtlsTransportState[\\\"connecting\\\"] = 1] = \\\"connecting\\\";\\r\\n DtlsTransportState[DtlsTransportState[\\\"connected\\\"] = 2] = \\\"connected\\\";\\r\\n DtlsTransportState[DtlsTransportState[\\\"closed\\\"] = 3] = \\\"closed\\\";\\r\\n DtlsTransportState[DtlsTransportState[\\\"failed\\\"] = 4] = \\\"failed\\\";\\r\\n DtlsTransportState[DtlsTransportState[\\\"max\\\"] = 5] = \\\"max\\\";\\r\\n})(DtlsTransportState || (DtlsTransportState = {}));\\r\\nvar DtlsTransport = /** @class */ (function (_super) {\\r\\n __extends(DtlsTransport, _super);\\r\\n function DtlsTransport(parent, oid) {\\r\\n var _this = _super.call(this, parent, webrpcclassinfo_1.class_id_t.RTCDtlsTransport, oid, proxyobject_1.ProxyMode.Remote) || this;\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.constructor');\\r\\n _this.state_ = \\\"new\\\";\\r\\n _this.transport_ = null;\\r\\n _this.remoteCertificates_ = [];\\r\\n return _this;\\r\\n }\\r\\n DtlsTransport.prototype.syncBarrier = function () {\\r\\n return __awaiter(this, void 0, void 0, function () {\\r\\n var _a, promises, objRef, transport, _b;\\r\\n var _this = this;\\r\\n return __generator(this, function (_c) {\\r\\n switch (_c.label) {\\r\\n case 0:\\r\\n logger_1.logger.log(this.user_friendly_id() + '.syncBarrier() called.');\\r\\n return [4 /*yield*/, Promise.all([\\r\\n this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCDtlsTransport_t.transport, {}),\\r\\n this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCDtlsTransport_t.getRemoteCertificates, [])\\r\\n ])];\\r\\n case 1:\\r\\n promises = _c.sent();\\r\\n _a = promises.map(function (result) { return _this.param0(result); }), objRef = _a[0], this.remoteCertificates_ = _a[1];\\r\\n if (!(objRef != undefined && objRef['is_null'] == false)) return [3 /*break*/, 3];\\r\\n transport = new IceTransport(this, objRef['oid']);\\r\\n _b = this;\\r\\n return [4 /*yield*/, transport.syncBarrier()];\\r\\n case 2:\\r\\n _b.transport_ = _c.sent();\\r\\n _c.label = 3;\\r\\n case 3: return [2 /*return*/, this];\\r\\n }\\r\\n });\\r\\n });\\r\\n };\\r\\n Object.defineProperty(DtlsTransport.prototype, \\\"transport\\\", {\\r\\n get: function () {\\r\\n return this.transport_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(DtlsTransport.prototype, \\\"State\\\", {\\r\\n get: function () {\\r\\n return this.state_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n DtlsTransport.prototype.getRemoteCertificates = function () {\\r\\n return this.remoteCertificates_;\\r\\n };\\r\\n Object.defineProperty(DtlsTransport.prototype, \\\"onstatechange\\\", {\\r\\n get: function () {\\r\\n return this.onstatechange_;\\r\\n },\\r\\n set: function (f) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.set_onstatechange() called.');\\r\\n this.onstatechange_ = f;\\r\\n this.waitUntilConnected('DtlsTransport.onstatechange')\\r\\n .then(function () {\\r\\n var callbacks = _this.registerCallbacks(false, _this.isNullCallback(f), webrpcclassinfo_1.method_id_RTCDtlsTransport_t.onstatechange);\\r\\n callbacks.then(function (obj) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.onstatechange callback received!');\\r\\n _this.state_ = DtlsTransport.convertState(_this.param0(obj));\\r\\n logger_1.logger.log(_this.user_friendly_id() + 'state_: ' + _this.state_);\\r\\n _this.onstatechange_();\\r\\n });\\r\\n return _this.remoteInvoke(true, webrpcclassinfo_1.method_id_RTCDtlsTransport_t.onstatechange, callbacks.success);\\r\\n })\\r\\n .catch(function () { });\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(DtlsTransport.prototype, \\\"onerror\\\", {\\r\\n get: function () {\\r\\n return this.onerror_;\\r\\n },\\r\\n set: function (f) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.set_onerror() called.');\\r\\n this.onerror_ = f;\\r\\n this.waitUntilConnected('DtlsTransport.onerror')\\r\\n .then(function () {\\r\\n var callbacks = _this.registerCallbacks(false, _this.isNullCallback(f), webrpcclassinfo_1.method_id_RTCDtlsTransport_t.onerror);\\r\\n callbacks.then(function (obj) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.onerror callback received!');\\r\\n var err = _this.param0(obj);\\r\\n logger_1.logger.log(_this.user_friendly_id() + 'error: ' + err);\\r\\n _this.onerror_(err);\\r\\n });\\r\\n return _this.remoteInvoke(true, webrpcclassinfo_1.method_id_RTCDtlsTransport_t.onerror, callbacks.success);\\r\\n })\\r\\n .catch(function () { });\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n DtlsTransport.convertState = function (idx) {\\r\\n if (idx == DtlsTransportState.new) {\\r\\n return \\\"new\\\";\\r\\n }\\r\\n else if (idx == DtlsTransportState.connecting) {\\r\\n return \\\"connecting\\\";\\r\\n }\\r\\n else if (idx == DtlsTransportState.connected) {\\r\\n return \\\"connected\\\";\\r\\n }\\r\\n else if (idx == DtlsTransportState.closed) {\\r\\n return \\\"closed\\\";\\r\\n }\\r\\n else {\\r\\n return \\\"failed\\\";\\r\\n }\\r\\n };\\r\\n return DtlsTransport;\\r\\n}(proxyobject_1.ProxyObject));\\r\\nexports.DtlsTransport = DtlsTransport;\\r\\nvar RtpSenderReceiver = /** @class */ (function (_super) {\\r\\n __extends(RtpSenderReceiver, _super);\\r\\n function RtpSenderReceiver(parent, cid, oid, mode) {\\r\\n var _this = _super.call(this, parent, cid, oid, mode) || this;\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.constructor base');\\r\\n _this.track_ = null;\\r\\n _this.transport_ = null;\\r\\n _this.rtcpTransport_ = null;\\r\\n _this.capabilities_ = null;\\r\\n return _this;\\r\\n }\\r\\n // according to W3C specs, DTLS transports are created during setLocalDescription, setRemoteDescription\\r\\n RtpSenderReceiver.prototype.syncBarrierBase = function () {\\r\\n return __awaiter(this, void 0, void 0, function () {\\r\\n var _a, mid_track, mid_transport, mid_rtcp_transport, mid_capabilities, promises, objRef_track, objRef_transport, objRef_rtcp_transport, _b, _c, _d;\\r\\n var _this = this;\\r\\n return __generator(this, function (_e) {\\r\\n switch (_e.label) {\\r\\n case 0:\\r\\n logger_1.logger.log(this.user_friendly_id() + '.syncBarrierBase() called.');\\r\\n return [4 /*yield*/, this.waitUntilConnected('RtpSenderReceiver.syncBarrierBase')];\\r\\n case 1:\\r\\n _e.sent();\\r\\n if (this instanceof RtpSender) {\\r\\n mid_track = webrpcclassinfo_1.method_id_RTCRtpSender_t.track;\\r\\n mid_transport = webrpcclassinfo_1.method_id_RTCRtpSender_t.transport;\\r\\n mid_rtcp_transport = webrpcclassinfo_1.method_id_RTCRtpSender_t.rtcpTransport;\\r\\n mid_capabilities = webrpcclassinfo_1.method_id_RTCRtpSender_t.getCapabilities;\\r\\n }\\r\\n else if (this instanceof RtpReceiver) {\\r\\n mid_track = webrpcclassinfo_1.method_id_RTCRtpReceiver_t.track;\\r\\n mid_transport = webrpcclassinfo_1.method_id_RTCRtpReceiver_t.transport;\\r\\n mid_rtcp_transport = webrpcclassinfo_1.method_id_RTCRtpReceiver_t.rtcpTransport;\\r\\n mid_capabilities = webrpcclassinfo_1.method_id_RTCRtpReceiver_t.getCapabilities;\\r\\n }\\r\\n if (!remotesession_1.RemoteSession.isFeaturePstnSupported()) return [3 /*break*/, 3];\\r\\n return [4 /*yield*/, Promise.all([\\r\\n this.remoteInvoke(false, mid_track, { \\\"oid\\\": this.object_id() }),\\r\\n this.remoteInvoke(false, mid_transport, { \\\"oid\\\": this.object_id() }),\\r\\n this.remoteInvoke(false, mid_rtcp_transport, { \\\"oid\\\": this.object_id() }),\\r\\n this.remoteInvoke(false, mid_capabilities, { \\\"oid\\\": this.object_id() })\\r\\n ])];\\r\\n case 2:\\r\\n promises = _e.sent();\\r\\n return [3 /*break*/, 5];\\r\\n case 3: return [4 /*yield*/, Promise.all([\\r\\n this.remoteInvoke(false, mid_track, { \\\"oid\\\": this.object_id() })\\r\\n ])];\\r\\n case 4:\\r\\n promises = _e.sent();\\r\\n _e.label = 5;\\r\\n case 5:\\r\\n _a = promises.map(function (result) { return _this.param0(result); }), objRef_track = _a[0], objRef_transport = _a[1], objRef_rtcp_transport = _a[2], this.capabilities_ = _a[3];\\r\\n _b = this;\\r\\n return [4 /*yield*/, Promise.all(promises.map(function () {\\r\\n if (objRef_track != undefined && objRef_track['is_null'] === false && (_this.track === null || _this.track_.object_id() != objRef_track['oid'])) {\\r\\n var track = new remotemedia_1.RemoteMediaTrack(_this, objRef_track['oid']);\\r\\n return track.syncBarrier();\\r\\n }\\r\\n return new Promise(function (resolve, reject) { resolve(null); });\\r\\n })).catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + 'track.syncBarrier(): failed!');\\r\\n return null;\\r\\n })];\\r\\n case 6:\\r\\n _b.track_ = (_e.sent())[0];\\r\\n _c = this;\\r\\n return [4 /*yield*/, Promise.all(promises.map(function () {\\r\\n if (objRef_transport != undefined && objRef_transport['is_null'] === false && (_this.transport_ === null || _this.transport_.object_id() != objRef_transport['oid'])) {\\r\\n var transport = new DtlsTransport(_this, objRef_transport['oid']);\\r\\n return transport.syncBarrier();\\r\\n }\\r\\n return new Promise(function (resolve, reject) { resolve(null); });\\r\\n })).catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + 'transport.syncBarrier(): failed!');\\r\\n return null;\\r\\n })];\\r\\n case 7:\\r\\n _c.transport_ = (_e.sent())[0];\\r\\n _d = this;\\r\\n return [4 /*yield*/, Promise.all(promises.map(function () {\\r\\n if (objRef_rtcp_transport != undefined && objRef_rtcp_transport['is_null'] === false && (_this.rtcpTransport_ === null || _this.rtcpTransport_.object_id() != objRef_rtcp_transport['oid'])) {\\r\\n var rtcpTransport = new DtlsTransport(_this, objRef_rtcp_transport['oid']);\\r\\n return rtcpTransport.syncBarrier();\\r\\n }\\r\\n return new Promise(function (resolve, reject) { resolve(null); });\\r\\n })).catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + 'rtcpTransport.syncBarrier(): failed!');\\r\\n return null;\\r\\n })];\\r\\n case 8:\\r\\n _d.rtcpTransport_ = (_e.sent())[0];\\r\\n return [2 /*return*/, new Promise(function (resolve) {\\r\\n resolve(_this);\\r\\n })];\\r\\n }\\r\\n });\\r\\n });\\r\\n };\\r\\n Object.defineProperty(RtpSenderReceiver.prototype, \\\"transport\\\", {\\r\\n get: function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.get transport() called.');\\r\\n return this.transport_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(RtpSenderReceiver.prototype, \\\"rtcpTransport\\\", {\\r\\n get: function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.get rtcpTransport() called.');\\r\\n return this.rtcpTransport_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(RtpSenderReceiver.prototype, \\\"track\\\", {\\r\\n get: function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.get track() called.' + 'track_: ' + this.track_);\\r\\n return this.track_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n RtpSenderReceiver.prototype.reinitTrack = function (track) {\\r\\n this.track_ = track;\\r\\n };\\r\\n RtpSenderReceiver.prototype.getCapabilities = function (kind) {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.getCapabilities() called.');\\r\\n return this.capabilities_;\\r\\n };\\r\\n RtpSenderReceiver.prototype.getStats = function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.getStats() called.');\\r\\n var self = this;\\r\\n return new Promise(function (resolve, reject) {\\r\\n var _this = this;\\r\\n if (!self.isRedirected()) {\\r\\n logger_1.logger.log(self.user_friendly_id() + '.getStats(): not in active redirection!');\\r\\n resolve();\\r\\n }\\r\\n else {\\r\\n self.waitUntilConnected('RtpReceiver.getStats')\\r\\n .then(function () {\\r\\n var mid;\\r\\n if (_this instanceof RtpSender) {\\r\\n mid = webrpcclassinfo_1.method_id_RTCRtpSender_t.getStats;\\r\\n }\\r\\n else if (_this instanceof RtpReceiver) {\\r\\n mid = webrpcclassinfo_1.method_id_RTCRtpReceiver_t.getStats;\\r\\n }\\r\\n var callback = self.registerCallbacks(true, false, mid);\\r\\n callback.then(function (obj) {\\r\\n if (obj['params'] === undefined || obj['params'].length === 0) {\\r\\n return;\\r\\n }\\r\\n resolve(stats_1.StatsReport.fromJSON(JSON.parse(obj['params'][0])));\\r\\n });\\r\\n return self.remoteInvoke(false, mid, callback.success);\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(self.user_friendly_id() + '.getStats(): failed!');\\r\\n reject();\\r\\n });\\r\\n }\\r\\n });\\r\\n };\\r\\n return RtpSenderReceiver;\\r\\n}(proxyobject_1.ProxyObject));\\r\\nexports.RtpSenderReceiver = RtpSenderReceiver;\\r\\nvar RtpSender = /** @class */ (function (_super) {\\r\\n __extends(RtpSender, _super);\\r\\n function RtpSender(parent, oid, mode) {\\r\\n var _this = _super.call(this, parent, webrpcclassinfo_1.class_id_t.RTCRtpSender, oid, mode) || this;\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.constructor');\\r\\n _this.dtmf_ = null;\\r\\n _this.params_ = null;\\r\\n return _this;\\r\\n }\\r\\n RtpSender.prototype.syncBarrier = function () {\\r\\n return __awaiter(this, void 0, void 0, function () {\\r\\n var _a, promises, objRef;\\r\\n var _this = this;\\r\\n return __generator(this, function (_b) {\\r\\n switch (_b.label) {\\r\\n case 0:\\r\\n logger_1.logger.log(this.user_friendly_id() + '.syncBarrier() called.');\\r\\n return [4 /*yield*/, _super.prototype.syncBarrierBase.call(this)];\\r\\n case 1:\\r\\n _b.sent();\\r\\n return [4 /*yield*/, this.waitUntilConnected('RtpSender.syncBarrier')];\\r\\n case 2:\\r\\n _b.sent();\\r\\n return [4 /*yield*/, Promise.all([\\r\\n this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCRtpSender_t.dtmf, { \\\"oid\\\": this.object_id() }),\\r\\n this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCRtpSender_t.getParameters, { \\\"oid\\\": this.object_id() })\\r\\n ])];\\r\\n case 3:\\r\\n promises = _b.sent();\\r\\n _a = promises.map(function (result) { return _this.param0(result); }), objRef = _a[0], this.params_ = _a[1];\\r\\n if (objRef != undefined && objRef['is_null'] === false && (this.dtmf_ === null || this.dtmf_.object_id() != objRef['oid'])) {\\r\\n this.dtmf_ = new DtmfSender(this, objRef['oid']);\\r\\n }\\r\\n return [2 /*return*/, new Promise(function (resolve) {\\r\\n resolve(_this);\\r\\n })];\\r\\n }\\r\\n });\\r\\n });\\r\\n };\\r\\n Object.defineProperty(RtpSender.prototype, \\\"dtmf\\\", {\\r\\n get: function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.get dtmf() called.');\\r\\n return this.dtmf_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n RtpSender.prototype.setParameters = function (parameters) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.setParameters() called.');\\r\\n return new Promise(function (resolve, reject) {\\r\\n _this.waitUntilConnected('RtpSender.setParameters')\\r\\n .then(function () {\\r\\n return Promise.all([\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCRtpSender_t.setParameters, parameters)\\r\\n ]);\\r\\n })\\r\\n .then(function (obj) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.setParameters(): success.');\\r\\n resolve();\\r\\n //update local\\r\\n _this.params_ = parameters;\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.setParameters(): rejected.');\\r\\n reject();\\r\\n });\\r\\n });\\r\\n };\\r\\n RtpSender.prototype.getParameters = function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.getParameters() called.');\\r\\n return this.params_;\\r\\n };\\r\\n RtpSender.prototype.replaceTrack = function (withTrack) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.replaceTrack() called.');\\r\\n return new Promise(function (resolve, reject) {\\r\\n _this.waitUntilConnected('RtpSender.replaceTrack')\\r\\n .then(function () {\\r\\n return Promise.all([\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCRtpSender_t.replaceTrack, { \\\"oid\\\": withTrack.object_id() })\\r\\n ]);\\r\\n })\\r\\n .then(function (obj) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.replaceTrack(): success.');\\r\\n resolve();\\r\\n _this.reinitTrack(withTrack);\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.setParameters(): rejected.');\\r\\n reject();\\r\\n });\\r\\n });\\r\\n };\\r\\n return RtpSender;\\r\\n}(RtpSenderReceiver));\\r\\nexports.RtpSender = RtpSender;\\r\\nvar RtpReceiver = /** @class */ (function (_super) {\\r\\n __extends(RtpReceiver, _super);\\r\\n function RtpReceiver(parent, oid) {\\r\\n var _this = _super.call(this, parent, webrpcclassinfo_1.class_id_t.RTCRtpReceiver, oid, proxyobject_1.ProxyMode.Remote) || this;\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.constructor');\\r\\n _this.contribsources_ = [];\\r\\n _this.syncsources_ = [];\\r\\n _this.params_ = null;\\r\\n return _this;\\r\\n }\\r\\n RtpReceiver.prototype.syncBarrier = function () {\\r\\n return __awaiter(this, void 0, void 0, function () {\\r\\n var _a, promises;\\r\\n var _this = this;\\r\\n return __generator(this, function (_b) {\\r\\n switch (_b.label) {\\r\\n case 0:\\r\\n logger_1.logger.log(this.user_friendly_id() + '.syncBarrier() called.');\\r\\n return [4 /*yield*/, _super.prototype.syncBarrierBase.call(this)];\\r\\n case 1:\\r\\n _b.sent();\\r\\n return [4 /*yield*/, this.waitUntilConnected('RtpReceiver.syncBarrier')];\\r\\n case 2:\\r\\n _b.sent();\\r\\n if (!remotesession_1.RemoteSession.isFeaturePstnSupported()) return [3 /*break*/, 4];\\r\\n return [4 /*yield*/, Promise.all([\\r\\n this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCRtpReceiver_t.getContributingSources, []),\\r\\n this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCRtpReceiver_t.getSynchronizationSources, []),\\r\\n this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCRtpReceiver_t.getParameters, { \\\"oid\\\": this.object_id() })\\r\\n ])];\\r\\n case 3:\\r\\n promises = _b.sent();\\r\\n return [3 /*break*/, 6];\\r\\n case 4: return [4 /*yield*/, Promise.all([\\r\\n this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCRtpReceiver_t.getContributingSources, [])\\r\\n ])];\\r\\n case 5:\\r\\n promises = _b.sent();\\r\\n _b.label = 6;\\r\\n case 6:\\r\\n _a = promises.map(function (result) { return _this.param0(result); }), this.contribsources_ = _a[0], this.syncsources_ = _a[1], this.params_ = _a[2];\\r\\n return [2 /*return*/, new Promise(function (resolve) {\\r\\n resolve(_this);\\r\\n })];\\r\\n }\\r\\n });\\r\\n });\\r\\n };\\r\\n RtpReceiver.prototype.getContributingSources = function () {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.getContributingSources() called. ' + JSON.stringify(this.contribsources_));\\r\\n this.waitUntilConnected('RtpReceiver.getContributingSources')\\r\\n .then(function () {\\r\\n return Promise.all([\\r\\n _this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCRtpReceiver_t.getContributingSources, [])\\r\\n ]);\\r\\n })\\r\\n .then(function (results) {\\r\\n var sources;\\r\\n _this.contribsources_ = results.map(function (result) { return _this.param0(result); })[0];\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.getContributingSources() didnt get response.');\\r\\n _this.contribsources_ = [];\\r\\n });\\r\\n return this.contribsources_;\\r\\n };\\r\\n RtpReceiver.prototype.getParameters = function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.getParameters() called.');\\r\\n return this.params_;\\r\\n };\\r\\n RtpReceiver.prototype.getSynchronizationSources = function () {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.getSynchronizationSources() called.');\\r\\n return this.syncsources_;\\r\\n };\\r\\n return RtpReceiver;\\r\\n}(RtpSenderReceiver));\\r\\nexports.RtpReceiver = RtpReceiver;\\r\\n\\n\\n//# sourceURL=webpack://CitrixWebRTC/E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/rtpsender.js?\");\n },\n \"../../../out/shim/sdk/int/sdk/rtptransceiver.js\":\n /*!****************************************************************************!*\\\r\n !*** E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/rtptransceiver.js ***!\r\n \\****************************************************************************/\n\n /*! no static exports found */\n function outShimSdkIntSdkRtptransceiverJs(module, exports, __webpack_require__) {\n\n eval('\\r\\nvar __extends = (this && this.__extends) || (function () {\\r\\n var 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 return function (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\\nvar __awaiter = (this && this.__awaiter) || function (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\\nvar __generator = (this && this.__generator) || function (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\\nObject.defineProperty(exports, \"__esModule\", { value: true });\\r\\nvar proxyobject_1 = __webpack_require__(/*! ./proxyobject */ \"../../../out/shim/sdk/int/sdk/proxyobject.js\");\\r\\nvar webrpcclassinfo_1 = __webpack_require__(/*! ./webrpcclassinfo */ \"../../../out/shim/sdk/int/sdk/webrpcclassinfo.js\");\\r\\nvar logger_1 = __webpack_require__(/*! ./logger */ \"../../../out/shim/sdk/int/sdk/logger.js\");\\r\\nvar rtpsender_1 = __webpack_require__(/*! ./rtpsender */ \"../../../out/shim/sdk/int/sdk/rtpsender.js\");\\r\\nvar RtpTransceiver = /** @class */ (function (_super) {\\r\\n __extends(RtpTransceiver, _super);\\r\\n function RtpTransceiver(parent, oid) {\\r\\n var _this = _super.call(this, parent, webrpcclassinfo_1.class_id_t.RTCRtpTransceiver, oid, proxyobject_1.ProxyMode.Remote) || this;\\r\\n logger_1.logger.log(_this.user_friendly_id() + \\'.constructor\\');\\r\\n _this.sender_ = null;\\r\\n _this.receiver_ = null;\\r\\n return _this;\\r\\n }\\r\\n RtpTransceiver.prototype.syncBarrier = function () {\\r\\n return __awaiter(this, void 0, void 0, function () {\\r\\n var _a, promises, obj_sender, obj_receiver, sender, _b, receiver, _c;\\r\\n var _this = this;\\r\\n return __generator(this, function (_d) {\\r\\n switch (_d.label) {\\r\\n case 0:\\r\\n logger_1.logger.log(this.user_friendly_id() + \\'.syncBarrier() called.\\');\\r\\n return [4 /*yield*/, Promise.all([\\r\\n this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCRtpTransceiver_t.sender, {}),\\r\\n this.remoteInvoke(false, webrpcclassinfo_1.method_id_RTCRtpTransceiver_t.receiver, {})\\r\\n ])];\\r\\n case 1:\\r\\n promises = _d.sent();\\r\\n _a = promises.map(function (result) { return _this.param0(result); }), obj_sender = _a[0], obj_receiver = _a[1];\\r\\n if (!(obj_sender != undefined && obj_sender[\\'is_null\\'] === false && (this.sender_ === null || this.sender_.object_id() != obj_sender[\\'oid\\']))) return [3 /*break*/, 3];\\r\\n sender = new rtpsender_1.RtpSender(this, obj_sender[\\'oid\\'], proxyobject_1.ProxyMode.Remote);\\r\\n _b = this;\\r\\n return [4 /*yield*/, sender.syncBarrier()\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + \\'sender.syncBarrier(): failed!\\');\\r\\n return null;\\r\\n })];\\r\\n case 2:\\r\\n _b.sender_ = _d.sent();\\r\\n _d.label = 3;\\r\\n case 3:\\r\\n if (!(obj_receiver != undefined && obj_receiver[\\'is_null\\'] === false && (this.receiver_ === null || this.receiver_.object_id() != obj_receiver[\\'oid\\']))) return [3 /*break*/, 5];\\r\\n receiver = new rtpsender_1.RtpReceiver(this, obj_receiver[\\'oid\\']);\\r\\n _c = this;\\r\\n return [4 /*yield*/, receiver.syncBarrier()\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + \\'receiver.syncBarrier(): failed!\\');\\r\\n return null;\\r\\n })];\\r\\n case 4:\\r\\n _c.receiver_ = _d.sent();\\r\\n _d.label = 5;\\r\\n case 5: return [2 /*return*/, this];\\r\\n }\\r\\n });\\r\\n });\\r\\n };\\r\\n Object.defineProperty(RtpTransceiver.prototype, \"mid\", {\\r\\n get: function () {\\r\\n return this.mid_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(RtpTransceiver.prototype, \"sender\", {\\r\\n get: function () {\\r\\n return this.sender_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(RtpTransceiver.prototype, \"receiver\", {\\r\\n get: function () {\\r\\n return this.receiver_;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(RtpTransceiver.prototype, \"direction\", {\\r\\n get: function () {\\r\\n return this.direction_;\\r\\n },\\r\\n set: function (value) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + \\'.se_direction() called.\\');\\r\\n this.waitUntilConnected(\\'RtpTransceiver.set_direction\\')\\r\\n .then(function () { return _this.remoteInvoke(true, webrpcclassinfo_1.method_id_RTCRtpTransceiver_t.direction, _this.toRtpDirection(value)); })\\r\\n .then(function () { _this.direction_ = value; })\\r\\n .catch(function () { logger_1.logger.log(_this.user_friendly_id() + \\'.set_direction: failed.\\'); });\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n RtpTransceiver.prototype.stop = function () {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + \\'.stop() called.\\');\\r\\n this.waitUntilConnected(\\'RtpTransceiver.stop\\')\\r\\n .then(function () { return _this.remoteInvoke(true, webrpcclassinfo_1.method_id_RTCRtpTransceiver_t.stop); })\\r\\n .then(function () { logger_1.logger.log(_this.user_friendly_id() + \\'.stop: success.\\'); })\\r\\n .catch(function () { logger_1.logger.log(_this.user_friendly_id() + \\'.stop: failed.\\'); });\\r\\n };\\r\\n RtpTransceiver.prototype.setCodecPreferences = function (codecs) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + \\'.setCodecPreferences() called.\\');\\r\\n this.waitUntilConnected(\\'RtpTransceiver.setCodecPreferences\\')\\r\\n .then(function () { return _this.remoteInvoke(true, webrpcclassinfo_1.method_id_RTCRtpTransceiver_t.setCodecPreferences, codecs); })\\r\\n .then(function () { logger_1.logger.log(_this.user_friendly_id() + \\'.setCodecPreferences: success.\\'); })\\r\\n .catch(function () { logger_1.logger.log(_this.user_friendly_id() + \\'.setCodecPreferences: failed.\\'); });\\r\\n };\\r\\n //*****************************\\r\\n //native side enum value:\\r\\n //enum class RTCRtpTransceiverDirection {\\r\\n //SendRecv,\\r\\n //SendOnly,\\r\\n //RecvOnly,\\r\\n //Inactive\\r\\n //};\\r\\n //*****************************\\r\\n //JS side enum value\\r\\n //enum RTCRtpTransceiverDirection {\\r\\n //\"sendrecv\",\\r\\n //\"sendonly\",\\r\\n //\"recvonly\",\\r\\n //\"inactive\"\\r\\n //};\\r\\n RtpTransceiver.prototype.toRTCRtpDirection = function (id) {\\r\\n var direction = \"inactive\";\\r\\n if (id == 0) {\\r\\n direction = \"sendrecv\";\\r\\n }\\r\\n else if (id == 1) {\\r\\n direction = \"sendonly\";\\r\\n }\\r\\n else if (id == 2) {\\r\\n direction = \"recvonly\";\\r\\n }\\r\\n else if (id == 3) {\\r\\n direction = \"inactive\";\\r\\n }\\r\\n return direction;\\r\\n };\\r\\n RtpTransceiver.prototype.toRtpDirection = function (direction) {\\r\\n var id = 3; //default to inactive\\r\\n if (direction == \"sendrecv\") {\\r\\n id = 0;\\r\\n }\\r\\n else if (direction == \"sendonly\") {\\r\\n id = 1;\\r\\n }\\r\\n else if (direction == \"recvonly\") {\\r\\n id = 2;\\r\\n }\\r\\n else if (direction == \"inactive\") {\\r\\n id = 3;\\r\\n }\\r\\n return id;\\r\\n };\\r\\n return RtpTransceiver;\\r\\n}(proxyobject_1.ProxyObject));\\r\\nexports.RtpTransceiver = RtpTransceiver;\\r\\n\\n\\n//# sourceURL=webpack://CitrixWebRTC/E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/rtptransceiver.js?');\n },\n \"../../../out/shim/sdk/int/sdk/stats.js\":\n /*!*******************************************************************!*\\\r\n !*** E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/stats.js ***!\r\n \\*******************************************************************/\n\n /*! no static exports found */\n function outShimSdkIntSdkStatsJs(module, exports, __webpack_require__) {\n\n eval(\"\\r\\n// statistics implementation\\r\\nObject.defineProperty(exports, \\\"__esModule\\\", { value: true });\\r\\nvar StatsReport = /** @class */ (function () {\\r\\n function StatsReport() {\\r\\n this.items = [];\\r\\n }\\r\\n StatsReport.fromJSON = function (obj) {\\r\\n var stats = new StatsReport();\\r\\n for (var _i = 0, obj_1 = obj; _i < obj_1.length; _i++) {\\r\\n var entry = obj_1[_i];\\r\\n var item = Stats.fromJSON(entry);\\r\\n stats.items.push(item);\\r\\n //logger.log('...stat entry', item.toJSON())\\r\\n }\\r\\n return stats;\\r\\n };\\r\\n StatsReport.prototype.toJSON = function () {\\r\\n return JSON.stringify(this.items);\\r\\n };\\r\\n StatsReport.prototype.result = function () {\\r\\n return this.items;\\r\\n };\\r\\n return StatsReport;\\r\\n}());\\r\\nexports.StatsReport = StatsReport;\\r\\nvar Stats = /** @class */ (function () {\\r\\n function Stats() {\\r\\n this.names_ = [];\\r\\n this.stat_ = new Map();\\r\\n this.id = \\\"\\\";\\r\\n this.timestamp = 0;\\r\\n this.type = \\\"\\\";\\r\\n }\\r\\n Stats.fromJSON = function (obj) {\\r\\n var stats = new Stats();\\r\\n stats.id = obj.id || '',\\r\\n stats.timestamp = obj.timestamp || '',\\r\\n stats.type = obj.type || '';\\r\\n Object.keys(obj).forEach(function (key) {\\r\\n if (key === 'id' || key === 'timestamp' || key === 'type') {\\r\\n return;\\r\\n }\\r\\n stats.names_.push(key);\\r\\n stats.stat_.set(key, obj[key]);\\r\\n });\\r\\n return stats;\\r\\n };\\r\\n Stats.prototype.toJSON = function () {\\r\\n return JSON.stringify({ \\\"id\\\": this.id, \\\"timestamp\\\": this.timestamp, \\\"type\\\": this.type, \\\"stat\\\": this.stat_ });\\r\\n };\\r\\n // provided stats keys\\r\\n Stats.prototype.names = function () {\\r\\n return this.names_;\\r\\n };\\r\\n Stats.prototype.stat = function (name) {\\r\\n var r = this.stat_.get(name);\\r\\n return r;\\r\\n };\\r\\n return Stats;\\r\\n}());\\r\\nexports.Stats = Stats;\\r\\n\\n\\n//# sourceURL=webpack://CitrixWebRTC/E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/stats.js?\");\n },\n \"../../../out/shim/sdk/int/sdk/telemetry.js\":\n /*!***********************************************************************!*\\\r\n !*** E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/telemetry.js ***!\r\n \\***********************************************************************/\n\n /*! no static exports found */\n function outShimSdkIntSdkTelemetryJs(module, exports, __webpack_require__) {\n\n eval('\\r\\nObject.defineProperty(exports, \"__esModule\", { value: true });\\r\\nvar hdxms_1 = __webpack_require__(/*! ./hdxms */ \"../../../out/shim/sdk/int/sdk/hdxms.js\");\\r\\nvar logger_1 = __webpack_require__(/*! ./logger */ \"../../../out/shim/sdk/int/sdk/logger.js\");\\r\\nvar tel_CallState;\\r\\n(function (tel_CallState) {\\r\\n tel_CallState[tel_CallState[\"unknown\"] = 0] = \"unknown\";\\r\\n tel_CallState[tel_CallState[\"active\"] = 1] = \"active\";\\r\\n tel_CallState[tel_CallState[\"idle\"] = 2] = \"idle\";\\r\\n})(tel_CallState = exports.tel_CallState || (exports.tel_CallState = {}));\\r\\nvar tel_CallDirection;\\r\\n(function (tel_CallDirection) {\\r\\n tel_CallDirection[tel_CallDirection[\"unknown\"] = 0] = \"unknown\";\\r\\n tel_CallDirection[tel_CallDirection[\"incoming\"] = 1] = \"incoming\";\\r\\n tel_CallDirection[tel_CallDirection[\"outgoing\"] = 2] = \"outgoing\";\\r\\n})(tel_CallDirection = exports.tel_CallDirection || (exports.tel_CallDirection = {}));\\r\\nvar tel_CallType;\\r\\n(function (tel_CallType) {\\r\\n tel_CallType[tel_CallType[\"unknown\"] = 0] = \"unknown\";\\r\\n tel_CallType[tel_CallType[\"audio\"] = 1] = \"audio\";\\r\\n tel_CallType[tel_CallType[\"video\"] = 2] = \"video\";\\r\\n tel_CallType[tel_CallType[\"multi\"] = 3] = \"multi\";\\r\\n tel_CallType[tel_CallType[\"dshare\"] = 4] = \"dshare\"; //desktop sharing\\r\\n})(tel_CallType = exports.tel_CallType || (exports.tel_CallType = {}));\\r\\n//telemetry commands\\r\\nvar tel_cmd;\\r\\n(function (tel_cmd) {\\r\\n tel_cmd[tel_cmd[\"Unknown\"] = 0] = \"Unknown\";\\r\\n tel_cmd[tel_cmd[\"Cap\"] = 1] = \"Cap\";\\r\\n tel_cmd[tel_cmd[\"Init\"] = 2] = \"Init\";\\r\\n tel_cmd[tel_cmd[\"Data\"] = 3] = \"Data\";\\r\\n})(tel_cmd = exports.tel_cmd || (exports.tel_cmd = {}));\\r\\n//telemetry keys\\r\\nexports.tel_key_ConferenceCallDuration = \"ConferenceCallDuration\";\\r\\nexports.tel_key_AudioCallDuration = \"AudioCallDuration\";\\r\\nexports.tel_key_VideoCallDuration = \"VideoCallDuration\";\\r\\nexports.tel_key_ScreensharingCallDuration = \"ScreensharingCallDuration\";\\r\\nexports.tel_key_CallEstIncoming = \"CallEstIncoming\";\\r\\nexports.tel_key_CallEstOutgoing = \"CallEstOutgoing\";\\r\\nexports.tel_key_AudioDeviceUsed = \"AudioDeviceUsed\";\\r\\nexports.tel_key_VideoDeviceUsed = \"VideoDeviceUsed\";\\r\\nexports.tel_key_SpeakerDeviceUsed = \"SpeakerDeviceUsed\";\\r\\nexports.tel_key_PerfCallDirection = \"PerfCallDirection\";\\r\\nexports.tel_key_PerfCallState = \"PerfCallState\";\\r\\nexports.tel_key_PerfCallType = \"PerfCallType\";\\r\\nexports.tel_key_VerWebrpc = \"VerWebrpc\";\\r\\nexports.tel_key_VerWebrtcCodecs = \"VerWebrtcCodecs\";\\r\\nexports.tel_key_VerReceiver = \"VerReceiver\";\\r\\nexports.tel_key_VerVda = \"VerVda\";\\r\\nexports.tel_key_VerEndpoint = \"VerEndpoint\";\\r\\nexports.tel_key_VerTypeScript = \"VerTypeScript\";\\r\\nexports.tel_key_OSFamily = \"OSFamily\";\\r\\nexports.tel_key_OSVersion = \"OSVersion\";\\r\\nexports.tel_key_OSArchitecture = \"OSArchitecture\";\\r\\nexports.tel_key_OSDistro = \"OSDistro\";\\r\\nexports.tel_key_OSEdition = \"OSEdition\";\\r\\nvar TelemetryData = /** @class */ (function () {\\r\\n function TelemetryData(cmd, key, value, flags) {\\r\\n this.cmd = cmd;\\r\\n this.key = key;\\r\\n this.value = value;\\r\\n this.flags = flags;\\r\\n }\\r\\n TelemetryData.prototype.SendTelemetryData = function (tel) {\\r\\n tel.SendTelemetryData(this.cmd, this.key, this.value, this.flags);\\r\\n };\\r\\n return TelemetryData;\\r\\n}());\\r\\n;\\r\\nvar Telemetry = /** @class */ (function () {\\r\\n function Telemetry() {\\r\\n this.id = 0;\\r\\n this.deferredData = new Array();\\r\\n }\\r\\n Telemetry.prototype.reset = function () {\\r\\n this.id = 0;\\r\\n this.deferredData = new Array();\\r\\n };\\r\\n Telemetry.prototype.onInitialized = function (id) {\\r\\n this.id = id;\\r\\n while (this.deferredData && this.deferredData.length > 0) {\\r\\n this.deferredData.shift().SendTelemetryData(this);\\r\\n }\\r\\n };\\r\\n Telemetry.prototype.SendTelemetryInit = function () {\\r\\n if (this.id > 0) {\\r\\n this.reset();\\r\\n }\\r\\n try {\\r\\n // send telemetry init request data to websocket agent\\r\\n hdxms_1.getRedirector().WSSendObject({\\r\\n v: \\'telemetry\\',\\r\\n hdr: {\\r\\n command: tel_cmd.Init,\\r\\n id: 0\\r\\n },\\r\\n init: {\\r\\n domain: \"HDXMM Teams\",\\r\\n subdomain: \"Teams\",\\r\\n feature: \"msteams\",\\r\\n version: \"1.1.1.1\"\\r\\n },\\r\\n });\\r\\n }\\r\\n catch (err) {\\r\\n logger_1.logger.log(err);\\r\\n }\\r\\n };\\r\\n Telemetry.prototype.SendTelemetryData = function (cmd, key_, value_, flags_) {\\r\\n if (cmd != tel_cmd.Data) {\\r\\n logger_1.logger.log(\"invalid telemetry command!\");\\r\\n return;\\r\\n }\\r\\n //queue commands if telemetry is not initialized yet\\r\\n if (this.id == 0) {\\r\\n this.deferredData.push(new TelemetryData(cmd, key_, value_, flags_));\\r\\n }\\r\\n else {\\r\\n try {\\r\\n hdxms_1.getRedirector().WSSendObject({\\r\\n /**@nocollapse*/ v: \"telemetry\",\\r\\n /**@nocollapse*/ hdr: {\\r\\n command: cmd,\\r\\n id: this.id,\\r\\n },\\r\\n /**@nocollapse*/ data: {\\r\\n key: key_,\\r\\n value: value_,\\r\\n flags: flags_\\r\\n },\\r\\n });\\r\\n }\\r\\n catch (err) {\\r\\n logger_1.logger.log(err);\\r\\n }\\r\\n }\\r\\n };\\r\\n return Telemetry;\\r\\n}());\\r\\nexports.Telemetry = Telemetry;\\r\\n\\n\\n//# sourceURL=webpack://CitrixWebRTC/E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/telemetry.js?');\n },\n \"../../../out/shim/sdk/int/sdk/vdiCitrixWebRTC_sdk.js\":\n /*!*********************************************************************************!*\\\r\n !*** E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/vdiCitrixWebRTC_sdk.js ***!\r\n \\*********************************************************************************/\n\n /*! no static exports found */\n function outShimSdkIntSdkVdiCitrixWebRTC_sdkJs(module, exports, __webpack_require__) {\n eval(\"var vdishim = __webpack_require__(/*! ./peerconnection */ \\\"../../../out/shim/sdk/int/sdk/peerconnection.js\\\");\\r\\nvar rmshim = __webpack_require__(/*! ./remotemedia */ \\\"../../../out/shim/sdk/int/sdk/remotemedia.js\\\");\\r\\nvar videoelem = __webpack_require__(/*! ./videoelement */ \\\"../../../out/shim/sdk/int/sdk/videoelement.js\\\");\\r\\nvar audioelem = __webpack_require__(/*! ./audioelement */ \\\"../../../out/shim/sdk/int/sdk/audioelement.js\\\");\\r\\nvar frametracker = __webpack_require__(/*! ./frametracker */ \\\"../../../out/shim/sdk/int/sdk/frametracker.js\\\");\\r\\nvar logger = __webpack_require__(/*! ./logger */ \\\"../../../out/shim/sdk/int/sdk/logger.js\\\").logger;\\r\\nvar remotesession = __webpack_require__(/*! ./remotesession */ \\\"../../../out/shim/sdk/int/sdk/remotesession.js\\\");\\r\\nvar garbagecollector = __webpack_require__(/*! ./garbagecollector */ \\\"../../../out/shim/sdk/int/sdk/garbagecollector.js\\\").gc;\\r\\nvar HdxMediaStream = __webpack_require__(/*! ./hdxms */ \\\"../../../out/shim/sdk/int/sdk/hdxms.js\\\");\\r\\n\\r\\n(function (root, factory) {\\r\\n if (true) {\\r\\n //define('CitrixWebRTC', [], factory);\\r\\n\\r\\n // Tmp solution for dev build to load from script element\\r\\n root.CitrixWebRTC = factory();\\r\\n } else {}\\r\\n}(typeof self !== 'undefined' ? self : this, function () {\\r\\n\\r\\n \\\"use strict\\\";\\r\\n\\r\\n var CitrixPeerConnection = vdishim.PeerConnection;\\r\\n\\r\\n // getUserMedia\\r\\n var remoteUserMedia = new rmshim.NavigatorUserMedia();\\r\\n function getUserMedia(constraints, onSuccess, onFail) {\\r\\n // This function should return an object that implements the MediaStream interface.\\r\\n // Citrix webrtc application should be able to access the underlying MediaStreamTracks.\\r\\n\\r\\n // MediaStreamTracks should have their enabled attribute observed\\r\\n // to propogate to the ThinClient MediaStreamTrack to facilitate mute.\\r\\n\\r\\n // If the ThinClient does not support remote connections this function should return an\\r\\n // the result of the local navigator.webkitGetUserMedia\\r\\n ExchangeCapability();\\r\\n logger.log(\\\"VDI Shim getUserMedia\\\");\\r\\n if (remoteUserMedia === null || !remoteUserMedia.isValid()) {\\r\\n remoteUserMedia = new rmshim.NavigatorUserMedia();\\r\\n }\\r\\n\\r\\n return remoteUserMedia.webkitGetUserMedia(constraints, onSuccess, onFail);\\r\\n }\\r\\n\\r\\n // enumerateDevices\\r\\n var remoteDevices = new rmshim.RemoteDevices();\\r\\n function enumerateDevices() {\\r\\n // This function should return the devices available on the ThinClient. At least one\\r\\n // input and one output device must be returned.\\r\\n\\r\\n // If the ThinCient does not support remote connections this function must\\r\\n // return valid virtual devices from the VM. At least one input and one output device\\r\\n // must be returned\\r\\n ExchangeCapability();\\r\\n logger.log(\\\"VDI Shim enumerateDevices\\\");\\r\\n if (remoteDevices === null || !remoteDevices.isValid()) {\\r\\n remoteDevices = new rmshim.RemoteDevices();\\r\\n }\\r\\n\\r\\n return remoteDevices.enumerateDevices();\\r\\n }\\r\\n\\r\\n //getDisplayMedia\\r\\n function getDisplayMedia(constraints) {\\r\\n // This function should return an object that implements the MediaStream interface.\\r\\n // Citrix webrtc application should be able to access the underlying MediaStreamTracks.\\r\\n ExchangeCapability();\\r\\n logger.log(\\\"VDI Shim getDisplayMedia\\\");\\r\\n if (remoteDevices === null || !remoteDevices.isValid()) {\\r\\n remoteDevices = new rmshim.RemoteDevices();\\r\\n }\\r\\n\\r\\n return remoteDevices.getDisplayMedia(constraints);\\r\\n }\\r\\n\\r\\n var videoElementFrameTracker = null;\\r\\n function mapVideoElement(curVideoElem) {\\r\\n logger.log(\\\"VDI New Video Element Created, Creating Mapping to VDA\\\");\\r\\n\\r\\n if (videoElementFrameTracker === null) {\\r\\n videoElementFrameTracker = new frametracker.FrameTracker();\\r\\n }\\r\\n\\r\\n if (curVideoElem['VDAVideoElement'] !== undefined) {\\r\\n logger.log('Video element is already configured!');\\r\\n return;\\r\\n }\\r\\n\\r\\n ExchangeCapability();\\r\\n\\r\\n Object.defineProperty(curVideoElem, 'VDAVideoElement', {\\r\\n writable: true,\\r\\n value: null\\r\\n });\\r\\n curVideoElem.VDAVideoElement = new videoelem.VideoElement();\\r\\n\\r\\n curVideoElem.VDAVideoElement.onloadedmetadata = () => {\\r\\n var e = new Event('loadedmetadata');\\r\\n curVideoElem.dispatchEvent(e);\\r\\n };\\r\\n\\r\\n curVideoElem.VDAVideoElement.ontimeupdate = () => {\\r\\n var e = new Event('timeupdate');\\r\\n curVideoElem.dispatchEvent(e);\\r\\n };\\r\\n\\r\\n curVideoElem.VDAVideoElement.onconnectionstatechange = () => {\\r\\n if (curVideoElem.VDAVideoElement.connectionState === 'connected') {\\r\\n videoElementFrameTracker.track(curVideoElem, (frame) => {\\r\\n curVideoElem.VDAVideoElement.setFrame(frame);\\r\\n });\\r\\n } else {\\r\\n videoElementFrameTracker.untrack(curVideoElem);\\r\\n }\\r\\n };\\r\\n\\r\\n Object.defineProperty(curVideoElem, 'sinkId', {\\r\\n get: function () {\\r\\n return curVideoElem.VDAVideoElement.sinkId;\\r\\n },\\r\\n set: function (v) {\\r\\n logger.log(\\\"VDI Shim set video element SinkId value = \\\" + v);\\r\\n curVideoElem.VDAVideoElement.sinkId = v;\\r\\n }\\r\\n });\\r\\n\\r\\n Object.defineProperty(curVideoElem, 'srcObject', {\\r\\n get: function () {\\r\\n return curVideoElem.VDAVideoElement.srcObject;\\r\\n },\\r\\n set: function (v) {\\r\\n logger.log('VDI Shim set video element srcObject');\\r\\n curVideoElem.VDAVideoElement.srcObject = v;\\r\\n },\\r\\n });\\r\\n\\r\\n Object.defineProperty(curVideoElem, 'videoWidth', {\\r\\n get: function () {\\r\\n return curVideoElem.VDAVideoElement.videoWidth;\\r\\n }\\r\\n });\\r\\n\\r\\n Object.defineProperty(curVideoElem, 'videoHeight', {\\r\\n get: function () {\\r\\n return curVideoElem.VDAVideoElement.videoHeight;\\r\\n }\\r\\n });\\r\\n }\\r\\n\\r\\n function Send_Telemetry_Data(MatchedOutputAudioDevice) {\\r\\n HdxMediaStream.getRedirector().SendTelemetryData_Speaker(MatchedOutputAudioDevice);\\r\\n }\\r\\n\\r\\n // newAudioElement\\r\\n function mapAudioElement(curAudioElem) {\\r\\n logger.log(\\\"VDI New Audio Element Created, Creating Mapping to VDA\\\");\\r\\n if (curAudioElem['VDAAudioElement'] !== undefined) {\\r\\n logger.log('Audio element is already configured!');\\r\\n return;\\r\\n }\\r\\n\\r\\n ExchangeCapability();\\r\\n\\r\\n Object.defineProperty(curAudioElem, 'VDAAudioElement', {\\r\\n writable: true,\\r\\n value: null\\r\\n });\\r\\n curAudioElem.VDAAudioElement = new audioelem.AudioElement();\\r\\n\\r\\n Object.defineProperty(curAudioElem, 'sinkId', {\\r\\n get: function () {\\r\\n return curAudioElem.VDAAudioElement.sinkId;\\r\\n },\\r\\n set: function (v) {\\r\\n logger.log(\\\"VDI Shim set audio element SinkId value = \\\" + v);\\r\\n curAudioElem.setSinkId(v)\\r\\n .then(() => {\\r\\n logger.log(\\\"VDI Shim set audio element SinkId success\\\");\\r\\n })\\r\\n .catch(() => {\\r\\n logger.log(\\\"VDI Shim set audio element SinkId failure\\\");\\r\\n });\\r\\n }\\r\\n });\\r\\n\\r\\n //returns Promise\\r\\n curAudioElem.setSinkId = function (v) {\\r\\n logger.log(\\\"VDI Shim set audio element SinkId value = \\\" + v);\\r\\n const result = curAudioElem.VDAAudioElement.setSinkId(v);\\r\\n var OutputAudiodeviceid = v;\\r\\n var MatchedOutputAudioDevice;\\r\\n var devices = rmshim.enumerateddecices;\\r\\n devices.forEach(function (devices) {\\r\\n if (OutputAudiodeviceid === devices.deviceId) {\\r\\n MatchedOutputAudioDevice = devices.label;\\r\\n }\\r\\n });\\r\\n Send_Telemetry_Data(MatchedOutputAudioDevice);\\r\\n return result;\\r\\n }\\r\\n\\r\\n Object.defineProperty(curAudioElem, 'srcObject', {\\r\\n get: function () {\\r\\n return curAudioElem.VDAAudioElement.srcObject;\\r\\n },\\r\\n set: function (v) {\\r\\n logger.log('VDI Shim set audio element srcObject ' + JSON.stringify(v));\\r\\n if (v === null || v === undefined) {\\r\\n //TODO - delete if actually setting srcObject on AudioElement\\r\\n if (curAudioElem.VDAAudioElement.srcObject !== null) {\\r\\n let audio_tr = curAudioElem.remoteAudioElement.srcObject.getTracks();\\r\\n for (let next of audio_tr) {\\r\\n next.enabled = false;\\r\\n }\\r\\n }\\r\\n curAudioElem.VDAAudioElement.release();\\r\\n }\\r\\n else {\\r\\n curAudioElem.VDAAudioElement.srcObject = v;\\r\\n let audio_tr = v.getTracks();\\r\\n for (let next of audio_tr) {\\r\\n next.enabled = true;\\r\\n }\\r\\n }\\r\\n },\\r\\n });\\r\\n }\\r\\n\\r\\n // setVMEventCallback\\r\\n // initialize to window.VMEventCallback for RC timing problem\\r\\n // by the time setVMEventCallback() is called, the event already happen in some cases\\r\\n // therefore, caller will set window.VMEventCallback method before loading this shim JS\\r\\n // then switch to real callback once shim js is fully loaded\\r\\n var onVMEvent = window.VMEventCallback;\\r\\n function setVMEventCallback(callbackFn) {\\r\\n // Call this function to let Citrix webrtc application know about VM events like disconnect with Thin Client.\\r\\n // Function takes one argument: a json payload.\\r\\n // Minimally the json should contain EventType and Message\\r\\n onVMEvent = callbackFn;\\r\\n\\r\\n //window.VMEventCallback is no longer needed\\r\\n window.VMEventCallback = null;\\r\\n logger.log(\\\"VDI Event Callback Set\\\");\\r\\n }\\r\\n\\r\\n function ExchangeCapability() {\\r\\n if (window.getCitrixWebrtcRedir !== undefined) {\\r\\n let ctxreg = window.getCitrixWebrtcRedir();\\r\\n ctxreg.then(function (value) {\\r\\n logger.log(\\\"sucesss on connect\\\" + value);\\r\\n if ((value === 1) && (value !== \\\"\\\") && (remoteSession === null)) {\\r\\n logger.log(\\\"supported client\\\");\\r\\n remoteSession = new remotesession.RemoteSession();\\r\\n }\\r\\n });\\r\\n }\\r\\n }\\r\\n\\r\\n var remotefailure_notified = false;\\r\\n window.onVdiClientDisconnected = function (failure) {\\r\\n logger.log(\\\"VDI Event: vdiClientDisconnected\\\");\\r\\n //cleanup\\r\\n cleanup();\\r\\n\\r\\n if ((failure === true) && (remotefailure_notified === false))\\r\\n {\\r\\n logger.log(\\\"VDI Event: vdiClientDisconnected with failure reported\\\");\\r\\n remotefailure_notified = true; \\r\\n //notify\\r\\n try {\\r\\n onVMEvent({ 'event': 'vdiClientDisconnected', 'reason': 'failure', 'msg': 'Websocket Connection Failure' });\\r\\n } catch (exc) {\\r\\n logger.log('onVMEvent(): exception: ' + exc.message);\\r\\n }\\r\\n }\\r\\n else {\\r\\n //reset flag\\r\\n remotefailure_notified = false;\\r\\n //notify\\r\\n try {\\r\\n onVMEvent({ 'event': 'vdiClientDisconnected', 'reason': 'endpointDisconnected' });\\r\\n } catch (exc) {\\r\\n logger.log('onVMEvent(): exception: ' + exc.message);\\r\\n }\\r\\n }\\r\\n };\\r\\n\\r\\n // RemoteSession info\\r\\n var remoteSession = new remotesession.RemoteSession();\\r\\n window.onVdiClientDisconnectedTimer = function () {\\r\\n logger.log(\\\"VDI Event: onVdiClientDisconnectedTimer\\\");\\r\\n if (remoteSession === null) {\\r\\n remoteSession = new remotesession.RemoteSession();\\r\\n }\\r\\n };\\r\\n\\r\\n window.onVdiClientConnected = function () {\\r\\n logger.log(\\\"VDI Event: vdiClientConnected\\\");\\r\\n \\r\\n /// send overlay window info\\r\\n frametracker.FrameTracker.sendOverlayInfo();\\r\\n\\r\\n sendSessionInfo();\\r\\n\\r\\n if (remoteDevices === null || !remoteDevices.isValid()) {\\r\\n remoteDevices = new rmshim.RemoteDevices();\\r\\n }\\r\\n\\r\\n //fire devicechange so Citrix webrtc application can pick up any device changes between disconnect/reconnect\\r\\n navigator.mediaDevices.dispatchEvent(new CustomEvent('devicechange'));\\r\\n };\\r\\n\\r\\n function StartRedirConnectReg(value) {\\r\\n if ((value === 1) && (value !== \\\"\\\")) {\\r\\n logger.log(\\\"Supported client\\\");\\r\\n HdxMediaStream.getRedirector().pingConnectionBegin(true);\\r\\n }\\r\\n if ((value === 0) && (value !== \\\"\\\")) {\\r\\n logger.log(\\\"VDI Event: Unsupported client reported\\\");\\r\\n try {\\r\\n onVMEvent({ 'event': 'vdiClientDisconnected', 'reason': 'endpointUnsupported', 'msg': 'Unsupported endpoint connected' });\\r\\n } catch (exc) {\\r\\n logger.log('onVMEvent(): exception: ' + exc.message);\\r\\n }\\r\\n }\\r\\n else {\\r\\n logger.log(\\\"Citrix Webrtc Redir Reg Key value is incorrect\\\");\\r\\n }\\r\\n }\\r\\n\\r\\n function TimerCitrixWebrtcRedir(count) {\\r\\n if (count <= 0) {\\r\\n logger.log(\\\"VDI Event: Reg Key not Updated after timer reported, Fallback\\\");\\r\\n try {\\r\\n onVMEvent({ 'event': 'vdiClientDisconnected', 'reason': 'failure', 'msg': 'Citrix Webrtc Redir Reg Key not Present' });\\r\\n } catch (exc) {\\r\\n logger.log('onVMEvent(): exception: ' + exc.message);\\r\\n }\\r\\n }\\r\\n else {\\r\\n let ctxreg = window.getCitrixWebrtcRedir();\\r\\n ctxreg.then(function (value) {\\r\\n if (value === \\\"\\\") {\\r\\n setTimeout(function () {\\r\\n logger.log('Timer waiting for registry to be updated count :'+ count);\\r\\n TimerCitrixWebrtcRedir(--count);\\r\\n }, 1000);\\r\\n }\\r\\n else {\\r\\n StartRedirConnectReg(value);\\r\\n }\\r\\n });\\r\\n }\\r\\n }\\r\\n\\r\\n function onConnectionChange(connected) {\\r\\n logger.log(\\\"VDI : onConnectionChange to \\\" + connected);\\r\\n if (connected === false) {\\r\\n logger.log(\\\"Disconnecting from the VDA\\\");\\r\\n }\\r\\n else {\\r\\n logger.log(\\\"Connecting to the VDA\\\");\\r\\n let ctxreg = window.getCitrixWebrtcRedir();\\r\\n ctxreg.then(function (value) {\\r\\n logger.log(\\\"Sucesss on connect with Reg value :\\\" + value);\\r\\n if (value === \\\"\\\") {\\r\\n logger.log(\\\"Citrix Webrtc Redir Reg key not updated - Start timer\\\");\\r\\n TimerCitrixWebrtcRedir(5);//increase time for debugging\\r\\n }\\r\\n else {\\r\\n StartRedirConnectReg(value);\\r\\n }\\r\\n }).\\r\\n catch(function () {\\r\\n logger.log(\\\"Failure to Read Citrix Webrtc Redir Reg Key\\\");\\r\\n });\\r\\n }\\r\\n }\\r\\n \\r\\n function sendSessionInfo() {\\r\\n logger.log(\\\"VDI: sendSessionInfo\\\");\\r\\n if (remoteSession) {\\r\\n remoteSession.getSessionInfo().then((info) => {\\r\\n logger.log('getSessionInfo success! info:' + JSON.stringify(info));\\r\\n try {\\r\\n onVMEvent({ 'event': 'vdiClientConnected', 'version': info });\\r\\n } catch (exc) {\\r\\n logger.log('onVMEvent(): exception: ' + exc.message);\\r\\n }\\r\\n })\\r\\n .catch(() => {\\r\\n logger.log('getSessionInfo failure! session is not fully connected yet...');\\r\\n });\\r\\n }\\r\\n }\\r\\n\\r\\n function isFeatureOn(targetFeature) {\\r\\n if (remoteSession === null) {\\r\\n return false;\\r\\n }\\r\\n return remoteSession.isFeatureSupported(targetFeature);\\r\\n }\\r\\n\\r\\n function cleanup() {\\r\\n logger.log(\\\"VDI : cleanup\\\");\\r\\n\\r\\n remoteUserMedia = null;\\r\\n remoteDevices = null;\\r\\n videoElementFrameTracker = null;\\r\\n\\r\\n if (remoteSession) {\\r\\n remoteSession.release();\\r\\n }\\r\\n remoteSession = null;\\r\\n\\r\\n garbagecollector.reset();\\r\\n\\r\\n logger.log(\\\"VDI : cleanup done\\\");\\r\\n }\\r\\n\\r\\n function initLog(logging) {\\r\\n logger.setMSLogger(logging);\\r\\n logger.log(\\\"VDI init logger\\\");\\r\\n }\\r\\n\\r\\n function addClipRect(rect) {\\r\\n //logger.info(\\\"VDI Adding Occlusion \\\" + JSON.stringify(elem.getBoundingClientRect()));\\r\\n logger.log(\\\"VDI Adding Occlusion \\\" + JSON.stringify(rect));\\r\\n if (videoElementFrameTracker === null) {\\r\\n videoElementFrameTracker = new frametracker.FrameTracker();\\r\\n }\\r\\n videoElementFrameTracker.addOcclusion(rect);\\r\\n }\\r\\n\\r\\n function removeClipRect(rect) {\\r\\n //logger.info(\\\"VDI Removing Occlusion \\\" + JSON.stringify(elem.getBoundingClientRect()));\\r\\n logger.log(\\\"VDI Removing Occlusion \\\" + JSON.stringify(rect));\\r\\n if (videoElementFrameTracker === null) {\\r\\n videoElementFrameTracker = new frametracker.FrameTracker();\\r\\n }\\r\\n videoElementFrameTracker.removeOcclusion(rect);\\r\\n }\\r\\n\\r\\n return {\\r\\n CitrixPeerConnection: CitrixPeerConnection,\\r\\n getUserMedia: getUserMedia,\\r\\n enumerateDevices: enumerateDevices,\\r\\n getDisplayMedia: getDisplayMedia,\\r\\n mapVideoElement: mapVideoElement,\\r\\n mapAudioElement: mapAudioElement,\\r\\n addClipRect: addClipRect,\\r\\n removeClipRect: removeClipRect,\\r\\n setVMEventCallback: setVMEventCallback,\\r\\n isFeatureOn: isFeatureOn,\\r\\n initLog: initLog,\\r\\n onConnectionChange: onConnectionChange\\r\\n };\\r\\n\\r\\n}));\\r\\n\\n\\n//# sourceURL=webpack://CitrixWebRTC/E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/vdiCitrixWebRTC_sdk.js?\");\n },\n \"../../../out/shim/sdk/int/sdk/videoelement.js\":\n /*!**************************************************************************!*\\\r\n !*** E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/videoelement.js ***!\r\n \\**************************************************************************/\n\n /*! no static exports found */\n function outShimSdkIntSdkVideoelementJs(module, exports, __webpack_require__) {\n\n eval(\"\\r\\nvar __extends = (this && this.__extends) || (function () {\\r\\n var 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 return function (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\\nObject.defineProperty(exports, \\\"__esModule\\\", { value: true });\\r\\nvar proxyobject_1 = __webpack_require__(/*! ./proxyobject */ \\\"../../../out/shim/sdk/int/sdk/proxyobject.js\\\");\\r\\nvar lib = __webpack_require__(/*! ./webrpcclassinfo */ \\\"../../../out/shim/sdk/int/sdk/webrpcclassinfo.js\\\");\\r\\nvar logger_1 = __webpack_require__(/*! ./logger */ \\\"../../../out/shim/sdk/int/sdk/logger.js\\\");\\r\\nvar hdxms_1 = __webpack_require__(/*! ./hdxms */ \\\"../../../out/shim/sdk/int/sdk/hdxms.js\\\");\\r\\nvar webrpcclassinfo_1 = __webpack_require__(/*! ./webrpcclassinfo */ \\\"../../../out/shim/sdk/int/sdk/webrpcclassinfo.js\\\");\\r\\nvar VideoRect = /** @class */ (function () {\\r\\n function VideoRect(r) {\\r\\n this.x = Math.round(r.x);\\r\\n this.y = Math.round(r.y);\\r\\n this.width = Math.round(r.width);\\r\\n this.height = Math.round(r.height);\\r\\n }\\r\\n return VideoRect;\\r\\n}());\\r\\nexports.VideoRect = VideoRect;\\r\\nvar VideoElement = /** @class */ (function (_super) {\\r\\n __extends(VideoElement, _super);\\r\\n function VideoElement() {\\r\\n var _this = _super.call(this, null, lib.class_id_t.VideoElement, 0, proxyobject_1.ProxyMode.Local) || this;\\r\\n _this.srcObject_ = null;\\r\\n _this.sinkId_ = '';\\r\\n _this.videoWidth = 0;\\r\\n _this.videoHeight = 0;\\r\\n _this.isLoaded = false;\\r\\n _this.connectionState = \\\"disconnected\\\";\\r\\n _this.dispose_ = false;\\r\\n _this.disposeTimer = null;\\r\\n return _this;\\r\\n }\\r\\n Object.defineProperty(VideoElement.prototype, \\\"sinkId\\\", {\\r\\n get: function () {\\r\\n return this.sinkId_;\\r\\n },\\r\\n set: function (value) {\\r\\n var _this = this;\\r\\n this.waitUntilConnected('VideoElement.sinkId')\\r\\n .then(function () {\\r\\n return _this.remoteInvoke(true, lib.method_id_VideoElement_t.sinkId, value);\\r\\n })\\r\\n .then(function () {\\r\\n _this.sinkId_ = value;\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.sinkId setter: failed to connect!');\\r\\n });\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(VideoElement.prototype, \\\"srcObject\\\", {\\r\\n get: function () {\\r\\n return this.srcObject_;\\r\\n },\\r\\n set: function (obj) {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.srcObject: set srcObject...' + ' this.srcObject:' + this.srcObject + ' obj:' + obj);\\r\\n // skip if srcObject the same as obj\\r\\n if (this.srcObject_ === obj) {\\r\\n return;\\r\\n }\\r\\n //if VideoElement is being reused cancel release\\r\\n if (this.dispose_ === true && this.disposeTimer !== null) {\\r\\n clearTimeout(this.disposeTimer);\\r\\n this.disposeTimer = null;\\r\\n this.dispose_ = false;\\r\\n }\\r\\n // whether receiver version is equal or later than 1911\\r\\n var isAfter1911 = hdxms_1.getRedirector().getFeatureValue(webrpcclassinfo_1.FEATURE_ms_teams_1911);\\r\\n // disconnect first if needed\\r\\n if (this.srcObject_ !== null) {\\r\\n if (obj === null) {\\r\\n // video element is disposed only 5 seconds after srcObject is set to null\\r\\n this.dispose_ = true;\\r\\n // fix RFWIN-11993, only receivers with versions 1911 or after work with this fix\\r\\n if (isAfter1911) {\\r\\n this.disconnect();\\r\\n }\\r\\n }\\r\\n // For backward capability, receivers before version 1911 call disconnect() here\\r\\n if (!isAfter1911) {\\r\\n this.disconnect();\\r\\n }\\r\\n this.isLoaded = false;\\r\\n }\\r\\n // update srcObject\\r\\n this.srcObject_ = obj;\\r\\n // connect new object if it is not null\\r\\n if (this.srcObject_ !== null) {\\r\\n this.connectTo(this.srcObject_);\\r\\n }\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(VideoElement.prototype, \\\"onconnectionstatechange\\\", {\\r\\n get: function () {\\r\\n return this.onconnectionstatechange_;\\r\\n },\\r\\n set: function (cb) {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.set_onconnectionstatechange() called.');\\r\\n this.onconnectionstatechange_ = cb;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n Object.defineProperty(VideoElement.prototype, \\\"onloadedmetadata\\\", {\\r\\n set: function (cb) {\\r\\n logger_1.logger.log(this.user_friendly_id() + '.set_onloadedmetadata() called.');\\r\\n this.onloadedmetadata_ = cb;\\r\\n },\\r\\n enumerable: true,\\r\\n configurable: true\\r\\n });\\r\\n VideoElement.prototype.setupOnVideoFrameChanged = function () {\\r\\n var _this = this;\\r\\n // setup persistent callbacks for onvideoframechanged\\r\\n var handlers = this.registerCallbacks(false, false, lib.method_id_VideoElement_t.onvideoframechanged);\\r\\n handlers.then(function (obj) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.onvideoframechanged', obj.params);\\r\\n _this.videoWidth = obj.params[0] || 0;\\r\\n _this.videoHeight = obj.params[1] || 0;\\r\\n // only fire onloadedmetadata the first time.\\r\\n if (!_this.isLoaded) {\\r\\n _this.isLoaded = true;\\r\\n _this.onloadedmetadata_ && _this.onloadedmetadata_();\\r\\n }\\r\\n });\\r\\n // set the callback.\\r\\n this.remoteInvoke(true, lib.method_id_VideoElement_t.onvideoframechanged, handlers.success);\\r\\n };\\r\\n VideoElement.prototype.connectTo = function (stream) {\\r\\n var _this = this;\\r\\n console.log(this.user_friendly_id() + '.connectTo: connect media stream with id = ' + stream.object_id() + ', clone_id = ' + stream.clone_state.clone_id);\\r\\n // await stable state for websocket communications.\\r\\n this.waitUntilConnected('VideoElement.connectTo')\\r\\n .then(function () {\\r\\n _this.setupOnVideoFrameChanged();\\r\\n // if stream is a clone, synchronize the local object with the remote object.\\r\\n return stream.clone_state.synchronize(stream);\\r\\n })\\r\\n .then(function (new_stream) {\\r\\n var callbacks = _this.registerCallbacks(true, false, lib.method_id_VideoElement_t.connectTo);\\r\\n // wait for either the success callback or failure callback to be received.\\r\\n return Promise.all([\\r\\n _this.remoteInvoke(false, lib.method_id_VideoElement_t.connectTo, { \\\"oid\\\": new_stream.object_id() }, callbacks.success, callbacks.fail),\\r\\n callbacks.prom()\\r\\n ]);\\r\\n })\\r\\n .then(function (results) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.connectTo: remote media stream is connected!');\\r\\n // fire onconnected event\\r\\n _this.connectionState = \\\"connected\\\";\\r\\n if (_this.onconnectionstatechange_) {\\r\\n _this.onconnectionstatechange_();\\r\\n }\\r\\n // setup timeupdate timer.\\r\\n _this.updateTimer = setInterval(function () {\\r\\n _this.ontimeupdate && _this.ontimeupdate();\\r\\n }, 250);\\r\\n })\\r\\n .catch(function (msg) {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.connectTo: failed to connect! msg = ', msg);\\r\\n });\\r\\n };\\r\\n VideoElement.prototype.disconnect = function () {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.disconnect: disconnect from current media stream');\\r\\n if (this.dispose_ === true) {\\r\\n //release videoElement after 5 secs\\r\\n this.disposeTimer = setTimeout(function () { _this.release(); }, 5000);\\r\\n }\\r\\n this.waitUntilConnected('VideoElement.disconnect')\\r\\n .then(function () {\\r\\n // release time update timer\\r\\n if (_this.updateTimer) {\\r\\n clearInterval(_this.updateTimer);\\r\\n }\\r\\n // remote invocer \\r\\n var callbacks = _this.registerCallbacks(false, true, lib.method_id_VideoElement_t.onvideoframechanged);\\r\\n _this.remoteInvoke(true, lib.method_id_VideoElement_t.onvideoframechanged, callbacks.success);\\r\\n return _this.remoteInvoke(false, lib.method_id_VideoElement_t.disconnect);\\r\\n })\\r\\n .then(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.disconnect: remote media stream is disconnected!');\\r\\n // fire onconnected event\\r\\n _this.connectionState = \\\"disconnected\\\";\\r\\n if (_this.onconnectionstatechange_) {\\r\\n _this.onconnectionstatechange_();\\r\\n }\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.disconnect: failed to connect!');\\r\\n });\\r\\n };\\r\\n VideoElement.prototype.setFrame = function (r) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.setFrame: set video frame to', r.x, r.y, r.width, r.height);\\r\\n this.waitUntilConnected('VideoElement.setFrame')\\r\\n .then(function () {\\r\\n var vr = new VideoRect(r);\\r\\n return _this.remoteInvoke(false, lib.method_id_VideoElement_t.setFrame, vr);\\r\\n })\\r\\n .then(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.setFrame: success!');\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.setFrame: failed to connect!');\\r\\n });\\r\\n };\\r\\n VideoElement.prototype.addClipRect = function (r) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.addClipRect: ', JSON.stringify(r));\\r\\n this.waitUntilConnected('VideoElement.addClipRect')\\r\\n .then(function () {\\r\\n var vr = new VideoRect(r);\\r\\n return _this.remoteInvoke(false, lib.method_id_VideoElement_t.addClipRect, vr);\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.addClipRect failed!');\\r\\n });\\r\\n };\\r\\n VideoElement.prototype.removeClipRect = function (r) {\\r\\n var _this = this;\\r\\n logger_1.logger.log(this.user_friendly_id() + '.removeClipRect: ', JSON.stringify(r));\\r\\n this.waitUntilConnected('VideoElement.removeClipRect')\\r\\n .then(function () {\\r\\n var vr = new VideoRect(r);\\r\\n return _this.remoteInvoke(false, lib.method_id_VideoElement_t.removeClipRect, vr);\\r\\n })\\r\\n .catch(function () {\\r\\n logger_1.logger.log(_this.user_friendly_id() + '.removeClipRect failed!');\\r\\n });\\r\\n };\\r\\n return VideoElement;\\r\\n}(proxyobject_1.ProxyObject));\\r\\nexports.VideoElement = VideoElement;\\r\\n\\n\\n//# sourceURL=webpack://CitrixWebRTC/E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/videoelement.js?\");\n },\n \"../../../out/shim/sdk/int/sdk/webrpcclassinfo.js\":\n /*!*****************************************************************************!*\\\r\n !*** E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/webrpcclassinfo.js ***!\r\n \\*****************************************************************************/\n\n /*! no static exports found */\n function outShimSdkIntSdkWebrpcclassinfoJs(module, exports, __webpack_require__) {\n\n eval('\\r\\n//this class library info must match with stub library definition file:\\r\\n// 1. class_lib info: ../webrpc/webrpc.cpp\\r\\n// json_rpc_configuration::class_lib()\\r\\n// 2. class_method info: ../webrpc/stubs/teams.hpp\\r\\n// class::reflect()\\r\\nObject.defineProperty(exports, \"__esModule\", { value: true });\\r\\n/****************************************\\r\\n* 1.1.0.0: initial feature\\r\\n* 1.2.0.0: desktop sharing feature\\r\\n* 1.3.0.0: Phobos feature\\r\\n****************************************/\\r\\nexports.HDXMS_VERSION = \"1.6.0.1\";\\r\\n/*----------------- feature/version related definitions -----------------*/\\r\\nvar VersionData = /** @class */ (function () {\\r\\n function VersionData(major, minor, revision, build) {\\r\\n this.major = major;\\r\\n this.minor = minor;\\r\\n this.revision = revision;\\r\\n this.build = build;\\r\\n }\\r\\n ;\\r\\n return VersionData;\\r\\n}());\\r\\nexports.VersionData = VersionData;\\r\\nvar FeatureData = /** @class */ (function () {\\r\\n function FeatureData() {\\r\\n }\\r\\n return FeatureData;\\r\\n}());\\r\\nexports.FeatureData = FeatureData;\\r\\nvar WebrpcFeatureInfo = /** @class */ (function () {\\r\\n function WebrpcFeatureInfo(fature, version) {\\r\\n this.fature = fature;\\r\\n this.version = version;\\r\\n }\\r\\n ;\\r\\n return WebrpcFeatureInfo;\\r\\n}());\\r\\nvar OSInfo = /** @class */ (function () {\\r\\n function OSInfo(family, version, architecture, distro, edition) {\\r\\n this.family = family;\\r\\n this.version = version;\\r\\n this.architecture = architecture;\\r\\n this.distro = distro;\\r\\n this.edition = edition;\\r\\n }\\r\\n ;\\r\\n return OSInfo;\\r\\n}());\\r\\nexports.OSInfo = OSInfo;\\r\\nvar SessionIdentifier = /** @class */ (function () {\\r\\n function SessionIdentifier(machine, user) {\\r\\n this.machine = machine;\\r\\n this.user = user;\\r\\n }\\r\\n ;\\r\\n return SessionIdentifier;\\r\\n}());\\r\\nexports.SessionIdentifier = SessionIdentifier;\\r\\n/*----------------- feature::version mapping -----------------*/\\r\\n//note: this mappig table is currently not used, but keep this here for tracking changes\\r\\nexports.FEATURE_ms_teams_redirection = \"ms_teams_redirection\";\\r\\nexports.FEATURE_ms_teams_desktop_sharing = \"ms_teams_desktop_sharing\";\\r\\nexports.FEATURE_ms_teams_speaking_indicator = \"ms_teams_speaking_indicator\";\\r\\nexports.FEATURE_ms_teams_common_media_constraints = \"ms_teams_common_media_constraints\";\\r\\nexports.FEATURE_ms_teams_1911 = \"ms_teams_1911\";\\r\\nexports.FEATURE_ms_teams_pstn = \"ms_teams_pstn\";\\r\\nexports.FEATURE_ms_teams_1912 = \"ms_teams_1912\";\\r\\nexports.FEATURE_ms_teams_mstrack_constraints = \"ms_teams_mstrack_constraints\";\\r\\nexports.FEATURE_ms_teams_osinfo = \"ms_teams_osinfo\";\\r\\nexports.FEATURE_ms_teams_sessionidentifier = \"ms_teams_sessionidentifier\";\\r\\nvar feature_map = [\\r\\n //EngineControl\\r\\n new WebrpcFeatureInfo(exports.FEATURE_ms_teams_redirection, new VersionData(1, 1, 0, 0)),\\r\\n new WebrpcFeatureInfo(exports.FEATURE_ms_teams_desktop_sharing, new VersionData(1, 2, 0, 0)),\\r\\n new WebrpcFeatureInfo(exports.FEATURE_ms_teams_speaking_indicator, new VersionData(1, 2, 0, 0)),\\r\\n new WebrpcFeatureInfo(exports.FEATURE_ms_teams_common_media_constraints, new VersionData(1, 4, 0, 0)),\\r\\n new WebrpcFeatureInfo(exports.FEATURE_ms_teams_1911, new VersionData(1, 4, 0, 0)),\\r\\n new WebrpcFeatureInfo(exports.FEATURE_ms_teams_1912, new VersionData(1, 5, 0, 0)),\\r\\n new WebrpcFeatureInfo(exports.FEATURE_ms_teams_mstrack_constraints, new VersionData(1, 6, 0, 0)),\\r\\n new WebrpcFeatureInfo(exports.FEATURE_ms_teams_pstn, new VersionData(1, 6, 0, 0)),\\r\\n new WebrpcFeatureInfo(exports.FEATURE_ms_teams_osinfo, new VersionData(1, 7, 0, 0)),\\r\\n new WebrpcFeatureInfo(exports.FEATURE_ms_teams_sessionidentifier, new VersionData(1, 7, 0, 0))\\r\\n];\\r\\n/*----------------- ms feature to feature_flags lookup -----------------*/\\r\\n//the following strings are public feature strings, and this is mapped to internal feature strings\\r\\n//notice that a public feature string can be mappaed into multiple internal feature strings\\r\\nexports.FEATURE_public_screenshare = \"screenshare\";\\r\\nexports.FEATURE_public_redirection = \"redirection\";\\r\\nexports.FEATURE_public_speaking_indicator = \"speaking_indicator\";\\r\\nexports.FEATURE_public_pstn = \"pstn\";\\r\\nexports.FEATURE_public_osinfo = \"osinfo\";\\r\\nexports.FEATURE_public_sessionidentifier = \"sessionidentifier\";\\r\\nexports.featureNameMap = {}; // hash map whose values are hash sets\\r\\nexports.featureNameMap[exports.FEATURE_public_screenshare] = [exports.FEATURE_ms_teams_desktop_sharing];\\r\\nexports.featureNameMap[exports.FEATURE_public_redirection] = [exports.FEATURE_ms_teams_redirection];\\r\\nexports.featureNameMap[exports.FEATURE_public_speaking_indicator] = [exports.FEATURE_ms_teams_speaking_indicator];\\r\\nexports.featureNameMap[exports.FEATURE_public_pstn] = [exports.FEATURE_ms_teams_pstn];\\r\\nexports.featureNameMap[exports.FEATURE_public_osinfo] = [exports.FEATURE_ms_teams_osinfo];\\r\\nexports.featureNameMap[exports.FEATURE_public_sessionidentifier] = [exports.FEATURE_ms_teams_sessionidentifier];\\r\\n/*----------------- registered class list -----------------*/\\r\\nvar class_id_t;\\r\\n(function (class_id_t) {\\r\\n class_id_t[class_id_t[\"EngineControl\"] = 0] = \"EngineControl\";\\r\\n class_id_t[class_id_t[\"RTCPeerConnection\"] = 1] = \"RTCPeerConnection\";\\r\\n class_id_t[class_id_t[\"RTCSessionDescription\"] = 2] = \"RTCSessionDescription\";\\r\\n class_id_t[class_id_t[\"RTCIceCandidate\"] = 3] = \"RTCIceCandidate\";\\r\\n class_id_t[class_id_t[\"RTCIceCandidateEvent\"] = 4] = \"RTCIceCandidateEvent\";\\r\\n class_id_t[class_id_t[\"MediaDevices\"] = 5] = \"MediaDevices\";\\r\\n class_id_t[class_id_t[\"MediaDeviceInfo\"] = 6] = \"MediaDeviceInfo\";\\r\\n class_id_t[class_id_t[\"MediaStreamTrack\"] = 7] = \"MediaStreamTrack\";\\r\\n class_id_t[class_id_t[\"MediaStreamEvent\"] = 8] = \"MediaStreamEvent\";\\r\\n class_id_t[class_id_t[\"MediaStream\"] = 9] = \"MediaStream\";\\r\\n class_id_t[class_id_t[\"NavigatorUserMedia\"] = 10] = \"NavigatorUserMedia\";\\r\\n class_id_t[class_id_t[\"VideoElement\"] = 11] = \"VideoElement\";\\r\\n class_id_t[class_id_t[\"AudioElement\"] = 12] = \"AudioElement\";\\r\\n class_id_t[class_id_t[\"RTCRtpReceiver\"] = 13] = \"RTCRtpReceiver\";\\r\\n class_id_t[class_id_t[\"RTCRtpSender\"] = 14] = \"RTCRtpSender\";\\r\\n class_id_t[class_id_t[\"RTCDtlsTransport\"] = 15] = \"RTCDtlsTransport\";\\r\\n class_id_t[class_id_t[\"RTCIceTransport\"] = 16] = \"RTCIceTransport\";\\r\\n class_id_t[class_id_t[\"RTCDTMFSender\"] = 17] = \"RTCDTMFSender\";\\r\\n class_id_t[class_id_t[\"RTCDTMFToneChangeEvent\"] = 18] = \"RTCDTMFToneChangeEvent\";\\r\\n class_id_t[class_id_t[\"RTCIceCandidatePair\"] = 19] = \"RTCIceCandidatePair\";\\r\\n class_id_t[class_id_t[\"RTCRtpTransceiver\"] = 20] = \"RTCRtpTransceiver\"; //20\\r\\n})(class_id_t = exports.class_id_t || (exports.class_id_t = {}));\\r\\n/*----------------- class reflection info -----------------*/\\r\\n//\\r\\nvar method_id_EngineControl_t;\\r\\n(function (method_id_EngineControl_t) {\\r\\n method_id_EngineControl_t[method_id_EngineControl_t[\"ctor\"] = 0] = \"ctor\";\\r\\n method_id_EngineControl_t[method_id_EngineControl_t[\"version\"] = 1] = \"version\";\\r\\n method_id_EngineControl_t[method_id_EngineControl_t[\"feature_flags\"] = 2] = \"feature_flags\";\\r\\n method_id_EngineControl_t[method_id_EngineControl_t[\"version_info\"] = 3] = \"version_info\";\\r\\n method_id_EngineControl_t[method_id_EngineControl_t[\"osinfo\"] = 4] = \"osinfo\";\\r\\n method_id_EngineControl_t[method_id_EngineControl_t[\"session_identifier\"] = 5] = \"session_identifier\"; //prop\\r\\n})(method_id_EngineControl_t = exports.method_id_EngineControl_t || (exports.method_id_EngineControl_t = {}));\\r\\n//\\r\\nvar method_id_RTCPeerConnection_t;\\r\\n(function (method_id_RTCPeerConnection_t) {\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"ctor\"] = 0] = \"ctor\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"localDescription\"] = 1] = \"localDescription\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"remoteDescription\"] = 2] = \"remoteDescription\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"readyState\"] = 3] = \"readyState\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"iceState\"] = 4] = \"iceState\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"localStreams\"] = 5] = \"localStreams\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"remoteStreams\"] = 6] = \"remoteStreams\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"createOffer\"] = 7] = \"createOffer\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"createAnswer\"] = 8] = \"createAnswer\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"setLocalDescription\"] = 9] = \"setLocalDescription\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"setRemoteDescription\"] = 10] = \"setRemoteDescription\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"updateIce\"] = 11] = \"updateIce\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"addIceCandidate\"] = 12] = \"addIceCandidate\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"addStream\"] = 13] = \"addStream\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"removeStream\"] = 14] = \"removeStream\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"close\"] = 15] = \"close\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"iceConnectionState\"] = 16] = \"iceConnectionState\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"iceGatheringState\"] = 17] = \"iceGatheringState\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"signalingState\"] = 18] = \"signalingState\";\\r\\n //event cb\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"onaddstream\"] = 19] = \"onaddstream\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"onicecandidate\"] = 20] = \"onicecandidate\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"oniceconnectionstatechange\"] = 21] = \"oniceconnectionstatechange\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"onicegatheringstatechange\"] = 22] = \"onicegatheringstatechange\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"onsignalingstatechange\"] = 23] = \"onsignalingstatechange\";\\r\\n //the following props are not called by Teams for now\\r\\n //ondatachannel, //prop\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"onnegotiationneeded\"] = 24] = \"onnegotiationneeded\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"onremovestream\"] = 25] = \"onremovestream\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"getStats\"] = 26] = \"getStats\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"getReceivers\"] = 27] = \"getReceivers\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"getSenders\"] = 28] = \"getSenders\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"addTrack\"] = 29] = \"addTrack\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"removeTrack\"] = 30] = \"removeTrack\";\\r\\n method_id_RTCPeerConnection_t[method_id_RTCPeerConnection_t[\"ontrack\"] = 31] = \"ontrack\"; //prop 31\\r\\n})(method_id_RTCPeerConnection_t = exports.method_id_RTCPeerConnection_t || (exports.method_id_RTCPeerConnection_t = {}));\\r\\n//\\r\\nvar method_id_MediaDevices_t;\\r\\n(function (method_id_MediaDevices_t) {\\r\\n method_id_MediaDevices_t[method_id_MediaDevices_t[\"ctor\"] = 0] = \"ctor\";\\r\\n method_id_MediaDevices_t[method_id_MediaDevices_t[\"enumerateDevices\"] = 1] = \"enumerateDevices\";\\r\\n method_id_MediaDevices_t[method_id_MediaDevices_t[\"getDisplayMedia\"] = 2] = \"getDisplayMedia\";\\r\\n method_id_MediaDevices_t[method_id_MediaDevices_t[\"ondevicechange\"] = 3] = \"ondevicechange\";\\r\\n})(method_id_MediaDevices_t = exports.method_id_MediaDevices_t || (exports.method_id_MediaDevices_t = {}));\\r\\n//\\r\\nvar method_id_MediaDeviceInfo_t;\\r\\n(function (method_id_MediaDeviceInfo_t) {\\r\\n method_id_MediaDeviceInfo_t[method_id_MediaDeviceInfo_t[\"ctor\"] = 0] = \"ctor\";\\r\\n method_id_MediaDeviceInfo_t[method_id_MediaDeviceInfo_t[\"deviceId\"] = 1] = \"deviceId\";\\r\\n method_id_MediaDeviceInfo_t[method_id_MediaDeviceInfo_t[\"kind\"] = 2] = \"kind\";\\r\\n method_id_MediaDeviceInfo_t[method_id_MediaDeviceInfo_t[\"label\"] = 3] = \"label\";\\r\\n method_id_MediaDeviceInfo_t[method_id_MediaDeviceInfo_t[\"groupId\"] = 4] = \"groupId\"; //prop\\r\\n})(method_id_MediaDeviceInfo_t = exports.method_id_MediaDeviceInfo_t || (exports.method_id_MediaDeviceInfo_t = {}));\\r\\n//\\r\\nvar method_id_RTCSessionDescription_t;\\r\\n(function (method_id_RTCSessionDescription_t) {\\r\\n method_id_RTCSessionDescription_t[method_id_RTCSessionDescription_t[\"ctor\"] = 0] = \"ctor\";\\r\\n //to_string,\\r\\n method_id_RTCSessionDescription_t[method_id_RTCSessionDescription_t[\"type\"] = 1] = \"type\";\\r\\n method_id_RTCSessionDescription_t[method_id_RTCSessionDescription_t[\"sdp\"] = 2] = \"sdp\"; //prop\\r\\n})(method_id_RTCSessionDescription_t = exports.method_id_RTCSessionDescription_t || (exports.method_id_RTCSessionDescription_t = {}));\\r\\n//\\r\\nvar method_id_MediaStreamTrack_t;\\r\\n(function (method_id_MediaStreamTrack_t) {\\r\\n method_id_MediaStreamTrack_t[method_id_MediaStreamTrack_t[\"ctor\"] = 0] = \"ctor\";\\r\\n method_id_MediaStreamTrack_t[method_id_MediaStreamTrack_t[\"kind\"] = 1] = \"kind\";\\r\\n method_id_MediaStreamTrack_t[method_id_MediaStreamTrack_t[\"id\"] = 2] = \"id\";\\r\\n method_id_MediaStreamTrack_t[method_id_MediaStreamTrack_t[\"label\"] = 3] = \"label\";\\r\\n method_id_MediaStreamTrack_t[method_id_MediaStreamTrack_t[\"enabled\"] = 4] = \"enabled\";\\r\\n method_id_MediaStreamTrack_t[method_id_MediaStreamTrack_t[\"muted\"] = 5] = \"muted\";\\r\\n method_id_MediaStreamTrack_t[method_id_MediaStreamTrack_t[\"readyState\"] = 6] = \"readyState\";\\r\\n method_id_MediaStreamTrack_t[method_id_MediaStreamTrack_t[\"onended\"] = 7] = \"onended\";\\r\\n method_id_MediaStreamTrack_t[method_id_MediaStreamTrack_t[\"onmute\"] = 8] = \"onmute\";\\r\\n method_id_MediaStreamTrack_t[method_id_MediaStreamTrack_t[\"onunmute\"] = 9] = \"onunmute\";\\r\\n method_id_MediaStreamTrack_t[method_id_MediaStreamTrack_t[\"clone\"] = 10] = \"clone\";\\r\\n method_id_MediaStreamTrack_t[method_id_MediaStreamTrack_t[\"stop\"] = 11] = \"stop\";\\r\\n method_id_MediaStreamTrack_t[method_id_MediaStreamTrack_t[\"getCapabilities\"] = 12] = \"getCapabilities\";\\r\\n method_id_MediaStreamTrack_t[method_id_MediaStreamTrack_t[\"getSettings\"] = 13] = \"getSettings\";\\r\\n method_id_MediaStreamTrack_t[method_id_MediaStreamTrack_t[\"applyConstraints\"] = 14] = \"applyConstraints\";\\r\\n method_id_MediaStreamTrack_t[method_id_MediaStreamTrack_t[\"getConstraints\"] = 15] = \"getConstraints\";\\r\\n})(method_id_MediaStreamTrack_t = exports.method_id_MediaStreamTrack_t || (exports.method_id_MediaStreamTrack_t = {}));\\r\\n//\\r\\nvar method_id_MediaStream_t;\\r\\n(function (method_id_MediaStream_t) {\\r\\n method_id_MediaStream_t[method_id_MediaStream_t[\"ctor\"] = 0] = \"ctor\";\\r\\n method_id_MediaStream_t[method_id_MediaStream_t[\"id\"] = 1] = \"id\";\\r\\n method_id_MediaStream_t[method_id_MediaStream_t[\"getAudioTracks\"] = 2] = \"getAudioTracks\";\\r\\n method_id_MediaStream_t[method_id_MediaStream_t[\"getVideoTracks\"] = 3] = \"getVideoTracks\";\\r\\n method_id_MediaStream_t[method_id_MediaStream_t[\"getTracks\"] = 4] = \"getTracks\";\\r\\n method_id_MediaStream_t[method_id_MediaStream_t[\"getTrackById\"] = 5] = \"getTrackById\";\\r\\n method_id_MediaStream_t[method_id_MediaStream_t[\"addTrack\"] = 6] = \"addTrack\";\\r\\n method_id_MediaStream_t[method_id_MediaStream_t[\"removeTrack\"] = 7] = \"removeTrack\";\\r\\n method_id_MediaStream_t[method_id_MediaStream_t[\"clone\"] = 8] = \"clone\";\\r\\n method_id_MediaStream_t[method_id_MediaStream_t[\"active\"] = 9] = \"active\";\\r\\n})(method_id_MediaStream_t = exports.method_id_MediaStream_t || (exports.method_id_MediaStream_t = {}));\\r\\n//\\r\\nvar method_id_NavigatorUserMedia_t;\\r\\n(function (method_id_NavigatorUserMedia_t) {\\r\\n method_id_NavigatorUserMedia_t[method_id_NavigatorUserMedia_t[\"ctor\"] = 0] = \"ctor\";\\r\\n method_id_NavigatorUserMedia_t[method_id_NavigatorUserMedia_t[\"getUserMedia\"] = 1] = \"getUserMedia\";\\r\\n})(method_id_NavigatorUserMedia_t = exports.method_id_NavigatorUserMedia_t || (exports.method_id_NavigatorUserMedia_t = {}));\\r\\n//\\r\\nvar method_id_RTCIceCandidate_t;\\r\\n(function (method_id_RTCIceCandidate_t) {\\r\\n method_id_RTCIceCandidate_t[method_id_RTCIceCandidate_t[\"ctor\"] = 0] = \"ctor\";\\r\\n method_id_RTCIceCandidate_t[method_id_RTCIceCandidate_t[\"candidate\"] = 1] = \"candidate\";\\r\\n method_id_RTCIceCandidate_t[method_id_RTCIceCandidate_t[\"sdpMid\"] = 2] = \"sdpMid\";\\r\\n method_id_RTCIceCandidate_t[method_id_RTCIceCandidate_t[\"sdpMLineIndex\"] = 3] = \"sdpMLineIndex\"; //prop\\r\\n})(method_id_RTCIceCandidate_t = exports.method_id_RTCIceCandidate_t || (exports.method_id_RTCIceCandidate_t = {}));\\r\\n//\\r\\nvar method_id_RTCIceCandidateEvent_t;\\r\\n(function (method_id_RTCIceCandidateEvent_t) {\\r\\n method_id_RTCIceCandidateEvent_t[method_id_RTCIceCandidateEvent_t[\"ctor\"] = 0] = \"ctor\";\\r\\n method_id_RTCIceCandidateEvent_t[method_id_RTCIceCandidateEvent_t[\"candidate\"] = 1] = \"candidate\"; //prop\\r\\n //url\\r\\n})(method_id_RTCIceCandidateEvent_t = exports.method_id_RTCIceCandidateEvent_t || (exports.method_id_RTCIceCandidateEvent_t = {}));\\r\\n//\\r\\nvar method_id_MediaStreamEvent_t;\\r\\n(function (method_id_MediaStreamEvent_t) {\\r\\n method_id_MediaStreamEvent_t[method_id_MediaStreamEvent_t[\"ctor\"] = 0] = \"ctor\";\\r\\n method_id_MediaStreamEvent_t[method_id_MediaStreamEvent_t[\"stream\"] = 1] = \"stream\";\\r\\n})(method_id_MediaStreamEvent_t = exports.method_id_MediaStreamEvent_t || (exports.method_id_MediaStreamEvent_t = {}));\\r\\nvar method_id_VideoElement_t;\\r\\n(function (method_id_VideoElement_t) {\\r\\n method_id_VideoElement_t[method_id_VideoElement_t[\"ctor\"] = 0] = \"ctor\";\\r\\n method_id_VideoElement_t[method_id_VideoElement_t[\"sinkId\"] = 1] = \"sinkId\";\\r\\n method_id_VideoElement_t[method_id_VideoElement_t[\"connectTo\"] = 2] = \"connectTo\";\\r\\n method_id_VideoElement_t[method_id_VideoElement_t[\"disconnect\"] = 3] = \"disconnect\";\\r\\n method_id_VideoElement_t[method_id_VideoElement_t[\"setFrame\"] = 4] = \"setFrame\";\\r\\n method_id_VideoElement_t[method_id_VideoElement_t[\"addClipRect\"] = 5] = \"addClipRect\";\\r\\n method_id_VideoElement_t[method_id_VideoElement_t[\"removeClipRect\"] = 6] = \"removeClipRect\";\\r\\n method_id_VideoElement_t[method_id_VideoElement_t[\"onerror\"] = 7] = \"onerror\";\\r\\n method_id_VideoElement_t[method_id_VideoElement_t[\"onvideoframechanged\"] = 8] = \"onvideoframechanged\";\\r\\n})(method_id_VideoElement_t = exports.method_id_VideoElement_t || (exports.method_id_VideoElement_t = {}));\\r\\nvar method_id_AudioElement_t;\\r\\n(function (method_id_AudioElement_t) {\\r\\n method_id_AudioElement_t[method_id_AudioElement_t[\"ctor\"] = 0] = \"ctor\";\\r\\n method_id_AudioElement_t[method_id_AudioElement_t[\"sinkId\"] = 1] = \"sinkId\";\\r\\n method_id_AudioElement_t[method_id_AudioElement_t[\"srcObject\"] = 2] = \"srcObject\";\\r\\n method_id_AudioElement_t[method_id_AudioElement_t[\"src\"] = 3] = \"src\";\\r\\n method_id_AudioElement_t[method_id_AudioElement_t[\"play\"] = 4] = \"play\";\\r\\n method_id_AudioElement_t[method_id_AudioElement_t[\"pause\"] = 5] = \"pause\";\\r\\n})(method_id_AudioElement_t = exports.method_id_AudioElement_t || (exports.method_id_AudioElement_t = {}));\\r\\nvar method_id_RTCRtpReceiver_t;\\r\\n(function (method_id_RTCRtpReceiver_t) {\\r\\n method_id_RTCRtpReceiver_t[method_id_RTCRtpReceiver_t[\"ctor\"] = 0] = \"ctor\";\\r\\n method_id_RTCRtpReceiver_t[method_id_RTCRtpReceiver_t[\"track\"] = 1] = \"track\";\\r\\n method_id_RTCRtpReceiver_t[method_id_RTCRtpReceiver_t[\"getContributingSources\"] = 2] = \"getContributingSources\";\\r\\n method_id_RTCRtpReceiver_t[method_id_RTCRtpReceiver_t[\"getSynchronizationSources\"] = 3] = \"getSynchronizationSources\";\\r\\n method_id_RTCRtpReceiver_t[method_id_RTCRtpReceiver_t[\"transport\"] = 4] = \"transport\";\\r\\n method_id_RTCRtpReceiver_t[method_id_RTCRtpReceiver_t[\"rtcpTransport\"] = 5] = \"rtcpTransport\";\\r\\n method_id_RTCRtpReceiver_t[method_id_RTCRtpReceiver_t[\"getCapabilities\"] = 6] = \"getCapabilities\";\\r\\n method_id_RTCRtpReceiver_t[method_id_RTCRtpReceiver_t[\"getParameters\"] = 7] = \"getParameters\";\\r\\n method_id_RTCRtpReceiver_t[method_id_RTCRtpReceiver_t[\"getStats\"] = 8] = \"getStats\";\\r\\n})(method_id_RTCRtpReceiver_t = exports.method_id_RTCRtpReceiver_t || (exports.method_id_RTCRtpReceiver_t = {}));\\r\\nvar method_id_RTCRtpSender_t;\\r\\n(function (method_id_RTCRtpSender_t) {\\r\\n method_id_RTCRtpSender_t[method_id_RTCRtpSender_t[\"ctor\"] = 0] = \"ctor\";\\r\\n method_id_RTCRtpSender_t[method_id_RTCRtpSender_t[\"track\"] = 1] = \"track\";\\r\\n method_id_RTCRtpSender_t[method_id_RTCRtpSender_t[\"transport\"] = 2] = \"transport\";\\r\\n method_id_RTCRtpSender_t[method_id_RTCRtpSender_t[\"rtcpTransport\"] = 3] = \"rtcpTransport\";\\r\\n method_id_RTCRtpSender_t[method_id_RTCRtpSender_t[\"dtmf\"] = 4] = \"dtmf\";\\r\\n method_id_RTCRtpSender_t[method_id_RTCRtpSender_t[\"getCapabilities\"] = 5] = \"getCapabilities\";\\r\\n method_id_RTCRtpSender_t[method_id_RTCRtpSender_t[\"getParameters\"] = 6] = \"getParameters\";\\r\\n method_id_RTCRtpSender_t[method_id_RTCRtpSender_t[\"setParameters\"] = 7] = \"setParameters\";\\r\\n method_id_RTCRtpSender_t[method_id_RTCRtpSender_t[\"replaceTrack\"] = 8] = \"replaceTrack\";\\r\\n method_id_RTCRtpSender_t[method_id_RTCRtpSender_t[\"getStats\"] = 9] = \"getStats\";\\r\\n method_id_RTCRtpSender_t[method_id_RTCRtpSender_t[\"setStreams\"] = 10] = \"setStreams\";\\r\\n})(method_id_RTCRtpSender_t = exports.method_id_RTCRtpSender_t || (exports.method_id_RTCRtpSender_t = {}));\\r\\nvar method_id_RTCDtlsTransport_t;\\r\\n(function (method_id_RTCDtlsTransport_t) {\\r\\n method_id_RTCDtlsTransport_t[method_id_RTCDtlsTransport_t[\"ctor\"] = 0] = \"ctor\";\\r\\n method_id_RTCDtlsTransport_t[method_id_RTCDtlsTransport_t[\"transport\"] = 1] = \"transport\";\\r\\n method_id_RTCDtlsTransport_t[method_id_RTCDtlsTransport_t[\"state\"] = 2] = \"state\";\\r\\n method_id_RTCDtlsTransport_t[method_id_RTCDtlsTransport_t[\"getRemoteCertificates\"] = 3] = \"getRemoteCertificates\";\\r\\n method_id_RTCDtlsTransport_t[method_id_RTCDtlsTransport_t[\"onstatechange\"] = 4] = \"onstatechange\";\\r\\n method_id_RTCDtlsTransport_t[method_id_RTCDtlsTransport_t[\"onerror\"] = 5] = \"onerror\";\\r\\n})(method_id_RTCDtlsTransport_t = exports.method_id_RTCDtlsTransport_t || (exports.method_id_RTCDtlsTransport_t = {}));\\r\\nvar method_id_RTCIceTransport_t;\\r\\n(function (method_id_RTCIceTransport_t) {\\r\\n method_id_RTCIceTransport_t[method_id_RTCIceTransport_t[\"ctor\"] = 0] = \"ctor\";\\r\\n method_id_RTCIceTransport_t[method_id_RTCIceTransport_t[\"role\"] = 1] = \"role\";\\r\\n method_id_RTCIceTransport_t[method_id_RTCIceTransport_t[\"component\"] = 2] = \"component\";\\r\\n method_id_RTCIceTransport_t[method_id_RTCIceTransport_t[\"state\"] = 3] = \"state\";\\r\\n method_id_RTCIceTransport_t[method_id_RTCIceTransport_t[\"gatheringState\"] = 4] = \"gatheringState\";\\r\\n method_id_RTCIceTransport_t[method_id_RTCIceTransport_t[\"localcandidates\"] = 5] = \"localcandidates\";\\r\\n method_id_RTCIceTransport_t[method_id_RTCIceTransport_t[\"remotecandidates\"] = 6] = \"remotecandidates\";\\r\\n method_id_RTCIceTransport_t[method_id_RTCIceTransport_t[\"onstatechange\"] = 7] = \"onstatechange\";\\r\\n method_id_RTCIceTransport_t[method_id_RTCIceTransport_t[\"ongatheringstatechange\"] = 8] = \"ongatheringstatechange\";\\r\\n method_id_RTCIceTransport_t[method_id_RTCIceTransport_t[\"onselectedcandidatepairchange\"] = 9] = \"onselectedcandidatepairchange\";\\r\\n})(method_id_RTCIceTransport_t = exports.method_id_RTCIceTransport_t || (exports.method_id_RTCIceTransport_t = {}));\\r\\nvar method_id_RTCDTMFSender_t;\\r\\n(function (method_id_RTCDTMFSender_t) {\\r\\n method_id_RTCDTMFSender_t[method_id_RTCDTMFSender_t[\"ctor\"] = 0] = \"ctor\";\\r\\n method_id_RTCDTMFSender_t[method_id_RTCDTMFSender_t[\"insertDTMF\"] = 1] = \"insertDTMF\";\\r\\n method_id_RTCDTMFSender_t[method_id_RTCDTMFSender_t[\"ontonechange\"] = 2] = \"ontonechange\";\\r\\n method_id_RTCDTMFSender_t[method_id_RTCDTMFSender_t[\"canInsertDTMF\"] = 3] = \"canInsertDTMF\";\\r\\n method_id_RTCDTMFSender_t[method_id_RTCDTMFSender_t[\"toneBuffer\"] = 4] = \"toneBuffer\";\\r\\n})(method_id_RTCDTMFSender_t = exports.method_id_RTCDTMFSender_t || (exports.method_id_RTCDTMFSender_t = {}));\\r\\nvar method_id_RTCDTMFToneChangeEvent_t;\\r\\n(function (method_id_RTCDTMFToneChangeEvent_t) {\\r\\n method_id_RTCDTMFToneChangeEvent_t[method_id_RTCDTMFToneChangeEvent_t[\"ctor\"] = 0] = \"ctor\";\\r\\n method_id_RTCDTMFToneChangeEvent_t[method_id_RTCDTMFToneChangeEvent_t[\"tone\"] = 1] = \"tone\";\\r\\n method_id_RTCDTMFToneChangeEvent_t[method_id_RTCDTMFToneChangeEvent_t[\"tone_buffer\"] = 2] = \"tone_buffer\";\\r\\n})(method_id_RTCDTMFToneChangeEvent_t = exports.method_id_RTCDTMFToneChangeEvent_t || (exports.method_id_RTCDTMFToneChangeEvent_t = {}));\\r\\nvar method_id_RTCIceCandidatePair_t;\\r\\n(function (method_id_RTCIceCandidatePair_t) {\\r\\n method_id_RTCIceCandidatePair_t[method_id_RTCIceCandidatePair_t[\"ctor\"] = 0] = \"ctor\";\\r\\n method_id_RTCIceCandidatePair_t[method_id_RTCIceCandidatePair_t[\"local\"] = 1] = \"local\";\\r\\n method_id_RTCIceCandidatePair_t[method_id_RTCIceCandidatePair_t[\"remote\"] = 2] = \"remote\";\\r\\n})(method_id_RTCIceCandidatePair_t = exports.method_id_RTCIceCandidatePair_t || (exports.method_id_RTCIceCandidatePair_t = {}));\\r\\nvar method_id_RTCRtpTransceiver_t;\\r\\n(function (method_id_RTCRtpTransceiver_t) {\\r\\n method_id_RTCRtpTransceiver_t[method_id_RTCRtpTransceiver_t[\"ctor\"] = 0] = \"ctor\";\\r\\n method_id_RTCRtpTransceiver_t[method_id_RTCRtpTransceiver_t[\"mid\"] = 1] = \"mid\";\\r\\n method_id_RTCRtpTransceiver_t[method_id_RTCRtpTransceiver_t[\"sender\"] = 2] = \"sender\";\\r\\n method_id_RTCRtpTransceiver_t[method_id_RTCRtpTransceiver_t[\"receiver\"] = 3] = \"receiver\";\\r\\n method_id_RTCRtpTransceiver_t[method_id_RTCRtpTransceiver_t[\"direction\"] = 4] = \"direction\";\\r\\n method_id_RTCRtpTransceiver_t[method_id_RTCRtpTransceiver_t[\"currentDirection\"] = 5] = \"currentDirection\";\\r\\n method_id_RTCRtpTransceiver_t[method_id_RTCRtpTransceiver_t[\"stop\"] = 6] = \"stop\";\\r\\n method_id_RTCRtpTransceiver_t[method_id_RTCRtpTransceiver_t[\"setCodecPreferences\"] = 7] = \"setCodecPreferences\";\\r\\n})(method_id_RTCRtpTransceiver_t = exports.method_id_RTCRtpTransceiver_t || (exports.method_id_RTCRtpTransceiver_t = {}));\\r\\n/*----------------- internal structures -----------------*/\\r\\nvar WebrpcMethodInfo = /** @class */ (function () {\\r\\n function WebrpcMethodInfo(iid, mid, name, prop, feature) {\\r\\n if (feature === void 0) { feature = exports.FEATURE_ms_teams_redirection; }\\r\\n this.iid = iid;\\r\\n this.mid = mid;\\r\\n this.name = name;\\r\\n this.isprop = prop;\\r\\n this.feature = feature;\\r\\n }\\r\\n ;\\r\\n return WebrpcMethodInfo;\\r\\n}());\\r\\nexports.WebrpcMethodInfo = WebrpcMethodInfo;\\r\\nvar WebrpcClassInfo = /** @class */ (function () {\\r\\n function WebrpcClassInfo(id, name, methods) {\\r\\n this.id = id;\\r\\n this.name = name;\\r\\n this.methods = methods;\\r\\n }\\r\\n ;\\r\\n return WebrpcClassInfo;\\r\\n}());\\r\\nexports.WebrpcClassInfo = WebrpcClassInfo;\\r\\nvar WebrpcClassLibInfo = /** @class */ (function () {\\r\\n function WebrpcClassLibInfo(name, classes) {\\r\\n this.name = name;\\r\\n this.classes = classes;\\r\\n }\\r\\n ;\\r\\n return WebrpcClassLibInfo;\\r\\n}());\\r\\n/*----------------- class_lib info static table -----------------*/\\r\\nvar class_lib_info = new WebrpcClassLibInfo(\"msteams_class_library\", [\\r\\n //EngineControl\\r\\n new WebrpcClassInfo(class_id_t.EngineControl, \"EngineControl\", [\\r\\n new WebrpcMethodInfo(class_id_t.EngineControl, method_id_EngineControl_t.ctor, \"ctor\", false),\\r\\n new WebrpcMethodInfo(class_id_t.EngineControl, method_id_EngineControl_t.version, \"version\", true),\\r\\n new WebrpcMethodInfo(class_id_t.EngineControl, method_id_EngineControl_t.feature_flags, \"feature_flags\", true),\\r\\n new WebrpcMethodInfo(class_id_t.EngineControl, method_id_EngineControl_t.version_info, \"version_info\", true, exports.FEATURE_ms_teams_desktop_sharing),\\r\\n new WebrpcMethodInfo(class_id_t.EngineControl, method_id_EngineControl_t.osinfo, \"osinfo\", true, exports.FEATURE_ms_teams_osinfo),\\r\\n new WebrpcMethodInfo(class_id_t.EngineControl, method_id_EngineControl_t.session_identifier, \"session_identifier\", true, exports.FEATURE_ms_teams_sessionidentifier)\\r\\n ]),\\r\\n //RTCPeerConnection\\r\\n new WebrpcClassInfo(class_id_t.RTCPeerConnection, \"RTCPeerConnection\", [\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.ctor, \"ctor\", false),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.localDescription, \"localDescription\", true),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.remoteDescription, \"remoteDescription\", true),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.readyState, \"readyState\", true),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.iceState, \"iceState\", true),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.localStreams, \"localStreams\", true),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.remoteStreams, \"remoteStreams\", true),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.createOffer, \"createOffer\", false),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.createAnswer, \"createAnswer\", false),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.setLocalDescription, \"setLocalDescription\", false),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.setRemoteDescription, \"setRemoteDescription\", false),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.updateIce, \"updateIce\", true),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.addIceCandidate, \"addIceCandidate\", true),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.addStream, \"addStream\", true),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.removeStream, \"removeStream\", true),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.close, \"close\", true),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.iceConnectionState, \"iceConnectionState\", true),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.iceGatheringState, \"iceGatheringState\", true),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.signalingState, \"signalingState\", true),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.onaddstream, \"onaddstream\", true),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.onicecandidate, \"onicecandidate\", true),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.oniceconnectionstatechange, \"oniceconnectionstatechange\", true),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.onicegatheringstatechange, \"onicegatheringstatechange\", true),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.onsignalingstatechange, \"onsignalingstatechange\", true),\\r\\n //the following props are not called by Teams for now\\r\\n //new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.ondatachannel, \"ondatachannel\", true),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.onnegotiationneeded, \"onnegotiationneeded\", true),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.onremovestream, \"onremovestream\", true),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.getStats, \"getStats\", false),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.getReceivers, \"getReceivers\", false, exports.FEATURE_ms_teams_speaking_indicator),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.getSenders, \"getSenders\", false, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.addTrack, \"addTrack\", false, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.removeTrack, \"removeTrack\", false, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCPeerConnection, method_id_RTCPeerConnection_t.ontrack, \"ontrack\", true, exports.FEATURE_ms_teams_pstn)\\r\\n ]),\\r\\n //RTCSessionDescription\\r\\n new WebrpcClassInfo(class_id_t.RTCSessionDescription, \"RTCSessionDescription\", [\\r\\n new WebrpcMethodInfo(class_id_t.RTCSessionDescription, method_id_RTCSessionDescription_t.ctor, \"ctor\", false),\\r\\n //new WebrpcMethodInfo(class_id_t.RTCSessionDescription, method_id_RTCSessionDescription_t.to_string, \"to_string\", false),\\r\\n new WebrpcMethodInfo(class_id_t.RTCSessionDescription, method_id_RTCSessionDescription_t.type, \"type\", true),\\r\\n new WebrpcMethodInfo(class_id_t.RTCSessionDescription, method_id_RTCSessionDescription_t.sdp, \"sdp\", true)\\r\\n ]),\\r\\n //RTCIceCandidate\\r\\n new WebrpcClassInfo(class_id_t.RTCIceCandidate, \"RTCIceCandidate\", [\\r\\n new WebrpcMethodInfo(class_id_t.RTCIceCandidate, method_id_RTCIceCandidate_t.ctor, \"ctor\", false),\\r\\n new WebrpcMethodInfo(class_id_t.RTCIceCandidate, method_id_RTCIceCandidate_t.candidate, \"candidate\", true),\\r\\n new WebrpcMethodInfo(class_id_t.RTCIceCandidate, method_id_RTCIceCandidate_t.sdpMid, \"sdpMid\", true),\\r\\n new WebrpcMethodInfo(class_id_t.RTCIceCandidate, method_id_RTCIceCandidate_t.sdpMLineIndex, \"sdpMLineIndex\", true)\\r\\n ]),\\r\\n //RTCIceCandidateEvent\\r\\n new WebrpcClassInfo(class_id_t.RTCIceCandidateEvent, \"RTCIceCandidateEvent\", [\\r\\n new WebrpcMethodInfo(class_id_t.RTCIceCandidateEvent, method_id_RTCIceCandidateEvent_t.ctor, \"ctor\", false),\\r\\n new WebrpcMethodInfo(class_id_t.RTCIceCandidateEvent, method_id_RTCIceCandidateEvent_t.candidate, \"candidate\", true)\\r\\n //new WebrpcMethodInfo(class_id_t.RTCIceCandidateEvent, method_id_RTCIceCandidateEvent_t.url, \"url\", true)\\r\\n ]),\\r\\n //MediaDevices\\r\\n new WebrpcClassInfo(class_id_t.MediaDevices, \"MediaDevices\", [\\r\\n new WebrpcMethodInfo(class_id_t.MediaDevices, method_id_MediaDevices_t.ctor, \"ctor\", false),\\r\\n new WebrpcMethodInfo(class_id_t.MediaDevices, method_id_MediaDevices_t.enumerateDevices, \"enumerateDevices\", false),\\r\\n new WebrpcMethodInfo(class_id_t.MediaDevices, method_id_MediaDevices_t.getDisplayMedia, \"getDisplayMedia\", false, exports.FEATURE_ms_teams_desktop_sharing),\\r\\n new WebrpcMethodInfo(class_id_t.MediaDevices, method_id_MediaDevices_t.ondevicechange, \"ondevicechange\", true, exports.FEATURE_ms_teams_speaking_indicator)\\r\\n ]),\\r\\n //MediaDeviceInfo\\r\\n new WebrpcClassInfo(class_id_t.MediaDeviceInfo, \"MediaDeviceInfo\", [\\r\\n new WebrpcMethodInfo(class_id_t.MediaDeviceInfo, method_id_MediaDeviceInfo_t.ctor, \"ctor\", false),\\r\\n new WebrpcMethodInfo(class_id_t.MediaDeviceInfo, method_id_MediaDeviceInfo_t.deviceId, \"deviceId\", true),\\r\\n new WebrpcMethodInfo(class_id_t.MediaDeviceInfo, method_id_MediaDeviceInfo_t.kind, \"kind\", true),\\r\\n new WebrpcMethodInfo(class_id_t.MediaDeviceInfo, method_id_MediaDeviceInfo_t.label, \"label\", true),\\r\\n new WebrpcMethodInfo(class_id_t.MediaDeviceInfo, method_id_MediaDeviceInfo_t.groupId, \"groupId\", true)\\r\\n ]),\\r\\n //MediaStreamTrack\\r\\n new WebrpcClassInfo(class_id_t.MediaStreamTrack, \"MediaStreamTrack\", [\\r\\n new WebrpcMethodInfo(class_id_t.MediaStreamTrack, method_id_MediaStreamTrack_t.ctor, \"ctor\", false),\\r\\n new WebrpcMethodInfo(class_id_t.MediaStreamTrack, method_id_MediaStreamTrack_t.clone, \"clone\", false),\\r\\n new WebrpcMethodInfo(class_id_t.MediaStreamTrack, method_id_MediaStreamTrack_t.stop, \"stop\", false),\\r\\n new WebrpcMethodInfo(class_id_t.MediaStreamTrack, method_id_MediaStreamTrack_t.getCapabilities, \"getCapabilities\", false),\\r\\n new WebrpcMethodInfo(class_id_t.MediaStreamTrack, method_id_MediaStreamTrack_t.getSettings, \"getSettings\", false),\\r\\n new WebrpcMethodInfo(class_id_t.MediaStreamTrack, method_id_MediaStreamTrack_t.applyConstraints, \"applyConstraints\", false, exports.FEATURE_ms_teams_desktop_sharing),\\r\\n new WebrpcMethodInfo(class_id_t.MediaStreamTrack, method_id_MediaStreamTrack_t.kind, \"kind\", true),\\r\\n new WebrpcMethodInfo(class_id_t.MediaStreamTrack, method_id_MediaStreamTrack_t.id, \"id\", true),\\r\\n new WebrpcMethodInfo(class_id_t.MediaStreamTrack, method_id_MediaStreamTrack_t.label, \"label\", true),\\r\\n new WebrpcMethodInfo(class_id_t.MediaStreamTrack, method_id_MediaStreamTrack_t.enabled, \"enabled\", true),\\r\\n new WebrpcMethodInfo(class_id_t.MediaStreamTrack, method_id_MediaStreamTrack_t.muted, \"muted\", true),\\r\\n new WebrpcMethodInfo(class_id_t.MediaStreamTrack, method_id_MediaStreamTrack_t.readyState, \"readyState\", true),\\r\\n new WebrpcMethodInfo(class_id_t.MediaStreamTrack, method_id_MediaStreamTrack_t.onended, \"onended\", true),\\r\\n new WebrpcMethodInfo(class_id_t.MediaStreamTrack, method_id_MediaStreamTrack_t.onmute, \"onmute\", true),\\r\\n new WebrpcMethodInfo(class_id_t.MediaStreamTrack, method_id_MediaStreamTrack_t.onunmute, \"onunmute\", true),\\r\\n new WebrpcMethodInfo(class_id_t.MediaStreamTrack, method_id_MediaStreamTrack_t.getConstraints, \"getConstraints\", false, exports.FEATURE_ms_teams_mstrack_constraints)\\r\\n ]),\\r\\n //MediaStream\\r\\n new WebrpcClassInfo(class_id_t.MediaStream, \"MediaStream\", [\\r\\n new WebrpcMethodInfo(class_id_t.MediaStream, method_id_MediaStream_t.ctor, \"ctor\", false),\\r\\n new WebrpcMethodInfo(class_id_t.MediaStream, method_id_MediaStream_t.id, \"id\", true),\\r\\n new WebrpcMethodInfo(class_id_t.MediaStream, method_id_MediaStream_t.getAudioTracks, \"getAudioTracks\", false),\\r\\n new WebrpcMethodInfo(class_id_t.MediaStream, method_id_MediaStream_t.getVideoTracks, \"getVideoTracks\", false),\\r\\n new WebrpcMethodInfo(class_id_t.MediaStream, method_id_MediaStream_t.getTracks, \"getTracks\", false),\\r\\n new WebrpcMethodInfo(class_id_t.MediaStream, method_id_MediaStream_t.getTrackById, \"getTrackById\", false),\\r\\n new WebrpcMethodInfo(class_id_t.MediaStream, method_id_MediaStream_t.addTrack, \"addTrack\", false),\\r\\n new WebrpcMethodInfo(class_id_t.MediaStream, method_id_MediaStream_t.removeTrack, \"removeTrack\", false),\\r\\n new WebrpcMethodInfo(class_id_t.MediaStream, method_id_MediaStream_t.clone, \"clone\", true),\\r\\n new WebrpcMethodInfo(class_id_t.MediaStream, method_id_MediaStream_t.active, \"active\", true)\\r\\n ]),\\r\\n //NavigatorUserMedia\\r\\n new WebrpcClassInfo(class_id_t.NavigatorUserMedia, \"NavigatorUserMedia\", [\\r\\n new WebrpcMethodInfo(class_id_t.NavigatorUserMedia, method_id_NavigatorUserMedia_t.ctor, \"ctor\", false),\\r\\n new WebrpcMethodInfo(class_id_t.NavigatorUserMedia, method_id_NavigatorUserMedia_t.getUserMedia, \"getUserMedia\", false)\\r\\n ]),\\r\\n //MediaStreamEvent\\r\\n new WebrpcClassInfo(class_id_t.MediaStreamEvent, \"MediaStreamEvent\", [\\r\\n new WebrpcMethodInfo(class_id_t.MediaStreamEvent, method_id_MediaStreamEvent_t.ctor, \"ctor\", false),\\r\\n new WebrpcMethodInfo(class_id_t.MediaStreamEvent, method_id_MediaStreamEvent_t.stream, \"stream\", true)\\r\\n ]),\\r\\n //VideoElement\\r\\n new WebrpcClassInfo(class_id_t.VideoElement, \"VideoElement\", [\\r\\n new WebrpcMethodInfo(class_id_t.VideoElement, method_id_VideoElement_t.ctor, \"ctor\", false),\\r\\n new WebrpcMethodInfo(class_id_t.VideoElement, method_id_VideoElement_t.sinkId, \"sinkId\", true),\\r\\n new WebrpcMethodInfo(class_id_t.VideoElement, method_id_VideoElement_t.connectTo, \"connectTo\", false),\\r\\n new WebrpcMethodInfo(class_id_t.VideoElement, method_id_VideoElement_t.disconnect, \"disconnect\", false),\\r\\n new WebrpcMethodInfo(class_id_t.VideoElement, method_id_VideoElement_t.setFrame, \"setFrame\", false),\\r\\n new WebrpcMethodInfo(class_id_t.VideoElement, method_id_VideoElement_t.addClipRect, \"addClipRect\", false),\\r\\n new WebrpcMethodInfo(class_id_t.VideoElement, method_id_VideoElement_t.removeClipRect, \"removeClipRect\", false),\\r\\n new WebrpcMethodInfo(class_id_t.VideoElement, method_id_VideoElement_t.onerror, \"onerror\", true),\\r\\n new WebrpcMethodInfo(class_id_t.VideoElement, method_id_VideoElement_t.onvideoframechanged, \"onvideoframechanged\", true)\\r\\n ]),\\r\\n //AudioElement\\r\\n new WebrpcClassInfo(class_id_t.AudioElement, \"AudioElement\", [\\r\\n new WebrpcMethodInfo(class_id_t.AudioElement, method_id_AudioElement_t.ctor, \"ctor\", false),\\r\\n new WebrpcMethodInfo(class_id_t.AudioElement, method_id_AudioElement_t.sinkId, \"sinkId\", true),\\r\\n new WebrpcMethodInfo(class_id_t.AudioElement, method_id_AudioElement_t.srcObject, \"srcObject\", true),\\r\\n new WebrpcMethodInfo(class_id_t.AudioElement, method_id_AudioElement_t.src, \"src\", true),\\r\\n new WebrpcMethodInfo(class_id_t.AudioElement, method_id_AudioElement_t.play, \"play\", false),\\r\\n new WebrpcMethodInfo(class_id_t.AudioElement, method_id_AudioElement_t.pause, \"pause\", false)\\r\\n ]),\\r\\n //RTCRtpReceiver\\r\\n new WebrpcClassInfo(class_id_t.RTCRtpReceiver, \"RTCRtpReceiver\", [\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpReceiver, method_id_RTCRtpReceiver_t.ctor, \"ctor\", false, exports.FEATURE_ms_teams_speaking_indicator),\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpReceiver, method_id_RTCRtpReceiver_t.track, \"track\", true, exports.FEATURE_ms_teams_speaking_indicator),\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpReceiver, method_id_RTCRtpReceiver_t.getContributingSources, \"getContributingSources\", false, exports.FEATURE_ms_teams_speaking_indicator),\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpReceiver, method_id_RTCRtpReceiver_t.getSynchronizationSources, \"getSynchronizationSources\", false, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpReceiver, method_id_RTCRtpReceiver_t.transport, \"transport\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpReceiver, method_id_RTCRtpReceiver_t.rtcpTransport, \"rtcptransport\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpReceiver, method_id_RTCRtpReceiver_t.getCapabilities, \"getCapabilities\", false, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpReceiver, method_id_RTCRtpReceiver_t.getParameters, \"getParameters\", false, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpReceiver, method_id_RTCRtpReceiver_t.getStats, \"getStats\", false, exports.FEATURE_ms_teams_pstn)\\r\\n ]),\\r\\n //RTCRtpSender\\r\\n new WebrpcClassInfo(class_id_t.RTCRtpSender, \"RTCRtpSender\", [\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpSender, method_id_RTCRtpSender_t.ctor, \"ctor\", false, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpSender, method_id_RTCRtpSender_t.track, \"track\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpSender, method_id_RTCRtpSender_t.transport, \"transport\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpSender, method_id_RTCRtpSender_t.rtcpTransport, \"rtcpTransport\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpSender, method_id_RTCRtpSender_t.dtmf, \"dtmf\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpSender, method_id_RTCRtpSender_t.getCapabilities, \"getCapabilities\", false, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpSender, method_id_RTCRtpSender_t.getParameters, \"getParameters\", false, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpSender, method_id_RTCRtpSender_t.setParameters, \"setParameters\", false, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpSender, method_id_RTCRtpSender_t.replaceTrack, \"replaceTrack\", false, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpSender, method_id_RTCRtpSender_t.getStats, \"getStats\", false, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpSender, method_id_RTCRtpSender_t.setStreams, \"setStreams\", false, exports.FEATURE_ms_teams_pstn),\\r\\n ]),\\r\\n //RTCDtlsTransport\\r\\n new WebrpcClassInfo(class_id_t.RTCDtlsTransport, \"RTCDtlsTransport\", [\\r\\n new WebrpcMethodInfo(class_id_t.RTCDtlsTransport, method_id_RTCDtlsTransport_t.ctor, \"ctor\", false, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCDtlsTransport, method_id_RTCDtlsTransport_t.transport, \"transport\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCDtlsTransport, method_id_RTCDtlsTransport_t.state, \"state\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCDtlsTransport, method_id_RTCDtlsTransport_t.getRemoteCertificates, \"getRemoteCertificates\", false, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCDtlsTransport, method_id_RTCDtlsTransport_t.onstatechange, \"onstatechange\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCDtlsTransport, method_id_RTCDtlsTransport_t.onerror, \"onerror\", true, exports.FEATURE_ms_teams_pstn)\\r\\n ]),\\r\\n //RTCIceTransport\\r\\n new WebrpcClassInfo(class_id_t.RTCIceTransport, \"RTCIceTransport\", [\\r\\n new WebrpcMethodInfo(class_id_t.RTCIceTransport, method_id_RTCIceTransport_t.ctor, \"ctor\", false, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCIceTransport, method_id_RTCIceTransport_t.role, \"role\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCIceTransport, method_id_RTCIceTransport_t.component, \"component\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCIceTransport, method_id_RTCIceTransport_t.state, \"state\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCIceTransport, method_id_RTCIceTransport_t.gatheringState, \"gatheringState\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCIceTransport, method_id_RTCIceTransport_t.localcandidates, \"localcandidates\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCIceTransport, method_id_RTCIceTransport_t.remotecandidates, \"remotecandidates\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCIceTransport, method_id_RTCIceTransport_t.onstatechange, \"onstatechange\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCIceTransport, method_id_RTCIceTransport_t.ongatheringstatechange, \"ongatheringstatechange\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCIceTransport, method_id_RTCIceTransport_t.onselectedcandidatepairchange, \"onselectedcandidatepairchange\", true, exports.FEATURE_ms_teams_pstn)\\r\\n ]),\\r\\n //RTCDTMFSender\\r\\n new WebrpcClassInfo(class_id_t.RTCDTMFSender, \"RTCDTMFSender\", [\\r\\n new WebrpcMethodInfo(class_id_t.RTCDTMFSender, method_id_RTCDTMFSender_t.ctor, \"ctor\", false, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCDTMFSender, method_id_RTCDTMFSender_t.insertDTMF, \"insertDTMF\", false, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCDTMFSender, method_id_RTCDTMFSender_t.ontonechange, \"ontonechange\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCDTMFSender, method_id_RTCDTMFSender_t.canInsertDTMF, \"canInsertDTMF\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCDTMFSender, method_id_RTCDTMFSender_t.toneBuffer, \"toneBuffer\", true, exports.FEATURE_ms_teams_pstn)\\r\\n ]),\\r\\n //RTCDTMFToneChangeEvent\\r\\n new WebrpcClassInfo(class_id_t.RTCDTMFToneChangeEvent, \"RTCDTMFToneChangeEvent\", [\\r\\n new WebrpcMethodInfo(class_id_t.RTCDTMFToneChangeEvent, method_id_RTCDTMFToneChangeEvent_t.ctor, \"ctor\", false, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCDTMFToneChangeEvent, method_id_RTCDTMFToneChangeEvent_t.tone, \"tone\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCDTMFToneChangeEvent, method_id_RTCDTMFToneChangeEvent_t.tone_buffer, \"tone_buffer\", true, exports.FEATURE_ms_teams_pstn)\\r\\n ]),\\r\\n //RTCDTMFToneChangeEvent\\r\\n new WebrpcClassInfo(class_id_t.RTCIceCandidatePair, \"RTCIceCandidatePair\", [\\r\\n new WebrpcMethodInfo(class_id_t.RTCIceCandidatePair, method_id_RTCIceCandidatePair_t.ctor, \"ctor\", false, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCIceCandidatePair, method_id_RTCIceCandidatePair_t.local, \"local\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCIceCandidatePair, method_id_RTCIceCandidatePair_t.remote, \"remote\", true, exports.FEATURE_ms_teams_pstn)\\r\\n ]),\\r\\n //RTCRtpTransceiver\\r\\n new WebrpcClassInfo(class_id_t.RTCRtpTransceiver, \"RTCRtpTransceiver\", [\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpTransceiver, method_id_RTCRtpTransceiver_t.ctor, \"ctor\", false, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpTransceiver, method_id_RTCRtpTransceiver_t.mid, \"mid\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpTransceiver, method_id_RTCRtpTransceiver_t.sender, \"sender\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpTransceiver, method_id_RTCRtpTransceiver_t.receiver, \"receiver\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpTransceiver, method_id_RTCRtpTransceiver_t.direction, \"direction\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpTransceiver, method_id_RTCRtpTransceiver_t.currentDirection, \"currentDirection\", true, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpTransceiver, method_id_RTCRtpTransceiver_t.stop, \"stop\", false, exports.FEATURE_ms_teams_pstn),\\r\\n new WebrpcMethodInfo(class_id_t.RTCRtpTransceiver, method_id_RTCRtpTransceiver_t.setCodecPreferences, \"setCodecPreferences\", false, exports.FEATURE_ms_teams_pstn),\\r\\n ])\\r\\n]);\\r\\n/*----------------- utility methods -----------------*/\\r\\nvar WebrpcClassLibInfoUtil = /** @class */ (function () {\\r\\n function WebrpcClassLibInfoUtil() {\\r\\n }\\r\\n WebrpcClassLibInfoUtil.getInterfaceByid = function (iid) {\\r\\n for (var _i = 0, _a = class_lib_info.classes; _i < _a.length; _i++) {\\r\\n var cl = _a[_i];\\r\\n if (cl.id == iid) {\\r\\n return cl;\\r\\n }\\r\\n }\\r\\n return null;\\r\\n };\\r\\n //oid is optional parameter\\r\\n WebrpcClassLibInfoUtil.getMethodByid = function (iid, mid) {\\r\\n var intface = this.getInterfaceByid(iid);\\r\\n if (intface != null) {\\r\\n for (var _i = 0, _a = intface.methods; _i < _a.length; _i++) {\\r\\n var method = _a[_i];\\r\\n if (method.mid == mid) {\\r\\n return method;\\r\\n }\\r\\n }\\r\\n }\\r\\n return null;\\r\\n };\\r\\n //oid is optional parameter\\r\\n WebrpcClassLibInfoUtil.getMethodFeatureByid = function (iid, mid) {\\r\\n var intface = this.getInterfaceByid(iid);\\r\\n if (intface != null) {\\r\\n for (var _i = 0, _a = intface.methods; _i < _a.length; _i++) {\\r\\n var method = _a[_i];\\r\\n if (method.mid == mid) {\\r\\n return method.feature;\\r\\n }\\r\\n }\\r\\n }\\r\\n return null;\\r\\n };\\r\\n WebrpcClassLibInfoUtil.composeClassInfoData = function (obj) {\\r\\n var hdr = obj[\\'hdr\\'];\\r\\n if (hdr == undefined) {\\r\\n return \"*** Invalid packet: Couldn\\'t find hdr object ***\";\\r\\n }\\r\\n var proc = hdr[\\'proc\\'];\\r\\n if (proc == undefined) {\\r\\n return \"\";\\r\\n }\\r\\n var iid = proc[\\'iid\\'];\\r\\n var mid = proc[\\'methodid\\'];\\r\\n for (var _i = 0, _a = class_lib_info.classes; _i < _a.length; _i++) {\\r\\n var iface = _a[_i];\\r\\n if (iface.id != iid) {\\r\\n continue;\\r\\n }\\r\\n for (var _b = 0, _c = iface.methods; _b < _c.length; _b++) {\\r\\n var method = _c[_b];\\r\\n if (method.mid == mid) {\\r\\n return iface.name + \"::\" + method.name;\\r\\n }\\r\\n }\\r\\n }\\r\\n return \"\";\\r\\n };\\r\\n return WebrpcClassLibInfoUtil;\\r\\n}());\\r\\nexports.WebrpcClassLibInfoUtil = WebrpcClassLibInfoUtil;\\r\\n\\n\\n//# sourceURL=webpack://CitrixWebRTC/E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/webrpcclassinfo.js?');\n },\n \"../../../out/shim/sdk/int/sdk/wsjsonutil.js\":\n /*!************************************************************************!*\\\r\n !*** E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/wsjsonutil.js ***!\r\n \\************************************************************************/\n\n /*! no static exports found */\n function outShimSdkIntSdkWsjsonutilJs(module, exports, __webpack_require__) {\n\n eval('\\r\\n// general JSON message format:\\r\\n//\\r\\n// {\\r\\n// \"v\": \"webrtc\",\\r\\n// \"hdr\": {\\r\\n// \"version\": 1,\\r\\n// \"msg_type\": \"req\", // one of: \"req\", \"reply\", \"event_req\", \"event_reply\"\\r\\n// \"modifier\": false,\\r\\n// \"proc\": {\\r\\n// \"iid\": 0,\\r\\n// \"methodid\": 0\\r\\n// }\\r\\n// },\\r\\n// \"objref\": {\\r\\n// \"oid\": 0\\r\\n// },\\r\\n// \"params\": []\\r\\n// }\\r\\nObject.defineProperty(exports, \"__esModule\", { value: true });\\r\\nvar webrpcclassinfo_1 = __webpack_require__(/*! ./webrpcclassinfo */ \"../../../out/shim/sdk/int/sdk/webrpcclassinfo.js\");\\r\\nvar ws_msg_type_t;\\r\\n(function (ws_msg_type_t) {\\r\\n ws_msg_type_t[ws_msg_type_t[\"req\"] = 0] = \"req\";\\r\\n ws_msg_type_t[ws_msg_type_t[\"reply\"] = 1] = \"reply\";\\r\\n ws_msg_type_t[ws_msg_type_t[\"event_req\"] = 2] = \"event_req\";\\r\\n ws_msg_type_t[ws_msg_type_t[\"event_reply\"] = 3] = \"event_reply\";\\r\\n})(ws_msg_type_t = exports.ws_msg_type_t || (exports.ws_msg_type_t = {}));\\r\\nvar WsJsonUtil = /** @class */ (function () {\\r\\n function WsJsonUtil() {\\r\\n }\\r\\n WsJsonUtil.createMessageByid = function (modifier, //true for set prop, false for get prop\\r\\n destroy, mt, //ws msg type\\r\\n iid, //interface id\\r\\n mid, //method id\\r\\n oid) {\\r\\n var args = []; //parameters\\r\\n for (var _i = 6 //parameters\\r\\n ; _i < arguments.length //parameters\\r\\n ; _i++ //parameters\\r\\n ) {\\r\\n args[_i - 6] = arguments[_i]; //parameters\\r\\n }\\r\\n var mInfo = webrpcclassinfo_1.WebrpcClassLibInfoUtil.getMethodByid(iid, mid);\\r\\n if (!mInfo || !mInfo.isprop) {\\r\\n modifier = false;\\r\\n }\\r\\n return this.createMessage.apply(this, [mt, modifier, destroy, iid, mid, oid].concat(args));\\r\\n };\\r\\n WsJsonUtil.createMessage = function (mt, rwprop, release, iid, mid, oid) {\\r\\n var args = [];\\r\\n for (var _i = 6; _i < arguments.length; _i++) {\\r\\n args[_i - 6] = arguments[_i];\\r\\n }\\r\\n return {\\r\\n /**@nocollapse*/ v: \\'webrtc\\',\\r\\n /**@nocollapse*/ hdr: {\\r\\n /**@nocollapse*/ version: this._version,\\r\\n /**@nocollapse*/ msg_type: this.getMsgType(mt),\\r\\n /**@nocollapse*/ modifier: rwprop,\\r\\n /**@nocollapse*/ destroy: release,\\r\\n /**@nocollapse*/ proc: {\\r\\n /**@nocollapse*/ iid: iid,\\r\\n /**@nocollapse*/ methodid: mid\\r\\n }\\r\\n },\\r\\n /**@nocollapse*/ objref: {\\r\\n /**@nocollapse*/ \"oid\": oid\\r\\n },\\r\\n /**@nocollapse*/ params: args.slice()\\r\\n };\\r\\n };\\r\\n WsJsonUtil.getMsgType = function (mt) {\\r\\n var mts = \\'\\';\\r\\n switch (mt) {\\r\\n case ws_msg_type_t.req:\\r\\n default:\\r\\n mts = \\'req\\';\\r\\n break;\\r\\n case ws_msg_type_t.reply:\\r\\n mts = \\'reply\\';\\r\\n break;\\r\\n case ws_msg_type_t.event_req:\\r\\n mts = \\'event-req\\';\\r\\n break;\\r\\n case ws_msg_type_t.event_reply:\\r\\n mts = \\'event-reply\\';\\r\\n break;\\r\\n }\\r\\n return mts;\\r\\n };\\r\\n WsJsonUtil._version = 1;\\r\\n return WsJsonUtil;\\r\\n}());\\r\\nexports.WsJsonUtil = WsJsonUtil;\\r\\n\\n\\n//# sourceURL=webpack://CitrixWebRTC/E:/work/6e71a05e16fb6ac6/MTOP/out/shim/sdk/int/sdk/wsjsonutil.js?');\n }\n });\n });\n}\n\nvar vdiCitrix = null;\nvar originalGetUserMedia;\nvar originalEnumerateDevices;\nvar originalPeerConnection; // this is purely only used for debugging by simulating citrix VDI connection events.\n\nwindow.handleCitrixEventCallback = handleCitrixEventCallback;\n\nfunction registerWebRtcGlobals() {\n console.log('Registering WebRTC Globals');\n initCitrixWebRTC();\n vdiCitrix = window.CitrixWebRTC;\n originalGetUserMedia = navigator.mediaDevices.getUserMedia;\n originalEnumerateDevices = navigator.mediaDevices.enumerateDevices;\n originalPeerConnection = global.RTCPeerConnection; // Should not happen. React Native has a global navigator object.\n\n if (typeof navigator !== 'object') {\n throw new Error('navigator is not an object');\n }\n\n console.log('VDICitrix', vdiCitrix);\n vdiCitrix.setVMEventCallback(handleCitrixEventCallback);\n}\n\nfunction restoreOriginalWebRtc() {\n window.citrixVdaSupport = false;\n Janus.setUnifiedPlan(true);\n navigator.mediaDevices.getUserMedia = originalGetUserMedia;\n navigator.mediaDevices.enumerateDevices = originalEnumerateDevices;\n global.RTCPeerConnection = originalPeerConnection;\n}\n\nfunction replaceWebRtcWithCitrix() {\n function getUserMedia(constraints) {\n return new Promise(function (resolve, reject) {\n return vdiCitrix.getUserMedia(constraints, resolve, reject);\n });\n }\n\n var AsyncPeerConnection = /*#__PURE__*/function (_vdiCitrix$CitrixPeer) {\n _inheritsLoose(AsyncPeerConnection, _vdiCitrix$CitrixPeer);\n\n function AsyncPeerConnection() {\n return _vdiCitrix$CitrixPeer.apply(this, arguments) || this;\n }\n\n var _proto = AsyncPeerConnection.prototype;\n\n _proto.createOffer = function createOffer(options) {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n _vdiCitrix$CitrixPeer.prototype.createOffer.call(_this, resolve, reject, options);\n });\n };\n\n _proto.createAnswer = function createAnswer(options) {\n var _this2 = this;\n\n return new Promise(function (resolve, reject) {\n _vdiCitrix$CitrixPeer.prototype.createAnswer.call(_this2, resolve, reject, options);\n });\n };\n\n _proto.setLocalDescription = function setLocalDescription(description) {\n var _this3 = this;\n\n return new Promise(function (resolve, reject) {\n _vdiCitrix$CitrixPeer.prototype.setLocalDescription.call(_this3, description, resolve, reject);\n });\n };\n\n _proto.setRemoteDescription = function setRemoteDescription(description) {\n var _this4 = this;\n\n return new Promise(function (resolve, reject) {\n _vdiCitrix$CitrixPeer.prototype.setRemoteDescription.call(_this4, description, resolve, reject);\n });\n };\n\n return AsyncPeerConnection;\n }(vdiCitrix.CitrixPeerConnection);\n\n window.citrixVdaSupport = true; // we can assume true because register should only be called when it was true.\n\n Janus.setUnifiedPlan(false);\n\n if (!navigator.mediaDevices) {\n // @ts-ignore\n navigator.mediaDevices = {};\n }\n\n navigator.mediaDevices.getUserMedia = getUserMedia;\n navigator.mediaDevices.enumerateDevices = vdiCitrix.enumerateDevices.bind(vdiCitrix);\n global.RTCPeerConnection = AsyncPeerConnection; // global.RTCIceCandidate = RTCIceCandidate;\n // global.RTCSessionDescription = vdiCitrix.RTCSessionDescription;\n // global.MediaStream = MediaStream;\n // global.MediaStreamTrack = MediaStreamTrack; \n}\n\nfunction handleCitrixEventCallback(event) {\n console.info('VM Event Callback', event);\n\n if (event.event === 'vdiClientDisconnected') {\n console.warn('Citrix VDI client disconnected, falling back to standard WebRTC implementation');\n restoreOriginalWebRtc();\n } else if (event.event === 'vdiClientConnected') {\n console.info('Citrix VDI Client connected, switching to Citrix WebRTC implementation');\n replaceWebRtcWithCitrix();\n }\n}\n\nfunction WebRtcClient(props) {\n var endpoint = useSelector(selectEndpoint);\n var line = useSelector(selectLine);\n var call = useSelector(selectCall);\n\n var _useState = useState(false),\n initialised = _useState[0],\n setInitialised = _useState[1];\n\n var dispatch = useDispatch();\n useEffect(function () {\n if (endpoint.status === 'offline' && !initialised) {\n dispatch(initApp());\n\n if (window.citrixVdaSupport === true) {\n console.info('Citrix Vda Support, overriding WebRTC implementation');\n registerWebRtcGlobals();\n }\n\n setInitialised(true);\n }\n }, [dispatch, endpoint.status, initialised]);\n useEffect(function () {\n dispatch(configureEndpoint(props.settings));\n }, [dispatch, props.settings]);\n useEffect(function () {\n if (!props.enabled && endpoint.canDisconnect) {\n console.log('Softphone is being disabled, disconnecting...');\n dispatch(disconnectEndpoint());\n }\n }, [dispatch, endpoint.canDisconnect, props.enabled]);\n return React__default.createElement(\"div\", {\n className: classNames(css.app, props.className)\n }, renderApp());\n\n function renderApp() {\n if (endpoint.status !== 'online' || endpoint.statusError || line.statusError || line.status === 'registering' || line.status === 'unregistered') {\n return React__default.createElement(ConnectScreen, {\n enabled: props.enabled,\n extension: props.extension,\n pin: props.pin\n });\n }\n\n return React__default.createElement(React__default.Fragment, null, React__default.createElement(Phone, null), React__default.createElement(Audio, null), React__default.createElement(Ringer, null), React__default.createElement(\"div\", {\n className: css.logout\n }, !call.canHangUp && endpoint.canDisconnect && React__default.createElement(\"button\", {\n onClick: function onClick() {\n return dispatch(disconnectEndpoint());\n }\n }, React__default.createElement(ForwardRef$5, null))), props.children);\n }\n}\n\nvar css$9 = {\"automationTestContainer\":\"AutomationTest-module_automationTestContainer__D8jnx\",\"toggle\":\"AutomationTest-module_toggle__234Wf\",\"startStopContainer\":\"AutomationTest-module_startStopContainer__1s6Es\",\"allowActionsList\":\"AutomationTest-module_allowActionsList__1p_RH\",\"status\":\"AutomationTest-module_status__19HaR\",\"error\":\"AutomationTest-module_error__1L87T\"};\n\nvar _window$ipcRenderer;\nvar ipcRenderer = (_window$ipcRenderer = window.ipcRenderer) != null ? _window$ipcRenderer : null;\nvar ChannelName = 'automation-test';\nvar ActionType;\n\n(function (ActionType) {\n ActionType[\"Dial\"] = \"Dial\";\n ActionType[\"WaitForAnswer\"] = \"Wait For Answer\";\n ActionType[\"Answer\"] = \"Answer\";\n ActionType[\"HangUp\"] = \"Hang Up\";\n ActionType[\"Hold\"] = \"Hold\";\n ActionType[\"Resume\"] = \"Resume\";\n ActionType[\"Idle\"] = \"Idle\";\n})(ActionType || (ActionType = {}));\n\nfunction getRandomInt(max) {\n return Math.floor(Math.random() * Math.floor(max));\n}\n\nfunction AutomationTest() {\n var endpoint = useSelector(selectEndpoint);\n var line = useSelector(selectLine);\n var call = useSelector(selectCall);\n var dispatch = useDispatch();\n\n var _useState = useState(false),\n endpointOnline = _useState[0],\n setEndpointOnline = _useState[1];\n\n var _useState2 = useState(null),\n nextAction = _useState2[0],\n setNextAction = _useState2[1];\n\n var _useState3 = useState(0),\n nextActionRemainingTime = _useState3[0],\n setNextActionRemainingTime = _useState3[1];\n\n var _useState4 = useState(false),\n isRunning = _useState4[0],\n setIsRunning = _useState4[1];\n\n var retryCount = useRef(0);\n var extension = useRef(null);\n var pin = useRef(null);\n\n var _useState5 = useState(),\n allowableActions = _useState5[0],\n setAllowableActions = _useState5[1];\n\n var _useState6 = useState(''),\n autoDialNumber = _useState6[0],\n setAutoDialNumber = _useState6[1];\n\n var _useState7 = useState(true),\n autoAnswer = _useState7[0],\n setAutoAnswer = _useState7[1];\n\n var _useState8 = useState(true),\n allowHoldResume = _useState8[0],\n setAllowHoldResume = _useState8[1];\n\n var _useState9 = useState(true),\n allowHangUp = _useState9[0],\n setAllowHangUp = _useState9[1];\n\n var _useState10 = useState(true),\n allowIdle = _useState10[0],\n setAllowIdle = _useState10[1];\n\n var _useState11 = useState(2000),\n minDelayMs = _useState11[0],\n setMinDelayMs = _useState11[1];\n\n var _useState12 = useState(8000),\n maxDelayMs = _useState12[0],\n setMaxDelayMs = _useState12[1];\n\n var scheduleNextAction = useCallback(function (action, work, delayMs) {\n if (nextAction == null) {\n console.log(\"Scheduling Automation Work: \" + action);\n\n var performWork = function performWork() {\n console.log(\"Performing Automation Work: \" + action);\n work();\n setNextAction(null);\n setNextActionRemainingTime(0);\n };\n\n var workAction = {\n Action: action,\n PerformWork: performWork,\n DelayMs: delayMs\n };\n setNextActionRemainingTime(delayMs);\n setNextAction(workAction);\n }\n }, [nextAction]);\n var configureAutoAnswerMode = useCallback(function () {\n setAutoDialNumber('');\n setAutoAnswer(true);\n setAllowHoldResume(false);\n setAllowHangUp(false);\n setAllowIdle(false);\n setMinDelayMs(0);\n setMaxDelayMs(0);\n }, []);\n useEffect(function () {\n // by default we configure to nzvoip02\n var queryParams = new URLSearchParams(window.location.search);\n if (queryParams == null) return;\n extension.current = queryParams.get('extension');\n pin.current = queryParams.get('pin');\n var autoAnswerMode = queryParams.get('autoAnswerMode');\n\n if (queryParams.get('onIncomingCall')) {\n setAutoAnswer(false);\n }\n\n if (extension.current != null && pin.current != null) {\n dispatch(connectEndpoint(extension.current, pin.current));\n }\n\n if (autoAnswerMode != null) {\n configureAutoAnswerMode();\n setIsRunning(true);\n }\n }, [configureAutoAnswerMode, dispatch]);\n useEffect(function () {\n if (ipcRenderer === null) return;\n\n var onAutomationTestCommandEvent = function onAutomationTestCommandEvent(_, args) {\n console.log(ChannelName, args);\n\n switch (args.Command) {\n case 'connect':\n dispatch(configureEndpoint(args.Settings));\n dispatch(connectEndpoint(args.Extension, args.Pin));\n args.Result = true;\n ipcRenderer.send(ChannelName + \"-result\", args);\n break;\n\n case 'disconnect':\n args.Result = false;\n ipcRenderer.send(ChannelName + \"-result\", args);\n break;\n\n case 'auto-answer-mode':\n configureAutoAnswerMode();\n setIsRunning(true);\n args.Result = true;\n ipcRenderer.send(ChannelName + \"-result\", args);\n break;\n }\n };\n\n ipcRenderer.on(ChannelName, onAutomationTestCommandEvent);\n return function () {\n ipcRenderer.removeListener(\"{ChannelName}-result\", onAutomationTestCommandEvent);\n };\n }, [configureAutoAnswerMode, dispatch]);\n useEffect(function () {\n if (nextActionRemainingTime > 0) {\n // not exactly the most accurate, but good enough for the purpose.\n setTimeout(function () {\n return setNextActionRemainingTime(nextActionRemainingTime - 100);\n }, 100);\n } else if (nextAction != null) {\n nextAction.PerformWork();\n }\n }, [nextAction, nextActionRemainingTime]);\n useEffect(function () {\n if (isRunning) return; // no longer running\n\n if (nextAction != null) {\n console.log('clearing next action');\n\n if (call != null && call.canHangUp) {\n dispatch(hangUp());\n }\n\n setNextAction(null);\n }\n }, [call, dispatch, isRunning, nextAction]);\n useEffect(function () {\n var isOnline = line.status === 'registered' && endpoint.status === 'online';\n\n if (isOnline && retryCount.current > 0) {\n retryCount.current = 0;\n }\n\n if (ipcRenderer != null && !endpointOnline && isOnline) {\n console.log('sending endpoint online');\n ipcRenderer.send('endpoint-online', true);\n setEndpointOnline(true);\n } else if (ipcRenderer != null && endpointOnline && (line.status !== 'registered' || endpoint.status !== 'online')) {\n console.log('sending endpoint offline');\n ipcRenderer.send('endpoint-online', false);\n setEndpointOnline(false);\n }\n\n if (!isRunning) return;\n\n if (line.statusError === '403 Forbidden' && line.status === 'registering') {\n retryCount.current = 999;\n }\n\n if (retryCount.current < 3 && endpoint.canConnect && extension.current != null && pin.current != null && (line.status !== 'registered' || endpoint.status !== 'online')) {\n console.log('Not connected, will try in 5s');\n retryCount.current += 1;\n setTimeout(function () {\n console.log('Attempt to auto reconnect, retryCount', retryCount.current);\n\n if (endpoint.canConnect && (line.status !== 'registered' || endpoint.status !== 'online')) {\n dispatch(connectEndpoint(extension.current, pin.current));\n } else {\n console.log('Endpoint says we cannot connect yet');\n }\n }, 5000);\n }\n }, [dispatch, endpoint.canConnect, endpoint.status, endpointOnline, isRunning, line.status, line.statusError]);\n useEffect(function () {\n var interval = setInterval(function () {\n if (!isRunning) return;\n if (nextAction != null) return;\n if (line.status !== 'registered' || endpoint.status === 'offline') return;\n if (line.statusError != null || endpoint.statusError != null) return;\n var allowableActions = [];\n\n if (allowIdle) {\n allowableActions.push(ActionType.Idle);\n }\n\n if (call != null && call.canDial && autoDialNumber.length > 0) {\n allowableActions.push(ActionType.Dial);\n }\n\n if (call.canAnswer && !call.answerRequested) {\n allowableActions.push(ActionType.Answer);\n }\n\n if (call.canHold && allowHoldResume) {\n allowableActions.push(ActionType.Hold);\n }\n\n if (call.canResume && allowHoldResume) {\n allowableActions.push(ActionType.Resume);\n }\n\n if (call.canHangUp && allowHangUp) {\n allowableActions.push(ActionType.HangUp);\n }\n\n if (allowableActions.length === 0) {\n setAllowableActions(allowableActions);\n return;\n }\n\n var index = getRandomInt(allowableActions.length);\n var minDelay = Number.isNaN(minDelayMs) ? 0 : minDelayMs;\n var maxDelay = Number.isNaN(maxDelayMs) ? 0 : maxDelayMs;\n var delay = maxDelay < minDelay ? minDelay : minDelay + getRandomInt(maxDelay - minDelay);\n\n switch (allowableActions[index]) {\n case ActionType.Dial:\n scheduleNextAction(ActionType.Dial, function () {\n if (call != null && call.canDial && autoDialNumber.length > 0) {\n dispatch(dial(autoDialNumber));\n }\n }, delay);\n break;\n\n case ActionType.Answer:\n scheduleNextAction(ActionType.Answer, function () {\n if (call != null && call.canAnswer) {\n dispatch(answer());\n }\n }, delay);\n break;\n\n case ActionType.Hold:\n scheduleNextAction(allowableActions[index], function () {\n if (call.canHold) {\n dispatch(hold());\n }\n }, delay);\n break;\n\n case ActionType.Resume:\n scheduleNextAction(allowableActions[index], function () {\n if (call.canResume) {\n dispatch(resume());\n }\n }, delay);\n break;\n\n case ActionType.HangUp:\n scheduleNextAction(allowableActions[index], function () {\n if (call.canHangUp) {\n dispatch(hangUp());\n }\n }, delay);\n break;\n\n case ActionType.Idle:\n scheduleNextAction(allowableActions[index], function () {}, delay);\n break;\n }\n\n setAllowableActions(allowableActions);\n }, 1000);\n return function () {\n return clearInterval(interval);\n };\n }, [allowHangUp, allowHoldResume, allowIdle, autoDialNumber, call, dispatch, endpoint.status, endpoint.statusError, isRunning, line.status, line.statusError, maxDelayMs, minDelayMs, nextAction, scheduleNextAction]);\n return React__default.createElement(\"div\", null, React__default.createElement(\"div\", {\n className: css$9.automationTestContainer\n }, React__default.createElement(\"h2\", null, \"WebRTC Softphone Test\"), React__default.createElement(\"div\", {\n className: css$9.status\n }, \"Endpoint Status: \", endpoint.status), endpoint.statusError && React__default.createElement(\"div\", {\n className: css$9.error\n }, endpoint.statusError), line.statusError && React__default.createElement(\"div\", {\n className: css$9.error\n }, line.statusError), React__default.createElement(\"div\", {\n className: css$9.status\n }, \"Line Status: \", line.status), React__default.createElement(\"label\", null, \"Auto Dial\", React__default.createElement(\"input\", {\n type: 'number',\n value: autoDialNumber,\n onChange: function onChange(e) {\n return setAutoDialNumber(e.currentTarget.value);\n }\n })), React__default.createElement(Toggle, {\n className: css$9.toggle,\n value: autoAnswer,\n onChange: function onChange(value) {\n return setAutoAnswer(value);\n }\n }, \"Auto Answer Calls\"), React__default.createElement(Toggle, {\n className: css$9.toggle,\n value: allowHangUp,\n onChange: function onChange(value) {\n return setAllowHangUp(value);\n }\n }, \"Allow Hang Up\"), React__default.createElement(Toggle, {\n className: css$9.toggle,\n value: allowHoldResume,\n onChange: function onChange(value) {\n return setAllowHoldResume(value);\n }\n }, \"Allow Hold/Resume\"), React__default.createElement(Toggle, {\n className: css$9.toggle,\n value: allowIdle,\n onChange: function onChange(value) {\n return setAllowIdle(value);\n }\n }, \"Allow Idle\"), React__default.createElement(\"label\", null, \"Min Delay\", React__default.createElement(\"input\", {\n type: 'number',\n value: minDelayMs,\n onChange: function onChange(e) {\n return setMinDelayMs(e.currentTarget.valueAsNumber);\n },\n min: 1000\n })), React__default.createElement(\"label\", null, \"Max Delay\", React__default.createElement(\"input\", {\n type: 'number',\n value: maxDelayMs,\n onChange: function onChange(e) {\n return setMaxDelayMs(e.currentTarget.valueAsNumber);\n },\n min: 1000\n })), React__default.createElement(\"div\", {\n className: css$9.status\n }, \"Allowable Actions:\"), allowableActions && React__default.createElement(\"ul\", {\n className: css$9.allowActionsList\n }, allowableActions.map(function (action) {\n return React__default.createElement(\"li\", null, action);\n })), React__default.createElement(\"div\", {\n className: css$9.status\n }, \"Next Action: \", nextAction == null ? 'None' : nextAction.Action + \" in \" + nextActionRemainingTime + \"ms\", \" \"), React__default.createElement(\"div\", {\n className: css$9.startStopContainer\n }, React__default.createElement(\"button\", {\n disabled: isRunning,\n onClick: function onClick() {\n return setIsRunning(true);\n }\n }, \"Start\"), React__default.createElement(\"button\", {\n disabled: !isRunning,\n onClick: function onClick() {\n return setIsRunning(false);\n }\n }, \"Stop\"))));\n}\n\nvar css$a = {\"deviceSelectionContainer\":\"DeviceSelection-module_deviceSelectionContainer__RXpuv\"};\n\nfunction DeviceSelection() {\n var dispatch = useDispatch();\n\n var _useState = useState([]),\n devices = _useState[0],\n setDevices = _useState[1];\n\n useEffect(function () {\n navigator.mediaDevices.enumerateDevices().then(function (devices) {\n var d = devices.filter(function (info) {\n return info.kind === 'audiooutput';\n }).map(function (info) {\n return {\n id: info.deviceId,\n displayName: info.label\n };\n });\n setDevices([{\n id: '',\n displayName: 'No Secondary Ringer'\n }].concat(d));\n })[\"catch\"](function (reason) {\n console.error('failed to enumerate devices', reason);\n });\n }, []);\n return React__default.createElement(\"div\", null, React__default.createElement(\"div\", {\n className: css$a.deviceSelectionContainer\n }, React__default.createElement(\"h2\", null, \"Devices\"), React__default.createElement(\"h3\", null, \"Secondary Ringer Device\"), React__default.createElement(\"select\", {\n id: 'secondaryRingerAudioDeviceId',\n onChange: function onChange(e) {\n console.info('onchanged called', e.currentTarget.value);\n dispatch(configureSecondaryRinger(e.currentTarget.value));\n }\n }, devices.map(function (device) {\n return React__default.createElement(\"option\", {\n key: device.id,\n value: device.id\n }, device.displayName);\n }))));\n}\n\nvar css$b = {\"webRtcClientConfiguratorContainer\":\"WebRtcClientConfigurator-module_webRtcClientConfiguratorContainer__s_Cpv\",\"toggle\":\"WebRtcClientConfigurator-module_toggle__1C6Ah\",\"applyContainer\":\"WebRtcClientConfigurator-module_applyContainer__DZUWj\"};\n\nfunction WebRtcClientConfigurator() {\n var _useSelector = useSelector(function (s) {\n return s.janus;\n }),\n endpoint = _useSelector.endpoint,\n line = _useSelector.line,\n settings = _useSelector.settings;\n\n var dispatch = useDispatch();\n\n var _useState = useState(settings),\n settingsState = _useState[0],\n setSettingsState = _useState[1];\n\n function commitConfiguration() {\n dispatch(configureEndpoint(settingsState));\n }\n\n useEffect(function () {\n setSettingsState(settings);\n }, [settings]);\n\n function input(prop, label, type) {\n if (type === void 0) {\n type = 'text';\n }\n\n return React__default.createElement(\"label\", null, label, React__default.createElement(\"input\", {\n type: type,\n value: settingsState[prop],\n onChange: function onChange(e) {\n var value = e.currentTarget.value;\n setSettingsState(function (s) {\n var _extends2;\n\n return _extends({}, s, (_extends2 = {}, _extends2[prop] = value, _extends2));\n });\n }\n }));\n }\n\n return React__default.createElement(\"div\", null, React__default.createElement(\"div\", {\n className: css$b.webRtcClientConfiguratorContainer\n }, React__default.createElement(\"h2\", null, \"WebRTC Softphone Configuration\"), React__default.createElement(\"div\", {\n className: css$b.status\n }, \"Endpoint Status: \", endpoint.status), endpoint.statusError && React__default.createElement(\"div\", {\n className: css$b.error\n }, endpoint.statusError), line.statusError && React__default.createElement(\"div\", {\n className: css$b.error\n }, line.statusError), React__default.createElement(\"div\", {\n className: css$b.status\n }, \"Line Status: \", line.status), input('janus', 'Janus Server'), input('sipRealm', 'Sip Realm'), input('serverUsername', 'Server Username'), input('serverPassword', 'Server Password'), input('turnServer', 'Turn Server'), input('turnServerUdpPort', 'Turn UDP Port', 'number'), input('turnServerTcpPort', 'Turn TCP Port', 'number'), input('turnUsername', 'Turn Username'), input('turnPassword', 'Turn Password'), React__default.createElement(\"div\", {\n className: css$b.applyContainer\n }, React__default.createElement(\"button\", {\n onClick: function onClick() {\n return commitConfiguration();\n }\n }, \"Apply\"))));\n}\n\nfunction setWindowHandlerAccessor(accessor) {\n window.getWindowHandleAsHex = accessor;\n}\n\nexport { Audio, AutomationTest, ForwardRef as BackIcon, ForwardRef$1 as BackspaceIcon, CallStatusErrorCode, ForwardRef$2 as ConnectionDownLinkIcon, ForwardRef$3 as ConnectionStatusIcon, ForwardRef$4 as ConnectionUpLinkIcon, CreateEndpointView, DeviceSelection, Janus, Keypad, ForwardRef$5 as LogOutIcon, ForwardRef$6 as PhoneDialIcon, ForwardRef$7 as PhoneDialVideoIcon, ForwardRef$8 as PhoneHangUpIcon, ForwardRef$9 as PhoneHoldIcon, ForwardRef$a as PhoneKeypadIcon, ForwardRef$b as PhoneMicrophoneIcon, ForwardRef$c as PhoneMicrophoneMutedIcon, ForwardRef$d as PhoneResumeIcon, ForwardRef$e as PhoneShareScreenIcon, ForwardRef$f as PhoneVideoIcon, Ringer, Video, WebRtcClient, WebRtcClientConfigurator, createRootReducer as createWebRtcReducer, isCallConnected, selectCall, selectEndpoint, selectJanus, selectLine, selectSettings, setWindowHandlerAccessor, actions as webrtcActions, index as webrtcSaga };\n//# sourceMappingURL=webrtc-client-janus.esm.js.map\n","var ActionTypes;\n\n(function (ActionTypes) {\n ActionTypes[\"Start\"] = \"xstate.start\";\n ActionTypes[\"Stop\"] = \"xstate.stop\";\n ActionTypes[\"Raise\"] = \"xstate.raise\";\n ActionTypes[\"Send\"] = \"xstate.send\";\n ActionTypes[\"Cancel\"] = \"xstate.cancel\";\n ActionTypes[\"NullEvent\"] = \"\";\n ActionTypes[\"Assign\"] = \"xstate.assign\";\n ActionTypes[\"After\"] = \"xstate.after\";\n ActionTypes[\"DoneState\"] = \"done.state\";\n ActionTypes[\"DoneInvoke\"] = \"done.invoke\";\n ActionTypes[\"Log\"] = \"xstate.log\";\n ActionTypes[\"Init\"] = \"xstate.init\";\n ActionTypes[\"Invoke\"] = \"xstate.invoke\";\n ActionTypes[\"ErrorExecution\"] = \"error.execution\";\n ActionTypes[\"ErrorCommunication\"] = \"error.communication\";\n ActionTypes[\"ErrorPlatform\"] = \"error.platform\";\n ActionTypes[\"ErrorCustom\"] = \"xstate.error\";\n ActionTypes[\"Update\"] = \"xstate.update\";\n ActionTypes[\"Pure\"] = \"xstate.pure\";\n ActionTypes[\"Choose\"] = \"xstate.choose\";\n})(ActionTypes || (ActionTypes = {}));\n\nvar SpecialTargets;\n\n(function (SpecialTargets) {\n SpecialTargets[\"Parent\"] = \"#_parent\";\n SpecialTargets[\"Internal\"] = \"#_internal\";\n})(SpecialTargets || (SpecialTargets = {}));\n\nexport { ActionTypes, SpecialTargets };","import { ActionTypes } from './types.js'; // xstate-specific action types\n\nvar start = ActionTypes.Start;\nvar stop = ActionTypes.Stop;\nvar raise = ActionTypes.Raise;\nvar send = ActionTypes.Send;\nvar cancel = ActionTypes.Cancel;\nvar nullEvent = ActionTypes.NullEvent;\nvar assign = ActionTypes.Assign;\nvar after = ActionTypes.After;\nvar doneState = ActionTypes.DoneState;\nvar log = ActionTypes.Log;\nvar init = ActionTypes.Init;\nvar invoke = ActionTypes.Invoke;\nvar errorExecution = ActionTypes.ErrorExecution;\nvar errorPlatform = ActionTypes.ErrorPlatform;\nvar error = ActionTypes.ErrorCustom;\nvar update = ActionTypes.Update;\nvar choose = ActionTypes.Choose;\nvar pure = ActionTypes.Pure;\nexport { after, assign, cancel, choose, doneState, error, errorExecution, errorPlatform, init, invoke, log, nullEvent, pure, raise, send, start, stop, update };","// 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\nexport default createNamedContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNamedContext\";\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 HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\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 this._pendingLocation = location;\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this.unlisten) {\n // Any pre-mount location changes have been captured at\n // this point, so unregister the listener.\n this.unlisten();\n }\n if (!this.props.staticContext) {\n this.unlisten = this.props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n }\n });\n }\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n \n \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.js\";\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.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\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.js\";\nimport matchPath from \"./matchPath.js\";\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) && isEmptyChildren(children)) {\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.js\";\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.js\";\nimport matchPath from \"./matchPath.js\";\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 invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.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(HistoryContext);\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(RouterContext).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(RouterContext).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 const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","import { TypeConstant } from './type-helpers';\nimport {\n checkIsEmpty,\n throwIsEmpty,\n checkInvalidActionType,\n throwInvalidActionCreator,\n} from './utils/validation';\n\nexport function action(\n type: T,\n payload: undefined,\n meta: undefined,\n error: E\n): { type: T; error: E };\n\nexport function action(\n type: T,\n payload: undefined,\n meta: M,\n error: E\n): { type: T; meta: M; error: E };\n\nexport function action(\n type: T,\n payload: P,\n meta: undefined,\n error: E\n): { type: T; payload: P; error: E };\n\nexport function action(\n type: T,\n payload: P,\n meta: M,\n error: E\n): { type: T; payload: P; meta: M; error: E };\n\nexport function action(\n type: T,\n payload: undefined,\n meta: M\n): { type: T; meta: M };\n\nexport function action(\n type: T,\n payload: P,\n meta: M\n): { type: T; payload: P; meta: M };\n\nexport function action(\n type: T,\n payload: P\n): { type: T; payload: P };\n\nexport function action(type: T): { type: T };\n\n/**\n * @description flux standard action factory\n * @example\n * ```\n * const add = (amount: number, meta?: Meta, error?: boolean) => action('INCREMENT', amount, meta, error);\n * ```\n */\nexport function action<\n T extends TypeConstant,\n P = undefined,\n M = undefined,\n E = undefined\n>(type: T, payload?: P, meta?: M, error?: E) {\n if (checkIsEmpty(type)) {\n throwIsEmpty(1);\n }\n\n if (checkInvalidActionType(type)) {\n throwInvalidActionCreator(1);\n }\n\n return { type, payload, meta, error } as any;\n}\n","import {\n TypeConstant,\n ActionCreatorBuilder,\n ActionCreatorTypeMetadata,\n ActionBuilder,\n} from './type-helpers';\nimport { createCustomAction } from './create-custom-action';\nimport {\n checkIsEmpty,\n throwIsEmpty,\n checkInvalidActionType,\n throwInvalidActionType,\n} from './utils/validation';\n\nexport function createAction(\n type: TType\n): () => ActionCreatorBuilder<\n TType,\n TPayload,\n TMeta\n>;\n\nexport function createAction<\n TType extends TypeConstant,\n TCreatorPayload extends any = undefined,\n TCreatorMeta extends any = undefined,\n TArgs extends any[] = any[]\n>(\n type: TType,\n payloadCreator: undefined | ((...args: TArgs) => TCreatorPayload),\n metaCreator?: (...args: TArgs) => TCreatorMeta\n): <\n TPayload extends TCreatorPayload = TCreatorPayload,\n TMeta extends TCreatorMeta = TCreatorMeta\n>() => (...args: TArgs) => ActionBuilder;\n\n/**\n * @description create an action-creator\n */\nexport function createAction<\n TType extends TypeConstant,\n TCreatorPayload extends any = undefined,\n TCreatorMeta extends any = undefined,\n TArgs extends any[] = any[]\n>(\n type: TType,\n payloadCreator?: undefined | ((...args: TArgs) => TCreatorPayload),\n metaCreator?: (...args: TArgs) => TCreatorMeta\n):\n | (<\n TPayload extends TCreatorPayload = TCreatorPayload,\n TMeta extends TCreatorMeta = TCreatorMeta\n >() => (...args: TArgs) => ActionBuilder)\n | (() => ActionCreatorBuilder<\n TType,\n TPayload,\n TMeta\n >) {\n if (checkIsEmpty(type)) {\n throwIsEmpty(1);\n }\n\n if (checkInvalidActionType(type)) {\n throwInvalidActionType(1);\n }\n\n return () => {\n return createCustomAction(type, (...args: TArgs) => {\n let payload = args[0];\n let meta = args[1];\n\n if (payloadCreator != null || metaCreator != null) {\n payload = payloadCreator != null ? payloadCreator(...args) : undefined;\n meta = metaCreator != null ? metaCreator(...args) : undefined;\n }\n\n return {\n ...(payload !== undefined && { payload }),\n ...(meta !== undefined && { meta }),\n };\n }) as ActionCreatorBuilder;\n };\n}\n","import {\n TypeConstant,\n ActionCreator,\n ActionCreatorTypeMetadata,\n} from './type-helpers';\nimport {\n checkIsEmpty,\n throwIsEmpty,\n checkInvalidActionCreator,\n throwInvalidActionCreator,\n} from './utils/validation';\n\n/**\n * @description get the \"type literal\" of a given action-creator\n */\nexport function getType(\n actionCreator: ActionCreator & ActionCreatorTypeMetadata\n): TType {\n if (checkIsEmpty(actionCreator)) {\n throwIsEmpty(1);\n }\n\n if (checkInvalidActionCreator(actionCreator)) {\n throwInvalidActionCreator(1);\n }\n\n return actionCreator.getType!();\n}\n","import { ActionCreator, TypeConstant } from '../type-helpers';\nimport {\n checkIsEmpty,\n throwIsEmpty,\n checkInvalidActionType,\n throwInvalidActionType,\n} from '../utils/validation';\n\n/**\n * @description create custom action-creator using constructor function with injected type argument\n */\nexport function createCustomAction<\n T extends TypeConstant,\n AC extends ActionCreator = () => { type: T }\n>(type: T, createHandler?: (type: T) => AC): AC {\n if (checkIsEmpty(type)) {\n throwIsEmpty(1);\n }\n\n if (checkInvalidActionType(type)) {\n throwInvalidActionType(1);\n }\n\n const actionCreator: AC =\n createHandler != null ? createHandler(type) : ((() => ({ type })) as AC);\n\n return Object.assign(actionCreator, {\n getType: () => type,\n // redux-actions compatibility\n toString: () => type,\n });\n}\n","import { createAction } from './create-action';\nimport { createCustomAction } from './create-custom-action';\nimport { createStandardAction } from './create-standard-action';\n\nexport default { createAction, createCustomAction, createStandardAction };\n","import { TypeConstant, ActionCreator } from '../type-helpers';\nimport { action } from '../action';\n\nexport type PayloadMetaAction<\n T extends TypeConstant,\n P,\n M\n> = P extends undefined\n ? M extends undefined\n ? { type: T }\n : { type: T; meta: M }\n : M extends undefined\n ? { type: T; payload: P }\n : { type: T; payload: P; meta: M };\n\n/**\n * @description typesafe action-creator factory\n */\nexport function createAction<\n T extends TypeConstant,\n AC extends ActionCreator = () => { type: T }\n>(\n type: T,\n createHandler?: (\n actionCallback:

(\n payload?: P,\n meta?: M\n ) => PayloadMetaAction\n ) => AC\n): AC {\n // validation is already done in action function\n\n const actionCreator: AC =\n createHandler == null\n ? ((() => action(type)) as AC)\n : createHandler(action.bind(null, type) as Parameters<\n typeof createHandler\n >[0]);\n\n return Object.assign(actionCreator, {\n getType: () => type,\n // redux-actions compatibility\n toString: () => type,\n });\n}\n","import { TypeConstant, ActionCreatorBuilder } from '../type-helpers';\nimport {\n checkIsEmpty,\n throwIsEmpty,\n checkInvalidActionType,\n throwInvalidActionType,\n} from '../utils/validation';\nimport { createCustomAction } from './create-custom-action';\n\n/** @private */\nexport type ActionBuilderMap<\n TType extends TypeConstant,\n TActionProps extends any,\n TPayloadArg extends any = undefined,\n TMetaArg extends any = undefined\n> = [TMetaArg] extends [undefined]\n ? [TPayloadArg] extends [undefined]\n ? () => { type: TType } & TActionProps\n : (payload: TPayloadArg) => { type: TType } & TActionProps\n : (payload: TPayloadArg, meta: TMetaArg) => { type: TType } & TActionProps;\n\nexport interface ActionBuilder {\n

(): ActionCreatorBuilder;\n map(\n fn: (payload: P, meta: M) => R\n ): ActionBuilderMap;\n}\n\n/**\n * @description create an action-creator of a given function that contains hidden \"type\" metadata\n */\nexport function createStandardAction(\n type: T\n): ActionBuilder {\n if (checkIsEmpty(type)) {\n throwIsEmpty(1);\n }\n\n if (checkInvalidActionType(type)) {\n throwInvalidActionType(1);\n }\n\n function constructor(): ActionCreatorBuilder {\n return createCustomAction(type, _type => (payload: P, meta: M) => ({\n type: _type,\n payload,\n meta,\n })) as ActionCreatorBuilder;\n }\n\n function map(\n fn: (payload: P, meta: M) => R\n ): ActionBuilderMap {\n return createCustomAction(type, _type => (payload: P, meta: M) =>\n Object.assign(fn(payload, meta), { type: _type })\n ) as ActionBuilderMap;\n }\n\n return Object.assign(constructor, { map });\n}\n","import {\n TypeConstant,\n ActionCreatorBuilder,\n ActionBuilder,\n} from './type-helpers';\nimport { createAction } from './create-action';\n\nexport function throwInvalidAsyncActionArgument(argPosition: number): never {\n throw new Error(\n `Argument ${argPosition} is invalid, it should be an action type of \"string | symbol\" or a tuple of \"[string | symbol, Function, Function?]\"`\n );\n}\n\ntype AsyncActionHandler<\n TType extends TypeConstant,\n TArgs extends any[],\n TPayloadMeta\n> = [TArgs] extends [never]\n ? ActionCreatorBuilder<\n TType,\n unknown extends TPayloadMeta\n ? any\n : [TPayloadMeta] extends [[infer T, any]]\n ? T\n : TPayloadMeta,\n unknown extends TPayloadMeta\n ? undefined\n : [TPayloadMeta] extends [[any, infer T]]\n ? T\n : undefined\n >\n : (\n ...args: TArgs\n ) => ActionBuilder<\n TType,\n [TPayloadMeta] extends [[infer T, any]] ? T : TPayloadMeta,\n [TPayloadMeta] extends [[any, infer T]] ? T : undefined\n >;\n\ninterface AsyncAction<\n TType1 extends TypeConstant,\n TPayload1 extends any,\n TMeta1 extends any,\n TArgs1 extends any[],\n TType2 extends TypeConstant,\n TPayload2 extends any,\n TMeta2 extends any,\n TArgs2 extends any[],\n TType3 extends TypeConstant,\n TPayload3 extends any,\n TMeta3 extends any,\n TArgs3 extends any[],\n TType4 extends TypeConstant,\n TPayload4 extends any,\n TMeta4 extends any,\n TArgs4 extends any[]\n> {\n // tslint:disable-next-line: callable-types\n <\n TPayloadMeta1 extends\n | TPayload1\n | [TPayload1, TMeta1] = TMeta1 extends undefined\n ? TPayload1\n : [TPayload1, TMeta1],\n TPayloadMeta2 extends\n | TPayload2\n | [TPayload2, TMeta2] = TMeta2 extends undefined\n ? TPayload2\n : [TPayload2, TMeta2],\n TPayloadMeta3 extends\n | TPayload3\n | [TPayload3, TMeta3] = TMeta3 extends undefined\n ? TPayload3\n : [TPayload3, TMeta3],\n TPayloadMeta4 extends\n | TPayload4\n | [TPayload4, TMeta4] = TMeta3 extends undefined\n ? TPayload4\n : [TPayload4, TMeta4]\n >(): [TType4] extends [never]\n ? {\n request: AsyncActionHandler;\n success: AsyncActionHandler;\n failure: AsyncActionHandler;\n }\n : {\n request: AsyncActionHandler;\n success: AsyncActionHandler;\n failure: AsyncActionHandler;\n cancel: AsyncActionHandler;\n };\n}\n\nexport function createAsyncAction<\n TType1 extends TypeConstant,\n TType2 extends TypeConstant,\n TType3 extends TypeConstant,\n TType4 extends TypeConstant = never\n>(\n requestArg: TType1,\n successArg: TType2,\n failureArg: TType3,\n cancelArg?: TType4\n): AsyncAction<\n TType1,\n unknown,\n unknown,\n never,\n TType2,\n unknown,\n unknown,\n never,\n TType3,\n unknown,\n unknown,\n never,\n TType4,\n unknown,\n unknown,\n never\n>;\n\nexport function createAsyncAction<\n TType1 extends TypeConstant,\n TType2 extends TypeConstant,\n TType3 extends TypeConstant,\n TType4 extends TypeConstant = never,\n TPayloadCreator1 extends\n | ((...args: TArgs1) => TPayload1)\n | undefined = undefined,\n TPayloadCreator2 extends\n | ((...args: TArgs2) => TPayload2)\n | undefined = undefined,\n TPayloadCreator3 extends\n | ((...args: TArgs3) => TPayload3)\n | undefined = undefined,\n TPayloadCreator4 extends\n | ((...args: TArgs4) => TPayload4)\n | undefined = undefined,\n TMetaCreator1 extends ((...args: TArgs1) => TMeta1) | undefined = undefined,\n TMetaCreator2 extends ((...args: TArgs2) => TMeta2) | undefined = undefined,\n TMetaCreator3 extends ((...args: TArgs3) => TMeta3) | undefined = undefined,\n TMetaCreator4 extends ((...args: TArgs4) => TMeta4) | undefined = undefined,\n TPayload1 extends any = TPayloadCreator1 extends ((...args: any[]) => infer T)\n ? T\n : undefined,\n TMeta1 extends any = TMetaCreator1 extends ((...args: any[]) => infer T)\n ? T\n : undefined,\n TPayload2 extends any = TPayloadCreator2 extends ((...args: any[]) => infer T)\n ? T\n : undefined,\n TMeta2 extends any = TMetaCreator2 extends ((...args: any[]) => infer T)\n ? T\n : undefined,\n TPayload3 extends any = TPayloadCreator3 extends ((...args: any[]) => infer T)\n ? T\n : undefined,\n TMeta3 extends any = TMetaCreator3 extends ((...args: any[]) => infer T)\n ? T\n : undefined,\n TPayload4 extends any = TPayloadCreator4 extends ((...args: any[]) => infer T)\n ? T\n : undefined,\n TMeta4 extends any = TMetaCreator4 extends ((...args: any[]) => infer T)\n ? T\n : undefined,\n TArgs1 extends any[] = TPayloadCreator1 extends ((...args: infer T) => any)\n ? T\n : TMetaCreator1 extends ((...args: infer T) => any)\n ? T\n : never,\n TArgs2 extends any[] = TPayloadCreator2 extends ((...args: infer T) => any)\n ? T\n : TMetaCreator2 extends ((...args: infer T) => any)\n ? T\n : never,\n TArgs3 extends any[] = TPayloadCreator3 extends ((...args: infer T) => any)\n ? T\n : TMetaCreator3 extends ((...args: infer T) => any)\n ? T\n : never,\n TArgs4 extends any[] = TPayloadCreator4 extends ((...args: infer T) => any)\n ? T\n : TMetaCreator4 extends ((...args: infer T) => any)\n ? T\n : never\n>(\n requestArg:\n | TType1\n | [TType1, TPayloadCreator1]\n | [TType1, TPayloadCreator1, TMetaCreator1],\n successArg:\n | TType2\n | [TType2, TPayloadCreator2]\n | [TType2, TPayloadCreator2, TMetaCreator2],\n failureArg:\n | TType3\n | [TType3, TPayloadCreator3]\n | [TType3, TPayloadCreator3, TMetaCreator3],\n cancelArg?:\n | TType4\n | [TType4, TPayloadCreator4]\n | [TType4, TPayloadCreator4, TMetaCreator4]\n): AsyncAction<\n TType1,\n TPayload1,\n TMeta1,\n TArgs1,\n TType2,\n TPayload2,\n TMeta2,\n TArgs2,\n TType3,\n TPayload3,\n TMeta3,\n TArgs3,\n TType4,\n TPayload4,\n TMeta4,\n TArgs4\n>;\n\n/**\n * @description create an async action-creator object that contains `request`, `success` and `failure` actions as props\n */\nexport function createAsyncAction<\n TType1 extends TypeConstant,\n TType2 extends TypeConstant,\n TType3 extends TypeConstant,\n TType4 extends TypeConstant = never,\n TPayloadCreator1 extends\n | ((...args: TArgs1) => TPayload1)\n | undefined = undefined,\n TPayloadCreator2 extends\n | ((...args: TArgs2) => TPayload2)\n | undefined = undefined,\n TPayloadCreator3 extends\n | ((...args: TArgs3) => TPayload3)\n | undefined = undefined,\n TPayloadCreator4 extends\n | ((...args: TArgs4) => TPayload4)\n | undefined = undefined,\n TMetaCreator1 extends ((...args: TArgs1) => TMeta1) | undefined = undefined,\n TMetaCreator2 extends ((...args: TArgs2) => TMeta2) | undefined = undefined,\n TMetaCreator3 extends ((...args: TArgs3) => TMeta3) | undefined = undefined,\n TMetaCreator4 extends ((...args: TArgs4) => TMeta4) | undefined = undefined,\n TPayload1 extends any = TPayloadCreator1 extends ((...args: any[]) => infer T)\n ? T\n : undefined,\n TMeta1 extends any = TMetaCreator1 extends ((...args: any[]) => infer T)\n ? T\n : undefined,\n TPayload2 extends any = TPayloadCreator2 extends ((...args: any[]) => infer T)\n ? T\n : undefined,\n TMeta2 extends any = TMetaCreator2 extends ((...args: any[]) => infer T)\n ? T\n : undefined,\n TPayload3 extends any = TPayloadCreator3 extends ((...args: any[]) => infer T)\n ? T\n : undefined,\n TMeta3 extends any = TMetaCreator3 extends ((...args: any[]) => infer T)\n ? T\n : undefined,\n TPayload4 extends any = TPayloadCreator4 extends ((...args: any[]) => infer T)\n ? T\n : undefined,\n TMeta4 extends any = TMetaCreator4 extends ((...args: any[]) => infer T)\n ? T\n : undefined,\n TArgs1 extends any[] = TPayloadCreator1 extends ((...args: infer T) => any)\n ? T\n : TMetaCreator1 extends ((...args: infer T) => any)\n ? T\n : never,\n TArgs2 extends any[] = TPayloadCreator2 extends ((...args: infer T) => any)\n ? T\n : TMetaCreator2 extends ((...args: infer T) => any)\n ? T\n : never,\n TArgs3 extends any[] = TPayloadCreator3 extends ((...args: infer T) => any)\n ? T\n : TMetaCreator3 extends ((...args: infer T) => any)\n ? T\n : never,\n TArgs4 extends any[] = TPayloadCreator4 extends ((...args: infer T) => any)\n ? T\n : TMetaCreator4 extends ((...args: infer T) => any)\n ? T\n : never\n>(\n requestArg:\n | TType1\n | [TType1, TPayloadCreator1]\n | [TType1, TPayloadCreator1, TMetaCreator1],\n successArg:\n | TType2\n | [TType2, TPayloadCreator2]\n | [TType2, TPayloadCreator2, TMetaCreator2],\n failureArg:\n | TType3\n | [TType3, TPayloadCreator3]\n | [TType3, TPayloadCreator3, TMetaCreator3],\n cancelArg?:\n | TType4\n | [TType4, TPayloadCreator4]\n | [TType4, TPayloadCreator4, TMetaCreator4]\n): AsyncAction<\n TType1,\n TPayload1,\n TMeta1,\n TArgs1,\n TType2,\n TPayload2,\n TMeta2,\n TArgs2,\n TType3,\n TPayload3,\n TMeta3,\n TArgs3,\n TType4,\n TPayload4,\n TMeta4,\n TArgs4\n> {\n const constructor = (<\n TP1 = undefined,\n TM1 = undefined,\n TP2 = undefined,\n TM2 = undefined,\n TP3 = undefined,\n TM3 = undefined,\n TP4 = undefined,\n TM4 = undefined\n >() => {\n const results = [requestArg, successArg, failureArg, cancelArg].map(\n (arg, index) => {\n if (Array.isArray(arg)) {\n return createAction(arg[0], arg[1] as any, arg[2] as any)();\n } else if (typeof arg === 'string' || typeof arg === 'symbol') {\n return createAction(arg as string)();\n } else if (index < 3) {\n throwInvalidAsyncActionArgument(index);\n }\n }\n );\n\n const [request, success, failure, cancel] = results;\n\n return {\n request,\n success,\n failure,\n cancel,\n };\n }) as AsyncAction<\n TType1,\n TPayload1,\n TMeta1,\n TArgs1,\n TType2,\n TPayload2,\n TMeta2,\n TArgs2,\n TType3,\n TPayload3,\n TMeta3,\n TArgs3,\n TType4,\n TPayload4,\n TMeta4,\n TArgs4\n >;\n\n return constructor;\n}\n","import { getType } from './get-type';\nimport {\n checkValidActionCreator,\n checkValidActionType,\n throwInvalidActionTypeOrActionCreator,\n} from './utils/validation';\nimport { Reducer, Action, Types } from './type-helpers';\n\ntype HandleActionChainApi<\n TState,\n TInputAction extends Action,\n TRootAction extends Action\n> = <\n TActionCreator extends (...args: any[]) => TInputAction,\n THandledAction extends ReturnType,\n TOutputAction extends Exclude\n>(\n singleOrMultipleCreatorsAndTypes: TActionCreator | TActionCreator[],\n reducer: (state: TState, action: THandledAction) => TState\n) => [TOutputAction] extends [Action]\n ? Reducer & {\n handlers: Record<\n Exclude['type'],\n (state: TState, action: TRootAction) => TState\n >;\n handleAction: HandleActionChainApi;\n }\n : Reducer & {\n handlers: Record<\n TRootAction['type'],\n (state: TState, action: TRootAction) => TState\n >;\n };\n\ntype HandleTypeChainApi<\n TState,\n TInputAction extends Action,\n TRootAction extends Action\n> = <\n TType extends TInputAction['type'],\n THandledAction extends Extract>,\n TOutputAction extends Exclude\n>(\n singleOrMultipleCreatorsAndTypes: TType | TType[],\n reducer: (state: TState, action: THandledAction) => TState\n) => [TOutputAction] extends [Action]\n ? Reducer & {\n handlers: Record<\n Exclude['type'],\n (state: TState, action: TRootAction) => TState\n >;\n handleType: HandleTypeChainApi;\n }\n : Reducer & {\n handlers: Record<\n TRootAction['type'],\n (state: TState, action: TRootAction) => TState\n >;\n };\n\ntype GetAction<\n TAction extends Action,\n TType extends TAction['type']\n> = TAction extends Action ? TAction : never;\n\ntype InitialHandler = {\n [P in TRootAction['type']]?: (\n state: TState,\n action: GetAction\n ) => TState;\n};\n\ntype RootAction = Types extends { RootAction: infer T } ? T : any;\n\nexport function createReducer(\n initialState: TState,\n initialHandlers: InitialHandler = {}\n) {\n const handlers: any = {\n ...initialHandlers,\n };\n\n const rootReducer: Reducer = (\n state = initialState,\n action: TRootAction\n ) => {\n if (handlers.hasOwnProperty(action.type)) {\n const reducer = handlers[action.type];\n if (typeof reducer !== 'function') {\n throw Error(\n `Reducer under \"${action.type}\" key is not a valid reducer`\n );\n }\n return reducer(state, action);\n } else {\n return state;\n }\n };\n\n const reducerHandler = ((\n singleOrMultipleCreatorsAndTypes: any,\n reducer: any\n ) => {\n const creatorsAndTypes = Array.isArray(singleOrMultipleCreatorsAndTypes)\n ? singleOrMultipleCreatorsAndTypes\n : [singleOrMultipleCreatorsAndTypes];\n\n const newHandlers: typeof handlers = {};\n\n creatorsAndTypes\n .map(\n (\n acOrType: TRootAction['type'] | ((...args: any[]) => TRootAction),\n index\n ) =>\n checkValidActionCreator(acOrType)\n ? getType(acOrType)\n : checkValidActionType(acOrType)\n ? acOrType\n : throwInvalidActionTypeOrActionCreator(index + 1)\n )\n .forEach(type => (newHandlers[type] = reducer));\n\n return createReducer(initialState, {\n ...handlers,\n ...newHandlers,\n });\n }) as\n | HandleActionChainApi\n | HandleTypeChainApi;\n\n const chainApi = Object.assign(rootReducer, {\n handlers: { ...handlers },\n handleAction: reducerHandler,\n handleType: reducerHandler,\n }) as Reducer &\n Readonly<{\n handlers: InitialHandler;\n handleAction: [unknown] extends [TRootAction]\n ? any\n : HandleActionChainApi;\n handleType: [unknown] extends [TRootAction]\n ? any\n : HandleTypeChainApi;\n }>;\n\n return chainApi;\n}\n","import { ActionCreatorTypeMetadata } from './type-helpers';\nimport {\n checkInvalidActionCreatorInArray,\n checkIsEmpty,\n throwIsEmpty,\n} from './utils/validation';\n\nexport type ActionCreator = ((\n ...args: any[]\n) => T) &\n ActionCreatorTypeMetadata;\n\n/**\n * @description (curried assert function) check if an action is the instance of given action-creator(s)\n * @description it works with discriminated union types\n */\nexport function isActionOf>(\n actionCreator: AC | AC[],\n action: { type: string }\n): action is ReturnType;\n\n/**\n * @description (curried assert function) check if an action is the instance of given action-creator(s)\n * @description it works with discriminated union types\n */\nexport function isActionOf>(\n actionCreator: AC | AC[]\n): (action: { type: string }) => action is ReturnType;\n\n/**\n * implementation\n */\nexport function isActionOf>(\n actionCreatorOrCreators: AC | AC[],\n action?: { type: string }\n) {\n if (checkIsEmpty(actionCreatorOrCreators)) {\n throwIsEmpty(1);\n }\n\n const actionCreators = Array.isArray(actionCreatorOrCreators)\n ? actionCreatorOrCreators\n : [actionCreatorOrCreators];\n\n actionCreators.forEach(checkInvalidActionCreatorInArray);\n\n const assertFn = (_action: { type: string }) =>\n actionCreators.some(\n actionCreator => _action.type === actionCreator.getType!()\n );\n\n // 1 arg case => return curried version\n if (action === undefined) {\n return assertFn;\n }\n // 2 args case => invoke assertFn and return the result\n return assertFn(action);\n}\n","import {\n checkInvalidActionTypeInArray,\n checkIsEmpty,\n throwIsEmpty,\n} from './utils/validation';\n/**\n * @description (curried assert function) check if action type is equal given type-constant\n * @description it works with discriminated union types\n */\nexport function isOfType(\n type: T | T[],\n action: A\n): action is A extends { type: T } ? A : never;\n\n/**\n * @description (curried assert function) check if action type is equal given type-constant\n * @description it works with discriminated union types\n */\nexport function isOfType(\n type: T | T[]\n): (\n action: A\n) => action is A extends { type: T } ? A : never;\n\n/**\n * implementation\n */\nexport function isOfType(\n actionTypeOrTypes: T | T[],\n action?: A\n) {\n if (checkIsEmpty(actionTypeOrTypes)) {\n throwIsEmpty(1);\n }\n\n const actionTypes = Array.isArray(actionTypeOrTypes)\n ? actionTypeOrTypes\n : [actionTypeOrTypes];\n\n actionTypes.forEach(checkInvalidActionTypeInArray);\n\n const assertFn = (_action: A) => actionTypes.includes(_action.type);\n\n // 1 arg case => return curried version\n if (action === undefined) {\n return assertFn;\n }\n // 2 args case => invoke assertFn and return the result\n return assertFn(action);\n}\n","function isStringOrNumber(value) {\n return typeof value === 'string' || typeof value === 'number';\n}\n\nexport default isStringOrNumber;\n","import isStringOrNumber from './util/isStringOrNumber';\n\nexport default class FlatObjectCache {\n constructor() {\n this._cache = {};\n }\n set(key, selectorFn) {\n this._cache[key] = selectorFn;\n }\n get(key) {\n return this._cache[key];\n }\n remove(key) {\n delete this._cache[key];\n }\n clear() {\n this._cache = {};\n }\n isValidCacheKey(cacheKey) {\n return isStringOrNumber(cacheKey);\n }\n}\n","import {createSelector} from 'reselect';\nimport FlatObjectCache from './cache/FlatObjectCache';\n\nconst defaultCacheCreator = FlatObjectCache;\nconst defaultCacheKeyValidator = () => true;\n\nfunction createCachedSelector(...funcs) {\n return (polymorphicOptions, legacyOptions) => {\n // @NOTE Versions 0.x/1.x accepted \"options\" as a function\n if (typeof legacyOptions === 'function') {\n throw new Error(\n '[re-reselect] Second argument \"options\" must be an object. Please use \"options.selectorCreator\" to provide a custom selectorCreator.'\n );\n }\n\n const options = {};\n if (typeof polymorphicOptions === 'function') {\n Object.assign(options, legacyOptions, {keySelector: polymorphicOptions});\n // @TODO add legacyOptions deprecation notice in next major release\n } else {\n Object.assign(options, polymorphicOptions);\n }\n\n // https://github.com/reduxjs/reselect/blob/v4.0.0/src/index.js#L54\n let recomputations = 0;\n const resultFunc = funcs.pop();\n const dependencies = Array.isArray(funcs[0]) ? funcs[0] : [...funcs];\n\n const resultFuncWithRecomputations = (...args) => {\n recomputations++;\n return resultFunc(...args);\n };\n funcs.push(resultFuncWithRecomputations);\n\n const cache = options.cacheObject || new defaultCacheCreator();\n const selectorCreator = options.selectorCreator || createSelector;\n const isValidCacheKey = cache.isValidCacheKey || defaultCacheKeyValidator;\n\n if (options.keySelectorCreator) {\n options.keySelector = options.keySelectorCreator({\n keySelector: options.keySelector,\n inputSelectors: dependencies,\n resultFunc,\n });\n }\n\n // Application receives this function\n const selector = function(...args) {\n const cacheKey = options.keySelector(...args);\n\n if (isValidCacheKey(cacheKey)) {\n let cacheResponse = cache.get(cacheKey);\n\n if (cacheResponse === undefined) {\n cacheResponse = selectorCreator(...funcs);\n cache.set(cacheKey, cacheResponse);\n }\n\n return cacheResponse(...args);\n }\n console.warn(\n `[re-reselect] Invalid cache key \"${cacheKey}\" has been returned by keySelector function.`\n );\n return undefined;\n };\n\n // Further selector methods\n selector.getMatchingSelector = (...args) => {\n const cacheKey = options.keySelector(...args);\n // @NOTE It might update cache hit count in LRU-like caches\n return cache.get(cacheKey);\n };\n\n selector.removeMatchingSelector = (...args) => {\n const cacheKey = options.keySelector(...args);\n cache.remove(cacheKey);\n };\n\n selector.clearCache = () => {\n cache.clear();\n };\n\n selector.resultFunc = resultFunc;\n\n selector.dependencies = dependencies;\n\n selector.cache = cache;\n\n selector.recomputations = () => recomputations;\n\n selector.resetRecomputations = () => (recomputations = 0);\n\n selector.keySelector = options.keySelector;\n\n return selector;\n };\n}\n\nexport default createCachedSelector;\n","import {createStructuredSelector} from 'reselect';\nimport createCachedSelector from './createCachedSelector';\n\nfunction createStructuredCachedSelector(selectors) {\n return createStructuredSelector(selectors, createCachedSelector);\n}\n\nexport default createStructuredCachedSelector;\n","function validateCacheSize(cacheSize) {\n if (cacheSize === undefined) {\n throw new Error('Missing the required property \"cacheSize\".');\n }\n if (!Number.isInteger(cacheSize) || cacheSize <= 0) {\n throw new Error(\n 'The \"cacheSize\" property must be a positive integer value.'\n );\n }\n}\n\nexport default validateCacheSize;\n","import validateCacheSize from './util/validateCacheSize';\nimport isStringOrNumber from './util/isStringOrNumber';\n\nexport default class FifoObjectCache {\n constructor({cacheSize} = {}) {\n validateCacheSize(cacheSize);\n this._cache = {};\n this._cacheOrdering = [];\n this._cacheSize = cacheSize;\n }\n set(key, selectorFn) {\n this._cache[key] = selectorFn;\n this._cacheOrdering.push(key);\n\n if (this._cacheOrdering.length > this._cacheSize) {\n const earliest = this._cacheOrdering[0];\n this.remove(earliest);\n }\n }\n get(key) {\n return this._cache[key];\n }\n remove(key) {\n const index = this._cacheOrdering.indexOf(key);\n\n if (index > -1) {\n this._cacheOrdering.splice(index, 1);\n }\n delete this._cache[key];\n }\n clear() {\n this._cache = {};\n this._cacheOrdering = [];\n }\n isValidCacheKey(cacheKey) {\n return isStringOrNumber(cacheKey);\n }\n}\n","import validateCacheSize from './util/validateCacheSize';\nimport isStringOrNumber from './util/isStringOrNumber';\n\nexport default class LruObjectCache {\n constructor({cacheSize} = {}) {\n validateCacheSize(cacheSize);\n this._cache = {};\n this._cacheOrdering = [];\n this._cacheSize = cacheSize;\n }\n set(key, selectorFn) {\n this._cache[key] = selectorFn;\n this._registerCacheHit(key);\n\n if (this._cacheOrdering.length > this._cacheSize) {\n const earliest = this._cacheOrdering[0];\n this.remove(earliest);\n }\n }\n get(key) {\n this._registerCacheHit(key);\n return this._cache[key];\n }\n remove(key) {\n this._deleteCacheHit(key);\n delete this._cache[key];\n }\n clear() {\n this._cache = {};\n this._cacheOrdering = [];\n }\n _registerCacheHit(key) {\n this._deleteCacheHit(key);\n this._cacheOrdering.push(key);\n }\n _deleteCacheHit(key) {\n const index = this._cacheOrdering.indexOf(key);\n if (index > -1) {\n this._cacheOrdering.splice(index, 1);\n }\n }\n isValidCacheKey(cacheKey) {\n return isStringOrNumber(cacheKey);\n }\n}\n","export default class FlatMapCache {\n constructor() {\n this._cache = new Map();\n }\n set(key, selectorFn) {\n this._cache.set(key, selectorFn);\n }\n get(key) {\n return this._cache.get(key);\n }\n remove(key) {\n this._cache.delete(key);\n }\n clear() {\n this._cache.clear();\n }\n}\n","import validateCacheSize from './util/validateCacheSize';\n\nexport default class FifoMapCache {\n constructor({cacheSize} = {}) {\n validateCacheSize(cacheSize);\n this._cache = new Map();\n this._cacheSize = cacheSize;\n }\n set(key, selectorFn) {\n this._cache.set(key, selectorFn);\n\n if (this._cache.size > this._cacheSize) {\n const earliest = this._cache.keys().next().value;\n this.remove(earliest);\n }\n }\n get(key) {\n return this._cache.get(key);\n }\n remove(key) {\n this._cache.delete(key);\n }\n clear() {\n this._cache.clear();\n }\n}\n","import validateCacheSize from './util/validateCacheSize';\n\nexport default class LruMapCache {\n constructor({cacheSize} = {}) {\n validateCacheSize(cacheSize);\n this._cache = new Map();\n this._cacheSize = cacheSize;\n }\n set(key, selectorFn) {\n this._cache.set(key, selectorFn);\n\n if (this._cache.size > this._cacheSize) {\n const earliest = this._cache.keys().next().value;\n this.remove(earliest);\n }\n }\n get(key) {\n const value = this._cache.get(key);\n\n // Register cache hit\n if (this._cache.has(key)) {\n this.remove(key);\n this._cache.set(key, value);\n }\n return value;\n }\n remove(key) {\n this._cache.delete(key);\n }\n clear() {\n this._cache.clear();\n }\n}\n","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, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nvar UAParser = require('ua-parser-js/dist/ua-parser.min');\n\nvar UA = new UAParser();\nvar browser = UA.getBrowser();\nvar cpu = UA.getCPU();\nvar device = UA.getDevice();\nvar engine = UA.getEngine();\nvar os = UA.getOS();\nvar ua = UA.getUA();\n\nvar setDefaults = function setDefaults(p) {\n var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'none';\n return p ? p : d;\n};\nvar getNavigatorInstance = function getNavigatorInstance() {\n if (typeof window !== 'undefined') {\n if (window.navigator || navigator) {\n return window.navigator || navigator;\n }\n }\n\n return false;\n};\nvar isIOS13Check = function isIOS13Check(type) {\n var nav = getNavigatorInstance();\n return nav && nav.platform && (nav.platform.indexOf(type) !== -1 || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1 && !window.MSStream);\n};\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (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\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _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\nfunction _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\nfunction _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}\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\nfunction _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(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(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _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}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _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}\n\nfunction _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\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\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}\n\nfunction _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\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nvar DeviceTypes = {\n Mobile: 'mobile',\n Tablet: 'tablet',\n SmartTv: 'smarttv',\n Console: 'console',\n Wearable: 'wearable',\n Browser: undefined\n};\nvar BrowserTypes = {\n Chrome: 'Chrome',\n Firefox: \"Firefox\",\n Opera: \"Opera\",\n Yandex: \"Yandex\",\n Safari: \"Safari\",\n InternetExplorer: \"Internet Explorer\",\n Edge: \"Edge\",\n Chromium: \"Chromium\",\n Ie: 'IE',\n MobileSafari: \"Mobile Safari\",\n EdgeChromium: \"Edge Chromium\",\n MIUI: \"MIUI Browser\",\n SamsungBrowser: 'Samsung Browser'\n};\nvar OsTypes = {\n IOS: 'iOS',\n Android: \"Android\",\n WindowsPhone: \"Windows Phone\",\n Windows: 'Windows',\n MAC_OS: 'Mac OS'\n};\nvar initialData = {\n isMobile: false,\n isTablet: false,\n isBrowser: false,\n isSmartTV: false,\n isConsole: false,\n isWearable: false\n};\nvar checkType = function checkType(type) {\n switch (type) {\n case DeviceTypes.Mobile:\n return {\n isMobile: true\n };\n\n case DeviceTypes.Tablet:\n return {\n isTablet: true\n };\n\n case DeviceTypes.SmartTv:\n return {\n isSmartTV: true\n };\n\n case DeviceTypes.Console:\n return {\n isConsole: true\n };\n\n case DeviceTypes.Wearable:\n return {\n isWearable: true\n };\n\n case DeviceTypes.Browser:\n return {\n isBrowser: true\n };\n\n default:\n return initialData;\n }\n};\nvar broPayload = function broPayload(isBrowser, browser, engine, os, ua) {\n return {\n isBrowser: isBrowser,\n browserMajorVersion: setDefaults(browser.major),\n browserFullVersion: setDefaults(browser.version),\n browserName: setDefaults(browser.name),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar mobilePayload = function mobilePayload(type, device, os, ua) {\n return _objectSpread2({}, type, {\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n os: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n ua: setDefaults(ua)\n });\n};\nvar stvPayload = function stvPayload(isSmartTV, engine, os, ua) {\n return {\n isSmartTV: isSmartTV,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar consolePayload = function consolePayload(isConsole, engine, os, ua) {\n return {\n isConsole: isConsole,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar wearPayload = function wearPayload(isWearable, engine, os, ua) {\n return {\n isWearable: isWearable,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\n\nvar type = checkType(device.type);\n\nfunction deviceDetect() {\n var isBrowser = type.isBrowser,\n isMobile = type.isMobile,\n isTablet = type.isTablet,\n isSmartTV = type.isSmartTV,\n isConsole = type.isConsole,\n isWearable = type.isWearable;\n\n if (isBrowser) {\n return broPayload(isBrowser, browser, engine, os, ua);\n }\n\n if (isSmartTV) {\n return stvPayload(isSmartTV, engine, os, ua);\n }\n\n if (isConsole) {\n return consolePayload(isConsole, engine, os, ua);\n }\n\n if (isMobile) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isTablet) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isWearable) {\n return wearPayload(isWearable, engine, os, ua);\n }\n}\n\nvar isMobileType = function isMobileType() {\n return device.type === DeviceTypes.Mobile;\n};\n\nvar isTabletType = function isTabletType() {\n return device.type === DeviceTypes.Tablet;\n};\n\nvar isMobileAndTabletType = function isMobileAndTabletType() {\n switch (device.type) {\n case DeviceTypes.Mobile:\n case DeviceTypes.Tablet:\n return true;\n\n default:\n return false;\n }\n};\n\nvar isEdgeChromiumType = function isEdgeChromiumType() {\n return typeof ua === 'string' && ua.indexOf('Edg/') !== -1;\n};\n\nvar isSmartTVType = function isSmartTVType() {\n return device.type === DeviceTypes.SmartTv;\n};\n\nvar isBrowserType = function isBrowserType() {\n return device.type === DeviceTypes.Browser;\n};\n\nvar isWearableType = function isWearableType() {\n return device.type === DeviceTypes.Wearable;\n};\n\nvar isConsoleType = function isConsoleType() {\n return device.type === DeviceTypes.Console;\n};\n\nvar isAndroidType = function isAndroidType() {\n return os.name === OsTypes.Android;\n};\n\nvar isWindowsType = function isWindowsType() {\n return os.name === OsTypes.Windows;\n};\n\nvar isMacOsType = function isMacOsType() {\n return os.name === OsTypes.MAC_OS;\n};\n\nvar isWinPhoneType = function isWinPhoneType() {\n return os.name === OsTypes.WindowsPhone;\n};\n\nvar isIOSType = function isIOSType() {\n return os.name === OsTypes.IOS;\n};\n\nvar isChromeType = function isChromeType() {\n return browser.name === BrowserTypes.Chrome;\n};\n\nvar isFirefoxType = function isFirefoxType() {\n return browser.name === BrowserTypes.Firefox;\n};\n\nvar isChromiumType = function isChromiumType() {\n return browser.name === BrowserTypes.Chromium;\n};\n\nvar isEdgeType = function isEdgeType() {\n return browser.name === BrowserTypes.Edge;\n};\n\nvar isYandexType = function isYandexType() {\n return browser.name === BrowserTypes.Yandex;\n};\n\nvar isSafariType = function isSafariType() {\n return browser.name === BrowserTypes.Safari || browser.name === BrowserTypes.MobileSafari;\n};\n\nvar isMobileSafariType = function isMobileSafariType() {\n return browser.name === BrowserTypes.MobileSafari;\n};\n\nvar isOperaType = function isOperaType() {\n return browser.name === BrowserTypes.Opera;\n};\n\nvar isIEType = function isIEType() {\n return browser.name === BrowserTypes.InternetExplorer || browser.name === BrowserTypes.Ie;\n};\n\nvar isMIUIType = function isMIUIType() {\n return browser.name === BrowserTypes.MIUI;\n};\n\nvar isSamsungBrowserType = function isSamsungBrowserType() {\n return browser.name === BrowserTypes.SamsungBrowser;\n};\n\nvar isElectronType = function isElectronType() {\n var nav = getNavigatorInstance();\n var ua = nav && nav.userAgent && nav.userAgent.toLowerCase();\n return typeof ua === 'string' ? /electron/.test(ua) : false;\n};\n\nvar getIOS13 = function getIOS13() {\n var nav = getNavigatorInstance();\n return nav && (/iPad|iPhone|iPod/.test(nav.platform) || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1) && !window.MSStream;\n};\n\nvar getIPad13 = function getIPad13() {\n return isIOS13Check('iPad');\n};\n\nvar getIphone13 = function getIphone13() {\n return isIOS13Check('iPhone');\n};\n\nvar getIPod13 = function getIPod13() {\n return isIOS13Check('iPod');\n};\n\nvar getBrowserFullVersion = function getBrowserFullVersion() {\n return setDefaults(browser.version);\n};\n\nvar getBrowserVersion = function getBrowserVersion() {\n return setDefaults(browser.major);\n};\n\nvar getOsVersion = function getOsVersion() {\n return setDefaults(os.version);\n};\n\nvar getOsName = function getOsName() {\n return setDefaults(os.name);\n};\n\nvar getBrowserName = function getBrowserName() {\n return setDefaults(browser.name);\n};\n\nvar getMobileVendor = function getMobileVendor() {\n return setDefaults(device.vendor);\n};\n\nvar getMobileModel = function getMobileModel() {\n return setDefaults(device.model);\n};\n\nvar getEngineName = function getEngineName() {\n return setDefaults(engine.name);\n};\n\nvar getEngineVersion = function getEngineVersion() {\n return setDefaults(engine.version);\n};\n\nvar getUseragent = function getUseragent() {\n return setDefaults(ua);\n};\n\nvar getDeviceType = function getDeviceType() {\n return setDefaults(device.type, 'browser');\n};\n\nvar isSmartTV = isSmartTVType();\nvar isConsole = isConsoleType();\nvar isWearable = isWearableType();\nvar isMobileSafari = isMobileSafariType() || getIPad13();\nvar isChromium = isChromiumType();\nvar isMobile = isMobileAndTabletType() || getIPad13();\nvar isMobileOnly = isMobileType();\nvar isTablet = isTabletType() || getIPad13();\nvar isBrowser = isBrowserType();\nvar isDesktop = isBrowserType();\nvar isAndroid = isAndroidType();\nvar isWinPhone = isWinPhoneType();\nvar isIOS = isIOSType() || getIPad13();\nvar isChrome = isChromeType();\nvar isFirefox = isFirefoxType();\nvar isSafari = isSafariType();\nvar isOpera = isOperaType();\nvar isIE = isIEType();\nvar osVersion = getOsVersion();\nvar osName = getOsName();\nvar fullBrowserVersion = getBrowserFullVersion();\nvar browserVersion = getBrowserVersion();\nvar browserName = getBrowserName();\nvar mobileVendor = getMobileVendor();\nvar mobileModel = getMobileModel();\nvar engineName = getEngineName();\nvar engineVersion = getEngineVersion();\nvar getUA = getUseragent();\nvar isEdge = isEdgeType() || isEdgeChromiumType();\nvar isYandex = isYandexType();\nvar deviceType = getDeviceType();\nvar isIOS13 = getIOS13();\nvar isIPad13 = getIPad13();\nvar isIPhone13 = getIphone13();\nvar isIPod13 = getIPod13();\nvar isElectron = isElectronType();\nvar isEdgeChromium = isEdgeChromiumType();\nvar isLegacyEdge = isEdgeType() && !isEdgeChromiumType();\nvar isWindows = isWindowsType();\nvar isMacOs = isMacOsType();\nvar isMIUI = isMIUIType();\nvar isSamsungBrowser = isSamsungBrowserType();\n\nvar AndroidView = function AndroidView(_ref) {\n var renderWithFragment = _ref.renderWithFragment,\n children = _ref.children,\n viewClassName = _ref.viewClassName,\n style = _ref.style,\n props = _objectWithoutProperties(_ref, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isAndroid ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar BrowserView = function BrowserView(_ref2) {\n var renderWithFragment = _ref2.renderWithFragment,\n children = _ref2.children,\n viewClassName = _ref2.viewClassName,\n style = _ref2.style,\n props = _objectWithoutProperties(_ref2, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isBrowser ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar IEView = function IEView(_ref3) {\n var renderWithFragment = _ref3.renderWithFragment,\n children = _ref3.children,\n viewClassName = _ref3.viewClassName,\n style = _ref3.style,\n props = _objectWithoutProperties(_ref3, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isIE ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar IOSView = function IOSView(_ref4) {\n var renderWithFragment = _ref4.renderWithFragment,\n children = _ref4.children,\n viewClassName = _ref4.viewClassName,\n style = _ref4.style,\n props = _objectWithoutProperties(_ref4, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isIOS ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar MobileView = function MobileView(_ref5) {\n var renderWithFragment = _ref5.renderWithFragment,\n children = _ref5.children,\n viewClassName = _ref5.viewClassName,\n style = _ref5.style,\n props = _objectWithoutProperties(_ref5, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isMobile ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar TabletView = function TabletView(_ref6) {\n var renderWithFragment = _ref6.renderWithFragment,\n children = _ref6.children,\n viewClassName = _ref6.viewClassName,\n style = _ref6.style,\n props = _objectWithoutProperties(_ref6, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isTablet ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar WinPhoneView = function WinPhoneView(_ref7) {\n var renderWithFragment = _ref7.renderWithFragment,\n children = _ref7.children,\n viewClassName = _ref7.viewClassName,\n style = _ref7.style,\n props = _objectWithoutProperties(_ref7, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isWinPhone ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar MobileOnlyView = function MobileOnlyView(_ref8) {\n var renderWithFragment = _ref8.renderWithFragment,\n children = _ref8.children,\n viewClassName = _ref8.viewClassName,\n style = _ref8.style,\n props = _objectWithoutProperties(_ref8, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isMobileOnly ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar SmartTVView = function SmartTVView(_ref9) {\n var renderWithFragment = _ref9.renderWithFragment,\n children = _ref9.children,\n viewClassName = _ref9.viewClassName,\n style = _ref9.style,\n props = _objectWithoutProperties(_ref9, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isSmartTV ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar ConsoleView = function ConsoleView(_ref10) {\n var renderWithFragment = _ref10.renderWithFragment,\n children = _ref10.children,\n viewClassName = _ref10.viewClassName,\n style = _ref10.style,\n props = _objectWithoutProperties(_ref10, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isConsole ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar WearableView = function WearableView(_ref11) {\n var renderWithFragment = _ref11.renderWithFragment,\n children = _ref11.children,\n viewClassName = _ref11.viewClassName,\n style = _ref11.style,\n props = _objectWithoutProperties(_ref11, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isWearable ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar CustomView = function CustomView(_ref12) {\n var renderWithFragment = _ref12.renderWithFragment,\n children = _ref12.children,\n viewClassName = _ref12.viewClassName,\n style = _ref12.style,\n condition = _ref12.condition,\n props = _objectWithoutProperties(_ref12, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\", \"condition\"]);\n\n return condition ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\n\nfunction withOrientationChange(WrappedComponent) {\n return (\n /*#__PURE__*/\n function (_React$Component) {\n _inherits(_class, _React$Component);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(_class).call(this, props));\n _this.isEventListenerAdded = false;\n _this.handleOrientationChange = _this.handleOrientationChange.bind(_assertThisInitialized(_this));\n _this.onOrientationChange = _this.onOrientationChange.bind(_assertThisInitialized(_this));\n _this.onPageLoad = _this.onPageLoad.bind(_assertThisInitialized(_this));\n _this.state = {\n isLandscape: false,\n isPortrait: false\n };\n return _this;\n }\n\n _createClass(_class, [{\n key: \"handleOrientationChange\",\n value: function handleOrientationChange() {\n if (!this.isEventListenerAdded) {\n this.isEventListenerAdded = true;\n }\n\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n this.setState({\n isPortrait: orientation === 0,\n isLandscape: orientation === 90\n });\n }\n }, {\n key: \"onOrientationChange\",\n value: function onOrientationChange() {\n this.handleOrientationChange();\n }\n }, {\n key: \"onPageLoad\",\n value: function onPageLoad() {\n this.handleOrientationChange();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n if (!this.isEventListenerAdded) {\n this.handleOrientationChange();\n window.addEventListener(\"load\", this.onPageLoad, false);\n } else {\n window.removeEventListener(\"load\", this.onPageLoad, false);\n }\n\n window.addEventListener(\"resize\", this.onOrientationChange, false);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener(\"resize\", this.onOrientationChange, false);\n }\n }, {\n key: \"render\",\n value: function render() {\n return React__default.createElement(WrappedComponent, _extends({}, this.props, {\n isLandscape: this.state.isLandscape,\n isPortrait: this.state.isPortrait\n }));\n }\n }]);\n\n return _class;\n }(React__default.Component)\n );\n}\n\nexports.AndroidView = AndroidView;\nexports.BrowserTypes = BrowserTypes;\nexports.BrowserView = BrowserView;\nexports.ConsoleView = ConsoleView;\nexports.CustomView = CustomView;\nexports.IEView = IEView;\nexports.IOSView = IOSView;\nexports.MobileOnlyView = MobileOnlyView;\nexports.MobileView = MobileView;\nexports.OsTypes = OsTypes;\nexports.SmartTVView = SmartTVView;\nexports.TabletView = TabletView;\nexports.WearableView = WearableView;\nexports.WinPhoneView = WinPhoneView;\nexports.browserName = browserName;\nexports.browserVersion = browserVersion;\nexports.deviceDetect = deviceDetect;\nexports.deviceType = deviceType;\nexports.engineName = engineName;\nexports.engineVersion = engineVersion;\nexports.fullBrowserVersion = fullBrowserVersion;\nexports.getUA = getUA;\nexports.isAndroid = isAndroid;\nexports.isBrowser = isBrowser;\nexports.isChrome = isChrome;\nexports.isChromium = isChromium;\nexports.isConsole = isConsole;\nexports.isDesktop = isDesktop;\nexports.isEdge = isEdge;\nexports.isEdgeChromium = isEdgeChromium;\nexports.isElectron = isElectron;\nexports.isFirefox = isFirefox;\nexports.isIE = isIE;\nexports.isIOS = isIOS;\nexports.isIOS13 = isIOS13;\nexports.isIPad13 = isIPad13;\nexports.isIPhone13 = isIPhone13;\nexports.isIPod13 = isIPod13;\nexports.isLegacyEdge = isLegacyEdge;\nexports.isMIUI = isMIUI;\nexports.isMacOs = isMacOs;\nexports.isMobile = isMobile;\nexports.isMobileOnly = isMobileOnly;\nexports.isMobileSafari = isMobileSafari;\nexports.isOpera = isOpera;\nexports.isSafari = isSafari;\nexports.isSamsungBrowser = isSamsungBrowser;\nexports.isSmartTV = isSmartTV;\nexports.isTablet = isTablet;\nexports.isWearable = isWearable;\nexports.isWinPhone = isWinPhone;\nexports.isWindows = isWindows;\nexports.isYandex = isYandex;\nexports.mobileModel = mobileModel;\nexports.mobileVendor = mobileVendor;\nexports.osName = osName;\nexports.osVersion = osVersion;\nexports.withOrientationChange = withOrientationChange;\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : 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 return _extends.apply(this, arguments);\n}","var IS_PRODUCTION = process.env.NODE_ENV === 'production';\nexport { IS_PRODUCTION };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n\n return (hint === \"string\" ? String : Number)(input);\n}","import { defaultColumn, emptyRenderer } from './publicUtils'\n\n// Find the depth of the columns\nexport function findMaxDepth(columns, depth = 0) {\n return columns.reduce((prev, curr) => {\n if (curr.columns) {\n return Math.max(prev, findMaxDepth(curr.columns, depth + 1))\n }\n return depth\n }, 0)\n}\n\n// Build the visible columns, headers and flat column list\nexport function linkColumnStructure(columns, parent, depth = 0) {\n return columns.map(column => {\n column = {\n ...column,\n parent,\n depth,\n }\n\n assignColumnAccessor(column)\n\n if (column.columns) {\n column.columns = linkColumnStructure(column.columns, column, depth + 1)\n }\n return column\n })\n}\n\nexport function flattenColumns(columns) {\n return flattenBy(columns, 'columns')\n}\n\nexport function assignColumnAccessor(column) {\n // First check for string accessor\n let { id, accessor, Header } = column\n\n if (typeof accessor === 'string') {\n id = id || accessor\n const accessorPath = accessor.split('.')\n accessor = row => getBy(row, accessorPath)\n }\n\n if (!id && typeof Header === 'string' && Header) {\n id = Header\n }\n\n if (!id && column.columns) {\n console.error(column)\n throw new Error('A column ID (or unique \"Header\" value) is required!')\n }\n\n if (!id) {\n console.error(column)\n throw new Error('A column ID (or string accessor) is required!')\n }\n\n Object.assign(column, {\n id,\n accessor,\n })\n\n return column\n}\n\nexport function decorateColumn(column, userDefaultColumn) {\n if (!userDefaultColumn) {\n throw new Error()\n }\n Object.assign(column, {\n // Make sure there is a fallback header, just in case\n Header: emptyRenderer,\n Footer: emptyRenderer,\n ...defaultColumn,\n ...userDefaultColumn,\n ...column,\n })\n\n Object.assign(column, {\n originalWidth: column.width,\n })\n\n return column\n}\n\n// Build the header groups from the bottom up\nexport function makeHeaderGroups(\n allColumns,\n defaultColumn,\n additionalHeaderProperties = () => ({})\n) {\n const headerGroups = []\n\n let scanColumns = allColumns\n\n let uid = 0\n const getUID = () => uid++\n\n while (scanColumns.length) {\n // The header group we are creating\n const headerGroup = {\n headers: [],\n }\n\n // The parent columns we're going to scan next\n const parentColumns = []\n\n const hasParents = scanColumns.some(d => d.parent)\n\n // Scan each column for parents\n scanColumns.forEach(column => {\n // What is the latest (last) parent column?\n let latestParentColumn = [...parentColumns].reverse()[0]\n\n let newParent\n\n if (hasParents) {\n // If the column has a parent, add it if necessary\n if (column.parent) {\n newParent = {\n ...column.parent,\n originalId: column.parent.id,\n id: `${column.parent.id}_${getUID()}`,\n headers: [column],\n ...additionalHeaderProperties(column),\n }\n } else {\n // If other columns have parents, we'll need to add a place holder if necessary\n const originalId = `${column.id}_placeholder`\n newParent = decorateColumn(\n {\n originalId,\n id: `${column.id}_placeholder_${getUID()}`,\n placeholderOf: column,\n headers: [column],\n ...additionalHeaderProperties(column),\n },\n defaultColumn\n )\n }\n\n // If the resulting parent columns are the same, just add\n // the column and increment the header span\n if (\n latestParentColumn &&\n latestParentColumn.originalId === newParent.originalId\n ) {\n latestParentColumn.headers.push(column)\n } else {\n parentColumns.push(newParent)\n }\n }\n\n headerGroup.headers.push(column)\n })\n\n headerGroups.push(headerGroup)\n\n // Start scanning the parent columns\n scanColumns = parentColumns\n }\n\n return headerGroups.reverse()\n}\n\nconst pathObjCache = new Map()\n\nexport function getBy(obj, path, def) {\n if (!path) {\n return obj\n }\n const cacheKey = typeof path === 'function' ? path : JSON.stringify(path)\n\n const pathObj =\n pathObjCache.get(cacheKey) ||\n (() => {\n const pathObj = makePathArray(path)\n pathObjCache.set(cacheKey, pathObj)\n return pathObj\n })()\n\n let val\n\n try {\n val = pathObj.reduce((cursor, pathPart) => cursor[pathPart], obj)\n } catch (e) {\n // continue regardless of error\n }\n return typeof val !== 'undefined' ? val : def\n}\n\nexport function getFirstDefined(...args) {\n for (let i = 0; i < args.length; i += 1) {\n if (typeof args[i] !== 'undefined') {\n return args[i]\n }\n }\n}\n\nexport function getElementDimensions(element) {\n const rect = element.getBoundingClientRect()\n const style = window.getComputedStyle(element)\n const margins = {\n left: parseInt(style.marginLeft),\n right: parseInt(style.marginRight),\n }\n const padding = {\n left: parseInt(style.paddingLeft),\n right: parseInt(style.paddingRight),\n }\n return {\n left: Math.ceil(rect.left),\n width: Math.ceil(rect.width),\n outerWidth: Math.ceil(\n rect.width + margins.left + margins.right + padding.left + padding.right\n ),\n marginLeft: margins.left,\n marginRight: margins.right,\n paddingLeft: padding.left,\n paddingRight: padding.right,\n scrollWidth: element.scrollWidth,\n }\n}\n\nexport function isFunction(a) {\n if (typeof a === 'function') {\n return a\n }\n}\n\nexport function flattenBy(arr, key) {\n const flat = []\n\n const recurse = arr => {\n arr.forEach(d => {\n if (!d[key]) {\n flat.push(d)\n } else {\n recurse(d[key])\n }\n })\n }\n\n recurse(arr)\n\n return flat\n}\n\nexport function expandRows(\n rows,\n { manualExpandedKey, expanded, expandSubRows = true }\n) {\n const expandedRows = []\n\n const handleRow = (row, addToExpandedRows = true) => {\n row.isExpanded =\n (row.original && row.original[manualExpandedKey]) || expanded[row.id]\n\n row.canExpand = row.subRows && !!row.subRows.length\n\n if (addToExpandedRows) {\n expandedRows.push(row)\n }\n\n if (row.subRows && row.subRows.length && row.isExpanded) {\n row.subRows.forEach(row => handleRow(row, expandSubRows))\n }\n }\n\n rows.forEach(row => handleRow(row))\n\n return expandedRows\n}\n\nexport function getFilterMethod(filter, userFilterTypes, filterTypes) {\n return (\n isFunction(filter) ||\n userFilterTypes[filter] ||\n filterTypes[filter] ||\n filterTypes.text\n )\n}\n\nexport function shouldAutoRemoveFilter(autoRemove, value, column) {\n return autoRemove ? autoRemove(value, column) : typeof value === 'undefined'\n}\n\nexport function unpreparedAccessWarning() {\n throw new Error(\n 'React-Table: You have not called prepareRow(row) one or more rows you are attempting to render.'\n )\n}\n\nlet passiveSupported = null\nexport function passiveEventSupported() {\n // memoize support to avoid adding multiple test events\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n window.addEventListener('test', null, options)\n window.removeEventListener('test', null, options)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\n//\n\nconst reOpenBracket = /\\[/g\nconst reCloseBracket = /\\]/g\n\nfunction makePathArray(obj) {\n return (\n flattenDeep(obj)\n // remove all periods in parts\n .map(d => String(d).replace('.', '_'))\n // join parts using period\n .join('.')\n // replace brackets with periods\n .replace(reOpenBracket, '.')\n .replace(reCloseBracket, '')\n // split it back out on periods\n .split('.')\n )\n}\n\nfunction flattenDeep(arr, newArr = []) {\n if (!Array.isArray(arr)) {\n newArr.push(arr)\n } else {\n for (let i = 0; i < arr.length; i += 1) {\n flattenDeep(arr[i], newArr)\n }\n }\n return newArr\n}\n","export default Base =>\n class extends Base {\n UNSAFE_componentWillMount () {\n this.setStateWithData(this.getDataModel(this.getResolvedState(), true))\n }\n\n componentDidMount () {\n this.fireFetchData()\n }\n\n UNSAFE_componentWillReceiveProps (nextProps, nextState) {\n const oldState = this.getResolvedState()\n const newState = this.getResolvedState(nextProps, nextState)\n\n // Do a deep compare of new and old `defaultOption` and\n // if they are different reset `option = defaultOption`\n const defaultableOptions = ['sorted', 'filtered', 'resized', 'expanded']\n defaultableOptions.forEach(x => {\n const defaultName = `default${x.charAt(0).toUpperCase() + x.slice(1)}`\n if (JSON.stringify(oldState[defaultName]) !== JSON.stringify(newState[defaultName])) {\n newState[x] = newState[defaultName]\n }\n })\n\n // If they change these table options, we need to reset defaults\n // or else we could get into a state where the user has changed the UI\n // and then disabled the ability to change it back.\n // e.g. If `filterable` has changed, set `filtered = defaultFiltered`\n const resettableOptions = ['sortable', 'filterable', 'resizable']\n resettableOptions.forEach(x => {\n if (oldState[x] !== newState[x]) {\n const baseName = x.replace('able', '')\n const optionName = `${baseName}ed`\n const defaultName = `default${optionName.charAt(0).toUpperCase() + optionName.slice(1)}`\n newState[optionName] = newState[defaultName]\n }\n })\n\n // Props that trigger a data update\n if (\n oldState.data !== newState.data ||\n oldState.columns !== newState.columns ||\n oldState.pivotBy !== newState.pivotBy ||\n oldState.sorted !== newState.sorted ||\n oldState.filtered !== newState.filtered\n ) {\n this.setStateWithData(this.getDataModel(newState, oldState.data !== newState.data))\n }\n }\n\n setStateWithData (newState, cb) {\n const oldState = this.getResolvedState()\n const newResolvedState = this.getResolvedState({}, newState)\n const { freezeWhenExpanded } = newResolvedState\n\n // Default to unfrozen state\n newResolvedState.frozen = false\n\n // If freezeWhenExpanded is set, check for frozen conditions\n if (freezeWhenExpanded) {\n // if any rows are expanded, freeze the existing data and sorting\n const keys = Object.keys(newResolvedState.expanded)\n for (let i = 0; i < keys.length; i += 1) {\n if (newResolvedState.expanded[keys[i]]) {\n newResolvedState.frozen = true\n break\n }\n }\n }\n\n // If the data isn't frozen and either the data or\n // sorting model has changed, update the data\n if (\n (oldState.frozen && !newResolvedState.frozen) ||\n oldState.sorted !== newResolvedState.sorted ||\n oldState.filtered !== newResolvedState.filtered ||\n oldState.showFilters !== newResolvedState.showFilters ||\n (!newResolvedState.frozen && oldState.resolvedData !== newResolvedState.resolvedData)\n ) {\n // Handle collapseOnsortedChange & collapseOnDataChange\n if (\n (oldState.sorted !== newResolvedState.sorted && this.props.collapseOnSortingChange) ||\n oldState.filtered !== newResolvedState.filtered ||\n oldState.showFilters !== newResolvedState.showFilters ||\n (oldState.sortedData &&\n !newResolvedState.frozen &&\n oldState.resolvedData !== newResolvedState.resolvedData &&\n this.props.collapseOnDataChange)\n ) {\n newResolvedState.expanded = {}\n }\n\n Object.assign(newResolvedState, this.getSortedData(newResolvedState))\n }\n\n // Set page to 0 if filters change\n if (oldState.filtered !== newResolvedState.filtered) {\n newResolvedState.page = 0\n }\n\n // Calculate pageSize all the time\n if (newResolvedState.sortedData) {\n newResolvedState.pages = newResolvedState.manual\n ? newResolvedState.pages\n : Math.ceil(newResolvedState.sortedData.length / newResolvedState.pageSize)\n newResolvedState.page = newResolvedState.manual ? newResolvedState.page : Math.max(\n newResolvedState.page >= newResolvedState.pages\n ? newResolvedState.pages - 1\n : newResolvedState.page,\n 0\n )\n }\n\n return this.setState(newResolvedState, () => {\n if (cb) {\n cb()\n }\n if (\n oldState.page !== newResolvedState.page ||\n oldState.pageSize !== newResolvedState.pageSize ||\n oldState.sorted !== newResolvedState.sorted ||\n oldState.filtered !== newResolvedState.filtered\n ) {\n this.fireFetchData()\n }\n })\n }\n }\n","import React from 'react'\nimport _ from './utils'\n\nexport default Base =>\n class extends Base {\n getResolvedState (props, state) {\n const resolvedState = {\n ..._.compactObject(this.state),\n ..._.compactObject(this.props),\n ..._.compactObject(state),\n ..._.compactObject(props),\n }\n return resolvedState\n }\n\n getDataModel (newState, dataChanged) {\n const {\n columns,\n pivotBy = [],\n data,\n resolveData,\n pivotIDKey,\n pivotValKey,\n subRowsKey,\n aggregatedKey,\n nestingLevelKey,\n originalKey,\n indexKey,\n groupedByPivotKey,\n SubComponent,\n } = newState\n\n // Determine Header Groups\n let hasHeaderGroups = false\n columns.forEach(column => {\n if (column.columns) {\n hasHeaderGroups = true\n }\n })\n\n let columnsWithExpander = [...columns]\n\n let expanderColumn = columns.find(\n col => col.expander || (col.columns && col.columns.some(col2 => col2.expander))\n )\n // The actual expander might be in the columns field of a group column\n if (expanderColumn && !expanderColumn.expander) {\n expanderColumn = expanderColumn.columns.find(col => col.expander)\n }\n\n // If we have SubComponent's we need to make sure we have an expander column\n if (SubComponent && !expanderColumn) {\n expanderColumn = { expander: true }\n columnsWithExpander = [expanderColumn, ...columnsWithExpander]\n }\n\n const makeDecoratedColumn = (column, parentColumn) => {\n let dcol\n if (column.expander) {\n dcol = {\n ...this.props.column,\n ...this.props.expanderDefaults,\n ...column,\n }\n } else {\n dcol = {\n ...this.props.column,\n ...column,\n }\n }\n\n // Ensure minWidth is not greater than maxWidth if set\n if (dcol.maxWidth < dcol.minWidth) {\n dcol.minWidth = dcol.maxWidth\n }\n\n if (parentColumn) {\n dcol.parentColumn = parentColumn\n }\n\n // First check for string accessor\n if (typeof dcol.accessor === 'string') {\n dcol.id = dcol.id || dcol.accessor\n const accessorString = dcol.accessor\n dcol.accessor = row => _.get(row, accessorString)\n return dcol\n }\n\n // Fall back to functional accessor (but require an ID)\n if (dcol.accessor && !dcol.id) {\n console.warn(dcol)\n throw new Error(\n 'A column id is required if using a non-string accessor for column above.'\n )\n }\n\n // Fall back to an undefined accessor\n if (!dcol.accessor) {\n dcol.accessor = () => undefined\n }\n\n return dcol\n }\n\n const allDecoratedColumns = []\n\n // Decorate the columns\n const decorateAndAddToAll = (column, parentColumn) => {\n const decoratedColumn = makeDecoratedColumn(column, parentColumn)\n allDecoratedColumns.push(decoratedColumn)\n return decoratedColumn\n }\n\n const decoratedColumns = columnsWithExpander.map(column => {\n if (column.columns) {\n return {\n ...column,\n columns: column.columns.map(d => decorateAndAddToAll(d, column)),\n }\n }\n return decorateAndAddToAll(column)\n })\n\n // Build the visible columns, headers and flat column list\n let visibleColumns = decoratedColumns.slice()\n let allVisibleColumns = []\n\n visibleColumns = visibleColumns.map(column => {\n if (column.columns) {\n const visibleSubColumns = column.columns.filter(d =>\n pivotBy.indexOf(d.id) > -1 ? false : _.getFirstDefined(d.show, true)\n )\n return {\n ...column,\n columns: visibleSubColumns,\n }\n }\n return column\n })\n\n visibleColumns = visibleColumns.filter(column =>\n column.columns\n ? column.columns.length\n : pivotBy.indexOf(column.id) > -1\n ? false\n : _.getFirstDefined(column.show, true)\n )\n\n // Find any custom pivot location\n const pivotIndex = visibleColumns.findIndex(col => col.pivot)\n\n // Handle Pivot Columns\n if (pivotBy.length) {\n // Retrieve the pivot columns in the correct pivot order\n const pivotColumns = []\n pivotBy.forEach(pivotID => {\n const found = allDecoratedColumns.find(d => d.id === pivotID)\n if (found) {\n pivotColumns.push(found)\n }\n })\n\n const PivotParentColumn = pivotColumns.reduce(\n (prev, current) => prev && prev === current.parentColumn && current.parentColumn,\n pivotColumns[0].parentColumn\n )\n\n let PivotGroupHeader = hasHeaderGroups && PivotParentColumn.Header\n PivotGroupHeader = PivotGroupHeader || (() => Pivoted)\n\n let pivotColumnGroup = {\n Header: PivotGroupHeader,\n columns: pivotColumns.map(col => ({\n ...this.props.pivotDefaults,\n ...col,\n pivoted: true,\n })),\n }\n\n // Place the pivotColumns back into the visibleColumns\n if (pivotIndex >= 0) {\n pivotColumnGroup = {\n ...visibleColumns[pivotIndex],\n ...pivotColumnGroup,\n }\n visibleColumns.splice(pivotIndex, 1, pivotColumnGroup)\n } else {\n visibleColumns.unshift(pivotColumnGroup)\n }\n }\n\n // Build Header Groups\n const headerGroups = []\n let currentSpan = []\n\n // A convenience function to add a header and reset the currentSpan\n const addHeader = (columns, column) => {\n headerGroups.push({\n ...this.props.column,\n ...column,\n columns,\n })\n currentSpan = []\n }\n\n // Build flast list of allVisibleColumns and HeaderGroups\n visibleColumns.forEach(column => {\n if (column.columns) {\n allVisibleColumns = allVisibleColumns.concat(column.columns)\n if (currentSpan.length > 0) {\n addHeader(currentSpan)\n }\n addHeader(column.columns, column)\n return\n }\n allVisibleColumns.push(column)\n currentSpan.push(column)\n })\n if (hasHeaderGroups && currentSpan.length > 0) {\n addHeader(currentSpan)\n }\n\n // Access the data\n const accessRow = (d, i, level = 0) => {\n const row = {\n [originalKey]: d,\n [indexKey]: i,\n [subRowsKey]: d[subRowsKey],\n [nestingLevelKey]: level,\n }\n allDecoratedColumns.forEach(column => {\n if (column.expander) return\n row[column.id] = column.accessor(d)\n })\n if (row[subRowsKey]) {\n row[subRowsKey] = row[subRowsKey].map((d, i) => accessRow(d, i, level + 1))\n }\n return row\n }\n\n // // If the data hasn't changed, just use the cached data\n let resolvedData = this.resolvedData\n // If the data has changed, run the data resolver and cache the result\n if (!this.resolvedData || dataChanged) {\n resolvedData = resolveData(data)\n this.resolvedData = resolvedData\n }\n // Use the resolved data\n resolvedData = resolvedData.map((d, i) => accessRow(d, i))\n\n // TODO: Make it possible to fabricate nested rows without pivoting\n const aggregatingColumns = allVisibleColumns.filter(d => !d.expander && d.aggregate)\n\n // If pivoting, recursively group the data\n const aggregate = rows => {\n const aggregationValues = {}\n aggregatingColumns.forEach(column => {\n const values = rows.map(d => d[column.id])\n aggregationValues[column.id] = column.aggregate(values, rows)\n })\n return aggregationValues\n }\n if (pivotBy.length) {\n const groupRecursively = (rows, keys, i = 0) => {\n // This is the last level, just return the rows\n if (i === keys.length) {\n return rows\n }\n // Group the rows together for this level\n let groupedRows = Object.entries(_.groupBy(rows, keys[i])).map(([key, value]) => ({\n [pivotIDKey]: keys[i],\n [pivotValKey]: key,\n [keys[i]]: key,\n [subRowsKey]: value,\n [nestingLevelKey]: i,\n [groupedByPivotKey]: true,\n }))\n // Recurse into the subRows\n groupedRows = groupedRows.map(rowGroup => {\n const subRows = groupRecursively(rowGroup[subRowsKey], keys, i + 1)\n return {\n ...rowGroup,\n [subRowsKey]: subRows,\n [aggregatedKey]: true,\n ...aggregate(subRows),\n }\n })\n return groupedRows\n }\n resolvedData = groupRecursively(resolvedData, pivotBy)\n }\n\n return {\n ...newState,\n resolvedData,\n allVisibleColumns,\n headerGroups,\n allDecoratedColumns,\n hasHeaderGroups,\n }\n }\n\n getSortedData (resolvedState) {\n const {\n manual,\n sorted,\n filtered,\n defaultFilterMethod,\n resolvedData,\n allDecoratedColumns,\n } = resolvedState\n\n const sortMethodsByColumnID = {}\n\n allDecoratedColumns\n .filter(col => col.sortMethod)\n .forEach(col => {\n sortMethodsByColumnID[col.id] = col.sortMethod\n })\n\n // Resolve the data from either manual data or sorted data\n return {\n sortedData: manual\n ? resolvedData\n : this.sortData(\n this.filterData(resolvedData, filtered, defaultFilterMethod, allDecoratedColumns),\n sorted,\n sortMethodsByColumnID\n ),\n }\n }\n\n fireFetchData () {\n // determine the current state, preferring certain state values over props\n const currentState = {\n ...this.getResolvedState(),\n page: this.getStateOrProp('page'),\n pageSize: this.getStateOrProp('pageSize'),\n filtered: this.getStateOrProp('filtered'),\n }\n\n this.props.onFetchData(currentState, this)\n }\n\n getPropOrState (key) {\n return _.getFirstDefined(this.props[key], this.state[key])\n }\n\n getStateOrProp (key) {\n return _.getFirstDefined(this.state[key], this.props[key])\n }\n\n filterData (data, filtered, defaultFilterMethod, allVisibleColumns) {\n let filteredData = data\n\n if (filtered.length) {\n filteredData = filtered.reduce((filteredSoFar, nextFilter) => {\n const column = allVisibleColumns.find(x => x.id === nextFilter.id)\n\n // Don't filter hidden columns or columns that have had their filters disabled\n if (!column || column.filterable === false) {\n return filteredSoFar\n }\n\n const filterMethod = column.filterMethod || defaultFilterMethod\n\n // If 'filterAll' is set to true, pass the entire dataset to the filter method\n if (column.filterAll) {\n return filterMethod(nextFilter, filteredSoFar, column)\n }\n return filteredSoFar.filter(row => filterMethod(nextFilter, row, column))\n }, filteredData)\n\n // Apply the filter to the subrows if we are pivoting, and then\n // filter any rows without subcolumns because it would be strange to show\n filteredData = filteredData\n .map(row => {\n if (!row[this.props.subRowsKey]) {\n return row\n }\n return {\n ...row,\n [this.props.subRowsKey]: this.filterData(\n row[this.props.subRowsKey],\n filtered,\n defaultFilterMethod,\n allVisibleColumns\n ),\n }\n })\n .filter(row => {\n if (!row[this.props.subRowsKey]) {\n return true\n }\n return row[this.props.subRowsKey].length > 0\n })\n }\n\n return filteredData\n }\n\n sortData (data, sorted, sortMethodsByColumnID = {}) {\n if (!sorted.length) {\n return data\n }\n\n const sortedData = (this.props.orderByMethod || _.orderBy)(\n data,\n sorted.map(sort => {\n // Support custom sorting methods for each column\n if (sortMethodsByColumnID[sort.id]) {\n return (a, b) => sortMethodsByColumnID[sort.id](a[sort.id], b[sort.id], sort.desc)\n }\n return (a, b) => this.props.defaultSortMethod(a[sort.id], b[sort.id], sort.desc)\n }),\n sorted.map(d => !d.desc),\n this.props.indexKey\n )\n\n sortedData.forEach(row => {\n if (!row[this.props.subRowsKey]) {\n return\n }\n row[this.props.subRowsKey] = this.sortData(\n row[this.props.subRowsKey],\n sorted,\n sortMethodsByColumnID\n )\n })\n\n return sortedData\n }\n\n getMinRows () {\n return _.getFirstDefined(this.props.minRows, this.getStateOrProp('pageSize'))\n }\n\n // User actions\n onPageChange (page) {\n const { onPageChange, collapseOnPageChange } = this.props\n\n const newState = { page }\n if (collapseOnPageChange) {\n newState.expanded = {}\n }\n this.setStateWithData(newState, () => onPageChange && onPageChange(page))\n }\n\n onPageSizeChange (newPageSize) {\n const { onPageSizeChange } = this.props\n const { pageSize, page } = this.getResolvedState()\n\n // Normalize the page to display\n const currentRow = pageSize * page\n const newPage = Math.floor(currentRow / newPageSize)\n\n this.setStateWithData(\n {\n pageSize: newPageSize,\n page: newPage,\n },\n () => onPageSizeChange && onPageSizeChange(newPageSize, newPage)\n )\n }\n\n sortColumn (column, additive) {\n const { sorted, skipNextSort, defaultSortDesc } = this.getResolvedState()\n\n const firstSortDirection = Object.prototype.hasOwnProperty.call(column, 'defaultSortDesc')\n ? column.defaultSortDesc\n : defaultSortDesc\n const secondSortDirection = !firstSortDirection\n\n // we can't stop event propagation from the column resize move handlers\n // attached to the document because of react's synthetic events\n // so we have to prevent the sort function from actually sorting\n // if we click on the column resize element within a header.\n if (skipNextSort) {\n this.setStateWithData({\n skipNextSort: false,\n })\n return\n }\n\n const { onSortedChange } = this.props\n\n let newSorted = _.clone(sorted || []).map(d => {\n d.desc = _.isSortingDesc(d)\n return d\n })\n if (!_.isArray(column)) {\n // Single-Sort\n const existingIndex = newSorted.findIndex(d => d.id === column.id)\n if (existingIndex > -1) {\n const existing = newSorted[existingIndex]\n if (existing.desc === secondSortDirection) {\n if (additive) {\n newSorted.splice(existingIndex, 1)\n } else {\n existing.desc = firstSortDirection\n newSorted = [existing]\n }\n } else {\n existing.desc = secondSortDirection\n if (!additive) {\n newSorted = [existing]\n }\n }\n } else if (additive) {\n newSorted.push({\n id: column.id,\n desc: firstSortDirection,\n })\n } else {\n newSorted = [\n {\n id: column.id,\n desc: firstSortDirection,\n },\n ]\n }\n } else {\n // Multi-Sort\n const existingIndex = newSorted.findIndex(d => d.id === column[0].id)\n // Existing Sorted Column\n if (existingIndex > -1) {\n const existing = newSorted[existingIndex]\n if (existing.desc === secondSortDirection) {\n if (additive) {\n newSorted.splice(existingIndex, column.length)\n } else {\n column.forEach((d, i) => {\n newSorted[existingIndex + i].desc = firstSortDirection\n })\n }\n } else {\n column.forEach((d, i) => {\n newSorted[existingIndex + i].desc = secondSortDirection\n })\n }\n if (!additive) {\n newSorted = newSorted.slice(existingIndex, column.length)\n }\n // New Sort Column\n } else if (additive) {\n newSorted = newSorted.concat(\n column.map(d => ({\n id: d.id,\n desc: firstSortDirection,\n }))\n )\n } else {\n newSorted = column.map(d => ({\n id: d.id,\n desc: firstSortDirection,\n }))\n }\n }\n\n this.setStateWithData(\n {\n page: (!sorted.length && newSorted.length) || !additive ? 0 : this.state.page,\n sorted: newSorted,\n },\n () => onSortedChange && onSortedChange(newSorted, column, additive)\n )\n }\n\n filterColumn (column, value) {\n const { filtered } = this.getResolvedState()\n const { onFilteredChange } = this.props\n\n // Remove old filter first if it exists\n const newFiltering = (filtered || []).filter(x => x.id !== column.id)\n\n if (value !== '') {\n newFiltering.push({\n id: column.id,\n value,\n })\n }\n\n this.setStateWithData(\n {\n filtered: newFiltering,\n },\n () => onFilteredChange && onFilteredChange(newFiltering, column, value)\n )\n }\n\n resizeColumnStart (event, column, isTouch) {\n event.stopPropagation()\n const parentWidth = event.target.parentElement.getBoundingClientRect().width\n\n let pageX\n if (isTouch) {\n pageX = event.changedTouches[0].pageX\n } else {\n pageX = event.pageX\n }\n\n this.trapEvents = true\n this.setStateWithData(\n {\n currentlyResizing: {\n id: column.id,\n startX: pageX,\n parentWidth,\n },\n },\n () => {\n if (isTouch) {\n document.addEventListener('touchmove', this.resizeColumnMoving)\n document.addEventListener('touchcancel', this.resizeColumnEnd)\n document.addEventListener('touchend', this.resizeColumnEnd)\n } else {\n document.addEventListener('mousemove', this.resizeColumnMoving)\n document.addEventListener('mouseup', this.resizeColumnEnd)\n document.addEventListener('mouseleave', this.resizeColumnEnd)\n }\n }\n )\n }\n\n resizeColumnMoving (event) {\n event.stopPropagation()\n const { onResizedChange, column } = this.props\n const { resized, currentlyResizing, columns } = this.getResolvedState()\n const currentColumn = columns.find(\n c => c.accessor === currentlyResizing.id || c.id === currentlyResizing.id\n )\n const minResizeWidth =\n currentColumn && currentColumn.minResizeWidth != null\n ? currentColumn.minResizeWidth\n : column.minResizeWidth\n\n // Delete old value\n const newResized = resized.filter(x => x.id !== currentlyResizing.id)\n\n let pageX\n\n if (event.type === 'touchmove') {\n pageX = event.changedTouches[0].pageX\n } else if (event.type === 'mousemove') {\n pageX = event.pageX\n }\n\n const newWidth = Math.max(\n currentlyResizing.parentWidth + pageX - currentlyResizing.startX,\n minResizeWidth\n )\n\n newResized.push({\n id: currentlyResizing.id,\n value: newWidth,\n })\n\n this.setStateWithData(\n {\n resized: newResized,\n },\n () => onResizedChange && onResizedChange(newResized, event)\n )\n }\n\n resizeColumnEnd (event) {\n event.stopPropagation()\n const isTouch = event.type === 'touchend' || event.type === 'touchcancel'\n\n if (isTouch) {\n document.removeEventListener('touchmove', this.resizeColumnMoving)\n document.removeEventListener('touchcancel', this.resizeColumnEnd)\n document.removeEventListener('touchend', this.resizeColumnEnd)\n }\n\n // If its a touch event clear the mouse one's as well because sometimes\n // the mouseDown event gets called as well, but the mouseUp event doesn't\n document.removeEventListener('mousemove', this.resizeColumnMoving)\n document.removeEventListener('mouseup', this.resizeColumnEnd)\n document.removeEventListener('mouseleave', this.resizeColumnEnd)\n\n // The touch events don't propagate up to the sorting's onMouseDown event so\n // no need to prevent it from happening or else the first click after a touch\n // event resize will not sort the column.\n if (!isTouch) {\n this.setStateWithData({\n skipNextSort: true,\n currentlyResizing: false,\n })\n }\n }\n }\n","import React, { Component } from 'react'\nimport classnames from 'classnames'\n\nconst defaultButton = props => (\n \n)\n\nexport default class ReactTablePagination extends Component {\n static defaultProps = {\n PreviousComponent: defaultButton,\n NextComponent: defaultButton,\n renderPageJump: ({\n onChange, value, onBlur, onKeyPress, inputType, pageJumpText,\n }) => (\n

\n ),\n renderCurrentPage: page => {page + 1},\n renderTotalPagesCount: pages => {pages || 1},\n renderPageSizeOptions: ({\n pageSize,\n pageSizeOptions,\n rowsSelectorText,\n onPageSizeChange,\n rowsText,\n }) => (\n \n onPageSizeChange(Number(e.target.value))}\n value={pageSize}\n >\n {pageSizeOptions.map((option, i) => (\n // eslint-disable-next-line react/no-array-index-key\n \n ))}\n \n \n ),\n }\n\n constructor (props) {\n super(props)\n\n this.getSafePage = this.getSafePage.bind(this)\n this.changePage = this.changePage.bind(this)\n this.applyPage = this.applyPage.bind(this)\n\n this.state = {\n page: props.page,\n }\n }\n\n UNSAFE_componentWillReceiveProps (nextProps) {\n if (this.props.page !== nextProps.page) {\n this.setState({ page: nextProps.page })\n }\n }\n\n getSafePage (page) {\n if (Number.isNaN(page)) {\n page = this.props.page\n }\n return Math.min(Math.max(page, 0), this.props.pages - 1)\n }\n\n changePage (page) {\n page = this.getSafePage(page)\n this.setState({ page })\n if (this.props.page !== page) {\n this.props.onPageChange(page)\n }\n }\n\n applyPage (e) {\n if (e) {\n e.preventDefault()\n }\n const page = this.state.page\n this.changePage(page === '' ? this.props.page : page)\n }\n\n getPageJumpProperties () {\n return {\n onKeyPress: e => {\n if (e.which === 13 || e.keyCode === 13) {\n this.applyPage()\n }\n },\n onBlur: this.applyPage,\n value: this.state.page === '' ? '' : this.state.page + 1,\n onChange: e => {\n const val = e.target.value\n const page = val - 1\n if (val === '') {\n return this.setState({ page: val })\n }\n this.setState({ page: this.getSafePage(page) })\n },\n inputType: this.state.page === '' ? 'text' : 'number',\n pageJumpText: this.props.pageJumpText,\n }\n }\n\n render () {\n const {\n // Computed\n pages,\n // Props\n page,\n showPageSizeOptions,\n pageSizeOptions,\n pageSize,\n showPageJump,\n canPrevious,\n canNext,\n onPageSizeChange,\n className,\n PreviousComponent,\n NextComponent,\n renderPageJump,\n renderCurrentPage,\n renderTotalPagesCount,\n renderPageSizeOptions,\n } = this.props\n\n return (\n
\n
\n {\n if (!canPrevious) return\n this.changePage(page - 1)\n }}\n disabled={!canPrevious}\n >\n {this.props.previousText}\n \n
\n
\n \n {this.props.pageText}{' '}\n {showPageJump ? renderPageJump(this.getPageJumpProperties()) : renderCurrentPage(page)}{' '}\n {this.props.ofText} {renderTotalPagesCount(pages)}\n \n {showPageSizeOptions &&\n renderPageSizeOptions({\n pageSize,\n rowsSelectorText: this.props.rowsSelectorText,\n pageSizeOptions,\n onPageSizeChange,\n rowsText: this.props.rowsText,\n })}\n
\n
\n {\n if (!canNext) return\n this.changePage(page + 1)\n }}\n disabled={!canNext}\n >\n {this.props.nextText}\n \n
\n
\n )\n }\n}\n","import React from 'react'\nimport classnames from 'classnames'\n//\nimport _ from './utils'\nimport Pagination from './pagination'\n\nconst emptyObj = () => ({})\n\nexport default {\n // General\n data: [],\n resolveData: data => data,\n loading: false,\n showPagination: true,\n showPaginationTop: false,\n showPaginationBottom: true,\n showPageSizeOptions: true,\n pageSizeOptions: [5, 10, 20, 25, 50, 100],\n defaultPage: 0,\n defaultPageSize: 20,\n showPageJump: true,\n collapseOnSortingChange: true,\n collapseOnPageChange: true,\n collapseOnDataChange: true,\n freezeWhenExpanded: false,\n sortable: true,\n multiSort: true,\n resizable: true,\n filterable: false,\n defaultSortDesc: false,\n defaultSorted: [],\n defaultFiltered: [],\n defaultResized: [],\n defaultExpanded: {},\n // eslint-disable-next-line no-unused-vars\n defaultFilterMethod: (filter, row, column) => {\n const id = filter.pivotId || filter.id\n return row[id] !== undefined ? String(row[id]).startsWith(filter.value) : true\n },\n // eslint-disable-next-line no-unused-vars\n defaultSortMethod: (a, b, desc) => {\n // force null and undefined to the bottom\n a = a === null || a === undefined ? '' : a\n b = b === null || b === undefined ? '' : b\n // force any string values to lowercase\n a = typeof a === 'string' ? a.toLowerCase() : a\n b = typeof b === 'string' ? b.toLowerCase() : b\n // Return either 1 or -1 to indicate a sort priority\n if (a > b) {\n return 1\n }\n if (a < b) {\n return -1\n }\n // returning 0, undefined or any falsey value will use subsequent sorts or\n // the index as a tiebreaker\n return 0\n },\n\n // Controlled State Props\n // page: undefined,\n // pageSize: undefined,\n // sorted: [],\n // filtered: [],\n // resized: [],\n // expanded: {},\n\n // Controlled State Callbacks\n onPageChange: undefined,\n onPageSizeChange: undefined,\n onSortedChange: undefined,\n onFilteredChange: undefined,\n onResizedChange: undefined,\n onExpandedChange: undefined,\n\n // Pivoting\n pivotBy: undefined,\n\n // Key Constants\n pivotValKey: '_pivotVal',\n pivotIDKey: '_pivotID',\n subRowsKey: '_subRows',\n aggregatedKey: '_aggregated',\n nestingLevelKey: '_nestingLevel',\n originalKey: '_original',\n indexKey: '_index',\n groupedByPivotKey: '_groupedByPivot',\n\n // Server-side Callbacks\n onFetchData: () => null,\n\n // Classes\n className: '',\n style: {},\n\n // Component decorators\n getProps: emptyObj,\n getTableProps: emptyObj,\n getTheadGroupProps: emptyObj,\n getTheadGroupTrProps: emptyObj,\n getTheadGroupThProps: emptyObj,\n getTheadProps: emptyObj,\n getTheadTrProps: emptyObj,\n getTheadThProps: emptyObj,\n getTheadFilterProps: emptyObj,\n getTheadFilterTrProps: emptyObj,\n getTheadFilterThProps: emptyObj,\n getTbodyProps: emptyObj,\n getTrGroupProps: emptyObj,\n getTrProps: emptyObj,\n getTdProps: emptyObj,\n getTfootProps: emptyObj,\n getTfootTrProps: emptyObj,\n getTfootTdProps: emptyObj,\n getPaginationProps: emptyObj,\n getLoadingProps: emptyObj,\n getNoDataProps: emptyObj,\n getResizerProps: emptyObj,\n\n // Global Column Defaults\n column: {\n // Renderers\n Cell: undefined,\n Header: undefined,\n Footer: undefined,\n Aggregated: undefined,\n Pivot: undefined,\n PivotValue: undefined,\n Expander: undefined,\n Filter: undefined,\n Placeholder: undefined,\n // All Columns\n sortable: undefined, // use table default\n resizable: undefined, // use table default\n filterable: undefined, // use table default\n show: true,\n minWidth: 100,\n minResizeWidth: 11,\n // Cells only\n className: '',\n style: {},\n getProps: emptyObj,\n // Pivot only\n aggregate: undefined,\n // Headers only\n headerClassName: '',\n headerStyle: {},\n getHeaderProps: emptyObj,\n // Footers only\n footerClassName: '',\n footerStyle: {},\n getFooterProps: emptyObj,\n filterMethod: undefined,\n filterAll: false,\n sortMethod: undefined,\n },\n\n // Global Expander Column Defaults\n expanderDefaults: {\n sortable: false,\n resizable: false,\n filterable: false,\n width: 35,\n },\n\n pivotDefaults: {\n // extend the defaults for pivoted columns here\n },\n\n // Text\n previousText: 'Previous',\n nextText: 'Next',\n loadingText: 'Loading...',\n noDataText: 'No rows found',\n pageText: 'Page',\n ofText: 'of',\n rowsText: 'rows',\n pageJumpText: 'jump to page',\n rowsSelectorText: 'rows per page',\n\n // Components\n TableComponent: ({ children, className, ...rest }) => (\n \n {children}\n \n ),\n TheadComponent: _.makeTemplateComponent('rt-thead', 'Thead'),\n TbodyComponent: _.makeTemplateComponent('rt-tbody', 'Tbody'),\n TrGroupComponent: ({ children, className, ...rest }) => (\n
\n {children}\n
\n ),\n TrComponent: ({ children, className, ...rest }) => (\n
\n {children}\n
\n ),\n ThComponent: ({\n toggleSort, className, children, ...rest\n }) => (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n toggleSort && toggleSort(e)}\n role=\"columnheader\"\n tabIndex=\"-1\" // Resolves eslint issues without implementing keyboard navigation incorrectly\n {...rest}\n >\n {children}\n \n ),\n TdComponent: ({\n toggleSort, className, children, ...rest\n }) => (\n
\n {children}\n
\n ),\n TfootComponent: _.makeTemplateComponent('rt-tfoot', 'Tfoot'),\n FilterComponent: ({ filter, onChange, column }) => (\n onChange(event.target.value)}\n />\n ),\n ExpanderComponent: ({ isExpanded }) => (\n
\n ),\n PivotValueComponent: ({ subRows, value }) => (\n \n {value} {subRows && `(${subRows.length})`}\n \n ),\n AggregatedComponent: ({ subRows, column }) => {\n const previewValues = subRows.filter(d => typeof d[column.id] !== 'undefined').map((row, i) => (\n // eslint-disable-next-line react/no-array-index-key\n \n {row[column.id]}\n {i < subRows.length - 1 ? ', ' : ''}\n \n ))\n return {previewValues}\n },\n PivotComponent: undefined, // this is a computed default generated using\n // the ExpanderComponent and PivotValueComponent at run-time in methods.js\n PaginationComponent: Pagination,\n PreviousComponent: undefined,\n NextComponent: undefined,\n LoadingComponent: ({\n className, loading, loadingText, ...rest\n }) => (\n
\n
{loadingText}
\n
\n ),\n NoDataComponent: _.makeTemplateComponent('rt-noData', 'NoData'),\n ResizerComponent: _.makeTemplateComponent('rt-resizer', 'Resizer'),\n PadRowComponent: () =>  ,\n}\n","import PropTypes from 'prop-types'\n\nexport default {\n // General\n data: PropTypes.any,\n loading: PropTypes.bool,\n showPagination: PropTypes.bool,\n showPaginationTop: PropTypes.bool,\n showPaginationBottom: PropTypes.bool,\n showPageSizeOptions: PropTypes.bool,\n pageSizeOptions: PropTypes.array,\n defaultPageSize: PropTypes.number,\n showPageJump: PropTypes.bool,\n collapseOnSortingChange: PropTypes.bool,\n collapseOnPageChange: PropTypes.bool,\n collapseOnDataChange: PropTypes.bool,\n freezeWhenExpanded: PropTypes.bool,\n sortable: PropTypes.bool,\n resizable: PropTypes.bool,\n filterable: PropTypes.bool,\n defaultSortDesc: PropTypes.bool,\n defaultSorted: PropTypes.array,\n defaultFiltered: PropTypes.array,\n defaultResized: PropTypes.array,\n defaultExpanded: PropTypes.object,\n defaultFilterMethod: PropTypes.func,\n defaultSortMethod: PropTypes.func,\n\n // Controlled State Callbacks\n onPageChange: PropTypes.func,\n onPageSizeChange: PropTypes.func,\n onSortedChange: PropTypes.func,\n onFilteredChange: PropTypes.func,\n onResizedChange: PropTypes.func,\n onExpandedChange: PropTypes.func,\n\n // Pivoting\n pivotBy: PropTypes.array,\n\n // Key Constants\n pivotValKey: PropTypes.string,\n pivotIDKey: PropTypes.string,\n subRowsKey: PropTypes.string,\n aggregatedKey: PropTypes.string,\n nestingLevelKey: PropTypes.string,\n originalKey: PropTypes.string,\n indexKey: PropTypes.string,\n groupedByPivotKey: PropTypes.string,\n\n // Server-side Callbacks\n onFetchData: PropTypes.func,\n\n // Classes\n className: PropTypes.string,\n style: PropTypes.object,\n\n // Component decorators\n getProps: PropTypes.func,\n getTableProps: PropTypes.func,\n getTheadGroupProps: PropTypes.func,\n getTheadGroupTrProps: PropTypes.func,\n getTheadGroupThProps: PropTypes.func,\n getTheadProps: PropTypes.func,\n getTheadTrProps: PropTypes.func,\n getTheadThProps: PropTypes.func,\n getTheadFilterProps: PropTypes.func,\n getTheadFilterTrProps: PropTypes.func,\n getTheadFilterThProps: PropTypes.func,\n getTbodyProps: PropTypes.func,\n getTrGroupProps: PropTypes.func,\n getTrProps: PropTypes.func,\n getTdProps: PropTypes.func,\n getTfootProps: PropTypes.func,\n getTfootTrProps: PropTypes.func,\n getTfootTdProps: PropTypes.func,\n getPaginationProps: PropTypes.func,\n getLoadingProps: PropTypes.func,\n getNoDataProps: PropTypes.func,\n getResizerProps: PropTypes.func,\n\n // Global Column Defaults\n columns: PropTypes.arrayOf(\n PropTypes.shape({\n // Renderers\n Cell: PropTypes.oneOfType([PropTypes.element, PropTypes.string, PropTypes.func]),\n Header: PropTypes.oneOfType([PropTypes.element, PropTypes.string, PropTypes.func]),\n Footer: PropTypes.oneOfType([PropTypes.element, PropTypes.string, PropTypes.func]),\n Aggregated: PropTypes.oneOfType([PropTypes.element, PropTypes.string, PropTypes.func]),\n Pivot: PropTypes.oneOfType([PropTypes.element, PropTypes.string, PropTypes.func]),\n PivotValue: PropTypes.oneOfType([PropTypes.element, PropTypes.string, PropTypes.func]),\n Expander: PropTypes.oneOfType([PropTypes.element, PropTypes.string, PropTypes.func]),\n Filter: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n\n // All Columns\n sortable: PropTypes.bool, // use table default\n resizable: PropTypes.bool, // use table default\n filterable: PropTypes.bool, // use table default\n show: PropTypes.bool,\n minWidth: PropTypes.number,\n minResizeWidth: PropTypes.number,\n\n // Cells only\n className: PropTypes.string,\n style: PropTypes.object,\n getProps: PropTypes.func,\n\n // Pivot only\n aggregate: PropTypes.func,\n\n // Headers only\n headerClassName: PropTypes.string,\n headerStyle: PropTypes.object,\n getHeaderProps: PropTypes.func,\n\n // Footers only\n footerClassName: PropTypes.string,\n footerStyle: PropTypes.object,\n getFooterProps: PropTypes.func,\n filterMethod: PropTypes.func,\n filterAll: PropTypes.bool,\n sortMethod: PropTypes.func,\n })\n ),\n\n // Global Expander Column Defaults\n expanderDefaults: PropTypes.shape({\n sortable: PropTypes.bool,\n resizable: PropTypes.bool,\n filterable: PropTypes.bool,\n width: PropTypes.number,\n }),\n\n pivotDefaults: PropTypes.object,\n\n // Text\n previousText: PropTypes.node,\n nextText: PropTypes.node,\n loadingText: PropTypes.node,\n noDataText: PropTypes.node,\n pageText: PropTypes.node,\n ofText: PropTypes.node,\n rowsText: PropTypes.node,\n pageJumpText: PropTypes.node,\n rowsSelectorText: PropTypes.node,\n\n // Components\n TableComponent: PropTypes.elementType,\n TheadComponent: PropTypes.elementType,\n TbodyComponent: PropTypes.elementType,\n TrGroupComponent: PropTypes.elementType,\n TrComponent: PropTypes.elementType,\n ThComponent: PropTypes.elementType,\n TdComponent: PropTypes.elementType,\n TfootComponent: PropTypes.elementType,\n FilterComponent: PropTypes.elementType,\n ExpanderComponent: PropTypes.elementType,\n PivotValueComponent: PropTypes.elementType,\n AggregatedComponent: PropTypes.elementType,\n // this is a computed default generated using\n PivotComponent: PropTypes.elementType,\n // the ExpanderComponent and PivotValueComponent at run-time in methods.js\n PaginationComponent: PropTypes.elementType,\n PreviousComponent: PropTypes.elementType,\n NextComponent: PropTypes.elementType,\n LoadingComponent: PropTypes.elementType,\n NoDataComponent: PropTypes.elementType,\n ResizerComponent: PropTypes.elementType,\n PadRowComponent: PropTypes.elementType,\n}\n","import { __values, __spread } from './_virtual/_tslib.js';\nimport { keys, flatten } from './utils.js';\n\nvar isLeafNode = function (stateNode) {\n return stateNode.type === 'atomic' || stateNode.type === 'final';\n};\n\nfunction getChildren(stateNode) {\n return keys(stateNode.states).map(function (key) {\n return stateNode.states[key];\n });\n}\n\nfunction getAllStateNodes(stateNode) {\n var stateNodes = [stateNode];\n\n if (isLeafNode(stateNode)) {\n return stateNodes;\n }\n\n return stateNodes.concat(flatten(getChildren(stateNode).map(getAllStateNodes)));\n}\n\nfunction getConfiguration(prevStateNodes, stateNodes) {\n var e_1, _a, e_2, _b, e_3, _c, e_4, _d;\n\n var prevConfiguration = new Set(prevStateNodes);\n var prevAdjList = getAdjList(prevConfiguration);\n var configuration = new Set(stateNodes);\n\n try {\n // add all ancestors\n for (var configuration_1 = __values(configuration), configuration_1_1 = configuration_1.next(); !configuration_1_1.done; configuration_1_1 = configuration_1.next()) {\n var s = configuration_1_1.value;\n var m = s.parent;\n\n while (m && !configuration.has(m)) {\n configuration.add(m);\n m = m.parent;\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (configuration_1_1 && !configuration_1_1.done && (_a = configuration_1.return)) _a.call(configuration_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n var adjList = getAdjList(configuration);\n\n try {\n // add descendants\n for (var configuration_2 = __values(configuration), configuration_2_1 = configuration_2.next(); !configuration_2_1.done; configuration_2_1 = configuration_2.next()) {\n var s = configuration_2_1.value; // if previously active, add existing child nodes\n\n if (s.type === 'compound' && (!adjList.get(s) || !adjList.get(s).length)) {\n if (prevAdjList.get(s)) {\n prevAdjList.get(s).forEach(function (sn) {\n return configuration.add(sn);\n });\n } else {\n s.initialStateNodes.forEach(function (sn) {\n return configuration.add(sn);\n });\n }\n } else {\n if (s.type === 'parallel') {\n try {\n for (var _e = (e_3 = void 0, __values(getChildren(s))), _f = _e.next(); !_f.done; _f = _e.next()) {\n var child = _f.value;\n\n if (child.type === 'history') {\n continue;\n }\n\n if (!configuration.has(child)) {\n configuration.add(child);\n\n if (prevAdjList.get(child)) {\n prevAdjList.get(child).forEach(function (sn) {\n return configuration.add(sn);\n });\n } else {\n child.initialStateNodes.forEach(function (sn) {\n return configuration.add(sn);\n });\n }\n }\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (_f && !_f.done && (_c = _e.return)) _c.call(_e);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n }\n }\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (configuration_2_1 && !configuration_2_1.done && (_b = configuration_2.return)) _b.call(configuration_2);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n try {\n // add all ancestors\n for (var configuration_3 = __values(configuration), configuration_3_1 = configuration_3.next(); !configuration_3_1.done; configuration_3_1 = configuration_3.next()) {\n var s = configuration_3_1.value;\n var m = s.parent;\n\n while (m && !configuration.has(m)) {\n configuration.add(m);\n m = m.parent;\n }\n }\n } catch (e_4_1) {\n e_4 = {\n error: e_4_1\n };\n } finally {\n try {\n if (configuration_3_1 && !configuration_3_1.done && (_d = configuration_3.return)) _d.call(configuration_3);\n } finally {\n if (e_4) throw e_4.error;\n }\n }\n\n return configuration;\n}\n\nfunction getValueFromAdj(baseNode, adjList) {\n var childStateNodes = adjList.get(baseNode);\n\n if (!childStateNodes) {\n return {}; // todo: fix?\n }\n\n if (baseNode.type === 'compound') {\n var childStateNode = childStateNodes[0];\n\n if (childStateNode) {\n if (isLeafNode(childStateNode)) {\n return childStateNode.key;\n }\n } else {\n return {};\n }\n }\n\n var stateValue = {};\n childStateNodes.forEach(function (csn) {\n stateValue[csn.key] = getValueFromAdj(csn, adjList);\n });\n return stateValue;\n}\n\nfunction getAdjList(configuration) {\n var e_5, _a;\n\n var adjList = new Map();\n\n try {\n for (var configuration_4 = __values(configuration), configuration_4_1 = configuration_4.next(); !configuration_4_1.done; configuration_4_1 = configuration_4.next()) {\n var s = configuration_4_1.value;\n\n if (!adjList.has(s)) {\n adjList.set(s, []);\n }\n\n if (s.parent) {\n if (!adjList.has(s.parent)) {\n adjList.set(s.parent, []);\n }\n\n adjList.get(s.parent).push(s);\n }\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (configuration_4_1 && !configuration_4_1.done && (_a = configuration_4.return)) _a.call(configuration_4);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n\n return adjList;\n}\n\nfunction getValue(rootNode, configuration) {\n var config = getConfiguration([rootNode], configuration);\n return getValueFromAdj(rootNode, getAdjList(config));\n}\n\nfunction has(iterable, item) {\n if (Array.isArray(iterable)) {\n return iterable.some(function (member) {\n return member === item;\n });\n }\n\n if (iterable instanceof Set) {\n return iterable.has(item);\n }\n\n return false; // TODO: fix\n}\n\nfunction nextEvents(configuration) {\n return flatten(__spread(new Set(configuration.map(function (sn) {\n return sn.ownEvents;\n }))));\n}\n\nfunction isInFinalState(configuration, stateNode) {\n if (stateNode.type === 'compound') {\n return getChildren(stateNode).some(function (s) {\n return s.type === 'final' && has(configuration, s);\n });\n }\n\n if (stateNode.type === 'parallel') {\n return getChildren(stateNode).every(function (sn) {\n return isInFinalState(configuration, sn);\n });\n }\n\n return false;\n}\n\nexport { getAdjList, getAllStateNodes, getChildren, getConfiguration, getValue, has, isInFinalState, isLeafNode, nextEvents };","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","/*! Kefir.js v3.8.8\n * https://github.com/kefirjs/kefir\n */\n\nfunction createObj(proto) {\n var F = function () {};\n F.prototype = proto;\n return new F();\n}\n\nfunction extend(target /*, mixin1, mixin2...*/) {\n var length = arguments.length,\n i = void 0,\n prop = void 0;\n for (i = 1; i < length; i++) {\n for (prop in arguments[i]) {\n target[prop] = arguments[i][prop];\n }\n }\n return target;\n}\n\nfunction inherit(Child, Parent /*, mixin1, mixin2...*/) {\n var length = arguments.length,\n i = void 0;\n Child.prototype = createObj(Parent.prototype);\n Child.prototype.constructor = Child;\n for (i = 2; i < length; i++) {\n extend(Child.prototype, arguments[i]);\n }\n return Child;\n}\n\nvar NOTHING = [''];\nvar END = 'end';\nvar VALUE = 'value';\nvar ERROR = 'error';\nvar ANY = 'any';\n\nfunction concat(a, b) {\n var result = void 0,\n length = void 0,\n i = void 0,\n j = void 0;\n if (a.length === 0) {\n return b;\n }\n if (b.length === 0) {\n return a;\n }\n j = 0;\n result = new Array(a.length + b.length);\n length = a.length;\n for (i = 0; i < length; i++, j++) {\n result[j] = a[i];\n }\n length = b.length;\n for (i = 0; i < length; i++, j++) {\n result[j] = b[i];\n }\n return result;\n}\n\nfunction find(arr, value) {\n var length = arr.length,\n i = void 0;\n for (i = 0; i < length; i++) {\n if (arr[i] === value) {\n return i;\n }\n }\n return -1;\n}\n\nfunction findByPred(arr, pred) {\n var length = arr.length,\n i = void 0;\n for (i = 0; i < length; i++) {\n if (pred(arr[i])) {\n return i;\n }\n }\n return -1;\n}\n\nfunction cloneArray(input) {\n var length = input.length,\n result = new Array(length),\n i = void 0;\n for (i = 0; i < length; i++) {\n result[i] = input[i];\n }\n return result;\n}\n\nfunction remove(input, index) {\n var length = input.length,\n result = void 0,\n i = void 0,\n j = void 0;\n if (index >= 0 && index < length) {\n if (length === 1) {\n return [];\n } else {\n result = new Array(length - 1);\n for (i = 0, j = 0; i < length; i++) {\n if (i !== index) {\n result[j] = input[i];\n j++;\n }\n }\n return result;\n }\n } else {\n return input;\n }\n}\n\nfunction map(input, fn) {\n var length = input.length,\n result = new Array(length),\n i = void 0;\n for (i = 0; i < length; i++) {\n result[i] = fn(input[i]);\n }\n return result;\n}\n\nfunction forEach(arr, fn) {\n var length = arr.length,\n i = void 0;\n for (i = 0; i < length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction fillArray(arr, value) {\n var length = arr.length,\n i = void 0;\n for (i = 0; i < length; i++) {\n arr[i] = value;\n }\n}\n\nfunction contains(arr, value) {\n return find(arr, value) !== -1;\n}\n\nfunction slide(cur, next, max) {\n var length = Math.min(max, cur.length + 1),\n offset = cur.length - length + 1,\n result = new Array(length),\n i = void 0;\n for (i = offset; i < length; i++) {\n result[i - offset] = cur[i];\n }\n result[length - 1] = next;\n return result;\n}\n\nfunction callSubscriber(type, fn, event) {\n if (type === ANY) {\n fn(event);\n } else if (type === event.type) {\n if (type === VALUE || type === ERROR) {\n fn(event.value);\n } else {\n fn();\n }\n }\n}\n\nfunction Dispatcher() {\n this._items = [];\n this._spies = [];\n this._inLoop = 0;\n this._removedItems = null;\n}\n\nextend(Dispatcher.prototype, {\n add: function (type, fn) {\n this._items = concat(this._items, [{ type: type, fn: fn }]);\n return this._items.length;\n },\n remove: function (type, fn) {\n var index = findByPred(this._items, function (x) {\n return x.type === type && x.fn === fn;\n });\n\n // if we're currently in a notification loop,\n // remember this subscriber was removed\n if (this._inLoop !== 0 && index !== -1) {\n if (this._removedItems === null) {\n this._removedItems = [];\n }\n this._removedItems.push(this._items[index]);\n }\n\n this._items = remove(this._items, index);\n return this._items.length;\n },\n addSpy: function (fn) {\n this._spies = concat(this._spies, [fn]);\n return this._spies.length;\n },\n\n\n // Because spies are only ever a function that perform logging as\n // their only side effect, we don't need the same complicated\n // removal logic like in remove()\n removeSpy: function (fn) {\n this._spies = remove(this._spies, this._spies.indexOf(fn));\n return this._spies.length;\n },\n dispatch: function (event) {\n this._inLoop++;\n for (var i = 0, spies = this._spies; this._spies !== null && i < spies.length; i++) {\n spies[i](event);\n }\n\n for (var _i = 0, items = this._items; _i < items.length; _i++) {\n // cleanup was called\n if (this._items === null) {\n break;\n }\n\n // this subscriber was removed\n if (this._removedItems !== null && contains(this._removedItems, items[_i])) {\n continue;\n }\n\n callSubscriber(items[_i].type, items[_i].fn, event);\n }\n this._inLoop--;\n if (this._inLoop === 0) {\n this._removedItems = null;\n }\n },\n cleanup: function () {\n this._items = null;\n this._spies = null;\n }\n});\n\nfunction Observable() {\n this._dispatcher = new Dispatcher();\n this._active = false;\n this._alive = true;\n this._activating = false;\n this._logHandlers = null;\n this._spyHandlers = null;\n}\n\nextend(Observable.prototype, {\n _name: 'observable',\n\n _onActivation: function () {},\n _onDeactivation: function () {},\n _setActive: function (active) {\n if (this._active !== active) {\n this._active = active;\n if (active) {\n this._activating = true;\n this._onActivation();\n this._activating = false;\n } else {\n this._onDeactivation();\n }\n }\n },\n _clear: function () {\n this._setActive(false);\n this._dispatcher.cleanup();\n this._dispatcher = null;\n this._logHandlers = null;\n },\n _emit: function (type, x) {\n switch (type) {\n case VALUE:\n return this._emitValue(x);\n case ERROR:\n return this._emitError(x);\n case END:\n return this._emitEnd();\n }\n },\n _emitValue: function (value) {\n if (this._alive) {\n this._dispatcher.dispatch({ type: VALUE, value: value });\n }\n },\n _emitError: function (value) {\n if (this._alive) {\n this._dispatcher.dispatch({ type: ERROR, value: value });\n }\n },\n _emitEnd: function () {\n if (this._alive) {\n this._alive = false;\n this._dispatcher.dispatch({ type: END });\n this._clear();\n }\n },\n _on: function (type, fn) {\n if (this._alive) {\n this._dispatcher.add(type, fn);\n this._setActive(true);\n } else {\n callSubscriber(type, fn, { type: END });\n }\n return this;\n },\n _off: function (type, fn) {\n if (this._alive) {\n var count = this._dispatcher.remove(type, fn);\n if (count === 0) {\n this._setActive(false);\n }\n }\n return this;\n },\n onValue: function (fn) {\n return this._on(VALUE, fn);\n },\n onError: function (fn) {\n return this._on(ERROR, fn);\n },\n onEnd: function (fn) {\n return this._on(END, fn);\n },\n onAny: function (fn) {\n return this._on(ANY, fn);\n },\n offValue: function (fn) {\n return this._off(VALUE, fn);\n },\n offError: function (fn) {\n return this._off(ERROR, fn);\n },\n offEnd: function (fn) {\n return this._off(END, fn);\n },\n offAny: function (fn) {\n return this._off(ANY, fn);\n },\n observe: function (observerOrOnValue, onError, onEnd) {\n var _this = this;\n var closed = false;\n\n var observer = !observerOrOnValue || typeof observerOrOnValue === 'function' ? { value: observerOrOnValue, error: onError, end: onEnd } : observerOrOnValue;\n\n var handler = function (event) {\n if (event.type === END) {\n closed = true;\n }\n if (event.type === VALUE && observer.value) {\n observer.value(event.value);\n } else if (event.type === ERROR && observer.error) {\n observer.error(event.value);\n } else if (event.type === END && observer.end) {\n observer.end(event.value);\n }\n };\n\n this.onAny(handler);\n\n return {\n unsubscribe: function () {\n if (!closed) {\n _this.offAny(handler);\n closed = true;\n }\n },\n\n get closed() {\n return closed;\n }\n };\n },\n\n\n // A and B must be subclasses of Stream and Property (order doesn't matter)\n _ofSameType: function (A, B) {\n return A.prototype.getType() === this.getType() ? A : B;\n },\n setName: function (sourceObs /* optional */, selfName) {\n this._name = selfName ? sourceObs._name + '.' + selfName : sourceObs;\n return this;\n },\n log: function () {\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.toString();\n\n var isCurrent = void 0;\n var handler = function (event) {\n var type = '<' + event.type + (isCurrent ? ':current' : '') + '>';\n if (event.type === END) {\n console.log(name, type);\n } else {\n console.log(name, type, event.value);\n }\n };\n\n if (this._alive) {\n if (!this._logHandlers) {\n this._logHandlers = [];\n }\n this._logHandlers.push({ name: name, handler: handler });\n }\n\n isCurrent = true;\n this.onAny(handler);\n isCurrent = false;\n\n return this;\n },\n offLog: function () {\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.toString();\n\n if (this._logHandlers) {\n var handlerIndex = findByPred(this._logHandlers, function (obj) {\n return obj.name === name;\n });\n if (handlerIndex !== -1) {\n this.offAny(this._logHandlers[handlerIndex].handler);\n this._logHandlers.splice(handlerIndex, 1);\n }\n }\n\n return this;\n },\n spy: function () {\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.toString();\n\n var handler = function (event) {\n var type = '<' + event.type + '>';\n if (event.type === END) {\n console.log(name, type);\n } else {\n console.log(name, type, event.value);\n }\n };\n if (this._alive) {\n if (!this._spyHandlers) {\n this._spyHandlers = [];\n }\n this._spyHandlers.push({ name: name, handler: handler });\n this._dispatcher.addSpy(handler);\n }\n return this;\n },\n offSpy: function () {\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.toString();\n\n if (this._spyHandlers) {\n var handlerIndex = findByPred(this._spyHandlers, function (obj) {\n return obj.name === name;\n });\n if (handlerIndex !== -1) {\n this._dispatcher.removeSpy(this._spyHandlers[handlerIndex].handler);\n this._spyHandlers.splice(handlerIndex, 1);\n }\n }\n return this;\n }\n});\n\n// extend() can't handle `toString` in IE8\nObservable.prototype.toString = function () {\n return '[' + this._name + ']';\n};\n\nfunction Stream() {\n Observable.call(this);\n}\n\ninherit(Stream, Observable, {\n _name: 'stream',\n\n getType: function () {\n return 'stream';\n }\n});\n\nfunction Property() {\n Observable.call(this);\n this._currentEvent = null;\n}\n\ninherit(Property, Observable, {\n _name: 'property',\n\n _emitValue: function (value) {\n if (this._alive) {\n this._currentEvent = { type: VALUE, value: value };\n if (!this._activating) {\n this._dispatcher.dispatch({ type: VALUE, value: value });\n }\n }\n },\n _emitError: function (value) {\n if (this._alive) {\n this._currentEvent = { type: ERROR, value: value };\n if (!this._activating) {\n this._dispatcher.dispatch({ type: ERROR, value: value });\n }\n }\n },\n _emitEnd: function () {\n if (this._alive) {\n this._alive = false;\n if (!this._activating) {\n this._dispatcher.dispatch({ type: END });\n }\n this._clear();\n }\n },\n _on: function (type, fn) {\n if (this._alive) {\n this._dispatcher.add(type, fn);\n this._setActive(true);\n }\n if (this._currentEvent !== null) {\n callSubscriber(type, fn, this._currentEvent);\n }\n if (!this._alive) {\n callSubscriber(type, fn, { type: END });\n }\n return this;\n },\n getType: function () {\n return 'property';\n }\n});\n\nvar neverS = new Stream();\nneverS._emitEnd();\nneverS._name = 'never';\n\nfunction never() {\n return neverS;\n}\n\nfunction timeBased(mixin) {\n function AnonymousStream(wait, options) {\n var _this = this;\n\n Stream.call(this);\n this._wait = wait;\n this._intervalId = null;\n this._$onTick = function () {\n return _this._onTick();\n };\n this._init(options);\n }\n\n inherit(AnonymousStream, Stream, {\n _init: function () {},\n _free: function () {},\n _onTick: function () {},\n _onActivation: function () {\n this._intervalId = setInterval(this._$onTick, this._wait);\n },\n _onDeactivation: function () {\n if (this._intervalId !== null) {\n clearInterval(this._intervalId);\n this._intervalId = null;\n }\n },\n _clear: function () {\n Stream.prototype._clear.call(this);\n this._$onTick = null;\n this._free();\n }\n }, mixin);\n\n return AnonymousStream;\n}\n\nvar S = timeBased({\n _name: 'later',\n\n _init: function (_ref) {\n var x = _ref.x;\n\n this._x = x;\n },\n _free: function () {\n this._x = null;\n },\n _onTick: function () {\n this._emitValue(this._x);\n this._emitEnd();\n }\n});\n\nfunction later(wait, x) {\n return new S(wait, { x: x });\n}\n\nvar S$1 = timeBased({\n _name: 'interval',\n\n _init: function (_ref) {\n var x = _ref.x;\n\n this._x = x;\n },\n _free: function () {\n this._x = null;\n },\n _onTick: function () {\n this._emitValue(this._x);\n }\n});\n\nfunction interval(wait, x) {\n return new S$1(wait, { x: x });\n}\n\nvar S$2 = timeBased({\n _name: 'sequentially',\n\n _init: function (_ref) {\n var xs = _ref.xs;\n\n this._xs = cloneArray(xs);\n },\n _free: function () {\n this._xs = null;\n },\n _onTick: function () {\n if (this._xs.length === 1) {\n this._emitValue(this._xs[0]);\n this._emitEnd();\n } else {\n this._emitValue(this._xs.shift());\n }\n }\n});\n\nfunction sequentially(wait, xs) {\n return xs.length === 0 ? never() : new S$2(wait, { xs: xs });\n}\n\nvar S$3 = timeBased({\n _name: 'fromPoll',\n\n _init: function (_ref) {\n var fn = _ref.fn;\n\n this._fn = fn;\n },\n _free: function () {\n this._fn = null;\n },\n _onTick: function () {\n var fn = this._fn;\n this._emitValue(fn());\n }\n});\n\nfunction fromPoll(wait, fn) {\n return new S$3(wait, { fn: fn });\n}\n\nfunction emitter(obs) {\n function value(x) {\n obs._emitValue(x);\n return obs._active;\n }\n\n function error(x) {\n obs._emitError(x);\n return obs._active;\n }\n\n function end() {\n obs._emitEnd();\n return obs._active;\n }\n\n function event(e) {\n obs._emit(e.type, e.value);\n return obs._active;\n }\n\n return {\n value: value,\n error: error,\n end: end,\n event: event,\n\n // legacy\n emit: value,\n emitEvent: event\n };\n}\n\nvar S$4 = timeBased({\n _name: 'withInterval',\n\n _init: function (_ref) {\n var fn = _ref.fn;\n\n this._fn = fn;\n this._emitter = emitter(this);\n },\n _free: function () {\n this._fn = null;\n this._emitter = null;\n },\n _onTick: function () {\n var fn = this._fn;\n fn(this._emitter);\n }\n});\n\nfunction withInterval(wait, fn) {\n return new S$4(wait, { fn: fn });\n}\n\nfunction S$5(fn) {\n Stream.call(this);\n this._fn = fn;\n this._unsubscribe = null;\n}\n\ninherit(S$5, Stream, {\n _name: 'stream',\n\n _onActivation: function () {\n var fn = this._fn;\n var unsubscribe = fn(emitter(this));\n this._unsubscribe = typeof unsubscribe === 'function' ? unsubscribe : null;\n\n // fix https://github.com/kefirjs/kefir/issues/35\n if (!this._active) {\n this._callUnsubscribe();\n }\n },\n _callUnsubscribe: function () {\n if (this._unsubscribe !== null) {\n this._unsubscribe();\n this._unsubscribe = null;\n }\n },\n _onDeactivation: function () {\n this._callUnsubscribe();\n },\n _clear: function () {\n Stream.prototype._clear.call(this);\n this._fn = null;\n }\n});\n\nfunction stream(fn) {\n return new S$5(fn);\n}\n\nfunction fromCallback(callbackConsumer) {\n var called = false;\n\n return stream(function (emitter) {\n if (!called) {\n callbackConsumer(function (x) {\n emitter.emit(x);\n emitter.end();\n });\n called = true;\n }\n }).setName('fromCallback');\n}\n\nfunction fromNodeCallback(callbackConsumer) {\n var called = false;\n\n return stream(function (emitter) {\n if (!called) {\n callbackConsumer(function (error, x) {\n if (error) {\n emitter.error(error);\n } else {\n emitter.emit(x);\n }\n emitter.end();\n });\n called = true;\n }\n }).setName('fromNodeCallback');\n}\n\nfunction spread(fn, length) {\n switch (length) {\n case 0:\n return function () {\n return fn();\n };\n case 1:\n return function (a) {\n return fn(a[0]);\n };\n case 2:\n return function (a) {\n return fn(a[0], a[1]);\n };\n case 3:\n return function (a) {\n return fn(a[0], a[1], a[2]);\n };\n case 4:\n return function (a) {\n return fn(a[0], a[1], a[2], a[3]);\n };\n default:\n return function (a) {\n return fn.apply(null, a);\n };\n }\n}\n\nfunction apply(fn, c, a) {\n var aLength = a ? a.length : 0;\n if (c == null) {\n switch (aLength) {\n case 0:\n return fn();\n case 1:\n return fn(a[0]);\n case 2:\n return fn(a[0], a[1]);\n case 3:\n return fn(a[0], a[1], a[2]);\n case 4:\n return fn(a[0], a[1], a[2], a[3]);\n default:\n return fn.apply(null, a);\n }\n } else {\n switch (aLength) {\n case 0:\n return fn.call(c);\n default:\n return fn.apply(c, a);\n }\n }\n}\n\nfunction fromSubUnsub(sub, unsub, transformer /* Function | falsey */) {\n return stream(function (emitter) {\n var handler = transformer ? function () {\n emitter.emit(apply(transformer, this, arguments));\n } : function (x) {\n emitter.emit(x);\n };\n\n sub(handler);\n return function () {\n return unsub(handler);\n };\n }).setName('fromSubUnsub');\n}\n\nvar pairs = [['addEventListener', 'removeEventListener'], ['addListener', 'removeListener'], ['on', 'off']];\n\nfunction fromEvents(target, eventName, transformer) {\n var sub = void 0,\n unsub = void 0;\n\n for (var i = 0; i < pairs.length; i++) {\n if (typeof target[pairs[i][0]] === 'function' && typeof target[pairs[i][1]] === 'function') {\n sub = pairs[i][0];\n unsub = pairs[i][1];\n break;\n }\n }\n\n if (sub === undefined) {\n throw new Error(\"target don't support any of \" + 'addEventListener/removeEventListener, addListener/removeListener, on/off method pair');\n }\n\n return fromSubUnsub(function (handler) {\n return target[sub](eventName, handler);\n }, function (handler) {\n return target[unsub](eventName, handler);\n }, transformer).setName('fromEvents');\n}\n\n// HACK:\n// We don't call parent Class constructor, but instead putting all necessary\n// properties into prototype to simulate ended Property\n// (see Propperty and Observable classes).\n\nfunction P(value) {\n this._currentEvent = { type: 'value', value: value, current: true };\n}\n\ninherit(P, Property, {\n _name: 'constant',\n _active: false,\n _activating: false,\n _alive: false,\n _dispatcher: null,\n _logHandlers: null\n});\n\nfunction constant(x) {\n return new P(x);\n}\n\n// HACK:\n// We don't call parent Class constructor, but instead putting all necessary\n// properties into prototype to simulate ended Property\n// (see Propperty and Observable classes).\n\nfunction P$1(value) {\n this._currentEvent = { type: 'error', value: value, current: true };\n}\n\ninherit(P$1, Property, {\n _name: 'constantError',\n _active: false,\n _activating: false,\n _alive: false,\n _dispatcher: null,\n _logHandlers: null\n});\n\nfunction constantError(x) {\n return new P$1(x);\n}\n\nfunction createConstructor(BaseClass, name) {\n return function AnonymousObservable(source, options) {\n var _this = this;\n\n BaseClass.call(this);\n this._source = source;\n this._name = source._name + '.' + name;\n this._init(options);\n this._$handleAny = function (event) {\n return _this._handleAny(event);\n };\n };\n}\n\nfunction createClassMethods(BaseClass) {\n return {\n _init: function () {},\n _free: function () {},\n _handleValue: function (x) {\n this._emitValue(x);\n },\n _handleError: function (x) {\n this._emitError(x);\n },\n _handleEnd: function () {\n this._emitEnd();\n },\n _handleAny: function (event) {\n switch (event.type) {\n case VALUE:\n return this._handleValue(event.value);\n case ERROR:\n return this._handleError(event.value);\n case END:\n return this._handleEnd();\n }\n },\n _onActivation: function () {\n this._source.onAny(this._$handleAny);\n },\n _onDeactivation: function () {\n this._source.offAny(this._$handleAny);\n },\n _clear: function () {\n BaseClass.prototype._clear.call(this);\n this._source = null;\n this._$handleAny = null;\n this._free();\n }\n };\n}\n\nfunction createStream(name, mixin) {\n var S = createConstructor(Stream, name);\n inherit(S, Stream, createClassMethods(Stream), mixin);\n return S;\n}\n\nfunction createProperty(name, mixin) {\n var P = createConstructor(Property, name);\n inherit(P, Property, createClassMethods(Property), mixin);\n return P;\n}\n\nvar P$2 = createProperty('toProperty', {\n _init: function (_ref) {\n var fn = _ref.fn;\n\n this._getInitialCurrent = fn;\n },\n _onActivation: function () {\n if (this._getInitialCurrent !== null) {\n var getInitial = this._getInitialCurrent;\n this._emitValue(getInitial());\n }\n this._source.onAny(this._$handleAny); // copied from patterns/one-source\n }\n});\n\nfunction toProperty(obs) {\n var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (fn !== null && typeof fn !== 'function') {\n throw new Error('You should call toProperty() with a function or no arguments.');\n }\n return new P$2(obs, { fn: fn });\n}\n\nvar S$6 = createStream('changes', {\n _handleValue: function (x) {\n if (!this._activating) {\n this._emitValue(x);\n }\n },\n _handleError: function (x) {\n if (!this._activating) {\n this._emitError(x);\n }\n }\n});\n\nfunction changes(obs) {\n return new S$6(obs);\n}\n\nfunction fromPromise(promise) {\n var called = false;\n\n var result = stream(function (emitter) {\n if (!called) {\n var onValue = function (x) {\n emitter.emit(x);\n emitter.end();\n };\n var onError = function (x) {\n emitter.error(x);\n emitter.end();\n };\n var _promise = promise.then(onValue, onError);\n\n // prevent libraries like 'Q' or 'when' from swallowing exceptions\n if (_promise && typeof _promise.done === 'function') {\n _promise.done();\n }\n\n called = true;\n }\n });\n\n return toProperty(result, null).setName('fromPromise');\n}\n\nfunction getGlodalPromise() {\n if (typeof Promise === 'function') {\n return Promise;\n } else {\n throw new Error(\"There isn't default Promise, use shim or parameter\");\n }\n}\n\nvar toPromise = function (obs) {\n var Promise = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getGlodalPromise();\n\n var last = null;\n return new Promise(function (resolve, reject) {\n obs.onAny(function (event) {\n if (event.type === END && last !== null) {\n (last.type === VALUE ? resolve : reject)(last.value);\n last = null;\n } else {\n last = event;\n }\n });\n });\n};\n\nfunction symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n}\n\n/* global window */\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = symbolObservablePonyfill(root);\n\n// this file contains some hot JS modules systems stuff\n\nvar $$observable = result.default ? result.default : result;\n\nfunction fromESObservable(_observable) {\n var observable = _observable[$$observable] ? _observable[$$observable]() : _observable;\n return stream(function (emitter) {\n var unsub = observable.subscribe({\n error: function (error) {\n emitter.error(error);\n emitter.end();\n },\n next: function (value) {\n emitter.emit(value);\n },\n complete: function () {\n emitter.end();\n }\n });\n\n if (unsub.unsubscribe) {\n return function () {\n unsub.unsubscribe();\n };\n } else {\n return unsub;\n }\n }).setName('fromESObservable');\n}\n\nfunction ESObservable(observable) {\n this._observable = observable.takeErrors(1);\n}\n\nextend(ESObservable.prototype, {\n subscribe: function (observerOrOnNext, onError, onComplete) {\n var _this = this;\n\n var observer = typeof observerOrOnNext === 'function' ? { next: observerOrOnNext, error: onError, complete: onComplete } : observerOrOnNext;\n\n var fn = function (event) {\n if (event.type === END) {\n closed = true;\n }\n\n if (event.type === VALUE && observer.next) {\n observer.next(event.value);\n } else if (event.type === ERROR && observer.error) {\n observer.error(event.value);\n } else if (event.type === END && observer.complete) {\n observer.complete(event.value);\n }\n };\n\n this._observable.onAny(fn);\n var closed = false;\n\n var subscription = {\n unsubscribe: function () {\n closed = true;\n _this._observable.offAny(fn);\n },\n get closed() {\n return closed;\n }\n };\n return subscription;\n }\n});\n\n// Need to assign directly b/c Symbols aren't enumerable.\nESObservable.prototype[$$observable] = function () {\n return this;\n};\n\nfunction toESObservable() {\n return new ESObservable(this);\n}\n\nfunction collect(source, keys, values) {\n for (var prop in source) {\n if (source.hasOwnProperty(prop)) {\n keys.push(prop);\n values.push(source[prop]);\n }\n }\n}\n\nfunction defaultErrorsCombinator(errors) {\n var latestError = void 0;\n for (var i = 0; i < errors.length; i++) {\n if (errors[i] !== undefined) {\n if (latestError === undefined || latestError.index < errors[i].index) {\n latestError = errors[i];\n }\n }\n }\n return latestError.error;\n}\n\nfunction Combine(active, passive, combinator) {\n var _this = this;\n\n Stream.call(this);\n this._activeCount = active.length;\n this._sources = concat(active, passive);\n this._combinator = combinator;\n this._aliveCount = 0;\n this._latestValues = new Array(this._sources.length);\n this._latestErrors = new Array(this._sources.length);\n fillArray(this._latestValues, NOTHING);\n this._emitAfterActivation = false;\n this._endAfterActivation = false;\n this._latestErrorIndex = 0;\n\n this._$handlers = [];\n\n var _loop = function (i) {\n _this._$handlers.push(function (event) {\n return _this._handleAny(i, event);\n });\n };\n\n for (var i = 0; i < this._sources.length; i++) {\n _loop(i);\n }\n}\n\ninherit(Combine, Stream, {\n _name: 'combine',\n\n _onActivation: function () {\n this._aliveCount = this._activeCount;\n\n // we need to suscribe to _passive_ sources before _active_\n // (see https://github.com/kefirjs/kefir/issues/98)\n for (var i = this._activeCount; i < this._sources.length; i++) {\n this._sources[i].onAny(this._$handlers[i]);\n }\n for (var _i = 0; _i < this._activeCount; _i++) {\n this._sources[_i].onAny(this._$handlers[_i]);\n }\n\n if (this._emitAfterActivation) {\n this._emitAfterActivation = false;\n this._emitIfFull();\n }\n if (this._endAfterActivation) {\n this._emitEnd();\n }\n },\n _onDeactivation: function () {\n var length = this._sources.length,\n i = void 0;\n for (i = 0; i < length; i++) {\n this._sources[i].offAny(this._$handlers[i]);\n }\n },\n _emitIfFull: function () {\n var hasAllValues = true;\n var hasErrors = false;\n var length = this._latestValues.length;\n var valuesCopy = new Array(length);\n var errorsCopy = new Array(length);\n\n for (var i = 0; i < length; i++) {\n valuesCopy[i] = this._latestValues[i];\n errorsCopy[i] = this._latestErrors[i];\n\n if (valuesCopy[i] === NOTHING) {\n hasAllValues = false;\n }\n\n if (errorsCopy[i] !== undefined) {\n hasErrors = true;\n }\n }\n\n if (hasAllValues) {\n var combinator = this._combinator;\n this._emitValue(combinator(valuesCopy));\n }\n if (hasErrors) {\n this._emitError(defaultErrorsCombinator(errorsCopy));\n }\n },\n _handleAny: function (i, event) {\n if (event.type === VALUE || event.type === ERROR) {\n if (event.type === VALUE) {\n this._latestValues[i] = event.value;\n this._latestErrors[i] = undefined;\n }\n if (event.type === ERROR) {\n this._latestValues[i] = NOTHING;\n this._latestErrors[i] = {\n index: this._latestErrorIndex++,\n error: event.value\n };\n }\n\n if (i < this._activeCount) {\n if (this._activating) {\n this._emitAfterActivation = true;\n } else {\n this._emitIfFull();\n }\n }\n } else {\n // END\n\n if (i < this._activeCount) {\n this._aliveCount--;\n if (this._aliveCount === 0) {\n if (this._activating) {\n this._endAfterActivation = true;\n } else {\n this._emitEnd();\n }\n }\n }\n }\n },\n _clear: function () {\n Stream.prototype._clear.call(this);\n this._sources = null;\n this._latestValues = null;\n this._latestErrors = null;\n this._combinator = null;\n this._$handlers = null;\n }\n});\n\nfunction combineAsArray(active) {\n var passive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var combinator = arguments[2];\n\n if (!Array.isArray(passive)) {\n throw new Error('Combine can only combine active and passive collections of the same type.');\n }\n\n combinator = combinator ? spread(combinator, active.length + passive.length) : function (x) {\n return x;\n };\n return active.length === 0 ? never() : new Combine(active, passive, combinator);\n}\n\nfunction combineAsObject(active) {\n var passive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var combinator = arguments[2];\n\n if (typeof passive !== 'object' || Array.isArray(passive)) {\n throw new Error('Combine can only combine active and passive collections of the same type.');\n }\n\n var keys = [],\n activeObservables = [],\n passiveObservables = [];\n\n collect(active, keys, activeObservables);\n collect(passive, keys, passiveObservables);\n\n var objectify = function (values) {\n var event = {};\n for (var i = values.length - 1; 0 <= i; i--) {\n event[keys[i]] = values[i];\n }\n return combinator ? combinator(event) : event;\n };\n\n return activeObservables.length === 0 ? never() : new Combine(activeObservables, passiveObservables, objectify);\n}\n\nfunction combine(active, passive, combinator) {\n if (typeof passive === 'function') {\n combinator = passive;\n passive = undefined;\n }\n\n return Array.isArray(active) ? combineAsArray(active, passive, combinator) : combineAsObject(active, passive, combinator);\n}\n\nvar Observable$2 = {\n empty: function () {\n return never();\n },\n\n\n // Monoid based on merge() seems more useful than one based on concat().\n concat: function (a, b) {\n return a.merge(b);\n },\n of: function (x) {\n return constant(x);\n },\n map: function (fn, obs) {\n return obs.map(fn);\n },\n bimap: function (fnErr, fnVal, obs) {\n return obs.mapErrors(fnErr).map(fnVal);\n },\n\n\n // This ap strictly speaking incompatible with chain. If we derive ap from chain we get\n // different (not very useful) behavior. But spec requires that if method can be derived\n // it must have the same behavior as hand-written method. We intentionally violate the spec\n // in hope that it won't cause many troubles in practice. And in return we have more useful type.\n ap: function (obsFn, obsVal) {\n return combine([obsFn, obsVal], function (fn, val) {\n return fn(val);\n });\n },\n chain: function (fn, obs) {\n return obs.flatMap(fn);\n }\n};\n\n\n\nvar staticLand = Object.freeze({\n\tObservable: Observable$2\n});\n\nvar mixin = {\n _init: function (_ref) {\n var fn = _ref.fn;\n\n this._fn = fn;\n },\n _free: function () {\n this._fn = null;\n },\n _handleValue: function (x) {\n var fn = this._fn;\n this._emitValue(fn(x));\n }\n};\n\nvar S$7 = createStream('map', mixin);\nvar P$3 = createProperty('map', mixin);\n\nvar id = function (x) {\n return x;\n};\n\nfunction map$1(obs) {\n var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : id;\n\n return new (obs._ofSameType(S$7, P$3))(obs, { fn: fn });\n}\n\nvar mixin$1 = {\n _init: function (_ref) {\n var fn = _ref.fn;\n\n this._fn = fn;\n },\n _free: function () {\n this._fn = null;\n },\n _handleValue: function (x) {\n var fn = this._fn;\n if (fn(x)) {\n this._emitValue(x);\n }\n }\n};\n\nvar S$8 = createStream('filter', mixin$1);\nvar P$4 = createProperty('filter', mixin$1);\n\nvar id$1 = function (x) {\n return x;\n};\n\nfunction filter(obs) {\n var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : id$1;\n\n return new (obs._ofSameType(S$8, P$4))(obs, { fn: fn });\n}\n\nvar mixin$2 = {\n _init: function (_ref) {\n var n = _ref.n;\n\n this._n = n;\n if (n <= 0) {\n this._emitEnd();\n }\n },\n _handleValue: function (x) {\n if (this._n === 0) {\n return;\n }\n this._n--;\n this._emitValue(x);\n if (this._n === 0) {\n this._emitEnd();\n }\n }\n};\n\nvar S$9 = createStream('take', mixin$2);\nvar P$5 = createProperty('take', mixin$2);\n\nfunction take(obs, n) {\n return new (obs._ofSameType(S$9, P$5))(obs, { n: n });\n}\n\nvar mixin$3 = {\n _init: function (_ref) {\n var n = _ref.n;\n\n this._n = n;\n if (n <= 0) {\n this._emitEnd();\n }\n },\n _handleError: function (x) {\n if (this._n === 0) {\n return;\n }\n this._n--;\n this._emitError(x);\n if (this._n === 0) {\n this._emitEnd();\n }\n }\n};\n\nvar S$10 = createStream('takeErrors', mixin$3);\nvar P$6 = createProperty('takeErrors', mixin$3);\n\nfunction takeErrors(obs, n) {\n return new (obs._ofSameType(S$10, P$6))(obs, { n: n });\n}\n\nvar mixin$4 = {\n _init: function (_ref) {\n var fn = _ref.fn;\n\n this._fn = fn;\n },\n _free: function () {\n this._fn = null;\n },\n _handleValue: function (x) {\n var fn = this._fn;\n if (fn(x)) {\n this._emitValue(x);\n } else {\n this._emitEnd();\n }\n }\n};\n\nvar S$11 = createStream('takeWhile', mixin$4);\nvar P$7 = createProperty('takeWhile', mixin$4);\n\nvar id$2 = function (x) {\n return x;\n};\n\nfunction takeWhile(obs) {\n var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : id$2;\n\n return new (obs._ofSameType(S$11, P$7))(obs, { fn: fn });\n}\n\nvar mixin$5 = {\n _init: function () {\n this._lastValue = NOTHING;\n },\n _free: function () {\n this._lastValue = null;\n },\n _handleValue: function (x) {\n this._lastValue = x;\n },\n _handleEnd: function () {\n if (this._lastValue !== NOTHING) {\n this._emitValue(this._lastValue);\n }\n this._emitEnd();\n }\n};\n\nvar S$12 = createStream('last', mixin$5);\nvar P$8 = createProperty('last', mixin$5);\n\nfunction last(obs) {\n return new (obs._ofSameType(S$12, P$8))(obs);\n}\n\nvar mixin$6 = {\n _init: function (_ref) {\n var n = _ref.n;\n\n this._n = Math.max(0, n);\n },\n _handleValue: function (x) {\n if (this._n === 0) {\n this._emitValue(x);\n } else {\n this._n--;\n }\n }\n};\n\nvar S$13 = createStream('skip', mixin$6);\nvar P$9 = createProperty('skip', mixin$6);\n\nfunction skip(obs, n) {\n return new (obs._ofSameType(S$13, P$9))(obs, { n: n });\n}\n\nvar mixin$7 = {\n _init: function (_ref) {\n var fn = _ref.fn;\n\n this._fn = fn;\n },\n _free: function () {\n this._fn = null;\n },\n _handleValue: function (x) {\n var fn = this._fn;\n if (this._fn !== null && !fn(x)) {\n this._fn = null;\n }\n if (this._fn === null) {\n this._emitValue(x);\n }\n }\n};\n\nvar S$14 = createStream('skipWhile', mixin$7);\nvar P$10 = createProperty('skipWhile', mixin$7);\n\nvar id$3 = function (x) {\n return x;\n};\n\nfunction skipWhile(obs) {\n var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : id$3;\n\n return new (obs._ofSameType(S$14, P$10))(obs, { fn: fn });\n}\n\nvar mixin$8 = {\n _init: function (_ref) {\n var fn = _ref.fn;\n\n this._fn = fn;\n this._prev = NOTHING;\n },\n _free: function () {\n this._fn = null;\n this._prev = null;\n },\n _handleValue: function (x) {\n var fn = this._fn;\n if (this._prev === NOTHING || !fn(this._prev, x)) {\n this._prev = x;\n this._emitValue(x);\n }\n }\n};\n\nvar S$15 = createStream('skipDuplicates', mixin$8);\nvar P$11 = createProperty('skipDuplicates', mixin$8);\n\nvar eq = function (a, b) {\n return a === b;\n};\n\nfunction skipDuplicates(obs) {\n var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : eq;\n\n return new (obs._ofSameType(S$15, P$11))(obs, { fn: fn });\n}\n\nvar mixin$9 = {\n _init: function (_ref) {\n var fn = _ref.fn,\n seed = _ref.seed;\n\n this._fn = fn;\n this._prev = seed;\n },\n _free: function () {\n this._prev = null;\n this._fn = null;\n },\n _handleValue: function (x) {\n if (this._prev !== NOTHING) {\n var fn = this._fn;\n this._emitValue(fn(this._prev, x));\n }\n this._prev = x;\n }\n};\n\nvar S$16 = createStream('diff', mixin$9);\nvar P$12 = createProperty('diff', mixin$9);\n\nfunction defaultFn(a, b) {\n return [a, b];\n}\n\nfunction diff(obs, fn) {\n var seed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : NOTHING;\n\n return new (obs._ofSameType(S$16, P$12))(obs, { fn: fn || defaultFn, seed: seed });\n}\n\nvar P$13 = createProperty('scan', {\n _init: function (_ref) {\n var fn = _ref.fn,\n seed = _ref.seed;\n\n this._fn = fn;\n this._seed = seed;\n if (seed !== NOTHING) {\n this._emitValue(seed);\n }\n },\n _free: function () {\n this._fn = null;\n this._seed = null;\n },\n _handleValue: function (x) {\n var fn = this._fn;\n if (this._currentEvent === null || this._currentEvent.type === ERROR) {\n this._emitValue(this._seed === NOTHING ? x : fn(this._seed, x));\n } else {\n this._emitValue(fn(this._currentEvent.value, x));\n }\n }\n});\n\nfunction scan(obs, fn) {\n var seed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : NOTHING;\n\n return new P$13(obs, { fn: fn, seed: seed });\n}\n\nvar mixin$10 = {\n _init: function (_ref) {\n var fn = _ref.fn;\n\n this._fn = fn;\n },\n _free: function () {\n this._fn = null;\n },\n _handleValue: function (x) {\n var fn = this._fn;\n var xs = fn(x);\n for (var i = 0; i < xs.length; i++) {\n this._emitValue(xs[i]);\n }\n }\n};\n\nvar S$17 = createStream('flatten', mixin$10);\n\nvar id$4 = function (x) {\n return x;\n};\n\nfunction flatten(obs) {\n var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : id$4;\n\n return new S$17(obs, { fn: fn });\n}\n\nvar END_MARKER = {};\n\nvar mixin$11 = {\n _init: function (_ref) {\n var _this = this;\n\n var wait = _ref.wait;\n\n this._wait = Math.max(0, wait);\n this._buff = [];\n this._$shiftBuff = function () {\n var value = _this._buff.shift();\n if (value === END_MARKER) {\n _this._emitEnd();\n } else {\n _this._emitValue(value);\n }\n };\n },\n _free: function () {\n this._buff = null;\n this._$shiftBuff = null;\n },\n _handleValue: function (x) {\n if (this._activating) {\n this._emitValue(x);\n } else {\n this._buff.push(x);\n setTimeout(this._$shiftBuff, this._wait);\n }\n },\n _handleEnd: function () {\n if (this._activating) {\n this._emitEnd();\n } else {\n this._buff.push(END_MARKER);\n setTimeout(this._$shiftBuff, this._wait);\n }\n }\n};\n\nvar S$18 = createStream('delay', mixin$11);\nvar P$14 = createProperty('delay', mixin$11);\n\nfunction delay(obs, wait) {\n return new (obs._ofSameType(S$18, P$14))(obs, { wait: wait });\n}\n\nvar now = Date.now ? function () {\n return Date.now();\n} : function () {\n return new Date().getTime();\n};\n\nvar mixin$12 = {\n _init: function (_ref) {\n var _this = this;\n\n var wait = _ref.wait,\n leading = _ref.leading,\n trailing = _ref.trailing;\n\n this._wait = Math.max(0, wait);\n this._leading = leading;\n this._trailing = trailing;\n this._trailingValue = null;\n this._timeoutId = null;\n this._endLater = false;\n this._lastCallTime = 0;\n this._$trailingCall = function () {\n return _this._trailingCall();\n };\n },\n _free: function () {\n this._trailingValue = null;\n this._$trailingCall = null;\n },\n _handleValue: function (x) {\n if (this._activating) {\n this._emitValue(x);\n } else {\n var curTime = now();\n if (this._lastCallTime === 0 && !this._leading) {\n this._lastCallTime = curTime;\n }\n var remaining = this._wait - (curTime - this._lastCallTime);\n if (remaining <= 0) {\n this._cancelTrailing();\n this._lastCallTime = curTime;\n this._emitValue(x);\n } else if (this._trailing) {\n this._cancelTrailing();\n this._trailingValue = x;\n this._timeoutId = setTimeout(this._$trailingCall, remaining);\n }\n }\n },\n _handleEnd: function () {\n if (this._activating) {\n this._emitEnd();\n } else {\n if (this._timeoutId) {\n this._endLater = true;\n } else {\n this._emitEnd();\n }\n }\n },\n _cancelTrailing: function () {\n if (this._timeoutId !== null) {\n clearTimeout(this._timeoutId);\n this._timeoutId = null;\n }\n },\n _trailingCall: function () {\n this._emitValue(this._trailingValue);\n this._timeoutId = null;\n this._trailingValue = null;\n this._lastCallTime = !this._leading ? 0 : now();\n if (this._endLater) {\n this._emitEnd();\n }\n }\n};\n\nvar S$19 = createStream('throttle', mixin$12);\nvar P$15 = createProperty('throttle', mixin$12);\n\nfunction throttle(obs, wait) {\n var _ref2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref2$leading = _ref2.leading,\n leading = _ref2$leading === undefined ? true : _ref2$leading,\n _ref2$trailing = _ref2.trailing,\n trailing = _ref2$trailing === undefined ? true : _ref2$trailing;\n\n return new (obs._ofSameType(S$19, P$15))(obs, { wait: wait, leading: leading, trailing: trailing });\n}\n\nvar mixin$13 = {\n _init: function (_ref) {\n var _this = this;\n\n var wait = _ref.wait,\n immediate = _ref.immediate;\n\n this._wait = Math.max(0, wait);\n this._immediate = immediate;\n this._lastAttempt = 0;\n this._timeoutId = null;\n this._laterValue = null;\n this._endLater = false;\n this._$later = function () {\n return _this._later();\n };\n },\n _free: function () {\n this._laterValue = null;\n this._$later = null;\n },\n _handleValue: function (x) {\n if (this._activating) {\n this._emitValue(x);\n } else {\n this._lastAttempt = now();\n if (this._immediate && !this._timeoutId) {\n this._emitValue(x);\n }\n if (!this._timeoutId) {\n this._timeoutId = setTimeout(this._$later, this._wait);\n }\n if (!this._immediate) {\n this._laterValue = x;\n }\n }\n },\n _handleEnd: function () {\n if (this._activating) {\n this._emitEnd();\n } else {\n if (this._timeoutId && !this._immediate) {\n this._endLater = true;\n } else {\n this._emitEnd();\n }\n }\n },\n _later: function () {\n var last = now() - this._lastAttempt;\n if (last < this._wait && last >= 0) {\n this._timeoutId = setTimeout(this._$later, this._wait - last);\n } else {\n this._timeoutId = null;\n if (!this._immediate) {\n var _laterValue = this._laterValue;\n this._laterValue = null;\n this._emitValue(_laterValue);\n }\n if (this._endLater) {\n this._emitEnd();\n }\n }\n }\n};\n\nvar S$20 = createStream('debounce', mixin$13);\nvar P$16 = createProperty('debounce', mixin$13);\n\nfunction debounce(obs, wait) {\n var _ref2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref2$immediate = _ref2.immediate,\n immediate = _ref2$immediate === undefined ? false : _ref2$immediate;\n\n return new (obs._ofSameType(S$20, P$16))(obs, { wait: wait, immediate: immediate });\n}\n\nvar mixin$14 = {\n _init: function (_ref) {\n var fn = _ref.fn;\n\n this._fn = fn;\n },\n _free: function () {\n this._fn = null;\n },\n _handleError: function (x) {\n var fn = this._fn;\n this._emitError(fn(x));\n }\n};\n\nvar S$21 = createStream('mapErrors', mixin$14);\nvar P$17 = createProperty('mapErrors', mixin$14);\n\nvar id$5 = function (x) {\n return x;\n};\n\nfunction mapErrors(obs) {\n var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : id$5;\n\n return new (obs._ofSameType(S$21, P$17))(obs, { fn: fn });\n}\n\nvar mixin$15 = {\n _init: function (_ref) {\n var fn = _ref.fn;\n\n this._fn = fn;\n },\n _free: function () {\n this._fn = null;\n },\n _handleError: function (x) {\n var fn = this._fn;\n if (fn(x)) {\n this._emitError(x);\n }\n }\n};\n\nvar S$22 = createStream('filterErrors', mixin$15);\nvar P$18 = createProperty('filterErrors', mixin$15);\n\nvar id$6 = function (x) {\n return x;\n};\n\nfunction filterErrors(obs) {\n var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : id$6;\n\n return new (obs._ofSameType(S$22, P$18))(obs, { fn: fn });\n}\n\nvar mixin$16 = {\n _handleValue: function () {}\n};\n\nvar S$23 = createStream('ignoreValues', mixin$16);\nvar P$19 = createProperty('ignoreValues', mixin$16);\n\nfunction ignoreValues(obs) {\n return new (obs._ofSameType(S$23, P$19))(obs);\n}\n\nvar mixin$17 = {\n _handleError: function () {}\n};\n\nvar S$24 = createStream('ignoreErrors', mixin$17);\nvar P$20 = createProperty('ignoreErrors', mixin$17);\n\nfunction ignoreErrors(obs) {\n return new (obs._ofSameType(S$24, P$20))(obs);\n}\n\nvar mixin$18 = {\n _handleEnd: function () {}\n};\n\nvar S$25 = createStream('ignoreEnd', mixin$18);\nvar P$21 = createProperty('ignoreEnd', mixin$18);\n\nfunction ignoreEnd(obs) {\n return new (obs._ofSameType(S$25, P$21))(obs);\n}\n\nvar mixin$19 = {\n _init: function (_ref) {\n var fn = _ref.fn;\n\n this._fn = fn;\n },\n _free: function () {\n this._fn = null;\n },\n _handleEnd: function () {\n var fn = this._fn;\n this._emitValue(fn());\n this._emitEnd();\n }\n};\n\nvar S$26 = createStream('beforeEnd', mixin$19);\nvar P$22 = createProperty('beforeEnd', mixin$19);\n\nfunction beforeEnd(obs, fn) {\n return new (obs._ofSameType(S$26, P$22))(obs, { fn: fn });\n}\n\nvar mixin$20 = {\n _init: function (_ref) {\n var min = _ref.min,\n max = _ref.max;\n\n this._max = max;\n this._min = min;\n this._buff = [];\n },\n _free: function () {\n this._buff = null;\n },\n _handleValue: function (x) {\n this._buff = slide(this._buff, x, this._max);\n if (this._buff.length >= this._min) {\n this._emitValue(this._buff);\n }\n }\n};\n\nvar S$27 = createStream('slidingWindow', mixin$20);\nvar P$23 = createProperty('slidingWindow', mixin$20);\n\nfunction slidingWindow(obs, max) {\n var min = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n return new (obs._ofSameType(S$27, P$23))(obs, { min: min, max: max });\n}\n\nvar mixin$21 = {\n _init: function (_ref) {\n var fn = _ref.fn,\n flushOnEnd = _ref.flushOnEnd;\n\n this._fn = fn;\n this._flushOnEnd = flushOnEnd;\n this._buff = [];\n },\n _free: function () {\n this._buff = null;\n },\n _flush: function () {\n if (this._buff !== null && this._buff.length !== 0) {\n this._emitValue(this._buff);\n this._buff = [];\n }\n },\n _handleValue: function (x) {\n this._buff.push(x);\n var fn = this._fn;\n if (!fn(x)) {\n this._flush();\n }\n },\n _handleEnd: function () {\n if (this._flushOnEnd) {\n this._flush();\n }\n this._emitEnd();\n }\n};\n\nvar S$28 = createStream('bufferWhile', mixin$21);\nvar P$24 = createProperty('bufferWhile', mixin$21);\n\nvar id$7 = function (x) {\n return x;\n};\n\nfunction bufferWhile(obs, fn) {\n var _ref2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref2$flushOnEnd = _ref2.flushOnEnd,\n flushOnEnd = _ref2$flushOnEnd === undefined ? true : _ref2$flushOnEnd;\n\n return new (obs._ofSameType(S$28, P$24))(obs, { fn: fn || id$7, flushOnEnd: flushOnEnd });\n}\n\nvar mixin$22 = {\n _init: function (_ref) {\n var count = _ref.count,\n flushOnEnd = _ref.flushOnEnd;\n\n this._count = count;\n this._flushOnEnd = flushOnEnd;\n this._buff = [];\n },\n _free: function () {\n this._buff = null;\n },\n _flush: function () {\n if (this._buff !== null && this._buff.length !== 0) {\n this._emitValue(this._buff);\n this._buff = [];\n }\n },\n _handleValue: function (x) {\n this._buff.push(x);\n if (this._buff.length >= this._count) {\n this._flush();\n }\n },\n _handleEnd: function () {\n if (this._flushOnEnd) {\n this._flush();\n }\n this._emitEnd();\n }\n};\n\nvar S$29 = createStream('bufferWithCount', mixin$22);\nvar P$25 = createProperty('bufferWithCount', mixin$22);\n\nfunction bufferWhile$1(obs, count) {\n var _ref2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref2$flushOnEnd = _ref2.flushOnEnd,\n flushOnEnd = _ref2$flushOnEnd === undefined ? true : _ref2$flushOnEnd;\n\n return new (obs._ofSameType(S$29, P$25))(obs, { count: count, flushOnEnd: flushOnEnd });\n}\n\nvar mixin$23 = {\n _init: function (_ref) {\n var _this = this;\n\n var wait = _ref.wait,\n count = _ref.count,\n flushOnEnd = _ref.flushOnEnd;\n\n this._wait = wait;\n this._count = count;\n this._flushOnEnd = flushOnEnd;\n this._intervalId = null;\n this._$onTick = function () {\n return _this._flush();\n };\n this._buff = [];\n },\n _free: function () {\n this._$onTick = null;\n this._buff = null;\n },\n _flush: function () {\n if (this._buff !== null) {\n this._emitValue(this._buff);\n this._buff = [];\n }\n },\n _handleValue: function (x) {\n this._buff.push(x);\n if (this._buff.length >= this._count) {\n clearInterval(this._intervalId);\n this._flush();\n this._intervalId = setInterval(this._$onTick, this._wait);\n }\n },\n _handleEnd: function () {\n if (this._flushOnEnd && this._buff.length !== 0) {\n this._flush();\n }\n this._emitEnd();\n },\n _onActivation: function () {\n this._intervalId = setInterval(this._$onTick, this._wait);\n this._source.onAny(this._$handleAny); // copied from patterns/one-source\n },\n _onDeactivation: function () {\n if (this._intervalId !== null) {\n clearInterval(this._intervalId);\n this._intervalId = null;\n }\n this._source.offAny(this._$handleAny); // copied from patterns/one-source\n }\n};\n\nvar S$30 = createStream('bufferWithTimeOrCount', mixin$23);\nvar P$26 = createProperty('bufferWithTimeOrCount', mixin$23);\n\nfunction bufferWithTimeOrCount(obs, wait, count) {\n var _ref2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},\n _ref2$flushOnEnd = _ref2.flushOnEnd,\n flushOnEnd = _ref2$flushOnEnd === undefined ? true : _ref2$flushOnEnd;\n\n return new (obs._ofSameType(S$30, P$26))(obs, { wait: wait, count: count, flushOnEnd: flushOnEnd });\n}\n\nfunction xformForObs(obs) {\n return {\n '@@transducer/step': function (res, input) {\n obs._emitValue(input);\n return null;\n },\n '@@transducer/result': function () {\n obs._emitEnd();\n return null;\n }\n };\n}\n\nvar mixin$24 = {\n _init: function (_ref) {\n var transducer = _ref.transducer;\n\n this._xform = transducer(xformForObs(this));\n },\n _free: function () {\n this._xform = null;\n },\n _handleValue: function (x) {\n if (this._xform['@@transducer/step'](null, x) !== null) {\n this._xform['@@transducer/result'](null);\n }\n },\n _handleEnd: function () {\n this._xform['@@transducer/result'](null);\n }\n};\n\nvar S$31 = createStream('transduce', mixin$24);\nvar P$27 = createProperty('transduce', mixin$24);\n\nfunction transduce(obs, transducer) {\n return new (obs._ofSameType(S$31, P$27))(obs, { transducer: transducer });\n}\n\nvar mixin$25 = {\n _init: function (_ref) {\n var fn = _ref.fn;\n\n this._handler = fn;\n this._emitter = emitter(this);\n },\n _free: function () {\n this._handler = null;\n this._emitter = null;\n },\n _handleAny: function (event) {\n this._handler(this._emitter, event);\n }\n};\n\nvar S$32 = createStream('withHandler', mixin$25);\nvar P$28 = createProperty('withHandler', mixin$25);\n\nfunction withHandler(obs, fn) {\n return new (obs._ofSameType(S$32, P$28))(obs, { fn: fn });\n}\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction Zip(sources, combinator) {\n var _this = this;\n\n Stream.call(this);\n\n this._buffers = map(sources, function (source) {\n return isArray(source) ? cloneArray(source) : [];\n });\n this._sources = map(sources, function (source) {\n return isArray(source) ? never() : source;\n });\n\n this._combinator = combinator ? spread(combinator, this._sources.length) : function (x) {\n return x;\n };\n this._aliveCount = 0;\n\n this._$handlers = [];\n\n var _loop = function (i) {\n _this._$handlers.push(function (event) {\n return _this._handleAny(i, event);\n });\n };\n\n for (var i = 0; i < this._sources.length; i++) {\n _loop(i);\n }\n}\n\ninherit(Zip, Stream, {\n _name: 'zip',\n\n _onActivation: function () {\n // if all sources are arrays\n while (this._isFull()) {\n this._emit();\n }\n\n var length = this._sources.length;\n this._aliveCount = length;\n for (var i = 0; i < length && this._active; i++) {\n this._sources[i].onAny(this._$handlers[i]);\n }\n },\n _onDeactivation: function () {\n for (var i = 0; i < this._sources.length; i++) {\n this._sources[i].offAny(this._$handlers[i]);\n }\n },\n _emit: function () {\n var values = new Array(this._buffers.length);\n for (var i = 0; i < this._buffers.length; i++) {\n values[i] = this._buffers[i].shift();\n }\n var combinator = this._combinator;\n this._emitValue(combinator(values));\n },\n _isFull: function () {\n for (var i = 0; i < this._buffers.length; i++) {\n if (this._buffers[i].length === 0) {\n return false;\n }\n }\n return true;\n },\n _handleAny: function (i, event) {\n if (event.type === VALUE) {\n this._buffers[i].push(event.value);\n if (this._isFull()) {\n this._emit();\n }\n }\n if (event.type === ERROR) {\n this._emitError(event.value);\n }\n if (event.type === END) {\n this._aliveCount--;\n if (this._aliveCount === 0) {\n this._emitEnd();\n }\n }\n },\n _clear: function () {\n Stream.prototype._clear.call(this);\n this._sources = null;\n this._buffers = null;\n this._combinator = null;\n this._$handlers = null;\n }\n});\n\nfunction zip(observables, combinator /* Function | falsey */) {\n return observables.length === 0 ? never() : new Zip(observables, combinator);\n}\n\nvar id$8 = function (x) {\n return x;\n};\n\nfunction AbstractPool() {\n var _this = this;\n\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$queueLim = _ref.queueLim,\n queueLim = _ref$queueLim === undefined ? 0 : _ref$queueLim,\n _ref$concurLim = _ref.concurLim,\n concurLim = _ref$concurLim === undefined ? -1 : _ref$concurLim,\n _ref$drop = _ref.drop,\n drop = _ref$drop === undefined ? 'new' : _ref$drop;\n\n Stream.call(this);\n\n this._queueLim = queueLim < 0 ? -1 : queueLim;\n this._concurLim = concurLim < 0 ? -1 : concurLim;\n this._drop = drop;\n this._queue = [];\n this._curSources = [];\n this._$handleSubAny = function (event) {\n return _this._handleSubAny(event);\n };\n this._$endHandlers = [];\n this._currentlyAdding = null;\n\n if (this._concurLim === 0) {\n this._emitEnd();\n }\n}\n\ninherit(AbstractPool, Stream, {\n _name: 'abstractPool',\n\n _add: function (obj, toObs /* Function | falsey */) {\n toObs = toObs || id$8;\n if (this._concurLim === -1 || this._curSources.length < this._concurLim) {\n this._addToCur(toObs(obj));\n } else {\n if (this._queueLim === -1 || this._queue.length < this._queueLim) {\n this._addToQueue(toObs(obj));\n } else if (this._drop === 'old') {\n this._removeOldest();\n this._add(obj, toObs);\n }\n }\n },\n _addAll: function (obss) {\n var _this2 = this;\n\n forEach(obss, function (obs) {\n return _this2._add(obs);\n });\n },\n _remove: function (obs) {\n if (this._removeCur(obs) === -1) {\n this._removeQueue(obs);\n }\n },\n _addToQueue: function (obs) {\n this._queue = concat(this._queue, [obs]);\n },\n _addToCur: function (obs) {\n if (this._active) {\n // HACK:\n //\n // We have two optimizations for cases when `obs` is ended. We don't want\n // to add such observable to the list, but only want to emit events\n // from it (if it has some).\n //\n // Instead of this hacks, we could just did following,\n // but it would be 5-8 times slower:\n //\n // this._curSources = concat(this._curSources, [obs]);\n // this._subscribe(obs);\n //\n\n // #1\n // This one for cases when `obs` already ended\n // e.g., Kefir.constant() or Kefir.never()\n if (!obs._alive) {\n if (obs._currentEvent) {\n this._emit(obs._currentEvent.type, obs._currentEvent.value);\n }\n // The _emit above could have caused this stream to end.\n if (this._active) {\n if (this._queue.length !== 0) {\n this._pullQueue();\n } else if (this._curSources.length === 0) {\n this._onEmpty();\n }\n }\n return;\n }\n\n // #2\n // This one is for cases when `obs` going to end synchronously on\n // first subscriber e.g., Kefir.stream(em => {em.emit(1); em.end()})\n this._currentlyAdding = obs;\n obs.onAny(this._$handleSubAny);\n this._currentlyAdding = null;\n if (obs._alive) {\n this._curSources = concat(this._curSources, [obs]);\n if (this._active) {\n this._subToEnd(obs);\n }\n } else {\n if (this._queue.length !== 0) {\n this._pullQueue();\n } else if (this._curSources.length === 0) {\n this._onEmpty();\n }\n }\n } else {\n this._curSources = concat(this._curSources, [obs]);\n }\n },\n _subToEnd: function (obs) {\n var _this3 = this;\n\n var onEnd = function () {\n return _this3._removeCur(obs);\n };\n this._$endHandlers.push({ obs: obs, handler: onEnd });\n obs.onEnd(onEnd);\n },\n _subscribe: function (obs) {\n obs.onAny(this._$handleSubAny);\n\n // it can become inactive in responce of subscribing to `obs.onAny` above\n if (this._active) {\n this._subToEnd(obs);\n }\n },\n _unsubscribe: function (obs) {\n obs.offAny(this._$handleSubAny);\n\n var onEndI = findByPred(this._$endHandlers, function (obj) {\n return obj.obs === obs;\n });\n if (onEndI !== -1) {\n obs.offEnd(this._$endHandlers[onEndI].handler);\n this._$endHandlers.splice(onEndI, 1);\n }\n },\n _handleSubAny: function (event) {\n if (event.type === VALUE) {\n this._emitValue(event.value);\n } else if (event.type === ERROR) {\n this._emitError(event.value);\n }\n },\n _removeQueue: function (obs) {\n var index = find(this._queue, obs);\n this._queue = remove(this._queue, index);\n return index;\n },\n _removeCur: function (obs) {\n if (this._active) {\n this._unsubscribe(obs);\n }\n var index = find(this._curSources, obs);\n this._curSources = remove(this._curSources, index);\n if (index !== -1) {\n if (this._queue.length !== 0) {\n this._pullQueue();\n } else if (this._curSources.length === 0) {\n this._onEmpty();\n }\n }\n return index;\n },\n _removeOldest: function () {\n this._removeCur(this._curSources[0]);\n },\n _pullQueue: function () {\n if (this._queue.length !== 0) {\n this._queue = cloneArray(this._queue);\n this._addToCur(this._queue.shift());\n }\n },\n _onActivation: function () {\n for (var i = 0, sources = this._curSources; i < sources.length && this._active; i++) {\n this._subscribe(sources[i]);\n }\n },\n _onDeactivation: function () {\n for (var i = 0, sources = this._curSources; i < sources.length; i++) {\n this._unsubscribe(sources[i]);\n }\n if (this._currentlyAdding !== null) {\n this._unsubscribe(this._currentlyAdding);\n }\n },\n _isEmpty: function () {\n return this._curSources.length === 0;\n },\n _onEmpty: function () {},\n _clear: function () {\n Stream.prototype._clear.call(this);\n this._queue = null;\n this._curSources = null;\n this._$handleSubAny = null;\n this._$endHandlers = null;\n }\n});\n\nfunction Merge(sources) {\n AbstractPool.call(this);\n this._addAll(sources);\n this._initialised = true;\n}\n\ninherit(Merge, AbstractPool, {\n _name: 'merge',\n\n _onEmpty: function () {\n if (this._initialised) {\n this._emitEnd();\n }\n }\n});\n\nfunction merge(observables) {\n return observables.length === 0 ? never() : new Merge(observables);\n}\n\nfunction S$33(generator) {\n var _this = this;\n\n Stream.call(this);\n this._generator = generator;\n this._source = null;\n this._inLoop = false;\n this._iteration = 0;\n this._$handleAny = function (event) {\n return _this._handleAny(event);\n };\n}\n\ninherit(S$33, Stream, {\n _name: 'repeat',\n\n _handleAny: function (event) {\n if (event.type === END) {\n this._source = null;\n this._getSource();\n } else {\n this._emit(event.type, event.value);\n }\n },\n _getSource: function () {\n if (!this._inLoop) {\n this._inLoop = true;\n var generator = this._generator;\n while (this._source === null && this._alive && this._active) {\n this._source = generator(this._iteration++);\n if (this._source) {\n this._source.onAny(this._$handleAny);\n } else {\n this._emitEnd();\n }\n }\n this._inLoop = false;\n }\n },\n _onActivation: function () {\n if (this._source) {\n this._source.onAny(this._$handleAny);\n } else {\n this._getSource();\n }\n },\n _onDeactivation: function () {\n if (this._source) {\n this._source.offAny(this._$handleAny);\n }\n },\n _clear: function () {\n Stream.prototype._clear.call(this);\n this._generator = null;\n this._source = null;\n this._$handleAny = null;\n }\n});\n\nvar repeat = function (generator) {\n return new S$33(generator);\n};\n\nfunction concat$1(observables) {\n return repeat(function (index) {\n return observables.length > index ? observables[index] : false;\n }).setName('concat');\n}\n\nfunction Pool() {\n AbstractPool.call(this);\n}\n\ninherit(Pool, AbstractPool, {\n _name: 'pool',\n\n plug: function (obs) {\n this._add(obs);\n return this;\n },\n unplug: function (obs) {\n this._remove(obs);\n return this;\n }\n});\n\nfunction FlatMap(source, fn, options) {\n var _this = this;\n\n AbstractPool.call(this, options);\n this._source = source;\n this._fn = fn;\n this._mainEnded = false;\n this._lastCurrent = null;\n this._$handleMain = function (event) {\n return _this._handleMain(event);\n };\n}\n\ninherit(FlatMap, AbstractPool, {\n _onActivation: function () {\n AbstractPool.prototype._onActivation.call(this);\n if (this._active) {\n this._source.onAny(this._$handleMain);\n }\n },\n _onDeactivation: function () {\n AbstractPool.prototype._onDeactivation.call(this);\n this._source.offAny(this._$handleMain);\n this._hadNoEvSinceDeact = true;\n },\n _handleMain: function (event) {\n if (event.type === VALUE) {\n // Is latest value before deactivation survived, and now is 'current' on this activation?\n // We don't want to handle such values, to prevent to constantly add\n // same observale on each activation/deactivation when our main source\n // is a `Kefir.conatant()` for example.\n var sameCurr = this._activating && this._hadNoEvSinceDeact && this._lastCurrent === event.value;\n if (!sameCurr) {\n this._add(event.value, this._fn);\n }\n this._lastCurrent = event.value;\n this._hadNoEvSinceDeact = false;\n }\n\n if (event.type === ERROR) {\n this._emitError(event.value);\n }\n\n if (event.type === END) {\n if (this._isEmpty()) {\n this._emitEnd();\n } else {\n this._mainEnded = true;\n }\n }\n },\n _onEmpty: function () {\n if (this._mainEnded) {\n this._emitEnd();\n }\n },\n _clear: function () {\n AbstractPool.prototype._clear.call(this);\n this._source = null;\n this._lastCurrent = null;\n this._$handleMain = null;\n }\n});\n\nfunction FlatMapErrors(source, fn) {\n FlatMap.call(this, source, fn);\n}\n\ninherit(FlatMapErrors, FlatMap, {\n // Same as in FlatMap, only VALUE/ERROR flipped\n _handleMain: function (event) {\n if (event.type === ERROR) {\n var sameCurr = this._activating && this._hadNoEvSinceDeact && this._lastCurrent === event.value;\n if (!sameCurr) {\n this._add(event.value, this._fn);\n }\n this._lastCurrent = event.value;\n this._hadNoEvSinceDeact = false;\n }\n\n if (event.type === VALUE) {\n this._emitValue(event.value);\n }\n\n if (event.type === END) {\n if (this._isEmpty()) {\n this._emitEnd();\n } else {\n this._mainEnded = true;\n }\n }\n }\n});\n\nfunction createConstructor$1(BaseClass, name) {\n return function AnonymousObservable(primary, secondary, options) {\n var _this = this;\n\n BaseClass.call(this);\n this._primary = primary;\n this._secondary = secondary;\n this._name = primary._name + '.' + name;\n this._lastSecondary = NOTHING;\n this._$handleSecondaryAny = function (event) {\n return _this._handleSecondaryAny(event);\n };\n this._$handlePrimaryAny = function (event) {\n return _this._handlePrimaryAny(event);\n };\n this._init(options);\n };\n}\n\nfunction createClassMethods$1(BaseClass) {\n return {\n _init: function () {},\n _free: function () {},\n _handlePrimaryValue: function (x) {\n this._emitValue(x);\n },\n _handlePrimaryError: function (x) {\n this._emitError(x);\n },\n _handlePrimaryEnd: function () {\n this._emitEnd();\n },\n _handleSecondaryValue: function (x) {\n this._lastSecondary = x;\n },\n _handleSecondaryError: function (x) {\n this._emitError(x);\n },\n _handleSecondaryEnd: function () {},\n _handlePrimaryAny: function (event) {\n switch (event.type) {\n case VALUE:\n return this._handlePrimaryValue(event.value);\n case ERROR:\n return this._handlePrimaryError(event.value);\n case END:\n return this._handlePrimaryEnd(event.value);\n }\n },\n _handleSecondaryAny: function (event) {\n switch (event.type) {\n case VALUE:\n return this._handleSecondaryValue(event.value);\n case ERROR:\n return this._handleSecondaryError(event.value);\n case END:\n this._handleSecondaryEnd(event.value);\n this._removeSecondary();\n }\n },\n _removeSecondary: function () {\n if (this._secondary !== null) {\n this._secondary.offAny(this._$handleSecondaryAny);\n this._$handleSecondaryAny = null;\n this._secondary = null;\n }\n },\n _onActivation: function () {\n if (this._secondary !== null) {\n this._secondary.onAny(this._$handleSecondaryAny);\n }\n if (this._active) {\n this._primary.onAny(this._$handlePrimaryAny);\n }\n },\n _onDeactivation: function () {\n if (this._secondary !== null) {\n this._secondary.offAny(this._$handleSecondaryAny);\n }\n this._primary.offAny(this._$handlePrimaryAny);\n },\n _clear: function () {\n BaseClass.prototype._clear.call(this);\n this._primary = null;\n this._secondary = null;\n this._lastSecondary = null;\n this._$handleSecondaryAny = null;\n this._$handlePrimaryAny = null;\n this._free();\n }\n };\n}\n\nfunction createStream$1(name, mixin) {\n var S = createConstructor$1(Stream, name);\n inherit(S, Stream, createClassMethods$1(Stream), mixin);\n return S;\n}\n\nfunction createProperty$1(name, mixin) {\n var P = createConstructor$1(Property, name);\n inherit(P, Property, createClassMethods$1(Property), mixin);\n return P;\n}\n\nvar mixin$26 = {\n _handlePrimaryValue: function (x) {\n if (this._lastSecondary !== NOTHING && this._lastSecondary) {\n this._emitValue(x);\n }\n },\n _handleSecondaryEnd: function () {\n if (this._lastSecondary === NOTHING || !this._lastSecondary) {\n this._emitEnd();\n }\n }\n};\n\nvar S$34 = createStream$1('filterBy', mixin$26);\nvar P$29 = createProperty$1('filterBy', mixin$26);\n\nfunction filterBy(primary, secondary) {\n return new (primary._ofSameType(S$34, P$29))(primary, secondary);\n}\n\nvar id2 = function (_, x) {\n return x;\n};\n\nfunction sampledBy(passive, active, combinator) {\n var _combinator = combinator ? function (a, b) {\n return combinator(b, a);\n } : id2;\n return combine([active], [passive], _combinator).setName(passive, 'sampledBy');\n}\n\nvar mixin$27 = {\n _handlePrimaryValue: function (x) {\n if (this._lastSecondary !== NOTHING) {\n this._emitValue(x);\n }\n },\n _handleSecondaryEnd: function () {\n if (this._lastSecondary === NOTHING) {\n this._emitEnd();\n }\n }\n};\n\nvar S$35 = createStream$1('skipUntilBy', mixin$27);\nvar P$30 = createProperty$1('skipUntilBy', mixin$27);\n\nfunction skipUntilBy(primary, secondary) {\n return new (primary._ofSameType(S$35, P$30))(primary, secondary);\n}\n\nvar mixin$28 = {\n _handleSecondaryValue: function () {\n this._emitEnd();\n }\n};\n\nvar S$36 = createStream$1('takeUntilBy', mixin$28);\nvar P$31 = createProperty$1('takeUntilBy', mixin$28);\n\nfunction takeUntilBy(primary, secondary) {\n return new (primary._ofSameType(S$36, P$31))(primary, secondary);\n}\n\nvar mixin$29 = {\n _init: function () {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$flushOnEnd = _ref.flushOnEnd,\n flushOnEnd = _ref$flushOnEnd === undefined ? true : _ref$flushOnEnd;\n\n this._buff = [];\n this._flushOnEnd = flushOnEnd;\n },\n _free: function () {\n this._buff = null;\n },\n _flush: function () {\n if (this._buff !== null) {\n this._emitValue(this._buff);\n this._buff = [];\n }\n },\n _handlePrimaryEnd: function () {\n if (this._flushOnEnd) {\n this._flush();\n }\n this._emitEnd();\n },\n _onActivation: function () {\n this._primary.onAny(this._$handlePrimaryAny);\n if (this._alive && this._secondary !== null) {\n this._secondary.onAny(this._$handleSecondaryAny);\n }\n },\n _handlePrimaryValue: function (x) {\n this._buff.push(x);\n },\n _handleSecondaryValue: function () {\n this._flush();\n },\n _handleSecondaryEnd: function () {\n if (!this._flushOnEnd) {\n this._emitEnd();\n }\n }\n};\n\nvar S$37 = createStream$1('bufferBy', mixin$29);\nvar P$32 = createProperty$1('bufferBy', mixin$29);\n\nfunction bufferBy(primary, secondary, options /* optional */) {\n return new (primary._ofSameType(S$37, P$32))(primary, secondary, options);\n}\n\nvar mixin$30 = {\n _init: function () {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$flushOnEnd = _ref.flushOnEnd,\n flushOnEnd = _ref$flushOnEnd === undefined ? true : _ref$flushOnEnd,\n _ref$flushOnChange = _ref.flushOnChange,\n flushOnChange = _ref$flushOnChange === undefined ? false : _ref$flushOnChange;\n\n this._buff = [];\n this._flushOnEnd = flushOnEnd;\n this._flushOnChange = flushOnChange;\n },\n _free: function () {\n this._buff = null;\n },\n _flush: function () {\n if (this._buff !== null) {\n this._emitValue(this._buff);\n this._buff = [];\n }\n },\n _handlePrimaryEnd: function () {\n if (this._flushOnEnd) {\n this._flush();\n }\n this._emitEnd();\n },\n _handlePrimaryValue: function (x) {\n this._buff.push(x);\n if (this._lastSecondary !== NOTHING && !this._lastSecondary) {\n this._flush();\n }\n },\n _handleSecondaryEnd: function () {\n if (!this._flushOnEnd && (this._lastSecondary === NOTHING || this._lastSecondary)) {\n this._emitEnd();\n }\n },\n _handleSecondaryValue: function (x) {\n if (this._flushOnChange && !x) {\n this._flush();\n }\n\n // from default _handleSecondaryValue\n this._lastSecondary = x;\n }\n};\n\nvar S$38 = createStream$1('bufferWhileBy', mixin$30);\nvar P$33 = createProperty$1('bufferWhileBy', mixin$30);\n\nfunction bufferWhileBy(primary, secondary, options /* optional */) {\n return new (primary._ofSameType(S$38, P$33))(primary, secondary, options);\n}\n\nvar f = function () {\n return false;\n};\nvar t = function () {\n return true;\n};\n\nfunction awaiting(a, b) {\n var result = merge([map$1(a, t), map$1(b, f)]);\n result = skipDuplicates(result);\n result = toProperty(result, f);\n return result.setName(a, 'awaiting');\n}\n\nvar mixin$31 = {\n _init: function (_ref) {\n var fn = _ref.fn;\n\n this._fn = fn;\n },\n _free: function () {\n this._fn = null;\n },\n _handleValue: function (x) {\n var fn = this._fn;\n var result = fn(x);\n if (result.convert) {\n this._emitError(result.error);\n } else {\n this._emitValue(x);\n }\n }\n};\n\nvar S$39 = createStream('valuesToErrors', mixin$31);\nvar P$34 = createProperty('valuesToErrors', mixin$31);\n\nvar defFn = function (x) {\n return { convert: true, error: x };\n};\n\nfunction valuesToErrors(obs) {\n var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defFn;\n\n return new (obs._ofSameType(S$39, P$34))(obs, { fn: fn });\n}\n\nvar mixin$32 = {\n _init: function (_ref) {\n var fn = _ref.fn;\n\n this._fn = fn;\n },\n _free: function () {\n this._fn = null;\n },\n _handleError: function (x) {\n var fn = this._fn;\n var result = fn(x);\n if (result.convert) {\n this._emitValue(result.value);\n } else {\n this._emitError(x);\n }\n }\n};\n\nvar S$40 = createStream('errorsToValues', mixin$32);\nvar P$35 = createProperty('errorsToValues', mixin$32);\n\nvar defFn$1 = function (x) {\n return { convert: true, value: x };\n};\n\nfunction errorsToValues(obs) {\n var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defFn$1;\n\n return new (obs._ofSameType(S$40, P$35))(obs, { fn: fn });\n}\n\nvar mixin$33 = {\n _handleError: function (x) {\n this._emitError(x);\n this._emitEnd();\n }\n};\n\nvar S$41 = createStream('endOnError', mixin$33);\nvar P$36 = createProperty('endOnError', mixin$33);\n\nfunction endOnError(obs) {\n return new (obs._ofSameType(S$41, P$36))(obs);\n}\n\n// Create a stream\n// -----------------------------------------------------------------------------\n\n// () -> Stream\n// (number, any) -> Stream\n// (number, any) -> Stream\n// (number, Array) -> Stream\n// (number, Function) -> Stream\n// (number, Function) -> Stream\n// (Function) -> Stream\n// (Function) -> Stream\n// Target = {addEventListener, removeEventListener}|{addListener, removeListener}|{on, off}\n// (Target, string, Function|undefined) -> Stream\n// (Function) -> Stream\n// Create a property\n// -----------------------------------------------------------------------------\n\n// (any) -> Property\n// (any) -> Property\n// Convert observables\n// -----------------------------------------------------------------------------\n\n// (Stream|Property, Function|undefined) -> Property\nObservable.prototype.toProperty = function (fn) {\n return toProperty(this, fn);\n};\n\n// (Stream|Property) -> Stream\nObservable.prototype.changes = function () {\n return changes(this);\n};\n\n// Interoperation with other implimentations\n// -----------------------------------------------------------------------------\n\n// (Promise) -> Property\n// (Stream|Property, Function|undefined) -> Promise\nObservable.prototype.toPromise = function (Promise) {\n return toPromise(this, Promise);\n};\n\n// (ESObservable) -> Stream\n// (Stream|Property) -> ES7 Observable\nObservable.prototype.toESObservable = toESObservable;\nObservable.prototype[$$observable] = toESObservable;\n\n// Modify an observable\n// -----------------------------------------------------------------------------\n\n// (Stream, Function|undefined) -> Stream\n// (Property, Function|undefined) -> Property\nObservable.prototype.map = function (fn) {\n return map$1(this, fn);\n};\n\n// (Stream, Function|undefined) -> Stream\n// (Property, Function|undefined) -> Property\nObservable.prototype.filter = function (fn) {\n return filter(this, fn);\n};\n\n// (Stream, number) -> Stream\n// (Property, number) -> Property\nObservable.prototype.take = function (n) {\n return take(this, n);\n};\n\n// (Stream, number) -> Stream\n// (Property, number) -> Property\nObservable.prototype.takeErrors = function (n) {\n return takeErrors(this, n);\n};\n\n// (Stream, Function|undefined) -> Stream\n// (Property, Function|undefined) -> Property\nObservable.prototype.takeWhile = function (fn) {\n return takeWhile(this, fn);\n};\n\n// (Stream) -> Stream\n// (Property) -> Property\nObservable.prototype.last = function () {\n return last(this);\n};\n\n// (Stream, number) -> Stream\n// (Property, number) -> Property\nObservable.prototype.skip = function (n) {\n return skip(this, n);\n};\n\n// (Stream, Function|undefined) -> Stream\n// (Property, Function|undefined) -> Property\nObservable.prototype.skipWhile = function (fn) {\n return skipWhile(this, fn);\n};\n\n// (Stream, Function|undefined) -> Stream\n// (Property, Function|undefined) -> Property\nObservable.prototype.skipDuplicates = function (fn) {\n return skipDuplicates(this, fn);\n};\n\n// (Stream, Function|falsey, any|undefined) -> Stream\n// (Property, Function|falsey, any|undefined) -> Property\nObservable.prototype.diff = function (fn, seed) {\n return diff(this, fn, seed);\n};\n\n// (Stream|Property, Function, any|undefined) -> Property\nObservable.prototype.scan = function (fn, seed) {\n return scan(this, fn, seed);\n};\n\n// (Stream, Function|undefined) -> Stream\n// (Property, Function|undefined) -> Property\nObservable.prototype.flatten = function (fn) {\n return flatten(this, fn);\n};\n\n// (Stream, number) -> Stream\n// (Property, number) -> Property\nObservable.prototype.delay = function (wait) {\n return delay(this, wait);\n};\n\n// Options = {leading: boolean|undefined, trailing: boolean|undefined}\n// (Stream, number, Options|undefined) -> Stream\n// (Property, number, Options|undefined) -> Property\nObservable.prototype.throttle = function (wait, options) {\n return throttle(this, wait, options);\n};\n\n// Options = {immediate: boolean|undefined}\n// (Stream, number, Options|undefined) -> Stream\n// (Property, number, Options|undefined) -> Property\nObservable.prototype.debounce = function (wait, options) {\n return debounce(this, wait, options);\n};\n\n// (Stream, Function|undefined) -> Stream\n// (Property, Function|undefined) -> Property\nObservable.prototype.mapErrors = function (fn) {\n return mapErrors(this, fn);\n};\n\n// (Stream, Function|undefined) -> Stream\n// (Property, Function|undefined) -> Property\nObservable.prototype.filterErrors = function (fn) {\n return filterErrors(this, fn);\n};\n\n// (Stream) -> Stream\n// (Property) -> Property\nObservable.prototype.ignoreValues = function () {\n return ignoreValues(this);\n};\n\n// (Stream) -> Stream\n// (Property) -> Property\nObservable.prototype.ignoreErrors = function () {\n return ignoreErrors(this);\n};\n\n// (Stream) -> Stream\n// (Property) -> Property\nObservable.prototype.ignoreEnd = function () {\n return ignoreEnd(this);\n};\n\n// (Stream, Function) -> Stream\n// (Property, Function) -> Property\nObservable.prototype.beforeEnd = function (fn) {\n return beforeEnd(this, fn);\n};\n\n// (Stream, number, number|undefined) -> Stream\n// (Property, number, number|undefined) -> Property\nObservable.prototype.slidingWindow = function (max, min) {\n return slidingWindow(this, max, min);\n};\n\n// Options = {flushOnEnd: boolean|undefined}\n// (Stream, Function|falsey, Options|undefined) -> Stream\n// (Property, Function|falsey, Options|undefined) -> Property\nObservable.prototype.bufferWhile = function (fn, options) {\n return bufferWhile(this, fn, options);\n};\n\n// (Stream, number) -> Stream\n// (Property, number) -> Property\nObservable.prototype.bufferWithCount = function (count, options) {\n return bufferWhile$1(this, count, options);\n};\n\n// Options = {flushOnEnd: boolean|undefined}\n// (Stream, number, number, Options|undefined) -> Stream\n// (Property, number, number, Options|undefined) -> Property\nObservable.prototype.bufferWithTimeOrCount = function (wait, count, options) {\n return bufferWithTimeOrCount(this, wait, count, options);\n};\n\n// (Stream, Function) -> Stream\n// (Property, Function) -> Property\nObservable.prototype.transduce = function (transducer) {\n return transduce(this, transducer);\n};\n\n// (Stream, Function) -> Stream\n// (Property, Function) -> Property\nObservable.prototype.withHandler = function (fn) {\n return withHandler(this, fn);\n};\n\n// (Stream, Stream -> a) -> a\n// (Property, Property -> a) -> a\nObservable.prototype.thru = function (fn) {\n return fn(this);\n};\n\n// Combine observables\n// -----------------------------------------------------------------------------\n\n// (Array, Function|undefiend) -> Stream\n// (Array, Array, Function|undefiend) -> Stream\nObservable.prototype.combine = function (other, combinator) {\n return combine([this, other], combinator);\n};\n\n// (Array, Function|undefiend) -> Stream\nObservable.prototype.zip = function (other, combinator) {\n return zip([this, other], combinator);\n};\n\n// (Array) -> Stream\nObservable.prototype.merge = function (other) {\n return merge([this, other]);\n};\n\n// (Array) -> Stream\nObservable.prototype.concat = function (other) {\n return concat$1([this, other]);\n};\n\n// () -> Pool\nvar pool = function () {\n return new Pool();\n};\n\n// (Function) -> Stream\n// Options = {concurLim: number|undefined, queueLim: number|undefined, drop: 'old'|'new'|undefiend}\n// (Stream|Property, Function|falsey, Options|undefined) -> Stream\nObservable.prototype.flatMap = function (fn) {\n return new FlatMap(this, fn).setName(this, 'flatMap');\n};\nObservable.prototype.flatMapLatest = function (fn) {\n return new FlatMap(this, fn, { concurLim: 1, drop: 'old' }).setName(this, 'flatMapLatest');\n};\nObservable.prototype.flatMapFirst = function (fn) {\n return new FlatMap(this, fn, { concurLim: 1 }).setName(this, 'flatMapFirst');\n};\nObservable.prototype.flatMapConcat = function (fn) {\n return new FlatMap(this, fn, { queueLim: -1, concurLim: 1 }).setName(this, 'flatMapConcat');\n};\nObservable.prototype.flatMapConcurLimit = function (fn, limit) {\n return new FlatMap(this, fn, { queueLim: -1, concurLim: limit }).setName(this, 'flatMapConcurLimit');\n};\n\n// (Stream|Property, Function|falsey) -> Stream\nObservable.prototype.flatMapErrors = function (fn) {\n return new FlatMapErrors(this, fn).setName(this, 'flatMapErrors');\n};\n\n// Combine two observables\n// -----------------------------------------------------------------------------\n\n// (Stream, Stream|Property) -> Stream\n// (Property, Stream|Property) -> Property\nObservable.prototype.filterBy = function (other) {\n return filterBy(this, other);\n};\n\n// (Stream, Stream|Property, Function|undefiend) -> Stream\n// (Property, Stream|Property, Function|undefiend) -> Property\nObservable.prototype.sampledBy = function (other, combinator) {\n return sampledBy(this, other, combinator);\n};\n\n// (Stream, Stream|Property) -> Stream\n// (Property, Stream|Property) -> Property\nObservable.prototype.skipUntilBy = function (other) {\n return skipUntilBy(this, other);\n};\n\n// (Stream, Stream|Property) -> Stream\n// (Property, Stream|Property) -> Property\nObservable.prototype.takeUntilBy = function (other) {\n return takeUntilBy(this, other);\n};\n\n// Options = {flushOnEnd: boolean|undefined}\n// (Stream, Stream|Property, Options|undefined) -> Stream\n// (Property, Stream|Property, Options|undefined) -> Property\nObservable.prototype.bufferBy = function (other, options) {\n return bufferBy(this, other, options);\n};\n\n// Options = {flushOnEnd: boolean|undefined}\n// (Stream, Stream|Property, Options|undefined) -> Stream\n// (Property, Stream|Property, Options|undefined) -> Property\nObservable.prototype.bufferWhileBy = function (other, options) {\n return bufferWhileBy(this, other, options);\n};\n\n// Deprecated\n// -----------------------------------------------------------------------------\n\nvar DEPRECATION_WARNINGS = true;\nfunction dissableDeprecationWarnings() {\n DEPRECATION_WARNINGS = false;\n}\n\nfunction warn(msg) {\n if (DEPRECATION_WARNINGS && console && typeof console.warn === 'function') {\n var msg2 = '\\nHere is an Error object for you containing the call stack:';\n console.warn(msg, msg2, new Error());\n }\n}\n\n// (Stream|Property, Stream|Property) -> Property\nObservable.prototype.awaiting = function (other) {\n warn('You are using deprecated .awaiting() method, see https://github.com/kefirjs/kefir/issues/145');\n return awaiting(this, other);\n};\n\n// (Stream, Function|undefined) -> Stream\n// (Property, Function|undefined) -> Property\nObservable.prototype.valuesToErrors = function (fn) {\n warn('You are using deprecated .valuesToErrors() method, see https://github.com/kefirjs/kefir/issues/149');\n return valuesToErrors(this, fn);\n};\n\n// (Stream, Function|undefined) -> Stream\n// (Property, Function|undefined) -> Property\nObservable.prototype.errorsToValues = function (fn) {\n warn('You are using deprecated .errorsToValues() method, see https://github.com/kefirjs/kefir/issues/149');\n return errorsToValues(this, fn);\n};\n\n// (Stream) -> Stream\n// (Property) -> Property\nObservable.prototype.endOnError = function () {\n warn('You are using deprecated .endOnError() method, see https://github.com/kefirjs/kefir/issues/150');\n return endOnError(this);\n};\n\n// Exports\n// --------------------------------------------------------------------------\n\nvar Kefir = {\n Observable: Observable,\n Stream: Stream,\n Property: Property,\n never: never,\n later: later,\n interval: interval,\n sequentially: sequentially,\n fromPoll: fromPoll,\n withInterval: withInterval,\n fromCallback: fromCallback,\n fromNodeCallback: fromNodeCallback,\n fromEvents: fromEvents,\n stream: stream,\n constant: constant,\n constantError: constantError,\n fromPromise: fromPromise,\n fromESObservable: fromESObservable,\n combine: combine,\n zip: zip,\n merge: merge,\n concat: concat$1,\n Pool: Pool,\n pool: pool,\n repeat: repeat,\n staticLand: staticLand\n};\n\nKefir.Kefir = Kefir;\n\nexport { dissableDeprecationWarnings, Kefir, Observable, Stream, Property, never, later, interval, sequentially, fromPoll, withInterval, fromCallback, fromNodeCallback, fromEvents, stream, constant, constantError, fromPromise, fromESObservable, combine, zip, merge, concat$1 as concat, Pool, pool, repeat, staticLand };export default Kefir;\n","/**\n * This action type will be dispatched when your history\n * receives a location change.\n */\nexport var LOCATION_CHANGE = '@@router/LOCATION_CHANGE';\nexport var onLocationChanged = function onLocationChanged(location, action) {\n var isFirstRendering = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return {\n type: LOCATION_CHANGE,\n payload: {\n location: location,\n action: action,\n isFirstRendering: isFirstRendering\n }\n };\n};\n/**\n * This action type will be dispatched by the history actions below.\n * If you're writing a middleware to watch for navigation events, be sure to\n * look for actions of this type.\n */\n\nexport var CALL_HISTORY_METHOD = '@@router/CALL_HISTORY_METHOD';\n\nvar updateLocation = function updateLocation(method) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return {\n type: CALL_HISTORY_METHOD,\n payload: {\n method: method,\n args: args\n }\n };\n };\n};\n/**\n * These actions correspond to the history API.\n * The associated routerMiddleware will capture these events before they get to\n * your reducer and reissue them as the matching function on your history.\n */\n\n\nexport var push = updateLocation('push');\nexport var replace = updateLocation('replace');\nexport var go = updateLocation('go');\nexport var goBack = updateLocation('goBack');\nexport var goForward = updateLocation('goForward');\nexport var routerActions = {\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward\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}","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","'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","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","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { matchPath } from \"react-router\";\n\nvar createSelectors = function createSelectors(structure) {\n var getIn = structure.getIn,\n toJS = structure.toJS;\n\n var isRouter = function isRouter(value) {\n return value != null && _typeof(value) === 'object' && getIn(value, ['location']) && getIn(value, ['action']);\n };\n\n var getRouter = function getRouter(state) {\n var router = toJS(getIn(state, ['router']));\n\n if (!isRouter(router)) {\n throw 'Could not find router reducer in state tree, it must be mounted under \"router\"';\n }\n\n return router;\n };\n\n var getLocation = function getLocation(state) {\n return toJS(getIn(getRouter(state), ['location']));\n };\n\n var getAction = function getAction(state) {\n return toJS(getIn(getRouter(state), ['action']));\n };\n\n var getSearch = function getSearch(state) {\n return toJS(getIn(getRouter(state), ['location', 'search']));\n };\n\n var getHash = function getHash(state) {\n return toJS(getIn(getRouter(state), ['location', 'hash']));\n }; // It only makes sense to recalculate the `matchPath` whenever the pathname\n // of the location changes. That's why `createMatchSelector` memoizes\n // the latest result based on the location's pathname.\n\n\n var createMatchSelector = function createMatchSelector(path) {\n var lastPathname = null;\n var lastMatch = null;\n return function (state) {\n var _ref = getLocation(state) || {},\n pathname = _ref.pathname;\n\n if (pathname === lastPathname) {\n return lastMatch;\n }\n\n lastPathname = pathname;\n var match = matchPath(pathname, path);\n\n if (!match || !lastMatch || match.url !== lastMatch.url // When URL matched for nested routes, URL is the same but isExact is not.\n || match.isExact !== lastMatch.isExact) {\n lastMatch = match;\n }\n\n return lastMatch;\n };\n };\n\n return {\n getLocation: getLocation,\n getAction: getAction,\n getRouter: getRouter,\n getSearch: getSearch,\n getHash: getHash,\n createMatchSelector: createMatchSelector\n };\n};\n\nexport default createSelectors;","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; 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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { LOCATION_CHANGE } from './actions';\n/**\n * Adds query to location.\n * Utilises the search prop of location to construct query.\n */\n\nvar injectQuery = function injectQuery(location) {\n if (location && location.query) {\n // Don't inject query if it already exists in history\n return location;\n }\n\n var searchQuery = location && location.search;\n\n if (typeof searchQuery !== 'string' || searchQuery.length === 0) {\n return _objectSpread({}, location, {\n query: {}\n });\n } // Ignore the `?` part of the search string e.g. ?username=codejockie\n\n\n var search = searchQuery.substring(1); // Split the query string on `&` e.g. ?username=codejockie&name=Kennedy\n\n var queries = search.split('&'); // Contruct query\n\n var query = queries.reduce(function (acc, currentQuery) {\n // Split on `=`, to get key and value\n var _currentQuery$split = currentQuery.split('='),\n _currentQuery$split2 = _slicedToArray(_currentQuery$split, 2),\n queryKey = _currentQuery$split2[0],\n queryValue = _currentQuery$split2[1];\n\n return _objectSpread({}, acc, _defineProperty({}, queryKey, queryValue));\n }, {});\n return _objectSpread({}, location, {\n query: query\n });\n};\n\nvar createConnectRouter = function createConnectRouter(structure) {\n var fromJS = structure.fromJS,\n merge = structure.merge;\n\n var createRouterReducer = function createRouterReducer(history) {\n var initialRouterState = fromJS({\n location: injectQuery(history.location),\n action: history.action\n });\n /*\n * This reducer will update the state with the most recent location history\n * has transitioned to.\n */\n\n return function () {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialRouterState;\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n type = _ref.type,\n payload = _ref.payload;\n\n if (type === LOCATION_CHANGE) {\n var location = payload.location,\n action = payload.action,\n isFirstRendering = payload.isFirstRendering; // Don't update the state ref for the first rendering\n // to prevent the double-rendering issue on initilization\n\n return isFirstRendering ? state : merge(state, {\n location: fromJS(injectQuery(location)),\n action: action\n });\n }\n\n return state;\n };\n };\n\n return createRouterReducer;\n};\n\nexport default createConnectRouter;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport getIn from './getIn';\nvar structure = {\n fromJS: function fromJS(value) {\n return value;\n },\n getIn: getIn,\n merge: function merge(state, payload) {\n return _objectSpread({}, state, {}, payload);\n },\n toJS: function toJS(value) {\n return value;\n }\n};\nexport default structure;","/* Code from github.com/erikras/redux-form by Erik Rasmussen */\nvar getIn = function getIn(state, path) {\n if (!state) {\n return state;\n }\n\n var length = path.length;\n\n if (!length) {\n return undefined;\n }\n\n var result = state;\n\n for (var i = 0; i < length && !!result; ++i) {\n result = result[path[i]];\n }\n\n return result;\n};\n\nexport default getIn;","import createConnectedRouter from \"./ConnectedRouter\";\nimport createConnectRouter from \"./reducer\";\nimport createSelectors from \"./selectors\";\nimport plainStructure from \"./structure/plain\";\nexport { LOCATION_CHANGE, CALL_HISTORY_METHOD, onLocationChanged, push, replace, go, goBack, goForward, routerActions } from \"./actions\";\nexport { default as routerMiddleware } from \"./middleware\";\nexport var ConnectedRouter = /*#__PURE__*/createConnectedRouter(plainStructure);\nexport var connectRouter = /*#__PURE__*/createConnectRouter(plainStructure);\n\nvar _createSelectors = /*#__PURE__*/createSelectors(plainStructure),\n getLocation = _createSelectors.getLocation,\n getAction = _createSelectors.getAction,\n getHash = _createSelectors.getHash,\n getRouter = _createSelectors.getRouter,\n getSearch = _createSelectors.getSearch,\n createMatchSelector = _createSelectors.createMatchSelector;\n\nexport { getLocation, getAction, getHash, getRouter, getSearch, createMatchSelector };","import { __spread, __rest, __assign } from './_virtual/_tslib.js';\nimport { EMPTY_ACTIVITY_MAP } from './constants.js';\nimport { isString, matchesState, keys } from './utils.js';\nimport { nextEvents } from './stateUtils.js';\nimport { initEvent } from './actions.js';\n\nfunction stateValuesEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (a === undefined || b === undefined) {\n return false;\n }\n\n if (isString(a) || isString(b)) {\n return a === b;\n }\n\n var aKeys = keys(a);\n var bKeys = keys(b);\n return aKeys.length === bKeys.length && aKeys.every(function (key) {\n return stateValuesEqual(a[key], b[key]);\n });\n}\n\nfunction isState(state) {\n if (isString(state)) {\n return false;\n }\n\n return 'value' in state && 'history' in state;\n}\n\nfunction bindActionToState(action, state) {\n var exec = action.exec;\n\n var boundAction = __assign(__assign({}, action), {\n exec: exec !== undefined ? function () {\n return exec(state.context, state.event, {\n action: action,\n state: state,\n _event: state._event\n });\n } : undefined\n });\n\n return boundAction;\n}\n\nvar State =\n/*#__PURE__*/\n\n/** @class */\nfunction () {\n /**\r\n * Creates a new State instance.\r\n * @param value The state value\r\n * @param context The extended state\r\n * @param historyValue The tree representing historical values of the state nodes\r\n * @param history The previous state\r\n * @param actions An array of action objects to execute as side-effects\r\n * @param activities A mapping of activities and whether they are started (`true`) or stopped (`false`).\r\n * @param meta\r\n * @param events Internal event queue. Should be empty with run-to-completion semantics.\r\n * @param configuration\r\n */\n function State(config) {\n var _this = this;\n\n this.actions = [];\n this.activities = EMPTY_ACTIVITY_MAP;\n this.meta = {};\n this.events = [];\n this.value = config.value;\n this.context = config.context;\n this._event = config._event;\n this._sessionid = config._sessionid;\n this.event = this._event.data;\n this.historyValue = config.historyValue;\n this.history = config.history;\n this.actions = config.actions || [];\n this.activities = config.activities || EMPTY_ACTIVITY_MAP;\n this.meta = config.meta || {};\n this.events = config.events || [];\n this.matches = this.matches.bind(this);\n this.toStrings = this.toStrings.bind(this);\n this.configuration = config.configuration;\n this.transitions = config.transitions;\n this.children = config.children;\n this.done = !!config.done;\n Object.defineProperty(this, 'nextEvents', {\n get: function () {\n return nextEvents(_this.configuration);\n }\n });\n }\n /**\r\n * Creates a new State instance for the given `stateValue` and `context`.\r\n * @param stateValue\r\n * @param context\r\n */\n\n\n State.from = function (stateValue, context) {\n if (stateValue instanceof State) {\n if (stateValue.context !== context) {\n return new State({\n value: stateValue.value,\n context: context,\n _event: stateValue._event,\n _sessionid: null,\n historyValue: stateValue.historyValue,\n history: stateValue.history,\n actions: [],\n activities: stateValue.activities,\n meta: {},\n events: [],\n configuration: [],\n transitions: [],\n children: {}\n });\n }\n\n return stateValue;\n }\n\n var _event = initEvent;\n return new State({\n value: stateValue,\n context: context,\n _event: _event,\n _sessionid: null,\n historyValue: undefined,\n history: undefined,\n actions: [],\n activities: undefined,\n meta: undefined,\n events: [],\n configuration: [],\n transitions: [],\n children: {}\n });\n };\n /**\r\n * Creates a new State instance for the given `config`.\r\n * @param config The state config\r\n */\n\n\n State.create = function (config) {\n return new State(config);\n };\n /**\r\n * Creates a new `State` instance for the given `stateValue` and `context` with no actions (side-effects).\r\n * @param stateValue\r\n * @param context\r\n */\n\n\n State.inert = function (stateValue, context) {\n if (stateValue instanceof State) {\n if (!stateValue.actions.length) {\n return stateValue;\n }\n\n var _event = initEvent;\n return new State({\n value: stateValue.value,\n context: context,\n _event: _event,\n _sessionid: null,\n historyValue: stateValue.historyValue,\n history: stateValue.history,\n activities: stateValue.activities,\n configuration: stateValue.configuration,\n transitions: [],\n children: {}\n });\n }\n\n return State.from(stateValue, context);\n };\n /**\r\n * Returns an array of all the string leaf state node paths.\r\n * @param stateValue\r\n * @param delimiter The character(s) that separate each subpath in the string state node path.\r\n */\n\n\n State.prototype.toStrings = function (stateValue, delimiter) {\n var _this = this;\n\n if (stateValue === void 0) {\n stateValue = this.value;\n }\n\n if (delimiter === void 0) {\n delimiter = '.';\n }\n\n if (isString(stateValue)) {\n return [stateValue];\n }\n\n var valueKeys = keys(stateValue);\n return valueKeys.concat.apply(valueKeys, __spread(valueKeys.map(function (key) {\n return _this.toStrings(stateValue[key], delimiter).map(function (s) {\n return key + delimiter + s;\n });\n })));\n };\n\n State.prototype.toJSON = function () {\n var _a = this,\n configuration = _a.configuration,\n transitions = _a.transitions,\n jsonValues = __rest(_a, [\"configuration\", \"transitions\"]);\n\n return jsonValues;\n };\n /**\r\n * Whether the current state value is a subset of the given parent state value.\r\n * @param parentStateValue\r\n */\n\n\n State.prototype.matches = function (parentStateValue) {\n return matchesState(parentStateValue, this.value);\n };\n\n return State;\n}();\n\nexport { State, bindActionToState, isState, stateValuesEqual };","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import { useLayoutEffect, useEffect } from 'react'; // suppress the useLayoutEffect warning on server side.\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","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 Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/* 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","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); // 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}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); // 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}","var STATE_DELIMITER = '.';\nvar EMPTY_ACTIVITY_MAP = {};\nvar DEFAULT_GUARD_TYPE = 'xstate.guard';\nvar TARGETLESS_KEY = '';\nexport { DEFAULT_GUARD_TYPE, EMPTY_ACTIVITY_MAP, STATE_DELIMITER, TARGETLESS_KEY };","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : 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 }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"Chart\", {\n enumerable: true,\n get: function get() {\n return _chart[\"default\"];\n }\n});\nexports.defaults = exports.Scatter = exports.Bubble = exports.Polar = exports.Radar = exports.HorizontalBar = exports.Bar = exports.Line = exports.Pie = exports.Doughnut = exports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _chart = _interopRequireDefault(require(\"chart.js\"));\n\nvar _isEqual = _interopRequireDefault(require(\"lodash/isEqual\"));\n\nvar _keyBy = _interopRequireDefault(require(\"lodash/keyBy\"));\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) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar NODE_ENV = typeof process !== 'undefined' && process.env && process.env.NODE_ENV;\n\nvar ChartComponent = /*#__PURE__*/function (_React$Component) {\n _inherits(ChartComponent, _React$Component);\n\n var _super = _createSuper(ChartComponent);\n\n function ChartComponent() {\n var _this;\n\n _classCallCheck(this, ChartComponent);\n\n _this = _super.call(this);\n\n _defineProperty(_assertThisInitialized(_this), \"handleOnClick\", function (event) {\n var instance = _this.chartInstance;\n var _this$props = _this.props,\n getDatasetAtEvent = _this$props.getDatasetAtEvent,\n getElementAtEvent = _this$props.getElementAtEvent,\n getElementsAtEvent = _this$props.getElementsAtEvent,\n onElementsClick = _this$props.onElementsClick;\n getDatasetAtEvent && getDatasetAtEvent(instance.getDatasetAtEvent(event), event);\n getElementAtEvent && getElementAtEvent(instance.getElementAtEvent(event), event);\n getElementsAtEvent && getElementsAtEvent(instance.getElementsAtEvent(event), event);\n onElementsClick && onElementsClick(instance.getElementsAtEvent(event), event); // Backward compatibility\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (element) {\n _this.element = element;\n });\n\n _this.chartInstance = undefined;\n return _this;\n }\n\n _createClass(ChartComponent, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.renderChart();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (this.props.redraw) {\n this.destroyChart();\n this.renderChart();\n return;\n }\n\n this.updateChart();\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n var _this$props2 = this.props,\n redraw = _this$props2.redraw,\n type = _this$props2.type,\n options = _this$props2.options,\n plugins = _this$props2.plugins,\n legend = _this$props2.legend,\n height = _this$props2.height,\n width = _this$props2.width;\n\n if (nextProps.redraw === true) {\n return true;\n }\n\n if (height !== nextProps.height || width !== nextProps.width) {\n return true;\n }\n\n if (type !== nextProps.type) {\n return true;\n }\n\n if (!(0, _isEqual[\"default\"])(legend, nextProps.legend)) {\n return true;\n }\n\n if (!(0, _isEqual[\"default\"])(options, nextProps.options)) {\n return true;\n }\n\n var nextData = this.transformDataProp(nextProps);\n\n if (!(0, _isEqual[\"default\"])(this.shadowDataProp, nextData)) {\n return true;\n }\n\n return !(0, _isEqual[\"default\"])(plugins, nextProps.plugins);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.destroyChart();\n }\n }, {\n key: \"transformDataProp\",\n value: function transformDataProp(props) {\n var data = props.data;\n\n if (typeof data == 'function') {\n var node = this.element;\n return data(node);\n } else {\n return data;\n }\n } // Chart.js directly mutates the data.dataset objects by adding _meta proprerty\n // this makes impossible to compare the current and next data changes\n // therefore we memoize the data prop while sending a fake to Chart.js for mutation.\n // see https://github.com/chartjs/Chart.js/blob/master/src/core/core.controller.js#L615-L617\n\n }, {\n key: \"memoizeDataProps\",\n value: function memoizeDataProps() {\n if (!this.props.data) {\n return;\n }\n\n var data = this.transformDataProp(this.props);\n this.shadowDataProp = _objectSpread(_objectSpread({}, data), {}, {\n datasets: data.datasets && data.datasets.map(function (set) {\n return _objectSpread({}, set);\n })\n });\n this.saveCurrentDatasets(); // to remove the dataset metadata from this chart when the chart is destroyed\n\n return data;\n }\n }, {\n key: \"checkDatasets\",\n value: function checkDatasets(datasets) {\n var isDev = NODE_ENV !== 'production' && NODE_ENV !== 'prod';\n var usingCustomKeyProvider = this.props.datasetKeyProvider !== ChartComponent.getLabelAsKey;\n var multipleDatasets = datasets.length > 1;\n\n if (isDev && multipleDatasets && !usingCustomKeyProvider) {\n var shouldWarn = false;\n datasets.forEach(function (dataset) {\n if (!dataset.label) {\n shouldWarn = true;\n }\n });\n\n if (shouldWarn) {\n console.error('[react-chartjs-2] Warning: Each dataset needs a unique key. By default, the \"label\" property on each dataset is used. Alternatively, you may provide a \"datasetKeyProvider\" as a prop that returns a unique key.');\n }\n }\n }\n }, {\n key: \"getCurrentDatasets\",\n value: function getCurrentDatasets() {\n return this.chartInstance && this.chartInstance.config.data && this.chartInstance.config.data.datasets || [];\n }\n }, {\n key: \"saveCurrentDatasets\",\n value: function saveCurrentDatasets() {\n var _this2 = this;\n\n this.datasets = this.datasets || {};\n var currentDatasets = this.getCurrentDatasets();\n currentDatasets.forEach(function (d) {\n _this2.datasets[_this2.props.datasetKeyProvider(d)] = d;\n });\n }\n }, {\n key: \"updateChart\",\n value: function updateChart() {\n var _this3 = this;\n\n var options = this.props.options;\n var data = this.memoizeDataProps(this.props);\n if (!this.chartInstance) return;\n\n if (options) {\n this.chartInstance.options = _chart[\"default\"].helpers.configMerge(this.chartInstance.options, options);\n } // Pipe datasets to chart instance datasets enabling\n // seamless transitions\n\n\n var currentDatasets = this.getCurrentDatasets();\n var nextDatasets = data.datasets || [];\n this.checkDatasets(currentDatasets);\n var currentDatasetsIndexed = (0, _keyBy[\"default\"])(currentDatasets, this.props.datasetKeyProvider); // We can safely replace the dataset array, as long as we retain the _meta property\n // on each dataset.\n\n this.chartInstance.config.data.datasets = nextDatasets.map(function (next) {\n var current = currentDatasetsIndexed[_this3.props.datasetKeyProvider(next)];\n\n if (current && current.type === next.type && next.data) {\n // Be robust to no data. Relevant for other update mechanisms as in chartjs-plugin-streaming.\n // The data array must be edited in place. As chart.js adds listeners to it.\n current.data.splice(next.data.length);\n next.data.forEach(function (point, pid) {\n current.data[pid] = next.data[pid];\n });\n\n var _data = next.data,\n otherProps = _objectWithoutProperties(next, [\"data\"]); // Merge properties. Notice a weakness here. If a property is removed\n // from next, it will be retained by current and never disappears.\n // Workaround is to set value to null or undefined in next.\n\n\n return _objectSpread(_objectSpread({}, current), otherProps);\n } else {\n return next;\n }\n });\n\n var datasets = data.datasets,\n rest = _objectWithoutProperties(data, [\"datasets\"]);\n\n this.chartInstance.config.data = _objectSpread(_objectSpread({}, this.chartInstance.config.data), rest);\n this.chartInstance.update();\n }\n }, {\n key: \"renderChart\",\n value: function renderChart() {\n var _this$props3 = this.props,\n options = _this$props3.options,\n legend = _this$props3.legend,\n type = _this$props3.type,\n plugins = _this$props3.plugins;\n var node = this.element;\n var data = this.memoizeDataProps();\n\n if (typeof legend !== 'undefined' && !(0, _isEqual[\"default\"])(ChartComponent.defaultProps.legend, legend)) {\n options.legend = legend;\n }\n\n this.chartInstance = new _chart[\"default\"](node, {\n type: type,\n data: data,\n options: options,\n plugins: plugins\n });\n }\n }, {\n key: \"destroyChart\",\n value: function destroyChart() {\n if (!this.chartInstance) {\n return;\n } // Put all of the datasets that have existed in the chart back on the chart\n // so that the metadata associated with this chart get destroyed.\n // This allows the datasets to be used in another chart. This can happen,\n // for example, in a tabbed UI where the chart gets created each time the\n // tab gets switched to the chart and uses the same data).\n\n\n this.saveCurrentDatasets();\n var datasets = Object.values(this.datasets);\n this.chartInstance.config.data.datasets = datasets;\n this.chartInstance.destroy();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n height = _this$props4.height,\n width = _this$props4.width,\n id = _this$props4.id;\n return /*#__PURE__*/_react[\"default\"].createElement(\"canvas\", {\n ref: this.ref,\n height: height,\n width: width,\n id: id,\n onClick: this.handleOnClick\n });\n }\n }]);\n\n return ChartComponent;\n}(_react[\"default\"].Component);\n\n_defineProperty(ChartComponent, \"getLabelAsKey\", function (d) {\n return d.label;\n});\n\n_defineProperty(ChartComponent, \"propTypes\", {\n data: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].object, _propTypes[\"default\"].func]).isRequired,\n getDatasetAtEvent: _propTypes[\"default\"].func,\n getElementAtEvent: _propTypes[\"default\"].func,\n getElementsAtEvent: _propTypes[\"default\"].func,\n height: _propTypes[\"default\"].number,\n legend: _propTypes[\"default\"].object,\n onElementsClick: _propTypes[\"default\"].func,\n options: _propTypes[\"default\"].object,\n plugins: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].object),\n redraw: _propTypes[\"default\"].bool,\n type: function type(props, propName, componentName) {\n if (!_chart[\"default\"].controllers[props[propName]]) {\n return new Error('Invalid chart type `' + props[propName] + '` supplied to' + ' `' + componentName + '`.');\n }\n },\n width: _propTypes[\"default\"].number,\n datasetKeyProvider: _propTypes[\"default\"].func\n});\n\n_defineProperty(ChartComponent, \"defaultProps\", {\n legend: {\n display: true,\n position: 'bottom'\n },\n type: 'doughnut',\n height: 150,\n width: 300,\n redraw: false,\n options: {},\n datasetKeyProvider: ChartComponent.getLabelAsKey\n});\n\nvar _default = ChartComponent;\nexports[\"default\"] = _default;\n\nvar Doughnut = /*#__PURE__*/function (_React$Component2) {\n _inherits(Doughnut, _React$Component2);\n\n var _super2 = _createSuper(Doughnut);\n\n function Doughnut() {\n _classCallCheck(this, Doughnut);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(Doughnut, [{\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref) {\n return _this4.chartInstance = _ref && _ref.chartInstance;\n },\n type: \"doughnut\"\n }));\n }\n }]);\n\n return Doughnut;\n}(_react[\"default\"].Component);\n\nexports.Doughnut = Doughnut;\n\nvar Pie = /*#__PURE__*/function (_React$Component3) {\n _inherits(Pie, _React$Component3);\n\n var _super3 = _createSuper(Pie);\n\n function Pie() {\n _classCallCheck(this, Pie);\n\n return _super3.apply(this, arguments);\n }\n\n _createClass(Pie, [{\n key: \"render\",\n value: function render() {\n var _this5 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref2) {\n return _this5.chartInstance = _ref2 && _ref2.chartInstance;\n },\n type: \"pie\"\n }));\n }\n }]);\n\n return Pie;\n}(_react[\"default\"].Component);\n\nexports.Pie = Pie;\n\nvar Line = /*#__PURE__*/function (_React$Component4) {\n _inherits(Line, _React$Component4);\n\n var _super4 = _createSuper(Line);\n\n function Line() {\n _classCallCheck(this, Line);\n\n return _super4.apply(this, arguments);\n }\n\n _createClass(Line, [{\n key: \"render\",\n value: function render() {\n var _this6 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref3) {\n return _this6.chartInstance = _ref3 && _ref3.chartInstance;\n },\n type: \"line\"\n }));\n }\n }]);\n\n return Line;\n}(_react[\"default\"].Component);\n\nexports.Line = Line;\n\nvar Bar = /*#__PURE__*/function (_React$Component5) {\n _inherits(Bar, _React$Component5);\n\n var _super5 = _createSuper(Bar);\n\n function Bar() {\n _classCallCheck(this, Bar);\n\n return _super5.apply(this, arguments);\n }\n\n _createClass(Bar, [{\n key: \"render\",\n value: function render() {\n var _this7 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref4) {\n return _this7.chartInstance = _ref4 && _ref4.chartInstance;\n },\n type: \"bar\"\n }));\n }\n }]);\n\n return Bar;\n}(_react[\"default\"].Component);\n\nexports.Bar = Bar;\n\nvar HorizontalBar = /*#__PURE__*/function (_React$Component6) {\n _inherits(HorizontalBar, _React$Component6);\n\n var _super6 = _createSuper(HorizontalBar);\n\n function HorizontalBar() {\n _classCallCheck(this, HorizontalBar);\n\n return _super6.apply(this, arguments);\n }\n\n _createClass(HorizontalBar, [{\n key: \"render\",\n value: function render() {\n var _this8 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref5) {\n return _this8.chartInstance = _ref5 && _ref5.chartInstance;\n },\n type: \"horizontalBar\"\n }));\n }\n }]);\n\n return HorizontalBar;\n}(_react[\"default\"].Component);\n\nexports.HorizontalBar = HorizontalBar;\n\nvar Radar = /*#__PURE__*/function (_React$Component7) {\n _inherits(Radar, _React$Component7);\n\n var _super7 = _createSuper(Radar);\n\n function Radar() {\n _classCallCheck(this, Radar);\n\n return _super7.apply(this, arguments);\n }\n\n _createClass(Radar, [{\n key: \"render\",\n value: function render() {\n var _this9 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref6) {\n return _this9.chartInstance = _ref6 && _ref6.chartInstance;\n },\n type: \"radar\"\n }));\n }\n }]);\n\n return Radar;\n}(_react[\"default\"].Component);\n\nexports.Radar = Radar;\n\nvar Polar = /*#__PURE__*/function (_React$Component8) {\n _inherits(Polar, _React$Component8);\n\n var _super8 = _createSuper(Polar);\n\n function Polar() {\n _classCallCheck(this, Polar);\n\n return _super8.apply(this, arguments);\n }\n\n _createClass(Polar, [{\n key: \"render\",\n value: function render() {\n var _this10 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref7) {\n return _this10.chartInstance = _ref7 && _ref7.chartInstance;\n },\n type: \"polarArea\"\n }));\n }\n }]);\n\n return Polar;\n}(_react[\"default\"].Component);\n\nexports.Polar = Polar;\n\nvar Bubble = /*#__PURE__*/function (_React$Component9) {\n _inherits(Bubble, _React$Component9);\n\n var _super9 = _createSuper(Bubble);\n\n function Bubble() {\n _classCallCheck(this, Bubble);\n\n return _super9.apply(this, arguments);\n }\n\n _createClass(Bubble, [{\n key: \"render\",\n value: function render() {\n var _this11 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref8) {\n return _this11.chartInstance = _ref8 && _ref8.chartInstance;\n },\n type: \"bubble\"\n }));\n }\n }]);\n\n return Bubble;\n}(_react[\"default\"].Component);\n\nexports.Bubble = Bubble;\n\nvar Scatter = /*#__PURE__*/function (_React$Component10) {\n _inherits(Scatter, _React$Component10);\n\n var _super10 = _createSuper(Scatter);\n\n function Scatter() {\n _classCallCheck(this, Scatter);\n\n return _super10.apply(this, arguments);\n }\n\n _createClass(Scatter, [{\n key: \"render\",\n value: function render() {\n var _this12 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref9) {\n return _this12.chartInstance = _ref9 && _ref9.chartInstance;\n },\n type: \"scatter\"\n }));\n }\n }]);\n\n return Scatter;\n}(_react[\"default\"].Component);\n\nexports.Scatter = Scatter;\nvar defaults = _chart[\"default\"].defaults;\nexports.defaults = defaults;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","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 { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\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 /* eslint-disable-next-line jsx-a11y/anchor-has-content */\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 isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? 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.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\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\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\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 sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\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 \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\n","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n/**\n * Days in 1 year\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var daysInYear = 365.2425;\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInMinute = 60000;\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInHour = 3600000;\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInSecond = 1000;\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minTime = -maxTime;\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minutesInHour = 60;\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInQuarter = 3;\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInYear = 12;\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var quartersInYear = 4;\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInHour = 3600;\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMinute = 60;\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInDay = secondsInHour * 24;\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInWeek = secondsInDay * 7;\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInYear = secondsInDay * daysInYear;\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMonth = secondsInYear / 12;\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInQuarter = secondsInMonth * 3;","export { matchesState } from './utils.js';\nexport { mapState } from './mapState.js';\nexport { ActionTypes, SpecialTargets } from './types.js';\nimport { raise, send, sendParent, sendUpdate, log, cancel, start, stop, assign, after, done, respond, forwardTo, escalate, choose, pure } from './actions.js';\nexport { assign, doneInvoke, forwardTo, send, sendParent, sendUpdate } from './actions.js';\nexport { State } from './State.js';\nexport { StateNode } from './StateNode.js';\nexport { Machine, createMachine } from './Machine.js';\nexport { Interpreter, interpret, spawn } from './interpreter.js';\nexport { matchState } from './match.js';\nvar actions = {\n raise: raise,\n send: send,\n sendParent: sendParent,\n sendUpdate: sendUpdate,\n log: log,\n cancel: cancel,\n start: start,\n stop: stop,\n assign: assign,\n after: after,\n done: done,\n respond: respond,\n forwardTo: forwardTo,\n escalate: escalate,\n choose: choose,\n pure: pure\n};\nexport { actions };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import _Object$assign from \"@babel/runtime-corejs2/core-js/object/assign\";\nexport default function _extends() {\n _extends = _Object$assign ? _Object$assign.bind() : 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 return _extends.apply(this, arguments);\n}","import { useState, useRef, useEffect } from 'react';\n\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n\n for (var i = 0; i < newInputs.length; i++) {\n if (newInputs[i] !== lastInputs[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction useMemoOne(getResult, inputs) {\n var initial = useState(function () {\n return {\n inputs: inputs,\n result: getResult()\n };\n })[0];\n var isFirstRun = useRef(true);\n var committed = useRef(initial);\n var useCache = isFirstRun.current || Boolean(inputs && committed.current.inputs && areInputsEqual(inputs, committed.current.inputs));\n var cache = useCache ? committed.current : {\n inputs: inputs,\n result: getResult()\n };\n useEffect(function () {\n isFirstRun.current = false;\n committed.current = cache;\n }, [cache]);\n return cache.result;\n}\nfunction useCallbackOne(callback, inputs) {\n return useMemoOne(function () {\n return callback;\n }, inputs);\n}\nvar useMemo = useMemoOne;\nvar useCallback = useCallbackOne;\n\nexport { useCallback, useCallbackOne, useMemo, useMemoOne };\n","import _Object$setPrototypeOf from \"@babel/runtime-corejs2/core-js/object/set-prototype-of\";\nexport default function _setPrototypeOf(o, p) {\n _setPrototypeOf = _Object$setPrototypeOf ? _Object$setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import _Object$create from \"@babel/runtime-corejs2/core-js/object/create\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = _Object$create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","import invariant from 'tiny-invariant';\n\nvar getRect = function getRect(_ref) {\n var top = _ref.top,\n right = _ref.right,\n bottom = _ref.bottom,\n left = _ref.left;\n var width = right - left;\n var height = bottom - top;\n var rect = {\n top: top,\n right: right,\n bottom: bottom,\n left: left,\n width: width,\n height: height,\n x: left,\n y: top,\n center: {\n x: (right + left) / 2,\n y: (bottom + top) / 2\n }\n };\n return rect;\n};\nvar expand = function expand(target, expandBy) {\n return {\n top: target.top - expandBy.top,\n left: target.left - expandBy.left,\n bottom: target.bottom + expandBy.bottom,\n right: target.right + expandBy.right\n };\n};\nvar shrink = function shrink(target, shrinkBy) {\n return {\n top: target.top + shrinkBy.top,\n left: target.left + shrinkBy.left,\n bottom: target.bottom - shrinkBy.bottom,\n right: target.right - shrinkBy.right\n };\n};\n\nvar shift = function shift(target, shiftBy) {\n return {\n top: target.top + shiftBy.y,\n left: target.left + shiftBy.x,\n bottom: target.bottom + shiftBy.y,\n right: target.right + shiftBy.x\n };\n};\n\nvar noSpacing = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\nvar createBox = function createBox(_ref2) {\n var borderBox = _ref2.borderBox,\n _ref2$margin = _ref2.margin,\n margin = _ref2$margin === void 0 ? noSpacing : _ref2$margin,\n _ref2$border = _ref2.border,\n border = _ref2$border === void 0 ? noSpacing : _ref2$border,\n _ref2$padding = _ref2.padding,\n padding = _ref2$padding === void 0 ? noSpacing : _ref2$padding;\n var marginBox = getRect(expand(borderBox, margin));\n var paddingBox = getRect(shrink(borderBox, border));\n var contentBox = getRect(shrink(paddingBox, padding));\n return {\n marginBox: marginBox,\n borderBox: getRect(borderBox),\n paddingBox: paddingBox,\n contentBox: contentBox,\n margin: margin,\n border: border,\n padding: padding\n };\n};\n\nvar parse = function parse(raw) {\n var value = raw.slice(0, -2);\n var suffix = raw.slice(-2);\n\n if (suffix !== 'px') {\n return 0;\n }\n\n var result = Number(value);\n !!isNaN(result) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not parse value [raw: \" + raw + \", without suffix: \" + value + \"]\") : invariant(false) : void 0;\n return result;\n};\n\nvar getWindowScroll = function getWindowScroll() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n};\n\nvar offset = function offset(original, change) {\n var borderBox = original.borderBox,\n border = original.border,\n margin = original.margin,\n padding = original.padding;\n var shifted = shift(borderBox, change);\n return createBox({\n borderBox: shifted,\n border: border,\n margin: margin,\n padding: padding\n });\n};\nvar withScroll = function withScroll(original, scroll) {\n if (scroll === void 0) {\n scroll = getWindowScroll();\n }\n\n return offset(original, scroll);\n};\nvar calculateBox = function calculateBox(borderBox, styles) {\n var margin = {\n top: parse(styles.marginTop),\n right: parse(styles.marginRight),\n bottom: parse(styles.marginBottom),\n left: parse(styles.marginLeft)\n };\n var padding = {\n top: parse(styles.paddingTop),\n right: parse(styles.paddingRight),\n bottom: parse(styles.paddingBottom),\n left: parse(styles.paddingLeft)\n };\n var border = {\n top: parse(styles.borderTopWidth),\n right: parse(styles.borderRightWidth),\n bottom: parse(styles.borderBottomWidth),\n left: parse(styles.borderLeftWidth)\n };\n return createBox({\n borderBox: borderBox,\n margin: margin,\n padding: padding,\n border: border\n });\n};\nvar getBox = function getBox(el) {\n var borderBox = el.getBoundingClientRect();\n var styles = window.getComputedStyle(el);\n return calculateBox(borderBox, styles);\n};\n\nexport { calculateBox, createBox, expand, getBox, getRect, offset, shrink, withScroll };\n","var safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(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","var rafSchd = function rafSchd(fn) {\n var lastArgs = [];\n var frameId = null;\n\n var wrapperFn = function wrapperFn() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n lastArgs = args;\n\n if (frameId) {\n return;\n }\n\n frameId = requestAnimationFrame(function () {\n frameId = null;\n fn.apply(void 0, lastArgs);\n });\n };\n\n wrapperFn.cancel = function () {\n if (!frameId) {\n return;\n }\n\n cancelAnimationFrame(frameId);\n frameId = null;\n };\n\n return wrapperFn;\n};\n\nexport default rafSchd;\n","import _extends from '@babel/runtime-corejs2/helpers/esm/extends';\nimport React, { useLayoutEffect, useEffect, useRef, useContext, useState } from 'react';\nimport { useMemo, useCallback } from 'use-memo-one';\nimport _inheritsLoose from '@babel/runtime-corejs2/helpers/esm/inheritsLoose';\nimport invariant from 'tiny-invariant';\nimport { createStore as createStore$1, applyMiddleware, compose, bindActionCreators } from 'redux';\nimport { Provider, connect } from 'react-redux';\nimport { getRect, expand, offset, withScroll, createBox, getBox, calculateBox } from 'css-box-model';\nimport memoizeOne from 'memoize-one';\nimport _Object$values from '@babel/runtime-corejs2/core-js/object/values';\nimport _Object$keys from '@babel/runtime-corejs2/core-js/object/keys';\nimport _Date$now from '@babel/runtime-corejs2/core-js/date/now';\nimport rafSchd from 'raf-schd';\nimport _Object$assign from '@babel/runtime-corejs2/core-js/object/assign';\nimport _Number$isInteger from '@babel/runtime-corejs2/core-js/number/is-integer';\n\nvar isProduction = process.env.NODE_ENV === 'production';\nvar spacesAndTabs = /[ \\t]{2,}/g;\nvar lineStartWithSpaces = /^[ \\t]*/gm;\n\nvar clean = function clean(value) {\n return value.replace(spacesAndTabs, ' ').replace(lineStartWithSpaces, '').trim();\n};\n\nvar getDevMessage = function getDevMessage(message) {\n return clean(\"\\n %creact-beautiful-dnd\\n\\n %c\" + clean(message) + \"\\n\\n %c\\uD83D\\uDC77\\u200D This is a development only message. It will be removed in production builds.\\n\");\n};\n\nvar getFormattedMessage = function getFormattedMessage(message) {\n return [getDevMessage(message), 'color: #00C584; font-size: 1.2em; font-weight: bold;', 'line-height: 1.5', 'color: #723874;'];\n};\nvar isDisabledFlag = '__react-beautiful-dnd-disable-dev-warnings';\nvar warning = function warning(message) {\n var _console;\n\n if (isProduction) {\n return;\n }\n\n if (typeof window !== 'undefined' && window[isDisabledFlag]) {\n return;\n }\n\n (_console = console).warn.apply(_console, getFormattedMessage(message));\n};\n\nfunction printFatalError(error) {\n var _console;\n\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n\n (_console = console).error.apply(_console, getFormattedMessage(\"\\n An error has occurred while a drag is occurring.\\n Any existing drag will be cancelled.\\n\\n > \" + error.message + \"\\n \"));\n\n console.error('raw', error);\n}\n\nfunction shouldRecover(error) {\n return error.message.indexOf('Invariant failed') !== -1;\n}\n\nvar ErrorBoundary = function (_React$Component) {\n _inheritsLoose(ErrorBoundary, _React$Component);\n\n function ErrorBoundary() {\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.onError = void 0;\n\n _this.setOnError = function (fn) {\n _this.onError = fn;\n };\n\n _this.onFatalError = function (error) {\n printFatalError(error);\n\n if (_this.onError) {\n _this.onError();\n } else {\n process.env.NODE_ENV !== \"production\" ? warning('Could not find recovering function') : void 0;\n }\n\n if (shouldRecover(error)) {\n _this.setState({});\n }\n };\n\n return _this;\n }\n\n var _proto = ErrorBoundary.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener('error', this.onFatalError);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener('error', this.onFatalError);\n };\n\n _proto.componentDidCatch = function componentDidCatch(error) {\n this.onFatalError(error);\n\n if (!shouldRecover(error)) {\n throw error;\n }\n };\n\n _proto.render = function render() {\n return this.props.children(this.setOnError);\n };\n\n return ErrorBoundary;\n}(React.Component);\n\nvar origin = {\n x: 0,\n y: 0\n};\nvar add = function add(point1, point2) {\n return {\n x: point1.x + point2.x,\n y: point1.y + point2.y\n };\n};\nvar subtract = function subtract(point1, point2) {\n return {\n x: point1.x - point2.x,\n y: point1.y - point2.y\n };\n};\nvar isEqual = function isEqual(point1, point2) {\n return point1.x === point2.x && point1.y === point2.y;\n};\nvar negate = function negate(point) {\n return {\n x: point.x !== 0 ? -point.x : 0,\n y: point.y !== 0 ? -point.y : 0\n };\n};\nvar patch = function patch(line, value, otherValue) {\n var _ref;\n\n if (otherValue === void 0) {\n otherValue = 0;\n }\n\n return _ref = {}, _ref[line] = value, _ref[line === 'x' ? 'y' : 'x'] = otherValue, _ref;\n};\nvar distance = function distance(point1, point2) {\n return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2));\n};\nvar closest = function closest(target, points) {\n return Math.min.apply(Math, points.map(function (point) {\n return distance(target, point);\n }));\n};\nvar apply = function apply(fn) {\n return function (point) {\n return {\n x: fn(point.x),\n y: fn(point.y)\n };\n };\n};\n\nvar executeClip = (function (frame, subject) {\n var result = getRect({\n top: Math.max(subject.top, frame.top),\n right: Math.min(subject.right, frame.right),\n bottom: Math.min(subject.bottom, frame.bottom),\n left: Math.max(subject.left, frame.left)\n });\n\n if (result.width <= 0 || result.height <= 0) {\n return null;\n }\n\n return result;\n});\n\nvar isEqual$1 = function isEqual(first, second) {\n return first.top === second.top && first.right === second.right && first.bottom === second.bottom && first.left === second.left;\n};\nvar offsetByPosition = function offsetByPosition(spacing, point) {\n return {\n top: spacing.top + point.y,\n left: spacing.left + point.x,\n bottom: spacing.bottom + point.y,\n right: spacing.right + point.x\n };\n};\nvar getCorners = function getCorners(spacing) {\n return [{\n x: spacing.left,\n y: spacing.top\n }, {\n x: spacing.right,\n y: spacing.top\n }, {\n x: spacing.left,\n y: spacing.bottom\n }, {\n x: spacing.right,\n y: spacing.bottom\n }];\n};\nvar noSpacing = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\n\nvar scroll = function scroll(target, frame) {\n if (!frame) {\n return target;\n }\n\n return offsetByPosition(target, frame.scroll.diff.displacement);\n};\n\nvar increase = function increase(target, axis, withPlaceholder) {\n if (withPlaceholder && withPlaceholder.increasedBy) {\n var _extends2;\n\n return _extends({}, target, (_extends2 = {}, _extends2[axis.end] = target[axis.end] + withPlaceholder.increasedBy[axis.line], _extends2));\n }\n\n return target;\n};\n\nvar clip = function clip(target, frame) {\n if (frame && frame.shouldClipSubject) {\n return executeClip(frame.pageMarginBox, target);\n }\n\n return getRect(target);\n};\n\nvar getSubject = (function (_ref) {\n var page = _ref.page,\n withPlaceholder = _ref.withPlaceholder,\n axis = _ref.axis,\n frame = _ref.frame;\n var scrolled = scroll(page.marginBox, frame);\n var increased = increase(scrolled, axis, withPlaceholder);\n var clipped = clip(increased, frame);\n return {\n page: page,\n withPlaceholder: withPlaceholder,\n active: clipped\n };\n});\n\nvar scrollDroppable = (function (droppable, newScroll) {\n !droppable.frame ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n var scrollable = droppable.frame;\n var scrollDiff = subtract(newScroll, scrollable.scroll.initial);\n var scrollDisplacement = negate(scrollDiff);\n\n var frame = _extends({}, scrollable, {\n scroll: {\n initial: scrollable.scroll.initial,\n current: newScroll,\n diff: {\n value: scrollDiff,\n displacement: scrollDisplacement\n },\n max: scrollable.scroll.max\n }\n });\n\n var subject = getSubject({\n page: droppable.subject.page,\n withPlaceholder: droppable.subject.withPlaceholder,\n axis: droppable.axis,\n frame: frame\n });\n\n var result = _extends({}, droppable, {\n frame: frame,\n subject: subject\n });\n\n return result;\n});\n\nvar records = {};\nvar isEnabled = false;\n\nvar isTimingsEnabled = function isTimingsEnabled() {\n return isEnabled;\n};\nvar start = function start(key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!isTimingsEnabled()) {\n return;\n }\n\n var now = performance.now();\n records[key] = now;\n }\n};\nvar finish = function finish(key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!isTimingsEnabled()) {\n return;\n }\n\n var now = performance.now();\n var previous = records[key];\n\n if (!previous) {\n console.warn('cannot finish timing as no previous time found', key);\n return;\n }\n\n var result = now - previous;\n var rounded = result.toFixed(2);\n\n var style = function () {\n if (result < 12) {\n return {\n textColor: 'green',\n symbol: '✅'\n };\n }\n\n if (result < 40) {\n return {\n textColor: 'orange',\n symbol: '⚠️'\n };\n }\n\n return {\n textColor: 'red',\n symbol: '❌'\n };\n }();\n\n console.log(style.symbol + \" %cTiming %c\" + rounded + \" %cms %c\" + key, 'color: blue; font-weight: bold;', \"color: \" + style.textColor + \"; font-size: 1.1em;\", 'color: grey;', 'color: purple; font-weight: bold;');\n }\n};\n\nvar whatIsDraggedOver = (function (impact) {\n var merge = impact.merge,\n destination = impact.destination;\n\n if (destination) {\n return destination.droppableId;\n }\n\n if (merge) {\n return merge.combine.droppableId;\n }\n\n return null;\n});\n\nfunction values(map) {\n return _Object$values(map);\n}\nfunction findIndex(list, predicate) {\n if (list.findIndex) {\n return list.findIndex(predicate);\n }\n\n for (var i = 0; i < list.length; i++) {\n if (predicate(list[i])) {\n return i;\n }\n }\n\n return -1;\n}\nfunction find(list, predicate) {\n if (list.find) {\n return list.find(predicate);\n }\n\n var index = findIndex(list, predicate);\n\n if (index !== -1) {\n return list[index];\n }\n\n return undefined;\n}\n\nvar toDroppableMap = memoizeOne(function (droppables) {\n return droppables.reduce(function (previous, current) {\n previous[current.descriptor.id] = current;\n return previous;\n }, {});\n});\nvar toDraggableMap = memoizeOne(function (draggables) {\n return draggables.reduce(function (previous, current) {\n previous[current.descriptor.id] = current;\n return previous;\n }, {});\n});\nvar toDroppableList = memoizeOne(function (droppables) {\n return values(droppables);\n});\nvar toDraggableList = memoizeOne(function (draggables) {\n return values(draggables);\n});\n\nvar isWithin = (function (lowerBound, upperBound) {\n return function (value) {\n return lowerBound <= value && value <= upperBound;\n };\n});\n\nvar isPositionInFrame = (function (frame) {\n var isWithinVertical = isWithin(frame.top, frame.bottom);\n var isWithinHorizontal = isWithin(frame.left, frame.right);\n return function (point) {\n return isWithinVertical(point.y) && isWithinVertical(point.y) && isWithinHorizontal(point.x) && isWithinHorizontal(point.x);\n };\n});\n\nvar getDroppableOver = (function (_ref) {\n var target = _ref.target,\n droppables = _ref.droppables;\n var maybe = find(toDroppableList(droppables), function (droppable) {\n if (!droppable.isEnabled) {\n return false;\n }\n\n var active = droppable.subject.active;\n\n if (!active) {\n return false;\n }\n\n return isPositionInFrame(active)(target);\n });\n return maybe ? maybe.descriptor.id : null;\n});\n\nvar getDraggablesInsideDroppable = memoizeOne(function (droppableId, draggables) {\n var result = toDraggableList(draggables).filter(function (draggable) {\n return droppableId === draggable.descriptor.droppableId;\n }).sort(function (a, b) {\n return a.descriptor.index - b.descriptor.index;\n });\n return result;\n});\n\nvar withDroppableScroll = (function (droppable, point) {\n var frame = droppable.frame;\n\n if (!frame) {\n return point;\n }\n\n return add(point, frame.scroll.diff.value);\n});\n\nvar vertical = {\n direction: 'vertical',\n line: 'y',\n crossAxisLine: 'x',\n start: 'top',\n end: 'bottom',\n size: 'height',\n crossAxisStart: 'left',\n crossAxisEnd: 'right',\n crossAxisSize: 'width'\n};\nvar horizontal = {\n direction: 'horizontal',\n line: 'x',\n crossAxisLine: 'y',\n start: 'left',\n end: 'right',\n size: 'width',\n crossAxisStart: 'top',\n crossAxisEnd: 'bottom',\n crossAxisSize: 'height'\n};\n\nvar isUserMovingForward = (function (axis, direction) {\n return axis === vertical ? direction.vertical === 'down' : direction.horizontal === 'right';\n});\n\nvar didStartDisplaced = (function (draggableId, onLift) {\n return Boolean(onLift.wasDisplaced[draggableId]);\n});\n\nvar getCombinedItemDisplacement = (function (_ref) {\n var displaced = _ref.displaced,\n onLift = _ref.onLift,\n combineWith = _ref.combineWith,\n displacedBy = _ref.displacedBy;\n var isDisplaced = Boolean(displaced[combineWith]);\n\n if (didStartDisplaced(combineWith, onLift)) {\n return isDisplaced ? origin : negate(displacedBy.point);\n }\n\n return isDisplaced ? displacedBy.point : origin;\n});\n\nvar getWhenEntered = function getWhenEntered(id, current, oldMerge) {\n if (!oldMerge) {\n return current;\n }\n\n if (id !== oldMerge.combine.draggableId) {\n return current;\n }\n\n return oldMerge.whenEntered;\n};\n\nvar isCombiningWith = function isCombiningWith(_ref) {\n var id = _ref.id,\n currentCenter = _ref.currentCenter,\n axis = _ref.axis,\n borderBox = _ref.borderBox,\n displaceBy = _ref.displaceBy,\n currentUserDirection = _ref.currentUserDirection,\n oldMerge = _ref.oldMerge;\n var start = borderBox[axis.start] + displaceBy[axis.line];\n var end = borderBox[axis.end] + displaceBy[axis.line];\n var size = borderBox[axis.size];\n var twoThirdsOfSize = size * 0.666;\n var whenEntered = getWhenEntered(id, currentUserDirection, oldMerge);\n var isMovingForward = isUserMovingForward(axis, whenEntered);\n var targetCenter = currentCenter[axis.line];\n\n if (isMovingForward) {\n return isWithin(start, start + twoThirdsOfSize)(targetCenter);\n }\n\n return isWithin(end - twoThirdsOfSize, end)(targetCenter);\n};\n\nvar getCombineImpact = (function (_ref2) {\n var currentCenter = _ref2.pageBorderBoxCenterWithDroppableScrollChange,\n previousImpact = _ref2.previousImpact,\n destination = _ref2.destination,\n insideDestinationWithoutDraggable = _ref2.insideDestinationWithoutDraggable,\n userDirection = _ref2.userDirection,\n onLift = _ref2.onLift;\n\n if (!destination.isCombineEnabled) {\n return null;\n }\n\n var axis = destination.axis;\n var map = previousImpact.movement.map;\n var canBeDisplacedBy = previousImpact.movement.displacedBy;\n var oldMerge = previousImpact.merge;\n var target = find(insideDestinationWithoutDraggable, function (child) {\n var id = child.descriptor.id;\n var displaceBy = getCombinedItemDisplacement({\n displaced: map,\n onLift: onLift,\n combineWith: id,\n displacedBy: canBeDisplacedBy\n });\n return isCombiningWith({\n id: id,\n currentCenter: currentCenter,\n axis: axis,\n borderBox: child.page.borderBox,\n displaceBy: displaceBy,\n currentUserDirection: userDirection,\n oldMerge: oldMerge\n });\n });\n\n if (!target) {\n return null;\n }\n\n var merge = {\n whenEntered: getWhenEntered(target.descriptor.id, userDirection, oldMerge),\n combine: {\n draggableId: target.descriptor.id,\n droppableId: destination.descriptor.id\n }\n };\n\n var withMerge = _extends({}, previousImpact, {\n destination: null,\n merge: merge\n });\n\n return withMerge;\n});\n\nvar isPartiallyVisibleThroughFrame = (function (frame) {\n var isWithinVertical = isWithin(frame.top, frame.bottom);\n var isWithinHorizontal = isWithin(frame.left, frame.right);\n return function (subject) {\n var isContained = isWithinVertical(subject.top) && isWithinVertical(subject.bottom) && isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right);\n\n if (isContained) {\n return true;\n }\n\n var isPartiallyVisibleVertically = isWithinVertical(subject.top) || isWithinVertical(subject.bottom);\n var isPartiallyVisibleHorizontally = isWithinHorizontal(subject.left) || isWithinHorizontal(subject.right);\n var isPartiallyContained = isPartiallyVisibleVertically && isPartiallyVisibleHorizontally;\n\n if (isPartiallyContained) {\n return true;\n }\n\n var isBiggerVertically = subject.top < frame.top && subject.bottom > frame.bottom;\n var isBiggerHorizontally = subject.left < frame.left && subject.right > frame.right;\n var isTargetBiggerThanFrame = isBiggerVertically && isBiggerHorizontally;\n\n if (isTargetBiggerThanFrame) {\n return true;\n }\n\n var isTargetBiggerOnOneAxis = isBiggerVertically && isPartiallyVisibleHorizontally || isBiggerHorizontally && isPartiallyVisibleVertically;\n return isTargetBiggerOnOneAxis;\n };\n});\n\nvar isTotallyVisibleThroughFrame = (function (frame) {\n var isWithinVertical = isWithin(frame.top, frame.bottom);\n var isWithinHorizontal = isWithin(frame.left, frame.right);\n return function (subject) {\n var isContained = isWithinVertical(subject.top) && isWithinVertical(subject.bottom) && isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right);\n return isContained;\n };\n});\n\nvar isTotallyVisibleThroughFrameOnAxis = (function (axis) {\n return function (frame) {\n var isWithinVertical = isWithin(frame.top, frame.bottom);\n var isWithinHorizontal = isWithin(frame.left, frame.right);\n return function (subject) {\n if (axis === vertical) {\n return isWithinVertical(subject.top) && isWithinVertical(subject.bottom);\n }\n\n return isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right);\n };\n };\n});\n\nvar getDroppableDisplaced = function getDroppableDisplaced(target, destination) {\n var displacement = destination.frame ? destination.frame.scroll.diff.displacement : origin;\n return offsetByPosition(target, displacement);\n};\n\nvar isVisibleInDroppable = function isVisibleInDroppable(target, destination, isVisibleThroughFrameFn) {\n if (!destination.subject.active) {\n return false;\n }\n\n return isVisibleThroughFrameFn(destination.subject.active)(target);\n};\n\nvar isVisibleInViewport = function isVisibleInViewport(target, viewport, isVisibleThroughFrameFn) {\n return isVisibleThroughFrameFn(viewport)(target);\n};\n\nvar isVisible = function isVisible(_ref) {\n var toBeDisplaced = _ref.target,\n destination = _ref.destination,\n viewport = _ref.viewport,\n withDroppableDisplacement = _ref.withDroppableDisplacement,\n isVisibleThroughFrameFn = _ref.isVisibleThroughFrameFn;\n var displacedTarget = withDroppableDisplacement ? getDroppableDisplaced(toBeDisplaced, destination) : toBeDisplaced;\n return isVisibleInDroppable(displacedTarget, destination, isVisibleThroughFrameFn) && isVisibleInViewport(displacedTarget, viewport, isVisibleThroughFrameFn);\n};\n\nvar isPartiallyVisible = function isPartiallyVisible(args) {\n return isVisible(_extends({}, args, {\n isVisibleThroughFrameFn: isPartiallyVisibleThroughFrame\n }));\n};\nvar isTotallyVisible = function isTotallyVisible(args) {\n return isVisible(_extends({}, args, {\n isVisibleThroughFrameFn: isTotallyVisibleThroughFrame\n }));\n};\nvar isTotallyVisibleOnAxis = function isTotallyVisibleOnAxis(args) {\n return isVisible(_extends({}, args, {\n isVisibleThroughFrameFn: isTotallyVisibleThroughFrameOnAxis(args.destination.axis)\n }));\n};\n\nvar getShouldAnimate = function getShouldAnimate(forceShouldAnimate, isVisible, previous) {\n if (typeof forceShouldAnimate === 'boolean') {\n return forceShouldAnimate;\n }\n\n if (!isVisible) {\n return false;\n }\n\n if (!previous) {\n return true;\n }\n\n return previous.shouldAnimate;\n};\n\nvar getTarget = function getTarget(draggable, onLift) {\n var marginBox = draggable.page.marginBox;\n\n if (!didStartDisplaced(draggable.descriptor.id, onLift)) {\n return marginBox;\n }\n\n var expandBy = {\n top: onLift.displacedBy.point.y,\n right: 0,\n bottom: 0,\n left: onLift.displacedBy.point.x\n };\n return getRect(expand(marginBox, expandBy));\n};\n\nvar getDisplacement = (function (_ref) {\n var draggable = _ref.draggable,\n destination = _ref.destination,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport,\n onLift = _ref.onLift,\n forceShouldAnimate = _ref.forceShouldAnimate;\n var id = draggable.descriptor.id;\n var map = previousImpact.movement.map;\n var target = getTarget(draggable, onLift);\n var isVisible = isPartiallyVisible({\n target: target,\n destination: destination,\n viewport: viewport,\n withDroppableDisplacement: true\n });\n var shouldAnimate = getShouldAnimate(forceShouldAnimate, isVisible, map[id]);\n var displacement = {\n draggableId: id,\n isVisible: isVisible,\n shouldAnimate: shouldAnimate\n };\n return displacement;\n});\n\nvar getDisplacementMap = memoizeOne(function (displaced) {\n return displaced.reduce(function (map, displacement) {\n map[displacement.draggableId] = displacement;\n return map;\n }, {});\n});\n\nvar getDisplacedBy = memoizeOne(function (axis, displaceBy) {\n var displacement = displaceBy[axis.line];\n return {\n value: displacement,\n point: patch(axis.line, displacement)\n };\n});\n\nvar getReorderImpact = (function (_ref) {\n var currentCenter = _ref.pageBorderBoxCenterWithDroppableScrollChange,\n draggable = _ref.draggable,\n destination = _ref.destination,\n insideDestinationWithoutDraggable = _ref.insideDestinationWithoutDraggable,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport,\n userDirection = _ref.userDirection,\n onLift = _ref.onLift;\n var axis = destination.axis;\n var isMovingForward = isUserMovingForward(destination.axis, userDirection);\n var displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy);\n var targetCenter = currentCenter[axis.line];\n var displacement = displacedBy.value;\n var displaced = insideDestinationWithoutDraggable.filter(function (child) {\n var borderBox = child.page.borderBox;\n var start = borderBox[axis.start];\n var end = borderBox[axis.end];\n var didStartDisplaced$1 = didStartDisplaced(child.descriptor.id, onLift);\n\n if (isMovingForward) {\n if (didStartDisplaced$1) {\n return targetCenter < start;\n }\n\n return targetCenter < start + displacement;\n }\n\n if (didStartDisplaced$1) {\n return targetCenter <= end - displacement;\n }\n\n return targetCenter <= end;\n }).map(function (dimension) {\n return getDisplacement({\n draggable: dimension,\n destination: destination,\n previousImpact: previousImpact,\n viewport: viewport.frame,\n onLift: onLift\n });\n });\n var newIndex = insideDestinationWithoutDraggable.length - displaced.length;\n var movement = {\n displacedBy: displacedBy,\n displaced: displaced,\n map: getDisplacementMap(displaced)\n };\n var impact = {\n movement: movement,\n destination: {\n droppableId: destination.descriptor.id,\n index: newIndex\n },\n merge: null\n };\n return impact;\n});\n\nvar noDisplacedBy = {\n point: origin,\n value: 0\n};\nvar noMovement = {\n displaced: [],\n map: {},\n displacedBy: noDisplacedBy\n};\nvar noImpact = {\n movement: noMovement,\n destination: null,\n merge: null\n};\n\nvar removeDraggableFromList = memoizeOne(function (remove, list) {\n return list.filter(function (item) {\n return item.descriptor.id !== remove.descriptor.id;\n });\n});\n\nvar getDragImpact = (function (_ref) {\n var pageBorderBoxCenter = _ref.pageBorderBoxCenter,\n draggable = _ref.draggable,\n draggables = _ref.draggables,\n droppables = _ref.droppables,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport,\n userDirection = _ref.userDirection,\n onLift = _ref.onLift;\n var destinationId = getDroppableOver({\n target: pageBorderBoxCenter,\n droppables: droppables\n });\n\n if (!destinationId) {\n return noImpact;\n }\n\n var destination = droppables[destinationId];\n var insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables);\n var insideDestinationWithoutDraggable = removeDraggableFromList(draggable, insideDestination);\n var pageBorderBoxCenterWithDroppableScrollChange = withDroppableScroll(destination, pageBorderBoxCenter);\n var withMerge = getCombineImpact({\n pageBorderBoxCenterWithDroppableScrollChange: pageBorderBoxCenterWithDroppableScrollChange,\n previousImpact: previousImpact,\n destination: destination,\n insideDestinationWithoutDraggable: insideDestinationWithoutDraggable,\n userDirection: userDirection,\n onLift: onLift\n });\n\n if (withMerge) {\n return withMerge;\n }\n\n return getReorderImpact({\n pageBorderBoxCenterWithDroppableScrollChange: pageBorderBoxCenterWithDroppableScrollChange,\n destination: destination,\n draggable: draggable,\n insideDestinationWithoutDraggable: insideDestinationWithoutDraggable,\n previousImpact: previousImpact,\n viewport: viewport,\n userDirection: userDirection,\n onLift: onLift\n });\n});\n\nvar getHomeLocation = (function (descriptor) {\n return {\n index: descriptor.index,\n droppableId: descriptor.droppableId\n };\n});\n\nvar getHomeOnLift = (function (_ref) {\n var draggable = _ref.draggable,\n home = _ref.home,\n draggables = _ref.draggables,\n viewport = _ref.viewport;\n var displacedBy = getDisplacedBy(home.axis, draggable.displaceBy);\n var insideHome = getDraggablesInsideDroppable(home.descriptor.id, draggables);\n var originallyDisplaced = insideHome.slice(draggable.descriptor.index + 1);\n var wasDisplaced = originallyDisplaced.reduce(function (previous, item) {\n previous[item.descriptor.id] = true;\n return previous;\n }, {});\n var onLift = {\n displacedBy: displacedBy,\n wasDisplaced: wasDisplaced\n };\n var displaced = originallyDisplaced.map(function (dimension) {\n return getDisplacement({\n draggable: dimension,\n destination: home,\n previousImpact: noImpact,\n viewport: viewport.frame,\n forceShouldAnimate: false,\n onLift: onLift\n });\n });\n var movement = {\n displaced: displaced,\n map: getDisplacementMap(displaced),\n displacedBy: displacedBy\n };\n var impact = {\n movement: movement,\n destination: getHomeLocation(draggable.descriptor),\n merge: null\n };\n return {\n impact: impact,\n onLift: onLift\n };\n});\n\nvar getDragPositions = (function (_ref) {\n var oldInitial = _ref.initial,\n oldCurrent = _ref.current,\n oldClientBorderBoxCenter = _ref.oldClientBorderBoxCenter,\n newClientBorderBoxCenter = _ref.newClientBorderBoxCenter,\n viewport = _ref.viewport;\n var shift = subtract(newClientBorderBoxCenter, oldClientBorderBoxCenter);\n\n var initial = function () {\n var client = {\n selection: add(oldInitial.client.selection, shift),\n borderBoxCenter: newClientBorderBoxCenter,\n offset: origin\n };\n var page = {\n selection: add(client.selection, viewport.scroll.initial),\n borderBoxCenter: add(client.selection, viewport.scroll.initial)\n };\n return {\n client: client,\n page: page\n };\n }();\n\n var current = function () {\n var reverse = negate(shift);\n var offset = add(oldCurrent.client.offset, reverse);\n var client = {\n selection: add(initial.client.selection, offset),\n borderBoxCenter: add(initial.client.borderBoxCenter, offset),\n offset: offset\n };\n var page = {\n selection: add(client.selection, viewport.scroll.current),\n borderBoxCenter: add(client.borderBoxCenter, viewport.scroll.current)\n };\n !isEqual(oldCurrent.client.borderBoxCenter, client.borderBoxCenter) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"\\n Incorrect new client center position.\\n Expected (\" + oldCurrent.client.borderBoxCenter.x + \", \" + oldCurrent.client.borderBoxCenter.y + \")\\n to equal (\" + client.borderBoxCenter.x + \", \" + client.borderBoxCenter.y + \")\\n \") : invariant(false) : void 0;\n return {\n client: client,\n page: page\n };\n }();\n\n return {\n current: current,\n initial: initial\n };\n});\n\nvar offsetDraggable = (function (_ref) {\n var draggable = _ref.draggable,\n offset$1 = _ref.offset,\n initialWindowScroll = _ref.initialWindowScroll;\n var client = offset(draggable.client, offset$1);\n var page = withScroll(client, initialWindowScroll);\n\n var moved = _extends({}, draggable, {\n placeholder: _extends({}, draggable.placeholder, {\n client: client\n }),\n client: client,\n page: page\n });\n\n return moved;\n});\n\nvar adjustExistingForAdditionsAndRemovals = (function (_ref) {\n var existing = _ref.existing,\n droppables = _ref.droppables,\n addedDraggables = _ref.additions,\n removedDraggables = _ref.removals,\n viewport = _ref.viewport;\n var shifted = {};\n toDroppableList(droppables).forEach(function (droppable) {\n var axis = droppable.axis;\n var original = getDraggablesInsideDroppable(droppable.descriptor.id, existing);\n var toShift = {};\n\n var addShift = function addShift(id, shift) {\n var previous = toShift[id];\n\n if (!previous) {\n toShift[id] = shift;\n return;\n }\n\n toShift[id] = {\n indexChange: previous.indexChange + shift.indexChange,\n offset: add(previous.offset, shift.offset)\n };\n };\n\n var removals = toDraggableMap(removedDraggables.map(function (id) {\n var item = existing[id];\n !item ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not find removed draggable \\\"\" + id + \"\\\"\") : invariant(false) : void 0;\n return item;\n }).filter(function (draggable) {\n return draggable.descriptor.droppableId === droppable.descriptor.id;\n }));\n var withRemovals = original.filter(function (item, index) {\n var isBeingRemoved = Boolean(removals[item.descriptor.id]);\n\n if (!isBeingRemoved) {\n return true;\n }\n\n var offset = negate(patch(axis.line, item.displaceBy[axis.line]));\n original.slice(index).forEach(function (sibling) {\n if (removals[sibling.descriptor.id]) {\n return;\n }\n\n addShift(sibling.descriptor.id, {\n indexChange: -1,\n offset: offset\n });\n });\n return false;\n });\n var additions = addedDraggables.filter(function (draggable) {\n return draggable.descriptor.droppableId === droppable.descriptor.id;\n });\n var withAdditions = withRemovals.slice(0);\n additions.forEach(function (item) {\n withAdditions.splice(item.descriptor.index, 0, item);\n });\n var additionMap = toDraggableMap(additions);\n withAdditions.forEach(function (item, index) {\n var wasAdded = Boolean(additionMap[item.descriptor.id]);\n\n if (!wasAdded) {\n return;\n }\n\n var offset = patch(axis.line, item.client.marginBox[axis.size]);\n withAdditions.slice(index).forEach(function (sibling) {\n if (additionMap[sibling.descriptor.id]) {\n return;\n }\n\n addShift(sibling.descriptor.id, {\n indexChange: 1,\n offset: offset\n });\n });\n });\n withAdditions.forEach(function (item) {\n if (additionMap[item.descriptor.id]) {\n return;\n }\n\n var shift = toShift[item.descriptor.id];\n\n if (!shift) {\n return;\n }\n\n var moved = offsetDraggable({\n draggable: item,\n offset: shift.offset,\n initialWindowScroll: viewport.scroll.initial\n });\n var index = item.descriptor.index + shift.indexChange;\n\n var updated = _extends({}, moved, {\n descriptor: _extends({}, item.descriptor, {\n index: index\n })\n });\n\n shifted[moved.descriptor.id] = updated;\n });\n });\n\n var map = _extends({}, existing, shifted);\n\n return map;\n});\n\nvar adjustAdditionsForScrollChanges = (function (_ref) {\n var additions = _ref.additions,\n updatedDroppables = _ref.updatedDroppables,\n viewport = _ref.viewport;\n var windowScrollChange = viewport.scroll.diff.value;\n return additions.map(function (draggable) {\n var droppableId = draggable.descriptor.droppableId;\n var modified = updatedDroppables[droppableId];\n var frame = modified.frame;\n !frame ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n var droppableScrollChange = frame.scroll.diff.value;\n var totalChange = add(windowScrollChange, droppableScrollChange);\n var moved = offsetDraggable({\n draggable: draggable,\n offset: totalChange,\n initialWindowScroll: viewport.scroll.initial\n });\n return moved;\n });\n});\n\nvar adjustAdditionsForCollapsedHome = (function (_ref) {\n var additions = _ref.additions,\n dragging = _ref.dragging,\n home = _ref.home,\n viewport = _ref.viewport;\n var displacedBy = getDisplacedBy(home.axis, dragging.displaceBy);\n return additions.map(function (draggable) {\n if (draggable.descriptor.droppableId !== home.descriptor.id) {\n return draggable;\n }\n\n if (draggable.descriptor.index < dragging.descriptor.index) {\n return draggable;\n }\n\n return offsetDraggable({\n draggable: draggable,\n offset: displacedBy.point,\n initialWindowScroll: viewport.scroll.initial\n });\n });\n});\n\nvar updateDraggables = (function (_ref) {\n var updatedDroppables = _ref.updatedDroppables,\n criticalId = _ref.criticalId,\n unmodifiedExisting = _ref.existing,\n unmodifiedAdditions = _ref.additions,\n removals = _ref.removals,\n viewport = _ref.viewport;\n var existing = adjustExistingForAdditionsAndRemovals({\n droppables: updatedDroppables,\n existing: unmodifiedExisting,\n additions: unmodifiedAdditions,\n removals: removals,\n viewport: viewport\n });\n var dragging = existing[criticalId];\n var home = updatedDroppables[dragging.descriptor.droppableId];\n var scrolledAdditions = adjustAdditionsForScrollChanges({\n additions: unmodifiedAdditions,\n updatedDroppables: updatedDroppables,\n viewport: viewport\n });\n var additions = adjustAdditionsForCollapsedHome({\n additions: scrolledAdditions,\n dragging: dragging,\n home: home,\n viewport: viewport\n });\n\n var map = _extends({}, existing, toDraggableMap(additions));\n\n removals.forEach(function (id) {\n delete map[id];\n });\n return map;\n});\n\nvar getMaxScroll = (function (_ref) {\n var scrollHeight = _ref.scrollHeight,\n scrollWidth = _ref.scrollWidth,\n height = _ref.height,\n width = _ref.width;\n var maxScroll = subtract({\n x: scrollWidth,\n y: scrollHeight\n }, {\n x: width,\n y: height\n });\n var adjustedMaxScroll = {\n x: Math.max(0, maxScroll.x),\n y: Math.max(0, maxScroll.y)\n };\n return adjustedMaxScroll;\n});\n\nvar getDroppableDimension = (function (_ref) {\n var descriptor = _ref.descriptor,\n isEnabled = _ref.isEnabled,\n isCombineEnabled = _ref.isCombineEnabled,\n isFixedOnPage = _ref.isFixedOnPage,\n direction = _ref.direction,\n client = _ref.client,\n page = _ref.page,\n closest = _ref.closest;\n\n var frame = function () {\n if (!closest) {\n return null;\n }\n\n var scrollSize = closest.scrollSize,\n frameClient = closest.client;\n var maxScroll = getMaxScroll({\n scrollHeight: scrollSize.scrollHeight,\n scrollWidth: scrollSize.scrollWidth,\n height: frameClient.paddingBox.height,\n width: frameClient.paddingBox.width\n });\n return {\n pageMarginBox: closest.page.marginBox,\n frameClient: frameClient,\n scrollSize: scrollSize,\n shouldClipSubject: closest.shouldClipSubject,\n scroll: {\n initial: closest.scroll,\n current: closest.scroll,\n max: maxScroll,\n diff: {\n value: origin,\n displacement: origin\n }\n }\n };\n }();\n\n var axis = direction === 'vertical' ? vertical : horizontal;\n var subject = getSubject({\n page: page,\n withPlaceholder: null,\n axis: axis,\n frame: frame\n });\n var dimension = {\n descriptor: descriptor,\n isCombineEnabled: isCombineEnabled,\n isFixedOnPage: isFixedOnPage,\n axis: axis,\n isEnabled: isEnabled,\n client: client,\n page: page,\n frame: frame,\n subject: subject\n };\n return dimension;\n});\n\nvar isHomeOf = (function (draggable, destination) {\n return draggable.descriptor.droppableId === destination.descriptor.id;\n});\n\nvar getRequiredGrowthForPlaceholder = function getRequiredGrowthForPlaceholder(droppable, placeholderSize, draggables) {\n var axis = droppable.axis;\n var availableSpace = droppable.subject.page.contentBox[axis.size];\n var insideDroppable = getDraggablesInsideDroppable(droppable.descriptor.id, draggables);\n var spaceUsed = insideDroppable.reduce(function (sum, dimension) {\n return sum + dimension.client.marginBox[axis.size];\n }, 0);\n var requiredSpace = spaceUsed + placeholderSize[axis.line];\n var needsToGrowBy = requiredSpace - availableSpace;\n\n if (needsToGrowBy <= 0) {\n return null;\n }\n\n return patch(axis.line, needsToGrowBy);\n};\n\nvar withMaxScroll = function withMaxScroll(frame, max) {\n return _extends({}, frame, {\n scroll: _extends({}, frame.scroll, {\n max: max\n })\n });\n};\n\nvar addPlaceholder = function addPlaceholder(droppable, draggable, draggables) {\n var frame = droppable.frame;\n !!isHomeOf(draggable, droppable) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Should not add placeholder space to home list') : invariant(false) : void 0;\n !!droppable.subject.withPlaceholder ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot add placeholder size to a subject when it already has one') : invariant(false) : void 0;\n var placeholderSize = getDisplacedBy(droppable.axis, draggable.displaceBy).point;\n var requiredGrowth = getRequiredGrowthForPlaceholder(droppable, placeholderSize, draggables);\n var added = {\n placeholderSize: placeholderSize,\n increasedBy: requiredGrowth,\n oldFrameMaxScroll: droppable.frame ? droppable.frame.scroll.max : null\n };\n\n if (!frame) {\n var _subject = getSubject({\n page: droppable.subject.page,\n withPlaceholder: added,\n axis: droppable.axis,\n frame: droppable.frame\n });\n\n return _extends({}, droppable, {\n subject: _subject\n });\n }\n\n var maxScroll = requiredGrowth ? add(frame.scroll.max, requiredGrowth) : frame.scroll.max;\n var newFrame = withMaxScroll(frame, maxScroll);\n var subject = getSubject({\n page: droppable.subject.page,\n withPlaceholder: added,\n axis: droppable.axis,\n frame: newFrame\n });\n return _extends({}, droppable, {\n subject: subject,\n frame: newFrame\n });\n};\nvar removePlaceholder = function removePlaceholder(droppable) {\n var added = droppable.subject.withPlaceholder;\n !added ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot remove placeholder form subject when there was none') : invariant(false) : void 0;\n var frame = droppable.frame;\n\n if (!frame) {\n var _subject2 = getSubject({\n page: droppable.subject.page,\n axis: droppable.axis,\n frame: null,\n withPlaceholder: null\n });\n\n return _extends({}, droppable, {\n subject: _subject2\n });\n }\n\n var oldMaxScroll = added.oldFrameMaxScroll;\n !oldMaxScroll ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected droppable with frame to have old max frame scroll when removing placeholder') : invariant(false) : void 0;\n var newFrame = withMaxScroll(frame, oldMaxScroll);\n var subject = getSubject({\n page: droppable.subject.page,\n axis: droppable.axis,\n frame: newFrame,\n withPlaceholder: null\n });\n return _extends({}, droppable, {\n subject: subject,\n frame: newFrame\n });\n};\n\nvar getFrame = (function (droppable) {\n var frame = droppable.frame;\n !frame ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected Droppable to have a frame') : invariant(false) : void 0;\n return frame;\n});\n\nvar throwIfSpacingChange = function throwIfSpacingChange(old, fresh) {\n if (process.env.NODE_ENV !== 'production') {\n var getMessage = function getMessage(spacingType) {\n return \"Cannot change the \" + spacingType + \" of a Droppable during a drag\";\n };\n\n !isEqual$1(old.margin, fresh.margin) ? process.env.NODE_ENV !== \"production\" ? invariant(false, getMessage('margin')) : invariant(false) : void 0;\n !isEqual$1(old.border, fresh.border) ? process.env.NODE_ENV !== \"production\" ? invariant(false, getMessage('border')) : invariant(false) : void 0;\n !isEqual$1(old.padding, fresh.padding) ? process.env.NODE_ENV !== \"production\" ? invariant(false, getMessage('padding')) : invariant(false) : void 0;\n }\n};\n\nvar adjustBorderBoxSize = function adjustBorderBoxSize(axis, old, fresh) {\n return {\n top: old.top,\n left: old.left,\n right: old.left + fresh.width,\n bottom: old.top + fresh.height\n };\n};\n\nvar updateDroppables = (function (_ref) {\n var modified = _ref.modified,\n existing = _ref.existing,\n viewport = _ref.viewport;\n\n if (!modified.length) {\n return existing;\n }\n\n var adjusted = modified.map(function (provided) {\n var raw = existing[provided.descriptor.id];\n !raw ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not locate droppable in existing droppables') : invariant(false) : void 0;\n var hasPlaceholder = Boolean(raw.subject.withPlaceholder);\n var dimension = hasPlaceholder ? removePlaceholder(raw) : raw;\n var oldClient = dimension.client;\n var newClient = provided.client;\n var oldScrollable = getFrame(dimension);\n var newScrollable = getFrame(provided);\n\n if (process.env.NODE_ENV !== 'production') {\n throwIfSpacingChange(dimension.client, provided.client);\n throwIfSpacingChange(oldScrollable.frameClient, newScrollable.frameClient);\n var isFrameEqual = oldScrollable.frameClient.borderBox.height === newScrollable.frameClient.borderBox.height && oldScrollable.frameClient.borderBox.width === newScrollable.frameClient.borderBox.width;\n !isFrameEqual ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'The width and height of your Droppable scroll container cannot change when adding or removing Draggables during a drag') : invariant(false) : void 0;\n }\n\n var client = createBox({\n borderBox: adjustBorderBoxSize(dimension.axis, oldClient.borderBox, newClient.borderBox),\n margin: oldClient.margin,\n border: oldClient.border,\n padding: oldClient.padding\n });\n var closest = {\n client: oldScrollable.frameClient,\n page: withScroll(oldScrollable.frameClient, viewport.scroll.initial),\n shouldClipSubject: oldScrollable.shouldClipSubject,\n scrollSize: newScrollable.scrollSize,\n scroll: oldScrollable.scroll.initial\n };\n var withSizeChanged = getDroppableDimension({\n descriptor: provided.descriptor,\n isEnabled: provided.isEnabled,\n isCombineEnabled: provided.isCombineEnabled,\n isFixedOnPage: provided.isFixedOnPage,\n direction: provided.axis.direction,\n client: client,\n page: withScroll(client, viewport.scroll.initial),\n closest: closest\n });\n var scrolled = scrollDroppable(withSizeChanged, newScrollable.scroll.current);\n return scrolled;\n });\n\n var result = _extends({}, existing, toDroppableMap(adjusted));\n\n return result;\n});\n\nvar withNoAnimatedDisplacement = (function (impact) {\n var displaced = impact.movement.displaced;\n\n if (!displaced.length) {\n return impact;\n }\n\n var withoutAnimation = displaced.map(function (displacement) {\n if (!displacement.isVisible) {\n return displacement;\n }\n\n if (!displacement.shouldAnimate) {\n return displacement;\n }\n\n return _extends({}, displacement, {\n shouldAnimate: false\n });\n });\n\n var result = _extends({}, impact, {\n movement: _extends({}, impact.movement, {\n displaced: withoutAnimation,\n map: getDisplacementMap(withoutAnimation)\n })\n });\n\n return result;\n});\n\nvar patchDroppableMap = (function (droppables, updated) {\n var _extends2;\n\n return _extends({}, droppables, (_extends2 = {}, _extends2[updated.descriptor.id] = updated, _extends2));\n});\n\nvar clearUnusedPlaceholder = function clearUnusedPlaceholder(_ref) {\n var previousImpact = _ref.previousImpact,\n impact = _ref.impact,\n droppables = _ref.droppables;\n var last = whatIsDraggedOver(previousImpact);\n var now = whatIsDraggedOver(impact);\n\n if (!last) {\n return droppables;\n }\n\n if (last === now) {\n return droppables;\n }\n\n var lastDroppable = droppables[last];\n\n if (!lastDroppable.subject.withPlaceholder) {\n return droppables;\n }\n\n var updated = removePlaceholder(lastDroppable);\n return patchDroppableMap(droppables, updated);\n};\n\nvar recomputePlaceholders = (function (_ref2) {\n var draggable = _ref2.draggable,\n draggables = _ref2.draggables,\n droppables = _ref2.droppables,\n previousImpact = _ref2.previousImpact,\n impact = _ref2.impact;\n var cleaned = clearUnusedPlaceholder({\n previousImpact: previousImpact,\n impact: impact,\n droppables: droppables\n });\n var isOver = whatIsDraggedOver(impact);\n\n if (!isOver) {\n return cleaned;\n }\n\n var droppable = droppables[isOver];\n\n if (isHomeOf(draggable, droppable)) {\n return cleaned;\n }\n\n if (droppable.subject.withPlaceholder) {\n return cleaned;\n }\n\n var patched = addPlaceholder(droppable, draggable, draggables);\n return patchDroppableMap(cleaned, patched);\n});\n\nvar timingsKey = 'Processing dynamic changes';\nvar publishWhileDragging = (function (_ref) {\n var _extends2, _extends3;\n\n var state = _ref.state,\n published = _ref.published;\n start(timingsKey);\n var updatedDroppables = updateDroppables({\n modified: published.modified,\n existing: state.dimensions.droppables,\n viewport: state.viewport\n });\n var draggables = updateDraggables({\n updatedDroppables: updatedDroppables,\n criticalId: state.critical.draggable.id,\n existing: state.dimensions.draggables,\n additions: published.additions,\n removals: published.removals,\n viewport: state.viewport\n });\n var critical = {\n draggable: draggables[state.critical.draggable.id].descriptor,\n droppable: updatedDroppables[state.critical.droppable.id].descriptor\n };\n var original = state.dimensions.draggables[critical.draggable.id];\n var updated = draggables[critical.draggable.id];\n var droppables = recomputePlaceholders({\n draggable: updated,\n draggables: draggables,\n droppables: updatedDroppables,\n previousImpact: state.impact,\n impact: state.impact\n });\n var dimensions = {\n draggables: draggables,\n droppables: droppables\n };\n\n var _getDragPositions = getDragPositions({\n initial: state.initial,\n current: state.current,\n oldClientBorderBoxCenter: original.client.borderBox.center,\n newClientBorderBoxCenter: updated.client.borderBox.center,\n viewport: state.viewport\n }),\n initial = _getDragPositions.initial,\n current = _getDragPositions.current;\n\n var _getHomeOnLift = getHomeOnLift({\n draggable: updated,\n home: dimensions.droppables[critical.droppable.id],\n draggables: dimensions.draggables,\n viewport: state.viewport\n }),\n homeImpact = _getHomeOnLift.impact,\n onLift = _getHomeOnLift.onLift;\n\n var impact = withNoAnimatedDisplacement(getDragImpact({\n pageBorderBoxCenter: current.page.borderBoxCenter,\n draggable: updated,\n draggables: dimensions.draggables,\n droppables: dimensions.droppables,\n previousImpact: homeImpact,\n viewport: state.viewport,\n userDirection: state.userDirection,\n onLift: onLift\n }));\n var isOrphaned = Boolean(state.movementMode === 'SNAP' && !whatIsDraggedOver(impact));\n !!isOrphaned ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Dragging item no longer has a valid merge/destination after a dynamic update. This is not supported') : invariant(false) : void 0;\n finish(timingsKey);\n\n var draggingState = _extends({\n phase: 'DRAGGING'\n }, state, (_extends2 = {}, _extends2[\"phase\"] = 'DRAGGING', _extends2.critical = critical, _extends2.current = current, _extends2.initial = initial, _extends2.impact = impact, _extends2.dimensions = dimensions, _extends2.onLift = onLift, _extends2.onLiftImpact = homeImpact, _extends2.forceShouldAnimate = false, _extends2));\n\n if (state.phase === 'COLLECTING') {\n return draggingState;\n }\n\n var dropPending = _extends({\n phase: 'DROP_PENDING'\n }, draggingState, (_extends3 = {}, _extends3[\"phase\"] = 'DROP_PENDING', _extends3.reason = state.reason, _extends3.isWaiting = false, _extends3));\n\n return dropPending;\n});\n\nvar forward = {\n vertical: 'down',\n horizontal: 'right'\n};\nvar backward = {\n vertical: 'up',\n horizontal: 'left'\n};\n\nvar moveToNextCombine = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n isInHomeList = _ref.isInHomeList,\n draggable = _ref.draggable,\n destination = _ref.destination,\n originalInsideDestination = _ref.insideDestination,\n previousImpact = _ref.previousImpact;\n\n if (!destination.isCombineEnabled) {\n return null;\n }\n\n if (previousImpact.merge) {\n return null;\n }\n\n var location = previousImpact.destination;\n !location ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Need a previous location to move from into a combine') : invariant(false) : void 0;\n var currentIndex = location.index;\n\n var currentInsideDestination = function () {\n var shallow = originalInsideDestination.slice();\n\n if (isInHomeList) {\n shallow.splice(draggable.descriptor.index, 1);\n }\n\n shallow.splice(location.index, 0, draggable);\n return shallow;\n }();\n\n var targetIndex = isMovingForward ? currentIndex + 1 : currentIndex - 1;\n\n if (targetIndex < 0) {\n return null;\n }\n\n if (targetIndex > currentInsideDestination.length - 1) {\n return null;\n }\n\n var target = currentInsideDestination[targetIndex];\n !(target !== draggable) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot combine with self') : invariant(false) : void 0;\n var merge = {\n whenEntered: isMovingForward ? forward : backward,\n combine: {\n draggableId: target.descriptor.id,\n droppableId: destination.descriptor.id\n }\n };\n var impact = {\n movement: previousImpact.movement,\n destination: null,\n merge: merge\n };\n return impact;\n});\n\nvar addClosest = function addClosest(add, displaced) {\n var added = {\n draggableId: add.descriptor.id,\n isVisible: true,\n shouldAnimate: true\n };\n return [added].concat(displaced);\n};\nvar removeClosest = function removeClosest(displaced) {\n return displaced.slice(1);\n};\n\nvar fromReorder = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n isInHomeList = _ref.isInHomeList,\n draggable = _ref.draggable,\n initialInside = _ref.insideDestination,\n location = _ref.location;\n var insideDestination = initialInside.slice();\n var currentIndex = location.index;\n var isInForeignList = !isInHomeList;\n\n if (isInForeignList) {\n insideDestination.splice(location.index, 0, draggable);\n }\n\n var proposedIndex = isMovingForward ? currentIndex + 1 : currentIndex - 1;\n\n if (proposedIndex < 0) {\n return null;\n }\n\n if (proposedIndex > insideDestination.length - 1) {\n return null;\n }\n\n return {\n proposedIndex: proposedIndex,\n modifyDisplacement: true\n };\n});\n\nvar fromCombine = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n destination = _ref.destination,\n previousImpact = _ref.previousImpact,\n draggables = _ref.draggables,\n merge = _ref.merge,\n onLift = _ref.onLift;\n\n if (!destination.isCombineEnabled) {\n return null;\n }\n\n var movement = previousImpact.movement;\n var combineId = merge.combine.draggableId;\n var combine = draggables[combineId];\n var combineIndex = combine.descriptor.index;\n var wasDisplacedAtStart = didStartDisplaced(combineId, onLift);\n\n if (wasDisplacedAtStart) {\n var hasDisplacedFromStart = !movement.map[combineId];\n\n if (hasDisplacedFromStart) {\n if (isMovingForward) {\n return {\n proposedIndex: combineIndex,\n modifyDisplacement: false\n };\n }\n\n return {\n proposedIndex: combineIndex - 1,\n modifyDisplacement: true\n };\n }\n\n if (isMovingForward) {\n return {\n proposedIndex: combineIndex,\n modifyDisplacement: true\n };\n }\n\n return {\n proposedIndex: combineIndex - 1,\n modifyDisplacement: false\n };\n }\n\n var isDisplaced = Boolean(movement.map[combineId]);\n\n if (isDisplaced) {\n if (isMovingForward) {\n return {\n proposedIndex: combineIndex + 1,\n modifyDisplacement: true\n };\n }\n\n return {\n proposedIndex: combineIndex,\n modifyDisplacement: false\n };\n }\n\n if (isMovingForward) {\n return {\n proposedIndex: combineIndex + 1,\n modifyDisplacement: false\n };\n }\n\n return {\n proposedIndex: combineIndex,\n modifyDisplacement: true\n };\n});\n\nvar moveToNextIndex = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n isInHomeList = _ref.isInHomeList,\n draggable = _ref.draggable,\n draggables = _ref.draggables,\n destination = _ref.destination,\n insideDestination = _ref.insideDestination,\n previousImpact = _ref.previousImpact,\n onLift = _ref.onLift;\n\n var instruction = function () {\n if (previousImpact.destination) {\n return fromReorder({\n isMovingForward: isMovingForward,\n isInHomeList: isInHomeList,\n draggable: draggable,\n location: previousImpact.destination,\n insideDestination: insideDestination\n });\n }\n\n if (previousImpact.merge) {\n return fromCombine({\n isMovingForward: isMovingForward,\n destination: destination,\n previousImpact: previousImpact,\n draggables: draggables,\n merge: previousImpact.merge,\n onLift: onLift\n });\n }\n return null;\n }();\n\n if (instruction == null) {\n return null;\n }\n\n var proposedIndex = instruction.proposedIndex,\n modifyDisplacement = instruction.modifyDisplacement;\n var displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy);\n\n var displaced = function () {\n var lastDisplaced = previousImpact.movement.displaced;\n\n if (!modifyDisplacement) {\n return lastDisplaced;\n }\n\n if (isMovingForward) {\n return removeClosest(lastDisplaced);\n }\n\n var withoutDraggable = removeDraggableFromList(draggable, insideDestination);\n var atProposedIndex = withoutDraggable[proposedIndex];\n return addClosest(atProposedIndex, lastDisplaced);\n }();\n\n return {\n movement: {\n displacedBy: displacedBy,\n displaced: displaced,\n map: getDisplacementMap(displaced)\n },\n destination: {\n droppableId: destination.descriptor.id,\n index: proposedIndex\n },\n merge: null\n };\n});\n\nvar whenCombining = (function (_ref) {\n var combine = _ref.combine,\n onLift = _ref.onLift,\n movement = _ref.movement,\n draggables = _ref.draggables;\n var combineWith = combine.draggableId;\n var center = draggables[combineWith].page.borderBox.center;\n var displaceBy = getCombinedItemDisplacement({\n displaced: movement.map,\n onLift: onLift,\n combineWith: combineWith,\n displacedBy: movement.displacedBy\n });\n return add(center, displaceBy);\n});\n\nvar distanceFromStartToBorderBoxCenter = function distanceFromStartToBorderBoxCenter(axis, box) {\n return box.margin[axis.start] + box.borderBox[axis.size] / 2;\n};\n\nvar distanceFromEndToBorderBoxCenter = function distanceFromEndToBorderBoxCenter(axis, box) {\n return box.margin[axis.end] + box.borderBox[axis.size] / 2;\n};\n\nvar getCrossAxisBorderBoxCenter = function getCrossAxisBorderBoxCenter(axis, target, isMoving) {\n return target[axis.crossAxisStart] + isMoving.margin[axis.crossAxisStart] + isMoving.borderBox[axis.crossAxisSize] / 2;\n};\n\nvar goAfter = function goAfter(_ref) {\n var axis = _ref.axis,\n moveRelativeTo = _ref.moveRelativeTo,\n isMoving = _ref.isMoving;\n return patch(axis.line, moveRelativeTo.marginBox[axis.end] + distanceFromStartToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveRelativeTo.marginBox, isMoving));\n};\nvar goBefore = function goBefore(_ref2) {\n var axis = _ref2.axis,\n moveRelativeTo = _ref2.moveRelativeTo,\n isMoving = _ref2.isMoving;\n return patch(axis.line, moveRelativeTo.marginBox[axis.start] - distanceFromEndToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveRelativeTo.marginBox, isMoving));\n};\nvar goIntoStart = function goIntoStart(_ref3) {\n var axis = _ref3.axis,\n moveInto = _ref3.moveInto,\n isMoving = _ref3.isMoving;\n return patch(axis.line, moveInto.contentBox[axis.start] + distanceFromStartToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveInto.contentBox, isMoving));\n};\n\nvar whenReordering = (function (_ref) {\n var movement = _ref.movement,\n draggable = _ref.draggable,\n draggables = _ref.draggables,\n droppable = _ref.droppable,\n onLift = _ref.onLift;\n var insideDestination = getDraggablesInsideDroppable(droppable.descriptor.id, draggables);\n var draggablePage = draggable.page;\n var axis = droppable.axis;\n\n if (!insideDestination.length) {\n return goIntoStart({\n axis: axis,\n moveInto: droppable.page,\n isMoving: draggablePage\n });\n }\n\n var displaced = movement.displaced,\n displacedBy = movement.displacedBy;\n\n if (displaced.length) {\n var closestAfter = draggables[displaced[0].draggableId];\n\n if (didStartDisplaced(closestAfter.descriptor.id, onLift)) {\n return goBefore({\n axis: axis,\n moveRelativeTo: closestAfter.page,\n isMoving: draggablePage\n });\n }\n\n var withDisplacement = offset(closestAfter.page, displacedBy.point);\n return goBefore({\n axis: axis,\n moveRelativeTo: withDisplacement,\n isMoving: draggablePage\n });\n }\n\n var last = insideDestination[insideDestination.length - 1];\n\n if (last.descriptor.id === draggable.descriptor.id) {\n return draggablePage.borderBox.center;\n }\n\n if (didStartDisplaced(last.descriptor.id, onLift)) {\n var page = offset(last.page, negate(onLift.displacedBy.point));\n return goAfter({\n axis: axis,\n moveRelativeTo: page,\n isMoving: draggablePage\n });\n }\n\n return goAfter({\n axis: axis,\n moveRelativeTo: last.page,\n isMoving: draggablePage\n });\n});\n\nvar withDroppableDisplacement = (function (droppable, point) {\n var frame = droppable.frame;\n\n if (!frame) {\n return point;\n }\n\n return add(point, frame.scroll.diff.displacement);\n});\n\nvar getResultWithoutDroppableDisplacement = function getResultWithoutDroppableDisplacement(_ref) {\n var impact = _ref.impact,\n draggable = _ref.draggable,\n droppable = _ref.droppable,\n draggables = _ref.draggables,\n onLift = _ref.onLift;\n var merge = impact.merge;\n var destination = impact.destination;\n var original = draggable.page.borderBox.center;\n\n if (!droppable) {\n return original;\n }\n\n if (destination) {\n return whenReordering({\n movement: impact.movement,\n draggable: draggable,\n draggables: draggables,\n droppable: droppable,\n onLift: onLift\n });\n }\n\n if (merge) {\n return whenCombining({\n movement: impact.movement,\n combine: merge.combine,\n draggables: draggables,\n onLift: onLift\n });\n }\n\n return original;\n};\n\nvar getPageBorderBoxCenterFromImpact = (function (args) {\n var withoutDisplacement = getResultWithoutDroppableDisplacement(args);\n var droppable = args.droppable;\n var withDisplacement = droppable ? withDroppableDisplacement(droppable, withoutDisplacement) : withoutDisplacement;\n return withDisplacement;\n});\n\nvar scrollViewport = (function (viewport, newScroll) {\n var diff = subtract(newScroll, viewport.scroll.initial);\n var displacement = negate(diff);\n var frame = getRect({\n top: newScroll.y,\n bottom: newScroll.y + viewport.frame.height,\n left: newScroll.x,\n right: newScroll.x + viewport.frame.width\n });\n var updated = {\n frame: frame,\n scroll: {\n initial: viewport.scroll.initial,\n max: viewport.scroll.max,\n current: newScroll,\n diff: {\n value: diff,\n displacement: displacement\n }\n }\n };\n return updated;\n});\n\nvar withNewDisplacement = (function (impact, displaced) {\n return _extends({}, impact, {\n movement: _extends({}, impact.movement, {\n displaced: displaced,\n map: getDisplacementMap(displaced)\n })\n });\n});\n\nvar speculativelyIncrease = (function (_ref) {\n var impact = _ref.impact,\n viewport = _ref.viewport,\n destination = _ref.destination,\n draggables = _ref.draggables,\n maxScrollChange = _ref.maxScrollChange,\n onLift = _ref.onLift;\n var displaced = impact.movement.displaced;\n var scrolledViewport = scrollViewport(viewport, add(viewport.scroll.current, maxScrollChange));\n var scrolledDroppable = destination.frame ? scrollDroppable(destination, add(destination.frame.scroll.current, maxScrollChange)) : destination;\n var updated = displaced.map(function (entry) {\n if (entry.isVisible) {\n return entry;\n }\n\n var draggable = draggables[entry.draggableId];\n var withScrolledViewport = getDisplacement({\n draggable: draggable,\n destination: destination,\n previousImpact: impact,\n viewport: scrolledViewport.frame,\n onLift: onLift,\n forceShouldAnimate: false\n });\n\n if (withScrolledViewport.isVisible) {\n return withScrolledViewport;\n }\n\n var withScrolledDroppable = getDisplacement({\n draggable: draggable,\n destination: scrolledDroppable,\n previousImpact: impact,\n viewport: viewport.frame,\n onLift: onLift,\n forceShouldAnimate: false\n });\n\n if (withScrolledDroppable.isVisible) {\n return withScrolledDroppable;\n }\n\n return entry;\n });\n return withNewDisplacement(impact, updated);\n});\n\nvar withViewportDisplacement = (function (viewport, point) {\n return add(viewport.scroll.diff.displacement, point);\n});\n\nvar getClientFromPageBorderBoxCenter = (function (_ref) {\n var pageBorderBoxCenter = _ref.pageBorderBoxCenter,\n draggable = _ref.draggable,\n viewport = _ref.viewport;\n var withoutPageScrollChange = withViewportDisplacement(viewport, pageBorderBoxCenter);\n var offset = subtract(withoutPageScrollChange, draggable.page.borderBox.center);\n return add(draggable.client.borderBox.center, offset);\n});\n\nvar isTotallyVisibleInNewLocation = (function (_ref) {\n var draggable = _ref.draggable,\n destination = _ref.destination,\n newPageBorderBoxCenter = _ref.newPageBorderBoxCenter,\n viewport = _ref.viewport,\n withDroppableDisplacement = _ref.withDroppableDisplacement,\n _ref$onlyOnMainAxis = _ref.onlyOnMainAxis,\n onlyOnMainAxis = _ref$onlyOnMainAxis === void 0 ? false : _ref$onlyOnMainAxis;\n var changeNeeded = subtract(newPageBorderBoxCenter, draggable.page.borderBox.center);\n var shifted = offsetByPosition(draggable.page.borderBox, changeNeeded);\n var args = {\n target: shifted,\n destination: destination,\n withDroppableDisplacement: withDroppableDisplacement,\n viewport: viewport\n };\n return onlyOnMainAxis ? isTotallyVisibleOnAxis(args) : isTotallyVisible(args);\n});\n\nvar moveToNextPlace = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n draggable = _ref.draggable,\n destination = _ref.destination,\n draggables = _ref.draggables,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport,\n previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter,\n previousClientSelection = _ref.previousClientSelection,\n onLift = _ref.onLift;\n\n if (!destination.isEnabled) {\n return null;\n }\n\n var insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables);\n var isInHomeList = isHomeOf(draggable, destination);\n var impact = moveToNextCombine({\n isInHomeList: isInHomeList,\n isMovingForward: isMovingForward,\n draggable: draggable,\n destination: destination,\n insideDestination: insideDestination,\n previousImpact: previousImpact\n }) || moveToNextIndex({\n isMovingForward: isMovingForward,\n isInHomeList: isInHomeList,\n draggable: draggable,\n draggables: draggables,\n destination: destination,\n insideDestination: insideDestination,\n previousImpact: previousImpact,\n onLift: onLift\n });\n\n if (!impact) {\n return null;\n }\n\n var pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({\n impact: impact,\n draggable: draggable,\n droppable: destination,\n draggables: draggables,\n onLift: onLift\n });\n var isVisibleInNewLocation = isTotallyVisibleInNewLocation({\n draggable: draggable,\n destination: destination,\n newPageBorderBoxCenter: pageBorderBoxCenter,\n viewport: viewport.frame,\n withDroppableDisplacement: false,\n onlyOnMainAxis: true\n });\n\n if (isVisibleInNewLocation) {\n var clientSelection = getClientFromPageBorderBoxCenter({\n pageBorderBoxCenter: pageBorderBoxCenter,\n draggable: draggable,\n viewport: viewport\n });\n return {\n clientSelection: clientSelection,\n impact: impact,\n scrollJumpRequest: null\n };\n }\n\n var distance = subtract(pageBorderBoxCenter, previousPageBorderBoxCenter);\n var cautious = speculativelyIncrease({\n impact: impact,\n viewport: viewport,\n destination: destination,\n draggables: draggables,\n maxScrollChange: distance,\n onLift: onLift\n });\n return {\n clientSelection: previousClientSelection,\n impact: cautious,\n scrollJumpRequest: distance\n };\n});\n\nvar getKnownActive = function getKnownActive(droppable) {\n var rect = droppable.subject.active;\n !rect ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot get clipped area from droppable') : invariant(false) : void 0;\n return rect;\n};\n\nvar getBestCrossAxisDroppable = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n pageBorderBoxCenter = _ref.pageBorderBoxCenter,\n source = _ref.source,\n droppables = _ref.droppables,\n viewport = _ref.viewport;\n var active = source.subject.active;\n\n if (!active) {\n return null;\n }\n\n var axis = source.axis;\n var isBetweenSourceClipped = isWithin(active[axis.start], active[axis.end]);\n var candidates = toDroppableList(droppables).filter(function (droppable) {\n return droppable !== source;\n }).filter(function (droppable) {\n return droppable.isEnabled;\n }).filter(function (droppable) {\n return Boolean(droppable.subject.active);\n }).filter(function (droppable) {\n return isPartiallyVisibleThroughFrame(viewport.frame)(getKnownActive(droppable));\n }).filter(function (droppable) {\n var activeOfTarget = getKnownActive(droppable);\n\n if (isMovingForward) {\n return active[axis.crossAxisEnd] < activeOfTarget[axis.crossAxisEnd];\n }\n\n return activeOfTarget[axis.crossAxisStart] < active[axis.crossAxisStart];\n }).filter(function (droppable) {\n var activeOfTarget = getKnownActive(droppable);\n var isBetweenDestinationClipped = isWithin(activeOfTarget[axis.start], activeOfTarget[axis.end]);\n return isBetweenSourceClipped(activeOfTarget[axis.start]) || isBetweenSourceClipped(activeOfTarget[axis.end]) || isBetweenDestinationClipped(active[axis.start]) || isBetweenDestinationClipped(active[axis.end]);\n }).sort(function (a, b) {\n var first = getKnownActive(a)[axis.crossAxisStart];\n var second = getKnownActive(b)[axis.crossAxisStart];\n\n if (isMovingForward) {\n return first - second;\n }\n\n return second - first;\n }).filter(function (droppable, index, array) {\n return getKnownActive(droppable)[axis.crossAxisStart] === getKnownActive(array[0])[axis.crossAxisStart];\n });\n\n if (!candidates.length) {\n return null;\n }\n\n if (candidates.length === 1) {\n return candidates[0];\n }\n\n var contains = candidates.filter(function (droppable) {\n var isWithinDroppable = isWithin(getKnownActive(droppable)[axis.start], getKnownActive(droppable)[axis.end]);\n return isWithinDroppable(pageBorderBoxCenter[axis.line]);\n });\n\n if (contains.length === 1) {\n return contains[0];\n }\n\n if (contains.length > 1) {\n return contains.sort(function (a, b) {\n return getKnownActive(a)[axis.start] - getKnownActive(b)[axis.start];\n })[0];\n }\n\n return candidates.sort(function (a, b) {\n var first = closest(pageBorderBoxCenter, getCorners(getKnownActive(a)));\n var second = closest(pageBorderBoxCenter, getCorners(getKnownActive(b)));\n\n if (first !== second) {\n return first - second;\n }\n\n return getKnownActive(a)[axis.start] - getKnownActive(b)[axis.start];\n })[0];\n});\n\nvar getCurrentPageBorderBoxCenter = function getCurrentPageBorderBoxCenter(draggable, onLift) {\n var original = draggable.page.borderBox.center;\n return didStartDisplaced(draggable.descriptor.id, onLift) ? subtract(original, onLift.displacedBy.point) : original;\n};\nvar getCurrentPageBorderBox = function getCurrentPageBorderBox(draggable, onLift) {\n var original = draggable.page.borderBox;\n return didStartDisplaced(draggable.descriptor.id, onLift) ? offsetByPosition(original, negate(onLift.displacedBy.point)) : original;\n};\n\nvar getClosestDraggable = (function (_ref) {\n var pageBorderBoxCenter = _ref.pageBorderBoxCenter,\n viewport = _ref.viewport,\n destination = _ref.destination,\n insideDestination = _ref.insideDestination,\n onLift = _ref.onLift;\n var sorted = insideDestination.filter(function (draggable) {\n return isTotallyVisible({\n target: getCurrentPageBorderBox(draggable, onLift),\n destination: destination,\n viewport: viewport.frame,\n withDroppableDisplacement: true\n });\n }).sort(function (a, b) {\n var distanceToA = distance(pageBorderBoxCenter, withDroppableDisplacement(destination, getCurrentPageBorderBoxCenter(a, onLift)));\n var distanceToB = distance(pageBorderBoxCenter, withDroppableDisplacement(destination, getCurrentPageBorderBoxCenter(b, onLift)));\n\n if (distanceToA < distanceToB) {\n return -1;\n }\n\n if (distanceToB < distanceToA) {\n return 1;\n }\n\n return a.descriptor.index - b.descriptor.index;\n });\n return sorted[0] || null;\n});\n\nvar moveToNewDroppable = (function (_ref) {\n var previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter,\n moveRelativeTo = _ref.moveRelativeTo,\n insideDestination = _ref.insideDestination,\n draggable = _ref.draggable,\n draggables = _ref.draggables,\n destination = _ref.destination,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport,\n onLift = _ref.onLift;\n\n if (!moveRelativeTo) {\n if (insideDestination.length) {\n return null;\n }\n\n var proposed = {\n movement: noMovement,\n destination: {\n droppableId: destination.descriptor.id,\n index: 0\n },\n merge: null\n };\n var proposedPageBorderBoxCenter = getPageBorderBoxCenterFromImpact({\n impact: proposed,\n draggable: draggable,\n droppable: destination,\n draggables: draggables,\n onLift: onLift\n });\n var withPlaceholder = isHomeOf(draggable, destination) ? destination : addPlaceholder(destination, draggable, draggables);\n var isVisibleInNewLocation = isTotallyVisibleInNewLocation({\n draggable: draggable,\n destination: withPlaceholder,\n newPageBorderBoxCenter: proposedPageBorderBoxCenter,\n viewport: viewport.frame,\n withDroppableDisplacement: false,\n onlyOnMainAxis: true\n });\n return isVisibleInNewLocation ? proposed : null;\n }\n\n var isGoingBeforeTarget = Boolean(previousPageBorderBoxCenter[destination.axis.line] < moveRelativeTo.page.borderBox.center[destination.axis.line]);\n var targetIndex = insideDestination.indexOf(moveRelativeTo);\n !(targetIndex !== -1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot find target in list') : invariant(false) : void 0;\n\n var proposedIndex = function () {\n if (moveRelativeTo.descriptor.id === draggable.descriptor.id) {\n return targetIndex;\n }\n\n if (isGoingBeforeTarget) {\n return targetIndex;\n }\n\n return targetIndex + 1;\n }();\n\n var displaced = removeDraggableFromList(draggable, insideDestination).slice(proposedIndex).map(function (dimension) {\n return getDisplacement({\n draggable: dimension,\n destination: destination,\n viewport: viewport.frame,\n previousImpact: previousImpact,\n onLift: onLift\n });\n });\n var displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy);\n var impact = {\n movement: {\n displacedBy: displacedBy,\n displaced: displaced,\n map: getDisplacementMap(displaced)\n },\n destination: {\n droppableId: destination.descriptor.id,\n index: proposedIndex\n },\n merge: null\n };\n return impact;\n});\n\nvar moveCrossAxis = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter,\n draggable = _ref.draggable,\n isOver = _ref.isOver,\n draggables = _ref.draggables,\n droppables = _ref.droppables,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport,\n onLift = _ref.onLift;\n var destination = getBestCrossAxisDroppable({\n isMovingForward: isMovingForward,\n pageBorderBoxCenter: previousPageBorderBoxCenter,\n source: isOver,\n droppables: droppables,\n viewport: viewport\n });\n\n if (!destination) {\n return null;\n }\n\n var insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables);\n var moveRelativeTo = getClosestDraggable({\n pageBorderBoxCenter: previousPageBorderBoxCenter,\n viewport: viewport,\n destination: destination,\n insideDestination: insideDestination,\n onLift: onLift\n });\n var impact = moveToNewDroppable({\n previousPageBorderBoxCenter: previousPageBorderBoxCenter,\n destination: destination,\n draggable: draggable,\n draggables: draggables,\n moveRelativeTo: moveRelativeTo,\n insideDestination: insideDestination,\n previousImpact: previousImpact,\n viewport: viewport,\n onLift: onLift\n });\n\n if (!impact) {\n return null;\n }\n\n var pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({\n impact: impact,\n draggable: draggable,\n droppable: destination,\n draggables: draggables,\n onLift: onLift\n });\n var clientSelection = getClientFromPageBorderBoxCenter({\n pageBorderBoxCenter: pageBorderBoxCenter,\n draggable: draggable,\n viewport: viewport\n });\n return {\n clientSelection: clientSelection,\n impact: impact,\n scrollJumpRequest: null\n };\n});\n\nvar getDroppableOver$1 = function getDroppableOver(impact, droppables) {\n var id = whatIsDraggedOver(impact);\n return id ? droppables[id] : null;\n};\n\nvar moveInDirection = (function (_ref) {\n var state = _ref.state,\n type = _ref.type;\n var isActuallyOver = getDroppableOver$1(state.impact, state.dimensions.droppables);\n var isMainAxisMovementAllowed = Boolean(isActuallyOver);\n var home = state.dimensions.droppables[state.critical.droppable.id];\n var isOver = isActuallyOver || home;\n var direction = isOver.axis.direction;\n var isMovingOnMainAxis = direction === 'vertical' && (type === 'MOVE_UP' || type === 'MOVE_DOWN') || direction === 'horizontal' && (type === 'MOVE_LEFT' || type === 'MOVE_RIGHT');\n\n if (isMovingOnMainAxis && !isMainAxisMovementAllowed) {\n return null;\n }\n\n var isMovingForward = type === 'MOVE_DOWN' || type === 'MOVE_RIGHT';\n var draggable = state.dimensions.draggables[state.critical.draggable.id];\n var previousPageBorderBoxCenter = state.current.page.borderBoxCenter;\n var _state$dimensions = state.dimensions,\n draggables = _state$dimensions.draggables,\n droppables = _state$dimensions.droppables;\n return isMovingOnMainAxis ? moveToNextPlace({\n isMovingForward: isMovingForward,\n previousPageBorderBoxCenter: previousPageBorderBoxCenter,\n draggable: draggable,\n destination: isOver,\n draggables: draggables,\n viewport: state.viewport,\n previousClientSelection: state.current.client.selection,\n previousImpact: state.impact,\n onLift: state.onLift\n }) : moveCrossAxis({\n isMovingForward: isMovingForward,\n previousPageBorderBoxCenter: previousPageBorderBoxCenter,\n draggable: draggable,\n isOver: isOver,\n draggables: draggables,\n droppables: droppables,\n previousImpact: state.impact,\n viewport: state.viewport,\n onLift: state.onLift\n });\n});\n\nfunction isMovementAllowed(state) {\n return state.phase === 'DRAGGING' || state.phase === 'COLLECTING';\n}\n\nvar getVertical = function getVertical(previous, diff) {\n if (diff === 0) {\n return previous;\n }\n\n return diff > 0 ? 'down' : 'up';\n};\n\nvar getHorizontal = function getHorizontal(previous, diff) {\n if (diff === 0) {\n return previous;\n }\n\n return diff > 0 ? 'right' : 'left';\n};\n\nvar getUserDirection = (function (previous, oldPageBorderBoxCenter, newPageBorderBoxCenter) {\n var diff = subtract(newPageBorderBoxCenter, oldPageBorderBoxCenter);\n return {\n horizontal: getHorizontal(previous.horizontal, diff.x),\n vertical: getVertical(previous.vertical, diff.y)\n };\n});\n\nvar update = (function (_ref) {\n var state = _ref.state,\n forcedClientSelection = _ref.clientSelection,\n forcedDimensions = _ref.dimensions,\n forcedViewport = _ref.viewport,\n forcedImpact = _ref.impact,\n scrollJumpRequest = _ref.scrollJumpRequest;\n var viewport = forcedViewport || state.viewport;\n var currentWindowScroll = viewport.scroll.current;\n var dimensions = forcedDimensions || state.dimensions;\n var clientSelection = forcedClientSelection || state.current.client.selection;\n var offset = subtract(clientSelection, state.initial.client.selection);\n var client = {\n offset: offset,\n selection: clientSelection,\n borderBoxCenter: add(state.initial.client.borderBoxCenter, offset)\n };\n var page = {\n selection: add(client.selection, currentWindowScroll),\n borderBoxCenter: add(client.borderBoxCenter, currentWindowScroll)\n };\n var current = {\n client: client,\n page: page\n };\n var userDirection = getUserDirection(state.userDirection, state.current.page.borderBoxCenter, current.page.borderBoxCenter);\n\n if (state.phase === 'COLLECTING') {\n return _extends({\n phase: 'COLLECTING'\n }, state, {\n dimensions: dimensions,\n viewport: viewport,\n current: current,\n userDirection: userDirection\n });\n }\n\n var draggable = dimensions.draggables[state.critical.draggable.id];\n var newImpact = forcedImpact || getDragImpact({\n pageBorderBoxCenter: page.borderBoxCenter,\n draggable: draggable,\n draggables: dimensions.draggables,\n droppables: dimensions.droppables,\n previousImpact: state.impact,\n viewport: viewport,\n userDirection: userDirection,\n onLift: state.onLift\n });\n var withUpdatedPlaceholders = recomputePlaceholders({\n draggable: draggable,\n impact: newImpact,\n previousImpact: state.impact,\n draggables: dimensions.draggables,\n droppables: dimensions.droppables\n });\n\n var result = _extends({}, state, {\n current: current,\n userDirection: userDirection,\n dimensions: {\n draggables: dimensions.draggables,\n droppables: withUpdatedPlaceholders\n },\n impact: newImpact,\n viewport: viewport,\n scrollJumpRequest: scrollJumpRequest || null,\n forceShouldAnimate: scrollJumpRequest ? false : null\n });\n\n return result;\n});\n\nvar recompute = (function (_ref) {\n var impact = _ref.impact,\n viewport = _ref.viewport,\n destination = _ref.destination,\n draggables = _ref.draggables,\n onLift = _ref.onLift,\n forceShouldAnimate = _ref.forceShouldAnimate;\n var updated = impact.movement.displaced.map(function (entry) {\n return getDisplacement({\n draggable: draggables[entry.draggableId],\n destination: destination,\n previousImpact: impact,\n viewport: viewport.frame,\n onLift: onLift,\n forceShouldAnimate: forceShouldAnimate\n });\n });\n return withNewDisplacement(impact, updated);\n});\n\nvar getClientBorderBoxCenter = (function (_ref) {\n var impact = _ref.impact,\n draggable = _ref.draggable,\n droppable = _ref.droppable,\n draggables = _ref.draggables,\n viewport = _ref.viewport,\n onLift = _ref.onLift;\n var pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({\n impact: impact,\n draggable: draggable,\n draggables: draggables,\n droppable: droppable,\n onLift: onLift\n });\n return getClientFromPageBorderBoxCenter({\n pageBorderBoxCenter: pageBorderBoxCenter,\n draggable: draggable,\n viewport: viewport\n });\n});\n\nvar refreshSnap = (function (_ref) {\n var state = _ref.state,\n forcedDimensions = _ref.dimensions,\n forcedViewport = _ref.viewport;\n !(state.movementMode === 'SNAP') ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n var needsVisibilityCheck = state.impact;\n var viewport = forcedViewport || state.viewport;\n var dimensions = forcedDimensions || state.dimensions;\n var draggables = dimensions.draggables,\n droppables = dimensions.droppables;\n var draggable = draggables[state.critical.draggable.id];\n var isOver = whatIsDraggedOver(needsVisibilityCheck);\n !isOver ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Must be over a destination in SNAP movement mode') : invariant(false) : void 0;\n var destination = droppables[isOver];\n var impact = recompute({\n impact: needsVisibilityCheck,\n viewport: viewport,\n destination: destination,\n draggables: draggables,\n onLift: state.onLift\n });\n var clientSelection = getClientBorderBoxCenter({\n impact: impact,\n draggable: draggable,\n droppable: destination,\n draggables: draggables,\n viewport: viewport,\n onLift: state.onLift\n });\n return update({\n impact: impact,\n clientSelection: clientSelection,\n state: state,\n dimensions: dimensions,\n viewport: viewport\n });\n});\n\nvar patchDimensionMap = (function (dimensions, updated) {\n return {\n draggables: dimensions.draggables,\n droppables: patchDroppableMap(dimensions.droppables, updated)\n };\n});\n\nvar isSnapping = function isSnapping(state) {\n return state.movementMode === 'SNAP';\n};\n\nvar postDroppableChange = function postDroppableChange(state, updated, isEnabledChanging) {\n var dimensions = patchDimensionMap(state.dimensions, updated);\n\n if (!isSnapping(state) || isEnabledChanging) {\n return update({\n state: state,\n dimensions: dimensions\n });\n }\n\n return refreshSnap({\n state: state,\n dimensions: dimensions\n });\n};\n\nvar idle = {\n phase: 'IDLE',\n completed: null,\n shouldFlush: false\n};\nvar reducer = (function (state, action) {\n if (state === void 0) {\n state = idle;\n }\n\n if (action.type === 'CLEAN') {\n return _extends({}, idle, {\n shouldFlush: action.payload.shouldFlush\n });\n }\n\n if (action.type === 'INITIAL_PUBLISH') {\n !(state.phase === 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'INITIAL_PUBLISH must come after a IDLE phase') : invariant(false) : void 0;\n var _action$payload = action.payload,\n critical = _action$payload.critical,\n clientSelection = _action$payload.clientSelection,\n viewport = _action$payload.viewport,\n dimensions = _action$payload.dimensions,\n movementMode = _action$payload.movementMode;\n var draggable = dimensions.draggables[critical.draggable.id];\n var home = dimensions.droppables[critical.droppable.id];\n var client = {\n selection: clientSelection,\n borderBoxCenter: draggable.client.borderBox.center,\n offset: origin\n };\n var initial = {\n client: client,\n page: {\n selection: add(client.selection, viewport.scroll.initial),\n borderBoxCenter: add(client.selection, viewport.scroll.initial)\n }\n };\n var isWindowScrollAllowed = toDroppableList(dimensions.droppables).every(function (item) {\n return !item.isFixedOnPage;\n });\n\n var _getHomeOnLift = getHomeOnLift({\n draggable: draggable,\n home: home,\n draggables: dimensions.draggables,\n viewport: viewport\n }),\n impact = _getHomeOnLift.impact,\n onLift = _getHomeOnLift.onLift;\n\n var result = {\n phase: 'DRAGGING',\n isDragging: true,\n critical: critical,\n movementMode: movementMode,\n dimensions: dimensions,\n initial: initial,\n current: initial,\n isWindowScrollAllowed: isWindowScrollAllowed,\n impact: impact,\n onLift: onLift,\n onLiftImpact: impact,\n viewport: viewport,\n userDirection: forward,\n scrollJumpRequest: null,\n forceShouldAnimate: null\n };\n return result;\n }\n\n if (action.type === 'COLLECTION_STARTING') {\n var _extends2;\n\n if (state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Collection cannot start from phase \" + state.phase) : invariant(false) : void 0;\n\n var _result = _extends({\n phase: 'COLLECTING'\n }, state, (_extends2 = {}, _extends2[\"phase\"] = 'COLLECTING', _extends2));\n\n return _result;\n }\n\n if (action.type === 'PUBLISH_WHILE_DRAGGING') {\n !(state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Unexpected \" + action.type + \" received in phase \" + state.phase) : invariant(false) : void 0;\n return publishWhileDragging({\n state: state,\n published: action.payload\n });\n }\n\n if (action.type === 'MOVE') {\n if (state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, action.type + \" not permitted in phase \" + state.phase) : invariant(false) : void 0;\n var _clientSelection = action.payload.client;\n\n if (isEqual(_clientSelection, state.current.client.selection)) {\n return state;\n }\n\n return update({\n state: state,\n clientSelection: _clientSelection,\n impact: isSnapping(state) ? state.impact : null\n });\n }\n\n if (action.type === 'UPDATE_DROPPABLE_SCROLL') {\n if (state.phase === 'DROP_PENDING') {\n return state;\n }\n\n if (state.phase === 'COLLECTING') {\n return state;\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, action.type + \" not permitted in phase \" + state.phase) : invariant(false) : void 0;\n var _action$payload2 = action.payload,\n id = _action$payload2.id,\n offset = _action$payload2.offset;\n var target = state.dimensions.droppables[id];\n\n if (!target) {\n return state;\n }\n\n var scrolled = scrollDroppable(target, offset);\n return postDroppableChange(state, scrolled, false);\n }\n\n if (action.type === 'UPDATE_DROPPABLE_IS_ENABLED') {\n if (state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Attempting to move in an unsupported phase \" + state.phase) : invariant(false) : void 0;\n var _action$payload3 = action.payload,\n _id = _action$payload3.id,\n isEnabled = _action$payload3.isEnabled;\n var _target = state.dimensions.droppables[_id];\n !_target ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot find Droppable[id: \" + _id + \"] to toggle its enabled state\") : invariant(false) : void 0;\n !(_target.isEnabled !== isEnabled) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Trying to set droppable isEnabled to \" + String(isEnabled) + \"\\n but it is already \" + String(_target.isEnabled)) : invariant(false) : void 0;\n\n var updated = _extends({}, _target, {\n isEnabled: isEnabled\n });\n\n return postDroppableChange(state, updated, true);\n }\n\n if (action.type === 'UPDATE_DROPPABLE_IS_COMBINE_ENABLED') {\n if (state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Attempting to move in an unsupported phase \" + state.phase) : invariant(false) : void 0;\n var _action$payload4 = action.payload,\n _id2 = _action$payload4.id,\n isCombineEnabled = _action$payload4.isCombineEnabled;\n var _target2 = state.dimensions.droppables[_id2];\n !_target2 ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot find Droppable[id: \" + _id2 + \"] to toggle its isCombineEnabled state\") : invariant(false) : void 0;\n !(_target2.isCombineEnabled !== isCombineEnabled) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Trying to set droppable isCombineEnabled to \" + String(isCombineEnabled) + \"\\n but it is already \" + String(_target2.isCombineEnabled)) : invariant(false) : void 0;\n\n var _updated = _extends({}, _target2, {\n isCombineEnabled: isCombineEnabled\n });\n\n return postDroppableChange(state, _updated, true);\n }\n\n if (action.type === 'MOVE_BY_WINDOW_SCROLL') {\n if (state.phase === 'DROP_PENDING' || state.phase === 'DROP_ANIMATING') {\n return state;\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot move by window in phase \" + state.phase) : invariant(false) : void 0;\n !state.isWindowScrollAllowed ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Window scrolling is currently not supported for fixed lists. Aborting drag') : invariant(false) : void 0;\n var newScroll = action.payload.newScroll;\n\n if (isEqual(state.viewport.scroll.current, newScroll)) {\n return state;\n }\n\n var _viewport = scrollViewport(state.viewport, newScroll);\n\n if (isSnapping(state)) {\n return refreshSnap({\n state: state,\n viewport: _viewport\n });\n }\n\n return update({\n state: state,\n viewport: _viewport\n });\n }\n\n if (action.type === 'UPDATE_VIEWPORT_MAX_SCROLL') {\n if (!isMovementAllowed(state)) {\n return state;\n }\n\n var maxScroll = action.payload.maxScroll;\n\n if (isEqual(maxScroll, state.viewport.scroll.max)) {\n return state;\n }\n\n var withMaxScroll = _extends({}, state.viewport, {\n scroll: _extends({}, state.viewport.scroll, {\n max: maxScroll\n })\n });\n\n return _extends({\n phase: 'DRAGGING'\n }, state, {\n viewport: withMaxScroll\n });\n }\n\n if (action.type === 'MOVE_UP' || action.type === 'MOVE_DOWN' || action.type === 'MOVE_LEFT' || action.type === 'MOVE_RIGHT') {\n if (state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, action.type + \" received while not in DRAGGING phase\") : invariant(false) : void 0;\n\n var _result2 = moveInDirection({\n state: state,\n type: action.type\n });\n\n if (!_result2) {\n return state;\n }\n\n return update({\n state: state,\n impact: _result2.impact,\n clientSelection: _result2.clientSelection,\n scrollJumpRequest: _result2.scrollJumpRequest\n });\n }\n\n if (action.type === 'DROP_PENDING') {\n var _extends3;\n\n var reason = action.payload.reason;\n !(state.phase === 'COLLECTING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Can only move into the DROP_PENDING phase from the COLLECTING phase') : invariant(false) : void 0;\n\n var newState = _extends({\n phase: 'DROP_PENDING'\n }, state, (_extends3 = {}, _extends3[\"phase\"] = 'DROP_PENDING', _extends3.isWaiting = true, _extends3.reason = reason, _extends3));\n\n return newState;\n }\n\n if (action.type === 'DROP_ANIMATE') {\n var _action$payload5 = action.payload,\n completed = _action$payload5.completed,\n dropDuration = _action$payload5.dropDuration,\n newHomeClientOffset = _action$payload5.newHomeClientOffset;\n !(state.phase === 'DRAGGING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot animate drop from phase \" + state.phase) : invariant(false) : void 0;\n var _result3 = {\n phase: 'DROP_ANIMATING',\n dimensions: state.dimensions,\n completed: completed,\n dropDuration: dropDuration,\n newHomeClientOffset: newHomeClientOffset\n };\n return _result3;\n }\n\n if (action.type === 'DROP_COMPLETE') {\n var _action$payload6 = action.payload,\n _completed = _action$payload6.completed,\n shouldFlush = _action$payload6.shouldFlush;\n return {\n phase: 'IDLE',\n completed: _completed,\n shouldFlush: shouldFlush\n };\n }\n\n return state;\n});\n\nvar lift = function lift(args) {\n return {\n type: 'LIFT',\n payload: args\n };\n};\nvar initialPublish = function initialPublish(args) {\n return {\n type: 'INITIAL_PUBLISH',\n payload: args\n };\n};\nvar publishWhileDragging$1 = function publishWhileDragging(args) {\n return {\n type: 'PUBLISH_WHILE_DRAGGING',\n payload: args\n };\n};\nvar collectionStarting = function collectionStarting() {\n return {\n type: 'COLLECTION_STARTING',\n payload: null\n };\n};\nvar updateDroppableScroll = function updateDroppableScroll(args) {\n return {\n type: 'UPDATE_DROPPABLE_SCROLL',\n payload: args\n };\n};\nvar updateDroppableIsEnabled = function updateDroppableIsEnabled(args) {\n return {\n type: 'UPDATE_DROPPABLE_IS_ENABLED',\n payload: args\n };\n};\nvar updateDroppableIsCombineEnabled = function updateDroppableIsCombineEnabled(args) {\n return {\n type: 'UPDATE_DROPPABLE_IS_COMBINE_ENABLED',\n payload: args\n };\n};\nvar move = function move(args) {\n return {\n type: 'MOVE',\n payload: args\n };\n};\nvar moveByWindowScroll = function moveByWindowScroll(args) {\n return {\n type: 'MOVE_BY_WINDOW_SCROLL',\n payload: args\n };\n};\nvar updateViewportMaxScroll = function updateViewportMaxScroll(args) {\n return {\n type: 'UPDATE_VIEWPORT_MAX_SCROLL',\n payload: args\n };\n};\nvar moveUp = function moveUp() {\n return {\n type: 'MOVE_UP',\n payload: null\n };\n};\nvar moveDown = function moveDown() {\n return {\n type: 'MOVE_DOWN',\n payload: null\n };\n};\nvar moveRight = function moveRight() {\n return {\n type: 'MOVE_RIGHT',\n payload: null\n };\n};\nvar moveLeft = function moveLeft() {\n return {\n type: 'MOVE_LEFT',\n payload: null\n };\n};\nvar clean$1 = function clean(args) {\n if (args === void 0) {\n args = {\n shouldFlush: false\n };\n }\n\n return {\n type: 'CLEAN',\n payload: args\n };\n};\nvar animateDrop = function animateDrop(args) {\n return {\n type: 'DROP_ANIMATE',\n payload: args\n };\n};\nvar completeDrop = function completeDrop(args) {\n return {\n type: 'DROP_COMPLETE',\n payload: args\n };\n};\nvar drop = function drop(args) {\n return {\n type: 'DROP',\n payload: args\n };\n};\nvar dropPending = function dropPending(args) {\n return {\n type: 'DROP_PENDING',\n payload: args\n };\n};\nvar dropAnimationFinished = function dropAnimationFinished() {\n return {\n type: 'DROP_ANIMATION_FINISHED',\n payload: null\n };\n};\n\nvar lift$1 = (function (marshal) {\n return function (_ref) {\n var getState = _ref.getState,\n dispatch = _ref.dispatch;\n return function (next) {\n return function (action) {\n if (action.type !== 'LIFT') {\n next(action);\n return;\n }\n\n var _action$payload = action.payload,\n id = _action$payload.id,\n clientSelection = _action$payload.clientSelection,\n movementMode = _action$payload.movementMode;\n var initial = getState();\n\n if (initial.phase === 'DROP_ANIMATING') {\n dispatch(completeDrop({\n completed: initial.completed,\n shouldFlush: true\n }));\n }\n\n !(getState().phase === 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Incorrect phase to start a drag') : invariant(false) : void 0;\n var scrollOptions = {\n shouldPublishImmediately: movementMode === 'SNAP'\n };\n var request = {\n draggableId: id,\n scrollOptions: scrollOptions\n };\n\n var _marshal$startPublish = marshal.startPublishing(request),\n critical = _marshal$startPublish.critical,\n dimensions = _marshal$startPublish.dimensions,\n viewport = _marshal$startPublish.viewport;\n\n dispatch(initialPublish({\n critical: critical,\n dimensions: dimensions,\n clientSelection: clientSelection,\n movementMode: movementMode,\n viewport: viewport\n }));\n };\n };\n };\n});\n\nvar style = (function (marshal) {\n return function () {\n return function (next) {\n return function (action) {\n if (action.type === 'INITIAL_PUBLISH') {\n marshal.dragging();\n }\n\n if (action.type === 'DROP_ANIMATE') {\n marshal.dropping(action.payload.completed.result.reason);\n }\n\n if (action.type === 'CLEAN' || action.type === 'DROP_COMPLETE') {\n marshal.resting();\n }\n\n next(action);\n };\n };\n };\n});\n\nvar curves = {\n outOfTheWay: 'cubic-bezier(0.2, 0, 0, 1)',\n drop: 'cubic-bezier(.2,1,.1,1)'\n};\nvar combine = {\n opacity: {\n drop: 0,\n combining: 0.7\n },\n scale: {\n drop: 0.75\n }\n};\nvar timings = {\n outOfTheWay: 0.2,\n minDropTime: 0.33,\n maxDropTime: 0.55\n};\nvar outOfTheWayTiming = timings.outOfTheWay + \"s \" + curves.outOfTheWay;\nvar transitions = {\n fluid: \"opacity \" + outOfTheWayTiming,\n snap: \"transform \" + outOfTheWayTiming + \", opacity \" + outOfTheWayTiming,\n drop: function drop(duration) {\n var timing = duration + \"s \" + curves.drop;\n return \"transform \" + timing + \", opacity \" + timing;\n },\n outOfTheWay: \"transform \" + outOfTheWayTiming,\n placeholder: \"height \" + outOfTheWayTiming + \", width \" + outOfTheWayTiming + \", margin \" + outOfTheWayTiming\n};\n\nvar moveTo = function moveTo(offset) {\n return isEqual(offset, origin) ? null : \"translate(\" + offset.x + \"px, \" + offset.y + \"px)\";\n};\n\nvar transforms = {\n moveTo: moveTo,\n drop: function drop(offset, isCombining) {\n var translate = moveTo(offset);\n\n if (!translate) {\n return null;\n }\n\n if (!isCombining) {\n return translate;\n }\n\n return translate + \" scale(\" + combine.scale.drop + \")\";\n }\n};\n\nvar minDropTime = timings.minDropTime,\n maxDropTime = timings.maxDropTime;\nvar dropTimeRange = maxDropTime - minDropTime;\nvar maxDropTimeAtDistance = 1500;\nvar cancelDropModifier = 0.6;\nvar getDropDuration = (function (_ref) {\n var current = _ref.current,\n destination = _ref.destination,\n reason = _ref.reason;\n var distance$1 = distance(current, destination);\n\n if (distance$1 <= 0) {\n return minDropTime;\n }\n\n if (distance$1 >= maxDropTimeAtDistance) {\n return maxDropTime;\n }\n\n var percentage = distance$1 / maxDropTimeAtDistance;\n var duration = minDropTime + dropTimeRange * percentage;\n var withDuration = reason === 'CANCEL' ? duration * cancelDropModifier : duration;\n return Number(withDuration.toFixed(2));\n});\n\nvar getNewHomeClientOffset = (function (_ref) {\n var impact = _ref.impact,\n draggable = _ref.draggable,\n dimensions = _ref.dimensions,\n viewport = _ref.viewport,\n onLift = _ref.onLift;\n var draggables = dimensions.draggables,\n droppables = dimensions.droppables;\n var droppableId = whatIsDraggedOver(impact);\n var destination = droppableId ? droppables[droppableId] : null;\n var home = droppables[draggable.descriptor.droppableId];\n var newClientCenter = getClientBorderBoxCenter({\n impact: impact,\n draggable: draggable,\n draggables: draggables,\n onLift: onLift,\n droppable: destination || home,\n viewport: viewport\n });\n var offset = subtract(newClientCenter, draggable.client.borderBox.center);\n var merge = impact.merge;\n\n if (merge && didStartDisplaced(merge.combine.draggableId, onLift)) {\n return subtract(offset, onLift.displacedBy.point);\n }\n\n return offset;\n});\n\nvar getDropImpact = (function (_ref) {\n var reason = _ref.reason,\n lastImpact = _ref.lastImpact,\n home = _ref.home,\n viewport = _ref.viewport,\n draggables = _ref.draggables,\n onLiftImpact = _ref.onLiftImpact,\n onLift = _ref.onLift;\n var didDropInsideDroppable = reason === 'DROP' && Boolean(whatIsDraggedOver(lastImpact));\n\n if (!didDropInsideDroppable) {\n var impact = recompute({\n impact: onLiftImpact,\n destination: home,\n viewport: viewport,\n draggables: draggables,\n onLift: onLift,\n forceShouldAnimate: true\n });\n return {\n impact: impact,\n didDropInsideDroppable: didDropInsideDroppable\n };\n }\n\n if (lastImpact.destination) {\n return {\n impact: lastImpact,\n didDropInsideDroppable: didDropInsideDroppable\n };\n }\n\n var withoutMovement = _extends({}, lastImpact, {\n movement: noMovement\n });\n\n return {\n impact: withoutMovement,\n didDropInsideDroppable: didDropInsideDroppable\n };\n});\n\nvar drop$1 = (function (_ref) {\n var getState = _ref.getState,\n dispatch = _ref.dispatch;\n return function (next) {\n return function (action) {\n if (action.type !== 'DROP') {\n next(action);\n return;\n }\n\n var state = getState();\n var reason = action.payload.reason;\n\n if (state.phase === 'COLLECTING') {\n dispatch(dropPending({\n reason: reason\n }));\n return;\n }\n\n if (state.phase === 'IDLE') {\n return;\n }\n\n var isWaitingForDrop = state.phase === 'DROP_PENDING' && state.isWaiting;\n !!isWaitingForDrop ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'A DROP action occurred while DROP_PENDING and still waiting') : invariant(false) : void 0;\n !(state.phase === 'DRAGGING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot drop in phase: \" + state.phase) : invariant(false) : void 0;\n var critical = state.critical;\n var dimensions = state.dimensions;\n\n var _getDropImpact = getDropImpact({\n reason: reason,\n lastImpact: state.impact,\n onLift: state.onLift,\n onLiftImpact: state.onLiftImpact,\n home: state.dimensions.droppables[state.critical.droppable.id],\n viewport: state.viewport,\n draggables: state.dimensions.draggables\n }),\n impact = _getDropImpact.impact,\n didDropInsideDroppable = _getDropImpact.didDropInsideDroppable;\n\n var draggable = dimensions.draggables[state.critical.draggable.id];\n var destination = didDropInsideDroppable ? impact.destination : null;\n var combine = didDropInsideDroppable && impact.merge ? impact.merge.combine : null;\n var source = {\n index: critical.draggable.index,\n droppableId: critical.droppable.id\n };\n var result = {\n draggableId: draggable.descriptor.id,\n type: draggable.descriptor.type,\n source: source,\n reason: reason,\n mode: state.movementMode,\n destination: destination,\n combine: combine\n };\n var newHomeClientOffset = getNewHomeClientOffset({\n impact: impact,\n draggable: draggable,\n dimensions: dimensions,\n viewport: state.viewport,\n onLift: state.onLift\n });\n var completed = {\n critical: state.critical,\n result: result,\n impact: impact\n };\n var isAnimationRequired = !isEqual(state.current.client.offset, newHomeClientOffset) || Boolean(result.combine);\n\n if (!isAnimationRequired) {\n dispatch(completeDrop({\n completed: completed,\n shouldFlush: false\n }));\n return;\n }\n\n var dropDuration = getDropDuration({\n current: state.current.client.offset,\n destination: newHomeClientOffset,\n reason: reason\n });\n var args = {\n newHomeClientOffset: newHomeClientOffset,\n dropDuration: dropDuration,\n completed: completed\n };\n dispatch(animateDrop(args));\n };\n };\n});\n\nvar position = function position(index) {\n return index + 1;\n};\n\nvar onDragStart = function onDragStart(start) {\n return \"\\n You have lifted an item in position \" + position(start.source.index) + \".\\n Use the arrow keys to move, space bar to drop, and escape to cancel.\\n\";\n};\n\nvar withLocation = function withLocation(source, destination) {\n var isInHomeList = source.droppableId === destination.droppableId;\n var startPosition = position(source.index);\n var endPosition = position(destination.index);\n\n if (isInHomeList) {\n return \"\\n You have moved the item from position \" + startPosition + \"\\n to position \" + endPosition + \"\\n \";\n }\n\n return \"\\n You have moved the item from position \" + startPosition + \"\\n in list \" + source.droppableId + \"\\n to list \" + destination.droppableId + \"\\n in position \" + endPosition + \"\\n \";\n};\n\nvar withCombine = function withCombine(id, source, combine) {\n var inHomeList = source.droppableId === combine.droppableId;\n\n if (inHomeList) {\n return \"\\n The item \" + id + \"\\n has been combined with \" + combine.draggableId;\n }\n\n return \"\\n The item \" + id + \"\\n in list \" + source.droppableId + \"\\n has been combined with \" + combine.draggableId + \"\\n in list \" + combine.droppableId + \"\\n \";\n};\n\nvar onDragUpdate = function onDragUpdate(update) {\n var location = update.destination;\n\n if (location) {\n return withLocation(update.source, location);\n }\n\n var combine = update.combine;\n\n if (combine) {\n return withCombine(update.draggableId, update.source, combine);\n }\n\n return 'You are over an area that cannot be dropped on';\n};\n\nvar returnedToStart = function returnedToStart(source) {\n return \"\\n The item has returned to its starting position\\n of \" + position(source.index) + \"\\n\";\n};\n\nvar onDragEnd = function onDragEnd(result) {\n if (result.reason === 'CANCEL') {\n return \"\\n Movement cancelled.\\n \" + returnedToStart(result.source) + \"\\n \";\n }\n\n var location = result.destination;\n var combine = result.combine;\n\n if (location) {\n return \"\\n You have dropped the item.\\n \" + withLocation(result.source, location) + \"\\n \";\n }\n\n if (combine) {\n return \"\\n You have dropped the item.\\n \" + withCombine(result.draggableId, result.source, combine) + \"\\n \";\n }\n\n return \"\\n The item has been dropped while not over a drop area.\\n \" + returnedToStart(result.source) + \"\\n \";\n};\n\nvar preset = {\n onDragStart: onDragStart,\n onDragUpdate: onDragUpdate,\n onDragEnd: onDragEnd\n};\n\nvar getExpiringAnnounce = (function (announce) {\n var wasCalled = false;\n var isExpired = false;\n var timeoutId = setTimeout(function () {\n isExpired = true;\n });\n\n var result = function result(message) {\n if (wasCalled) {\n process.env.NODE_ENV !== \"production\" ? warning('Announcement already made. Not making a second announcement') : void 0;\n return;\n }\n\n if (isExpired) {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Announcements cannot be made asynchronously.\\n Default message has already been announced.\\n \") : void 0;\n return;\n }\n\n wasCalled = true;\n announce(message);\n clearTimeout(timeoutId);\n };\n\n result.wasCalled = function () {\n return wasCalled;\n };\n\n return result;\n});\n\nvar getAsyncMarshal = (function () {\n var entries = [];\n\n var execute = function execute(timerId) {\n var index = findIndex(entries, function (item) {\n return item.timerId === timerId;\n });\n !(index !== -1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find timer') : invariant(false) : void 0;\n\n var _entries$splice = entries.splice(index, 1),\n entry = _entries$splice[0];\n\n entry.callback();\n };\n\n var add = function add(fn) {\n var timerId = setTimeout(function () {\n return execute(timerId);\n });\n var entry = {\n timerId: timerId,\n callback: fn\n };\n entries.push(entry);\n };\n\n var flush = function flush() {\n if (!entries.length) {\n return;\n }\n\n var shallow = [].concat(entries);\n entries.length = 0;\n shallow.forEach(function (entry) {\n clearTimeout(entry.timerId);\n entry.callback();\n });\n };\n\n return {\n add: add,\n flush: flush\n };\n});\n\nvar areLocationsEqual = function areLocationsEqual(first, second) {\n if (first == null && second == null) {\n return true;\n }\n\n if (first == null || second == null) {\n return false;\n }\n\n return first.droppableId === second.droppableId && first.index === second.index;\n};\nvar isCombineEqual = function isCombineEqual(first, second) {\n if (first == null && second == null) {\n return true;\n }\n\n if (first == null || second == null) {\n return false;\n }\n\n return first.draggableId === second.draggableId && first.droppableId === second.droppableId;\n};\nvar isCriticalEqual = function isCriticalEqual(first, second) {\n if (first === second) {\n return true;\n }\n\n var isDraggableEqual = first.draggable.id === second.draggable.id && first.draggable.droppableId === second.draggable.droppableId && first.draggable.type === second.draggable.type && first.draggable.index === second.draggable.index;\n var isDroppableEqual = first.droppable.id === second.droppable.id && first.droppable.type === second.droppable.type;\n return isDraggableEqual && isDroppableEqual;\n};\n\nvar withTimings = function withTimings(key, fn) {\n start(key);\n fn();\n finish(key);\n};\n\nvar getDragStart = function getDragStart(critical, mode) {\n return {\n draggableId: critical.draggable.id,\n type: critical.droppable.type,\n source: {\n droppableId: critical.droppable.id,\n index: critical.draggable.index\n },\n mode: mode\n };\n};\n\nvar execute = function execute(responder, data, announce, getDefaultMessage) {\n if (!responder) {\n announce(getDefaultMessage(data));\n return;\n }\n\n var willExpire = getExpiringAnnounce(announce);\n var provided = {\n announce: willExpire\n };\n responder(data, provided);\n\n if (!willExpire.wasCalled()) {\n announce(getDefaultMessage(data));\n }\n};\n\nvar getPublisher = (function (getResponders, announce) {\n var asyncMarshal = getAsyncMarshal();\n var dragging = null;\n\n var beforeStart = function beforeStart(critical, mode) {\n !!dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onBeforeDragStart as a drag start has already been published') : invariant(false) : void 0;\n withTimings('onBeforeDragStart', function () {\n var fn = getResponders().onBeforeDragStart;\n\n if (fn) {\n fn(getDragStart(critical, mode));\n }\n });\n };\n\n var start = function start(critical, mode) {\n !!dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onBeforeDragStart as a drag start has already been published') : invariant(false) : void 0;\n var data = getDragStart(critical, mode);\n dragging = {\n mode: mode,\n lastCritical: critical,\n lastLocation: data.source,\n lastCombine: null\n };\n asyncMarshal.add(function () {\n withTimings('onDragStart', function () {\n return execute(getResponders().onDragStart, data, announce, preset.onDragStart);\n });\n });\n };\n\n var update = function update(critical, impact) {\n var location = impact.destination;\n var combine = impact.merge ? impact.merge.combine : null;\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onDragMove when onDragStart has not been called') : invariant(false) : void 0;\n var hasCriticalChanged = !isCriticalEqual(critical, dragging.lastCritical);\n\n if (hasCriticalChanged) {\n dragging.lastCritical = critical;\n }\n\n var hasLocationChanged = !areLocationsEqual(dragging.lastLocation, location);\n\n if (hasLocationChanged) {\n dragging.lastLocation = location;\n }\n\n var hasGroupingChanged = !isCombineEqual(dragging.lastCombine, combine);\n\n if (hasGroupingChanged) {\n dragging.lastCombine = combine;\n }\n\n if (!hasCriticalChanged && !hasLocationChanged && !hasGroupingChanged) {\n return;\n }\n\n var data = _extends({}, getDragStart(critical, dragging.mode), {\n combine: combine,\n destination: location\n });\n\n asyncMarshal.add(function () {\n withTimings('onDragUpdate', function () {\n return execute(getResponders().onDragUpdate, data, announce, preset.onDragUpdate);\n });\n });\n };\n\n var flush = function flush() {\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Can only flush responders while dragging') : invariant(false) : void 0;\n asyncMarshal.flush();\n };\n\n var drop = function drop(result) {\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onDragEnd when there is no matching onDragStart') : invariant(false) : void 0;\n dragging = null;\n withTimings('onDragEnd', function () {\n return execute(getResponders().onDragEnd, result, announce, preset.onDragEnd);\n });\n };\n\n var abort = function abort() {\n if (!dragging) {\n return;\n }\n\n var result = _extends({}, getDragStart(dragging.lastCritical, dragging.mode), {\n combine: null,\n destination: null,\n reason: 'CANCEL'\n });\n\n drop(result);\n };\n\n return {\n beforeStart: beforeStart,\n start: start,\n update: update,\n flush: flush,\n drop: drop,\n abort: abort\n };\n});\n\nvar responders = (function (getResponders, announce) {\n var publisher = getPublisher(getResponders, announce);\n return function (store) {\n return function (next) {\n return function (action) {\n if (action.type === 'INITIAL_PUBLISH') {\n var critical = action.payload.critical;\n publisher.beforeStart(critical, action.payload.movementMode);\n next(action);\n publisher.start(critical, action.payload.movementMode);\n return;\n }\n\n if (action.type === 'DROP_COMPLETE') {\n var result = action.payload.completed.result;\n publisher.flush();\n next(action);\n publisher.drop(result);\n return;\n }\n\n next(action);\n\n if (action.type === 'CLEAN') {\n publisher.abort();\n return;\n }\n\n var state = store.getState();\n\n if (state.phase === 'DRAGGING') {\n publisher.update(state.critical, state.impact);\n }\n };\n };\n };\n});\n\nvar dropAnimationFinish = (function (store) {\n return function (next) {\n return function (action) {\n if (action.type !== 'DROP_ANIMATION_FINISHED') {\n next(action);\n return;\n }\n\n var state = store.getState();\n !(state.phase === 'DROP_ANIMATING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot finish a drop animating when no drop is occurring') : invariant(false) : void 0;\n store.dispatch(completeDrop({\n completed: state.completed,\n shouldFlush: false\n }));\n };\n };\n});\n\nvar dimensionMarshalStopper = (function (marshal) {\n return function () {\n return function (next) {\n return function (action) {\n if (action.type === 'DROP_COMPLETE' || action.type === 'CLEAN' || action.type === 'DROP_ANIMATE') {\n marshal.stopPublishing();\n }\n\n next(action);\n };\n };\n };\n});\n\nvar shouldEnd = function shouldEnd(action) {\n return action.type === 'DROP_COMPLETE' || action.type === 'DROP_ANIMATE' || action.type === 'CLEAN';\n};\n\nvar shouldCancelPending = function shouldCancelPending(action) {\n return action.type === 'COLLECTION_STARTING';\n};\n\nvar autoScroll = (function (autoScroller) {\n return function (store) {\n return function (next) {\n return function (action) {\n if (shouldEnd(action)) {\n autoScroller.stop();\n next(action);\n return;\n }\n\n if (shouldCancelPending(action)) {\n autoScroller.cancelPending();\n next(action);\n return;\n }\n\n if (action.type === 'INITIAL_PUBLISH') {\n next(action);\n var state = store.getState();\n !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected phase to be DRAGGING after INITIAL_PUBLISH') : invariant(false) : void 0;\n autoScroller.start(state);\n return;\n }\n\n next(action);\n autoScroller.scroll(store.getState());\n };\n };\n };\n});\n\nvar pendingDrop = (function (store) {\n return function (next) {\n return function (action) {\n next(action);\n\n if (action.type !== 'PUBLISH_WHILE_DRAGGING') {\n return;\n }\n\n var postActionState = store.getState();\n\n if (postActionState.phase !== 'DROP_PENDING') {\n return;\n }\n\n if (postActionState.isWaiting) {\n return;\n }\n\n store.dispatch(drop({\n reason: postActionState.reason\n }));\n };\n };\n});\n\nvar composeEnhancers = process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : compose;\nvar createStore = (function (_ref) {\n var dimensionMarshal = _ref.dimensionMarshal,\n styleMarshal = _ref.styleMarshal,\n getResponders = _ref.getResponders,\n announce = _ref.announce,\n autoScroller = _ref.autoScroller;\n return createStore$1(reducer, composeEnhancers(applyMiddleware(style(styleMarshal), dimensionMarshalStopper(dimensionMarshal), lift$1(dimensionMarshal), drop$1, dropAnimationFinish, pendingDrop, autoScroll(autoScroller), responders(getResponders, announce))));\n});\n\nvar clean$2 = function clean() {\n return {\n additions: {},\n removals: {},\n modified: {}\n };\n};\n\nvar timingKey = 'Publish collection from DOM';\nvar createPublisher = (function (_ref) {\n var getEntries = _ref.getEntries,\n callbacks = _ref.callbacks;\n\n var advancedUsageWarning = function () {\n if (process.env.NODE_ENV === 'production') {\n return function () {};\n }\n\n var hasAnnounced = false;\n return function () {\n if (hasAnnounced) {\n return;\n }\n\n hasAnnounced = true;\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Advanced usage warning: you are adding or removing a dimension during a drag\\n This an advanced feature.\\n\\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/changes-while-dragging.md\\n \") : void 0;\n };\n }();\n\n var staging = clean$2();\n var frameId = null;\n\n var collect = function collect() {\n advancedUsageWarning();\n\n if (frameId) {\n return;\n }\n\n frameId = requestAnimationFrame(function () {\n frameId = null;\n callbacks.collectionStarting();\n var critical = callbacks.getCritical();\n start(timingKey);\n var entries = getEntries();\n var _staging = staging,\n additions = _staging.additions,\n removals = _staging.removals,\n modified = _staging.modified;\n\n var added = _Object$keys(additions).map(function (id) {\n return entries.draggables[id].getDimension(origin);\n }).sort(function (a, b) {\n return a.descriptor.index - b.descriptor.index;\n });\n\n var updated = _Object$keys(modified).map(function (id) {\n var entry = entries.droppables[id];\n !entry ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot find dynamically added droppable in cache') : invariant(false) : void 0;\n var isHome = entry.descriptor.id === critical.droppable.id;\n var options = {\n withoutPlaceholder: !isHome\n };\n return entry.callbacks.recollect(options);\n });\n\n var result = {\n additions: added,\n removals: _Object$keys(removals),\n modified: updated\n };\n staging = clean$2();\n finish(timingKey);\n callbacks.publish(result);\n });\n };\n\n var add = function add(descriptor) {\n staging.additions[descriptor.id] = descriptor;\n staging.modified[descriptor.droppableId] = true;\n\n if (staging.removals[descriptor.id]) {\n delete staging.removals[descriptor.id];\n }\n\n collect();\n };\n\n var remove = function remove(descriptor) {\n staging.removals[descriptor.id] = descriptor;\n staging.modified[descriptor.droppableId] = true;\n\n if (staging.additions[descriptor.id]) {\n delete staging.additions[descriptor.id];\n }\n\n collect();\n };\n\n var stop = function stop() {\n if (!frameId) {\n return;\n }\n\n cancelAnimationFrame(frameId);\n frameId = null;\n staging = clean$2();\n };\n\n return {\n add: add,\n remove: remove,\n stop: stop\n };\n});\n\nvar getWindowScroll = (function () {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n});\n\nvar getDocumentElement = (function () {\n var doc = document.documentElement;\n !doc ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot find document.documentElement') : invariant(false) : void 0;\n return doc;\n});\n\nvar getMaxWindowScroll = (function () {\n var doc = getDocumentElement();\n var maxScroll = getMaxScroll({\n scrollHeight: doc.scrollHeight,\n scrollWidth: doc.scrollWidth,\n width: doc.clientWidth,\n height: doc.clientHeight\n });\n return maxScroll;\n});\n\nvar getViewport = (function () {\n var scroll = getWindowScroll();\n var maxScroll = getMaxWindowScroll();\n var top = scroll.y;\n var left = scroll.x;\n var doc = getDocumentElement();\n var width = doc.clientWidth;\n var height = doc.clientHeight;\n var right = left + width;\n var bottom = top + height;\n var frame = getRect({\n top: top,\n left: left,\n right: right,\n bottom: bottom\n });\n var viewport = {\n frame: frame,\n scroll: {\n initial: scroll,\n current: scroll,\n max: maxScroll,\n diff: {\n value: origin,\n displacement: origin\n }\n }\n };\n return viewport;\n});\n\nvar getInitialPublish = (function (_ref) {\n var critical = _ref.critical,\n scrollOptions = _ref.scrollOptions,\n entries = _ref.entries;\n var timingKey = 'Initial collection from DOM';\n start(timingKey);\n var viewport = getViewport();\n var windowScroll = viewport.scroll.current;\n var home = critical.droppable;\n var droppables = values(entries.droppables).filter(function (entry) {\n return entry.descriptor.type === home.type;\n }).map(function (entry) {\n return entry.callbacks.getDimensionAndWatchScroll(windowScroll, scrollOptions);\n });\n var draggables = values(entries.draggables).filter(function (entry) {\n return entry.descriptor.type === critical.draggable.type;\n }).map(function (entry) {\n return entry.getDimension(windowScroll);\n });\n var dimensions = {\n draggables: toDraggableMap(draggables),\n droppables: toDroppableMap(droppables)\n };\n finish(timingKey);\n var result = {\n dimensions: dimensions,\n critical: critical,\n viewport: viewport\n };\n return result;\n});\n\nvar throwIfAddOrRemoveOfWrongType = function throwIfAddOrRemoveOfWrongType(collection, descriptor) {\n !(collection.critical.draggable.type === descriptor.type) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"We have detected that you have added a Draggable during a drag.\\n This is not of the same type as the dragging item\\n\\n Dragging type: \" + collection.critical.draggable.type + \".\\n Added type: \" + descriptor.type + \"\\n\\n We are not allowing this as you can run into problems if your change\\n has shifted the positioning of other Droppables, or has changed the size of the page\") : invariant(false) : void 0;\n};\n\nvar createDimensionMarshal = (function (callbacks) {\n var entries = {\n droppables: {},\n draggables: {}\n };\n var collection = null;\n var publisher = createPublisher({\n callbacks: {\n publish: callbacks.publishWhileDragging,\n collectionStarting: callbacks.collectionStarting,\n getCritical: function getCritical() {\n !collection ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot get critical when there is no collection') : invariant(false) : void 0;\n return collection.critical;\n }\n },\n getEntries: function getEntries() {\n return entries;\n }\n });\n\n var registerDraggable = function registerDraggable(descriptor, getDimension) {\n var entry = {\n descriptor: descriptor,\n getDimension: getDimension\n };\n entries.draggables[descriptor.id] = entry;\n\n if (!collection) {\n return;\n }\n\n throwIfAddOrRemoveOfWrongType(collection, descriptor);\n publisher.add(descriptor);\n };\n\n var updateDraggable = function updateDraggable(published, descriptor, getDimension) {\n var existing = entries.draggables[published.id];\n !existing ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot update draggable registration as no published registration was found') : invariant(false) : void 0;\n\n if (existing.descriptor === published) {\n delete entries.draggables[published.id];\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Detected incorrect usage of 'key' on '\\n\\n Your 'key' should be:\\n - Unique for each Draggable in a list\\n - Not be based on the index of the Draggable\\n\\n Usually you want your 'key' to just be the 'draggableId'\\n\\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/api/draggable.md#keys-for-a-list-of-draggable-\\n \") : void 0;\n }\n\n var entry = {\n descriptor: descriptor,\n getDimension: getDimension\n };\n entries.draggables[descriptor.id] = entry;\n };\n\n var unregisterDraggable = function unregisterDraggable(descriptor) {\n var entry = entries.draggables[descriptor.id];\n !entry ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot unregister Draggable with id:\\n \" + descriptor.id + \" as it is not registered\") : invariant(false) : void 0;\n\n if (entry.descriptor !== descriptor) {\n return;\n }\n\n delete entries.draggables[descriptor.id];\n\n if (!collection) {\n return;\n }\n\n !(collection.critical.draggable.id !== descriptor.id) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot remove the dragging item during a drag') : invariant(false) : void 0;\n throwIfAddOrRemoveOfWrongType(collection, descriptor);\n publisher.remove(descriptor);\n };\n\n var registerDroppable = function registerDroppable(descriptor, droppableCallbacks) {\n var id = descriptor.id;\n entries.droppables[id] = {\n descriptor: descriptor,\n callbacks: droppableCallbacks\n };\n !!collection ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot add a Droppable during a drag') : invariant(false) : void 0;\n };\n\n var unregisterDroppable = function unregisterDroppable(descriptor) {\n var entry = entries.droppables[descriptor.id];\n !entry ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot unregister Droppable with id \" + descriptor.id + \" as as it is not registered\") : invariant(false) : void 0;\n\n if (entry.descriptor !== descriptor) {\n return;\n }\n\n delete entries.droppables[descriptor.id];\n !!collection ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot add a Droppable during a drag') : invariant(false) : void 0;\n };\n\n var updateDroppableIsEnabled = function updateDroppableIsEnabled(id, isEnabled) {\n !entries.droppables[id] ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot update is enabled flag of Droppable \" + id + \" as it is not registered\") : invariant(false) : void 0;\n\n if (!collection) {\n return;\n }\n\n callbacks.updateDroppableIsEnabled({\n id: id,\n isEnabled: isEnabled\n });\n };\n\n var updateDroppableIsCombineEnabled = function updateDroppableIsCombineEnabled(id, isCombineEnabled) {\n !entries.droppables[id] ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot update isCombineEnabled flag of Droppable \" + id + \" as it is not registered\") : invariant(false) : void 0;\n\n if (!collection) {\n return;\n }\n\n callbacks.updateDroppableIsCombineEnabled({\n id: id,\n isCombineEnabled: isCombineEnabled\n });\n };\n\n var updateDroppableScroll = function updateDroppableScroll(id, newScroll) {\n !entries.droppables[id] ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot update the scroll on Droppable \" + id + \" as it is not registered\") : invariant(false) : void 0;\n\n if (!collection) {\n return;\n }\n\n callbacks.updateDroppableScroll({\n id: id,\n offset: newScroll\n });\n };\n\n var scrollDroppable = function scrollDroppable(id, change) {\n var entry = entries.droppables[id];\n !entry ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot scroll Droppable \" + id + \" as it is not registered\") : invariant(false) : void 0;\n\n if (!collection) {\n return;\n }\n\n entry.callbacks.scroll(change);\n };\n\n var stopPublishing = function stopPublishing() {\n if (!collection) {\n return;\n }\n\n publisher.stop();\n var home = collection.critical.droppable;\n values(entries.droppables).filter(function (entry) {\n return entry.descriptor.type === home.type;\n }).forEach(function (entry) {\n return entry.callbacks.dragStopped();\n });\n collection = null;\n };\n\n var startPublishing = function startPublishing(request) {\n !!collection ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot start capturing critical dimensions as there is already a collection') : invariant(false) : void 0;\n var entry = entries.draggables[request.draggableId];\n !entry ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot find critical draggable entry') : invariant(false) : void 0;\n var home = entries.droppables[entry.descriptor.droppableId];\n !home ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot find critical droppable entry') : invariant(false) : void 0;\n var critical = {\n draggable: entry.descriptor,\n droppable: home.descriptor\n };\n collection = {\n critical: critical\n };\n return getInitialPublish({\n critical: critical,\n entries: entries,\n scrollOptions: request.scrollOptions\n });\n };\n\n var marshal = {\n registerDraggable: registerDraggable,\n updateDraggable: updateDraggable,\n unregisterDraggable: unregisterDraggable,\n registerDroppable: registerDroppable,\n unregisterDroppable: unregisterDroppable,\n updateDroppableIsEnabled: updateDroppableIsEnabled,\n updateDroppableIsCombineEnabled: updateDroppableIsCombineEnabled,\n scrollDroppable: scrollDroppable,\n updateDroppableScroll: updateDroppableScroll,\n startPublishing: startPublishing,\n stopPublishing: stopPublishing\n };\n return marshal;\n});\n\nvar canStartDrag = (function (state, id) {\n if (state.phase === 'IDLE') {\n return true;\n }\n\n if (state.phase !== 'DROP_ANIMATING') {\n return false;\n }\n\n if (state.completed.result.draggableId === id) {\n return false;\n }\n\n return state.completed.result.reason === 'DROP';\n});\n\nvar scrollWindow = (function (change) {\n window.scrollBy(change.x, change.y);\n});\n\nvar getScrollableDroppables = memoizeOne(function (droppables) {\n return toDroppableList(droppables).filter(function (droppable) {\n if (!droppable.isEnabled) {\n return false;\n }\n\n if (!droppable.frame) {\n return false;\n }\n\n return true;\n });\n});\n\nvar getScrollableDroppableOver = function getScrollableDroppableOver(target, droppables) {\n var maybe = find(getScrollableDroppables(droppables), function (droppable) {\n !droppable.frame ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Invalid result') : invariant(false) : void 0;\n return isPositionInFrame(droppable.frame.pageMarginBox)(target);\n });\n return maybe;\n};\n\nvar getBestScrollableDroppable = (function (_ref) {\n var center = _ref.center,\n destination = _ref.destination,\n droppables = _ref.droppables;\n\n if (destination) {\n var _dimension = droppables[destination];\n\n if (!_dimension.frame) {\n return null;\n }\n\n return _dimension;\n }\n\n var dimension = getScrollableDroppableOver(center, droppables);\n return dimension;\n});\n\nvar config = {\n startFromPercentage: 0.25,\n maxScrollAtPercentage: 0.05,\n maxPixelScroll: 28,\n ease: function ease(percentage) {\n return Math.pow(percentage, 2);\n },\n durationDampening: {\n stopDampeningAt: 1200,\n accelerateAt: 360\n }\n};\n\nvar getDistanceThresholds = (function (container, axis) {\n var startScrollingFrom = container[axis.size] * config.startFromPercentage;\n var maxScrollValueAt = container[axis.size] * config.maxScrollAtPercentage;\n var thresholds = {\n startScrollingFrom: startScrollingFrom,\n maxScrollValueAt: maxScrollValueAt\n };\n return thresholds;\n});\n\nvar getPercentage = (function (_ref) {\n var startOfRange = _ref.startOfRange,\n endOfRange = _ref.endOfRange,\n current = _ref.current;\n var range = endOfRange - startOfRange;\n\n if (range === 0) {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Detected distance range of 0 in the fluid auto scroller\\n This is unexpected and would cause a divide by 0 issue.\\n Not allowing an auto scroll\\n \") : void 0;\n return 0;\n }\n\n var currentInRange = current - startOfRange;\n var percentage = currentInRange / range;\n return percentage;\n});\n\nvar minScroll = 1;\n\nvar getValueFromDistance = (function (distanceToEdge, thresholds) {\n if (distanceToEdge > thresholds.startScrollingFrom) {\n return 0;\n }\n\n if (distanceToEdge <= thresholds.maxScrollValueAt) {\n return config.maxPixelScroll;\n }\n\n if (distanceToEdge === thresholds.startScrollingFrom) {\n return minScroll;\n }\n\n var percentageFromMaxScrollValueAt = getPercentage({\n startOfRange: thresholds.maxScrollValueAt,\n endOfRange: thresholds.startScrollingFrom,\n current: distanceToEdge\n });\n var percentageFromStartScrollingFrom = 1 - percentageFromMaxScrollValueAt;\n var scroll = config.maxPixelScroll * config.ease(percentageFromStartScrollingFrom);\n return Math.ceil(scroll);\n});\n\nvar accelerateAt = config.durationDampening.accelerateAt;\nvar stopAt = config.durationDampening.stopDampeningAt;\nvar dampenValueByTime = (function (proposedScroll, dragStartTime) {\n var startOfRange = dragStartTime;\n var endOfRange = stopAt;\n\n var now = _Date$now();\n\n var runTime = now - startOfRange;\n\n if (runTime >= stopAt) {\n return proposedScroll;\n }\n\n if (runTime < accelerateAt) {\n return minScroll;\n }\n\n var betweenAccelerateAtAndStopAtPercentage = getPercentage({\n startOfRange: accelerateAt,\n endOfRange: endOfRange,\n current: runTime\n });\n var scroll = proposedScroll * config.ease(betweenAccelerateAtAndStopAtPercentage);\n return Math.ceil(scroll);\n});\n\nvar getValue = (function (_ref) {\n var distanceToEdge = _ref.distanceToEdge,\n thresholds = _ref.thresholds,\n dragStartTime = _ref.dragStartTime,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening;\n var scroll = getValueFromDistance(distanceToEdge, thresholds);\n\n if (scroll === 0) {\n return 0;\n }\n\n if (!shouldUseTimeDampening) {\n return scroll;\n }\n\n return Math.max(dampenValueByTime(scroll, dragStartTime), minScroll);\n});\n\nvar getScrollOnAxis = (function (_ref) {\n var container = _ref.container,\n distanceToEdges = _ref.distanceToEdges,\n dragStartTime = _ref.dragStartTime,\n axis = _ref.axis,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening;\n var thresholds = getDistanceThresholds(container, axis);\n var isCloserToEnd = distanceToEdges[axis.end] < distanceToEdges[axis.start];\n\n if (isCloserToEnd) {\n return getValue({\n distanceToEdge: distanceToEdges[axis.end],\n thresholds: thresholds,\n dragStartTime: dragStartTime,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n }\n\n return -1 * getValue({\n distanceToEdge: distanceToEdges[axis.start],\n thresholds: thresholds,\n dragStartTime: dragStartTime,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n});\n\nvar adjustForSizeLimits = (function (_ref) {\n var container = _ref.container,\n subject = _ref.subject,\n proposedScroll = _ref.proposedScroll;\n var isTooBigVertically = subject.height > container.height;\n var isTooBigHorizontally = subject.width > container.width;\n\n if (!isTooBigHorizontally && !isTooBigVertically) {\n return proposedScroll;\n }\n\n if (isTooBigHorizontally && isTooBigVertically) {\n return null;\n }\n\n return {\n x: isTooBigHorizontally ? 0 : proposedScroll.x,\n y: isTooBigVertically ? 0 : proposedScroll.y\n };\n});\n\nvar clean$3 = apply(function (value) {\n return value === 0 ? 0 : value;\n});\nvar getScroll = (function (_ref) {\n var dragStartTime = _ref.dragStartTime,\n container = _ref.container,\n subject = _ref.subject,\n center = _ref.center,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening;\n var distanceToEdges = {\n top: center.y - container.top,\n right: container.right - center.x,\n bottom: container.bottom - center.y,\n left: center.x - container.left\n };\n var y = getScrollOnAxis({\n container: container,\n distanceToEdges: distanceToEdges,\n dragStartTime: dragStartTime,\n axis: vertical,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n var x = getScrollOnAxis({\n container: container,\n distanceToEdges: distanceToEdges,\n dragStartTime: dragStartTime,\n axis: horizontal,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n var required = clean$3({\n x: x,\n y: y\n });\n\n if (isEqual(required, origin)) {\n return null;\n }\n\n var limited = adjustForSizeLimits({\n container: container,\n subject: subject,\n proposedScroll: required\n });\n\n if (!limited) {\n return null;\n }\n\n return isEqual(limited, origin) ? null : limited;\n});\n\nvar smallestSigned = apply(function (value) {\n if (value === 0) {\n return 0;\n }\n\n return value > 0 ? 1 : -1;\n});\nvar getOverlap = function () {\n var getRemainder = function getRemainder(target, max) {\n if (target < 0) {\n return target;\n }\n\n if (target > max) {\n return target - max;\n }\n\n return 0;\n };\n\n return function (_ref) {\n var current = _ref.current,\n max = _ref.max,\n change = _ref.change;\n var targetScroll = add(current, change);\n var overlap = {\n x: getRemainder(targetScroll.x, max.x),\n y: getRemainder(targetScroll.y, max.y)\n };\n\n if (isEqual(overlap, origin)) {\n return null;\n }\n\n return overlap;\n };\n}();\nvar canPartiallyScroll = function canPartiallyScroll(_ref2) {\n var rawMax = _ref2.max,\n current = _ref2.current,\n change = _ref2.change;\n var max = {\n x: Math.max(current.x, rawMax.x),\n y: Math.max(current.y, rawMax.y)\n };\n var smallestChange = smallestSigned(change);\n var overlap = getOverlap({\n max: max,\n current: current,\n change: smallestChange\n });\n\n if (!overlap) {\n return true;\n }\n\n if (smallestChange.x !== 0 && overlap.x === 0) {\n return true;\n }\n\n if (smallestChange.y !== 0 && overlap.y === 0) {\n return true;\n }\n\n return false;\n};\nvar canScrollWindow = function canScrollWindow(viewport, change) {\n return canPartiallyScroll({\n current: viewport.scroll.current,\n max: viewport.scroll.max,\n change: change\n });\n};\nvar getWindowOverlap = function getWindowOverlap(viewport, change) {\n if (!canScrollWindow(viewport, change)) {\n return null;\n }\n\n var max = viewport.scroll.max;\n var current = viewport.scroll.current;\n return getOverlap({\n current: current,\n max: max,\n change: change\n });\n};\nvar canScrollDroppable = function canScrollDroppable(droppable, change) {\n var frame = droppable.frame;\n\n if (!frame) {\n return false;\n }\n\n return canPartiallyScroll({\n current: frame.scroll.current,\n max: frame.scroll.max,\n change: change\n });\n};\nvar getDroppableOverlap = function getDroppableOverlap(droppable, change) {\n var frame = droppable.frame;\n\n if (!frame) {\n return null;\n }\n\n if (!canScrollDroppable(droppable, change)) {\n return null;\n }\n\n return getOverlap({\n current: frame.scroll.current,\n max: frame.scroll.max,\n change: change\n });\n};\n\nvar getWindowScrollChange = (function (_ref) {\n var viewport = _ref.viewport,\n subject = _ref.subject,\n center = _ref.center,\n dragStartTime = _ref.dragStartTime,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening;\n var scroll = getScroll({\n dragStartTime: dragStartTime,\n container: viewport.frame,\n subject: subject,\n center: center,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n return scroll && canScrollWindow(viewport, scroll) ? scroll : null;\n});\n\nvar getDroppableScrollChange = (function (_ref) {\n var droppable = _ref.droppable,\n subject = _ref.subject,\n center = _ref.center,\n dragStartTime = _ref.dragStartTime,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening;\n var frame = droppable.frame;\n\n if (!frame) {\n return null;\n }\n\n var scroll = getScroll({\n dragStartTime: dragStartTime,\n container: frame.pageMarginBox,\n subject: subject,\n center: center,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n return scroll && canScrollDroppable(droppable, scroll) ? scroll : null;\n});\n\nvar scroll$1 = (function (_ref) {\n var state = _ref.state,\n dragStartTime = _ref.dragStartTime,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening,\n scrollWindow = _ref.scrollWindow,\n scrollDroppable = _ref.scrollDroppable;\n var center = state.current.page.borderBoxCenter;\n var draggable = state.dimensions.draggables[state.critical.draggable.id];\n var subject = draggable.page.marginBox;\n\n if (state.isWindowScrollAllowed) {\n var viewport = state.viewport;\n\n var _change = getWindowScrollChange({\n dragStartTime: dragStartTime,\n viewport: viewport,\n subject: subject,\n center: center,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n\n if (_change) {\n scrollWindow(_change);\n return;\n }\n }\n\n var droppable = getBestScrollableDroppable({\n center: center,\n destination: whatIsDraggedOver(state.impact),\n droppables: state.dimensions.droppables\n });\n\n if (!droppable) {\n return;\n }\n\n var change = getDroppableScrollChange({\n dragStartTime: dragStartTime,\n droppable: droppable,\n subject: subject,\n center: center,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n\n if (change) {\n scrollDroppable(droppable.descriptor.id, change);\n }\n});\n\nvar createFluidScroller = (function (_ref) {\n var scrollWindow = _ref.scrollWindow,\n scrollDroppable = _ref.scrollDroppable;\n var scheduleWindowScroll = rafSchd(scrollWindow);\n var scheduleDroppableScroll = rafSchd(scrollDroppable);\n var dragging = null;\n\n var tryScroll = function tryScroll(state) {\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fluid scroll if not dragging') : invariant(false) : void 0;\n var _dragging = dragging,\n shouldUseTimeDampening = _dragging.shouldUseTimeDampening,\n dragStartTime = _dragging.dragStartTime;\n scroll$1({\n state: state,\n scrollWindow: scheduleWindowScroll,\n scrollDroppable: scheduleDroppableScroll,\n dragStartTime: dragStartTime,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n };\n\n var cancelPending = function cancelPending() {\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot cancel pending fluid scroll when not started') : invariant(false) : void 0;\n scheduleWindowScroll.cancel();\n scheduleDroppableScroll.cancel();\n };\n\n var start$1 = function start$1(state) {\n start('starting fluid scroller');\n !!dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot start auto scrolling when already started') : invariant(false) : void 0;\n\n var dragStartTime = _Date$now();\n\n var wasScrollNeeded = false;\n\n var fakeScrollCallback = function fakeScrollCallback() {\n wasScrollNeeded = true;\n };\n\n scroll$1({\n state: state,\n dragStartTime: 0,\n shouldUseTimeDampening: false,\n scrollWindow: fakeScrollCallback,\n scrollDroppable: fakeScrollCallback\n });\n dragging = {\n dragStartTime: dragStartTime,\n shouldUseTimeDampening: wasScrollNeeded\n };\n finish('starting fluid scroller');\n\n if (wasScrollNeeded) {\n tryScroll(state);\n }\n };\n\n var stop = function stop() {\n if (!dragging) {\n return;\n }\n\n cancelPending();\n dragging = null;\n };\n\n return {\n start: start$1,\n stop: stop,\n cancelPending: cancelPending,\n scroll: tryScroll\n };\n});\n\nvar createJumpScroller = (function (_ref) {\n var move = _ref.move,\n scrollDroppable = _ref.scrollDroppable,\n scrollWindow = _ref.scrollWindow;\n\n var moveByOffset = function moveByOffset(state, offset) {\n var client = add(state.current.client.selection, offset);\n move({\n client: client\n });\n };\n\n var scrollDroppableAsMuchAsItCan = function scrollDroppableAsMuchAsItCan(droppable, change) {\n if (!canScrollDroppable(droppable, change)) {\n return change;\n }\n\n var overlap = getDroppableOverlap(droppable, change);\n\n if (!overlap) {\n scrollDroppable(droppable.descriptor.id, change);\n return null;\n }\n\n var whatTheDroppableCanScroll = subtract(change, overlap);\n scrollDroppable(droppable.descriptor.id, whatTheDroppableCanScroll);\n var remainder = subtract(change, whatTheDroppableCanScroll);\n return remainder;\n };\n\n var scrollWindowAsMuchAsItCan = function scrollWindowAsMuchAsItCan(isWindowScrollAllowed, viewport, change) {\n if (!isWindowScrollAllowed) {\n return change;\n }\n\n if (!canScrollWindow(viewport, change)) {\n return change;\n }\n\n var overlap = getWindowOverlap(viewport, change);\n\n if (!overlap) {\n scrollWindow(change);\n return null;\n }\n\n var whatTheWindowCanScroll = subtract(change, overlap);\n scrollWindow(whatTheWindowCanScroll);\n var remainder = subtract(change, whatTheWindowCanScroll);\n return remainder;\n };\n\n var jumpScroller = function jumpScroller(state) {\n var request = state.scrollJumpRequest;\n\n if (!request) {\n return;\n }\n\n var destination = whatIsDraggedOver(state.impact);\n !destination ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot perform a jump scroll when there is no destination') : invariant(false) : void 0;\n var droppableRemainder = scrollDroppableAsMuchAsItCan(state.dimensions.droppables[destination], request);\n\n if (!droppableRemainder) {\n return;\n }\n\n var viewport = state.viewport;\n var windowRemainder = scrollWindowAsMuchAsItCan(state.isWindowScrollAllowed, viewport, droppableRemainder);\n\n if (!windowRemainder) {\n return;\n }\n\n moveByOffset(state, windowRemainder);\n };\n\n return jumpScroller;\n});\n\nvar createAutoScroller = (function (_ref) {\n var scrollDroppable = _ref.scrollDroppable,\n scrollWindow = _ref.scrollWindow,\n move = _ref.move;\n var fluidScroller = createFluidScroller({\n scrollWindow: scrollWindow,\n scrollDroppable: scrollDroppable\n });\n var jumpScroll = createJumpScroller({\n move: move,\n scrollWindow: scrollWindow,\n scrollDroppable: scrollDroppable\n });\n\n var scroll = function scroll(state) {\n if (state.phase !== 'DRAGGING') {\n return;\n }\n\n if (state.movementMode === 'FLUID') {\n fluidScroller.scroll(state);\n return;\n }\n\n if (!state.scrollJumpRequest) {\n return;\n }\n\n jumpScroll(state);\n };\n\n var scroller = {\n scroll: scroll,\n cancelPending: fluidScroller.cancelPending,\n start: fluidScroller.start,\n stop: fluidScroller.stop\n };\n return scroller;\n});\n\nvar prefix = 'data-react-beautiful-dnd';\nvar dragHandle = prefix + \"-drag-handle\";\nvar draggable = prefix + \"-draggable\";\nvar droppable = prefix + \"-droppable\";\n\nvar makeGetSelector = function makeGetSelector(context) {\n return function (attribute) {\n return \"[\" + attribute + \"=\\\"\" + context + \"\\\"]\";\n };\n};\n\nvar getStyles = function getStyles(rules, property) {\n return rules.map(function (rule) {\n var value = rule.styles[property];\n\n if (!value) {\n return '';\n }\n\n return rule.selector + \" { \" + value + \" }\";\n }).join(' ');\n};\n\nvar noPointerEvents = 'pointer-events: none;';\nvar getStyles$1 = (function (uniqueContext) {\n var getSelector = makeGetSelector(uniqueContext);\n\n var dragHandle$1 = function () {\n var grabCursor = \"\\n cursor: -webkit-grab;\\n cursor: grab;\\n \";\n return {\n selector: getSelector(dragHandle),\n styles: {\n always: \"\\n -webkit-touch-callout: none;\\n -webkit-tap-highlight-color: rgba(0,0,0,0);\\n touch-action: manipulation;\\n \",\n resting: grabCursor,\n dragging: noPointerEvents,\n dropAnimating: grabCursor\n }\n };\n }();\n\n var draggable$1 = function () {\n var transition = \"\\n transition: \" + transitions.outOfTheWay + \";\\n \";\n return {\n selector: getSelector(draggable),\n styles: {\n dragging: transition,\n dropAnimating: transition,\n userCancel: transition\n }\n };\n }();\n\n var droppable$1 = {\n selector: getSelector(droppable),\n styles: {\n always: \"overflow-anchor: none;\"\n }\n };\n var body = {\n selector: 'body',\n styles: {\n dragging: \"\\n cursor: grabbing;\\n cursor: -webkit-grabbing;\\n user-select: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n overflow-anchor: none;\\n \"\n }\n };\n var rules = [draggable$1, dragHandle$1, droppable$1, body];\n return {\n always: getStyles(rules, 'always'),\n resting: getStyles(rules, 'resting'),\n dragging: getStyles(rules, 'dragging'),\n dropAnimating: getStyles(rules, 'dropAnimating'),\n userCancel: getStyles(rules, 'userCancel')\n };\n});\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\nvar getHead = function getHead() {\n var head = document.querySelector('head');\n !head ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot find the head to append a style to') : invariant(false) : void 0;\n return head;\n};\n\nvar createStyleEl = function createStyleEl() {\n var el = document.createElement('style');\n el.type = 'text/css';\n return el;\n};\n\nfunction useStyleMarshal(uniqueId) {\n var uniqueContext = useMemo(function () {\n return \"\" + uniqueId;\n }, [uniqueId]);\n var styles = useMemo(function () {\n return getStyles$1(uniqueContext);\n }, [uniqueContext]);\n var alwaysRef = useRef(null);\n var dynamicRef = useRef(null);\n var setDynamicStyle = useCallback(memoizeOne(function (proposed) {\n var el = dynamicRef.current;\n !el ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot set dynamic style element if it is not set') : invariant(false) : void 0;\n el.textContent = proposed;\n }), []);\n var setAlwaysStyle = useCallback(function (proposed) {\n var el = alwaysRef.current;\n !el ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot set dynamic style element if it is not set') : invariant(false) : void 0;\n el.textContent = proposed;\n }, []);\n useIsomorphicLayoutEffect(function () {\n !(!alwaysRef.current && !dynamicRef.current) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'style elements already mounted') : invariant(false) : void 0;\n var always = createStyleEl();\n var dynamic = createStyleEl();\n alwaysRef.current = always;\n dynamicRef.current = dynamic;\n always.setAttribute(prefix + \"-always\", uniqueContext);\n dynamic.setAttribute(prefix + \"-dynamic\", uniqueContext);\n getHead().appendChild(always);\n getHead().appendChild(dynamic);\n setAlwaysStyle(styles.always);\n setDynamicStyle(styles.resting);\n return function () {\n var remove = function remove(ref) {\n var current = ref.current;\n !current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot unmount ref as it is not set') : invariant(false) : void 0;\n getHead().removeChild(current);\n ref.current = null;\n };\n\n remove(alwaysRef);\n remove(dynamicRef);\n };\n }, [setAlwaysStyle, setDynamicStyle, styles.always, styles.resting, uniqueContext]);\n var dragging = useCallback(function () {\n return setDynamicStyle(styles.dragging);\n }, [setDynamicStyle, styles.dragging]);\n var dropping = useCallback(function (reason) {\n if (reason === 'DROP') {\n setDynamicStyle(styles.dropAnimating);\n return;\n }\n\n setDynamicStyle(styles.userCancel);\n }, [setDynamicStyle, styles.dropAnimating, styles.userCancel]);\n var resting = useCallback(function () {\n if (!dynamicRef.current) {\n return;\n }\n\n setDynamicStyle(styles.resting);\n }, [setDynamicStyle, styles.resting]);\n var marshal = useMemo(function () {\n return {\n dragging: dragging,\n dropping: dropping,\n resting: resting,\n styleContext: uniqueContext\n };\n }, [dragging, dropping, resting, uniqueContext]);\n return marshal;\n}\n\nvar StoreContext = React.createContext(null);\n\nvar getBodyElement = (function () {\n var body = document.body;\n !body ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot find document.body') : invariant(false) : void 0;\n return body;\n});\n\nvar visuallyHidden = {\n position: 'absolute',\n width: '1px',\n height: '1px',\n margin: '-1px',\n border: '0',\n padding: '0',\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n 'clip-path': 'inset(100%)'\n};\nvar getId = function getId(uniqueId) {\n return \"react-beautiful-dnd-announcement-\" + uniqueId;\n};\nfunction useAnnouncer(uniqueId) {\n var id = useMemo(function () {\n return getId(uniqueId);\n }, [uniqueId]);\n var ref = useRef(null);\n useEffect(function () {\n !!ref.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Announcement node already mounted') : invariant(false) : void 0;\n var el = document.createElement('div');\n ref.current = el;\n el.id = id;\n el.setAttribute('aria-live', 'assertive');\n el.setAttribute('role', 'log');\n el.setAttribute('aria-atomic', 'true');\n\n _Object$assign(el.style, visuallyHidden);\n\n getBodyElement().appendChild(el);\n return function () {\n var toBeRemoved = ref.current;\n !toBeRemoved ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot unmount announcement node') : invariant(false) : void 0;\n getBodyElement().removeChild(toBeRemoved);\n ref.current = null;\n };\n }, [id]);\n var announce = useCallback(function (message) {\n var el = ref.current;\n\n if (el) {\n el.textContent = message;\n return;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n A screen reader message was trying to be announced but it was unable to do so.\\n This can occur if you unmount your in your onDragEnd.\\n Consider calling provided.announce() before the unmount so that the instruction will\\n not be lost for users relying on a screen reader.\\n\\n Message not passed to screen reader:\\n\\n \\\"\" + message + \"\\\"\\n \") : void 0;\n }, []);\n return announce;\n}\n\nvar AppContext = React.createContext(null);\n\nvar peerDependencies = {\n\treact: \"^16.8.5\"\n};\n\nvar semver = /(\\d+)\\.(\\d+)\\.(\\d+)/;\n\nvar getVersion = function getVersion(value) {\n var result = semver.exec(value);\n !(result != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Unable to parse React version \" + value) : invariant(false) : void 0;\n var major = Number(result[1]);\n var minor = Number(result[2]);\n var patch = Number(result[3]);\n return {\n major: major,\n minor: minor,\n patch: patch,\n raw: value\n };\n};\n\nvar isSatisfied = function isSatisfied(expected, actual) {\n if (actual.major > expected.major) {\n return true;\n }\n\n if (actual.major < expected.major) {\n return false;\n }\n\n if (actual.minor > expected.minor) {\n return true;\n }\n\n if (actual.minor < expected.minor) {\n return false;\n }\n\n return actual.patch >= expected.patch;\n};\n\nvar checkReactVersion = (function (peerDepValue, actualValue) {\n var peerDep = getVersion(peerDepValue);\n var actual = getVersion(actualValue);\n\n if (isSatisfied(peerDep, actual)) {\n return;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n React version: [\" + actual.raw + \"]\\n does not satisfy expected peer dependency version: [\" + peerDep.raw + \"]\\n\\n This can result in run time bugs, and even fatal crashes\\n \") : void 0;\n});\n\nvar suffix = \"\\n We expect a html5 doctype: \\n This is to ensure consistent browser layout and measurement\\n\\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/doctype.md\\n\";\nvar checkDoctype = (function (doc) {\n var doctype = doc.doctype;\n\n if (!doctype) {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n No found.\\n\\n \" + suffix + \"\\n \") : void 0;\n return;\n }\n\n if (doctype.name.toLowerCase() !== 'html') {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Unexpected found: (\" + doctype.name + \")\\n\\n \" + suffix + \"\\n \") : void 0;\n }\n\n if (doctype.publicId !== '') {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Unexpected publicId found: (\" + doctype.publicId + \")\\n A html5 doctype does not have a publicId\\n\\n \" + suffix + \"\\n \") : void 0;\n }\n});\n\nfunction useStartupValidation() {\n useEffect(function () {\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n\n checkReactVersion(peerDependencies.react, React.version);\n checkDoctype(document);\n }, []);\n}\n\nfunction usePrevious(current) {\n var ref = useRef(current);\n useEffect(function () {\n ref.current = current;\n });\n return ref;\n}\n\nvar createResponders = function createResponders(props) {\n return {\n onBeforeDragStart: props.onBeforeDragStart,\n onDragStart: props.onDragStart,\n onDragEnd: props.onDragEnd,\n onDragUpdate: props.onDragUpdate\n };\n};\n\nfunction getStore(lazyRef) {\n !lazyRef.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find store from lazy ref') : invariant(false) : void 0;\n return lazyRef.current;\n}\n\nfunction App(props) {\n var uniqueId = props.uniqueId,\n setOnError = props.setOnError;\n var lazyStoreRef = useRef(null);\n useStartupValidation();\n var lastPropsRef = usePrevious(props);\n var getResponders = useCallback(function () {\n return createResponders(lastPropsRef.current);\n }, [lastPropsRef]);\n var announce = useAnnouncer(uniqueId);\n var styleMarshal = useStyleMarshal(uniqueId);\n var lazyDispatch = useCallback(function (action) {\n getStore(lazyStoreRef).dispatch(action);\n }, []);\n var callbacks = useMemo(function () {\n return bindActionCreators({\n publishWhileDragging: publishWhileDragging$1,\n updateDroppableScroll: updateDroppableScroll,\n updateDroppableIsEnabled: updateDroppableIsEnabled,\n updateDroppableIsCombineEnabled: updateDroppableIsCombineEnabled,\n collectionStarting: collectionStarting\n }, lazyDispatch);\n }, [lazyDispatch]);\n var dimensionMarshal = useMemo(function () {\n return createDimensionMarshal(callbacks);\n }, [callbacks]);\n var autoScroller = useMemo(function () {\n return createAutoScroller(_extends({\n scrollWindow: scrollWindow,\n scrollDroppable: dimensionMarshal.scrollDroppable\n }, bindActionCreators({\n move: move\n }, lazyDispatch)));\n }, [dimensionMarshal.scrollDroppable, lazyDispatch]);\n var store = useMemo(function () {\n return createStore({\n dimensionMarshal: dimensionMarshal,\n styleMarshal: styleMarshal,\n announce: announce,\n autoScroller: autoScroller,\n getResponders: getResponders\n });\n }, [announce, autoScroller, dimensionMarshal, getResponders, styleMarshal]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (lazyStoreRef.current && lazyStoreRef.current !== store) {\n process.env.NODE_ENV !== \"production\" ? warning('unexpected store change') : void 0;\n }\n }\n\n lazyStoreRef.current = store;\n var tryResetStore = useCallback(function () {\n var current = getStore(lazyStoreRef);\n var state = current.getState();\n\n if (state.phase !== 'IDLE') {\n current.dispatch(clean$1({\n shouldFlush: true\n }));\n }\n }, []);\n setOnError(tryResetStore);\n var getCanLift = useCallback(function (id) {\n return canStartDrag(getStore(lazyStoreRef).getState(), id);\n }, []);\n var getIsMovementAllowed = useCallback(function () {\n return isMovementAllowed(getStore(lazyStoreRef).getState());\n }, []);\n var appContext = useMemo(function () {\n return {\n marshal: dimensionMarshal,\n style: styleMarshal.styleContext,\n canLift: getCanLift,\n isMovementAllowed: getIsMovementAllowed\n };\n }, [dimensionMarshal, getCanLift, getIsMovementAllowed, styleMarshal.styleContext]);\n useEffect(function () {\n return tryResetStore;\n }, [tryResetStore]);\n return React.createElement(AppContext.Provider, {\n value: appContext\n }, React.createElement(Provider, {\n context: StoreContext,\n store: store\n }, props.children));\n}\n\nvar instanceCount = 0;\nfunction resetServerContext() {\n instanceCount = 0;\n}\nfunction DragDropContext(props) {\n var uniqueId = useMemo(function () {\n return instanceCount++;\n }, []);\n return React.createElement(ErrorBoundary, null, function (setOnError) {\n return React.createElement(App, _extends({\n setOnError: setOnError,\n uniqueId: uniqueId\n }, props), props.children);\n });\n}\n\nvar isEqual$2 = function isEqual(base) {\n return function (value) {\n return base === value;\n };\n};\n\nvar isScroll = isEqual$2('scroll');\nvar isAuto = isEqual$2('auto');\nvar isVisible$1 = isEqual$2('visible');\n\nvar isEither = function isEither(overflow, fn) {\n return fn(overflow.overflowX) || fn(overflow.overflowY);\n};\n\nvar isBoth = function isBoth(overflow, fn) {\n return fn(overflow.overflowX) && fn(overflow.overflowY);\n};\n\nvar isElementScrollable = function isElementScrollable(el) {\n var style = window.getComputedStyle(el);\n var overflow = {\n overflowX: style.overflowX,\n overflowY: style.overflowY\n };\n return isEither(overflow, isScroll) || isEither(overflow, isAuto);\n};\n\nvar isBodyScrollable = function isBodyScrollable() {\n if (process.env.NODE_ENV === 'production') {\n return false;\n }\n\n var body = getBodyElement();\n var html = document.documentElement;\n !html ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n\n if (!isElementScrollable(body)) {\n return false;\n }\n\n var htmlStyle = window.getComputedStyle(html);\n var htmlOverflow = {\n overflowX: htmlStyle.overflowX,\n overflowY: htmlStyle.overflowY\n };\n\n if (isBoth(htmlOverflow, isVisible$1)) {\n return false;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n We have detected that your element might be a scroll container.\\n We have found no reliable way of detecting whether the element is a scroll container.\\n Under most circumstances a scroll bar will be on the element (document.documentElement)\\n\\n Because we cannot determine if the is a scroll container, and generally it is not one,\\n we will be treating the as *not* a scroll container\\n\\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/how-we-detect-scroll-containers.md\\n \") : void 0;\n return false;\n};\n\nvar getClosestScrollable = function getClosestScrollable(el) {\n if (el == null) {\n return null;\n }\n\n if (el === document.body) {\n return isBodyScrollable() ? el : null;\n }\n\n if (el === document.documentElement) {\n return null;\n }\n\n if (!isElementScrollable(el)) {\n return getClosestScrollable(el.parentElement);\n }\n\n return el;\n};\n\nvar checkForNestedScrollContainers = (function (scrollable) {\n if (!scrollable) {\n return;\n }\n\n var anotherScrollParent = getClosestScrollable(scrollable.parentElement);\n\n if (!anotherScrollParent) {\n return;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Droppable: unsupported nested scroll container detected.\\n A Droppable can only have one scroll parent (which can be itself)\\n Nested scroll containers are currently not supported.\\n\\n We hope to support nested scroll containers soon: https://github.com/atlassian/react-beautiful-dnd/issues/131\\n \") : void 0;\n});\n\nvar getScroll$1 = (function (el) {\n return {\n x: el.scrollLeft,\n y: el.scrollTop\n };\n});\n\nvar getIsFixed = function getIsFixed(el) {\n if (!el) {\n return false;\n }\n\n var style = window.getComputedStyle(el);\n\n if (style.position === 'fixed') {\n return true;\n }\n\n return getIsFixed(el.parentElement);\n};\n\nvar getEnv = (function (start) {\n var closestScrollable = getClosestScrollable(start);\n var isFixedOnPage = getIsFixed(start);\n return {\n closestScrollable: closestScrollable,\n isFixedOnPage: isFixedOnPage\n };\n});\n\nvar getClient = function getClient(targetRef, closestScrollable) {\n var base = getBox(targetRef);\n\n if (!closestScrollable) {\n return base;\n }\n\n if (targetRef !== closestScrollable) {\n return base;\n }\n\n var top = base.paddingBox.top - closestScrollable.scrollTop;\n var left = base.paddingBox.left - closestScrollable.scrollLeft;\n var bottom = top + closestScrollable.scrollHeight;\n var right = left + closestScrollable.scrollWidth;\n var paddingBox = {\n top: top,\n right: right,\n bottom: bottom,\n left: left\n };\n var borderBox = expand(paddingBox, base.border);\n var client = createBox({\n borderBox: borderBox,\n margin: base.margin,\n border: base.border,\n padding: base.padding\n });\n return client;\n};\n\nvar getDimension = (function (_ref) {\n var ref = _ref.ref,\n descriptor = _ref.descriptor,\n env = _ref.env,\n windowScroll = _ref.windowScroll,\n direction = _ref.direction,\n isDropDisabled = _ref.isDropDisabled,\n isCombineEnabled = _ref.isCombineEnabled,\n shouldClipSubject = _ref.shouldClipSubject;\n var closestScrollable = env.closestScrollable;\n var client = getClient(ref, closestScrollable);\n var page = withScroll(client, windowScroll);\n\n var closest = function () {\n if (!closestScrollable) {\n return null;\n }\n\n var frameClient = getBox(closestScrollable);\n var scrollSize = {\n scrollHeight: closestScrollable.scrollHeight,\n scrollWidth: closestScrollable.scrollWidth\n };\n return {\n client: frameClient,\n page: withScroll(frameClient, windowScroll),\n scroll: getScroll$1(closestScrollable),\n scrollSize: scrollSize,\n shouldClipSubject: shouldClipSubject\n };\n }();\n\n var dimension = getDroppableDimension({\n descriptor: descriptor,\n isEnabled: !isDropDisabled,\n isCombineEnabled: isCombineEnabled,\n isFixedOnPage: env.isFixedOnPage,\n direction: direction,\n client: client,\n page: page,\n closest: closest\n });\n return dimension;\n});\n\nfunction withoutPlaceholder(placeholder, fn) {\n if (!placeholder) {\n return fn();\n }\n\n var last = placeholder.style.display;\n placeholder.style.display = 'none';\n var result = fn();\n placeholder.style.display = last;\n return result;\n}\n\nvar immediate = {\n passive: false\n};\nvar delayed = {\n passive: true\n};\nvar getListenerOptions = (function (options) {\n return options.shouldPublishImmediately ? immediate : delayed;\n});\n\nfunction useRequiredContext(Context) {\n var result = useContext(Context);\n !result ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find required context') : invariant(false) : void 0;\n return result;\n}\n\nvar getClosestScrollableFromDrag = function getClosestScrollableFromDrag(dragging) {\n return dragging && dragging.env.closestScrollable || null;\n};\n\nfunction useDroppableDimensionPublisher(args) {\n var whileDraggingRef = useRef(null);\n var appContext = useRequiredContext(AppContext);\n var marshal = appContext.marshal;\n var previousRef = usePrevious(args);\n var descriptor = useMemo(function () {\n return {\n id: args.droppableId,\n type: args.type\n };\n }, [args.droppableId, args.type]);\n var publishedDescriptorRef = useRef(descriptor);\n var memoizedUpdateScroll = useMemo(function () {\n return memoizeOne(function (x, y) {\n !whileDraggingRef.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Can only update scroll when dragging') : invariant(false) : void 0;\n var scroll = {\n x: x,\n y: y\n };\n marshal.updateDroppableScroll(descriptor.id, scroll);\n });\n }, [descriptor.id, marshal]);\n var getClosestScroll = useCallback(function () {\n var dragging = whileDraggingRef.current;\n\n if (!dragging || !dragging.env.closestScrollable) {\n return origin;\n }\n\n return getScroll$1(dragging.env.closestScrollable);\n }, []);\n var updateScroll = useCallback(function () {\n var scroll = getClosestScroll();\n memoizedUpdateScroll(scroll.x, scroll.y);\n }, [getClosestScroll, memoizedUpdateScroll]);\n var scheduleScrollUpdate = useMemo(function () {\n return rafSchd(updateScroll);\n }, [updateScroll]);\n var onClosestScroll = useCallback(function () {\n var dragging = whileDraggingRef.current;\n var closest = getClosestScrollableFromDrag(dragging);\n !(dragging && closest) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find scroll options while scrolling') : invariant(false) : void 0;\n var options = dragging.scrollOptions;\n\n if (options.shouldPublishImmediately) {\n updateScroll();\n return;\n }\n\n scheduleScrollUpdate();\n }, [scheduleScrollUpdate, updateScroll]);\n var getDimensionAndWatchScroll = useCallback(function (windowScroll, options) {\n !!whileDraggingRef.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot collect a droppable while a drag is occurring') : invariant(false) : void 0;\n var previous = previousRef.current;\n var ref = previous.getDroppableRef();\n !ref ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot collect without a droppable ref') : invariant(false) : void 0;\n var env = getEnv(ref);\n var dragging = {\n ref: ref,\n descriptor: descriptor,\n env: env,\n scrollOptions: options\n };\n whileDraggingRef.current = dragging;\n var dimension = getDimension({\n ref: ref,\n descriptor: descriptor,\n env: env,\n windowScroll: windowScroll,\n direction: previous.direction,\n isDropDisabled: previous.isDropDisabled,\n isCombineEnabled: previous.isCombineEnabled,\n shouldClipSubject: !previous.ignoreContainerClipping\n });\n\n if (env.closestScrollable) {\n env.closestScrollable.addEventListener('scroll', onClosestScroll, getListenerOptions(dragging.scrollOptions));\n\n if (process.env.NODE_ENV !== 'production') {\n checkForNestedScrollContainers(env.closestScrollable);\n }\n }\n\n return dimension;\n }, [descriptor, onClosestScroll, previousRef]);\n var recollect = useCallback(function (options) {\n var dragging = whileDraggingRef.current;\n var closest = getClosestScrollableFromDrag(dragging);\n !(dragging && closest) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Can only recollect Droppable client for Droppables that have a scroll container') : invariant(false) : void 0;\n var previous = previousRef.current;\n\n var execute = function execute() {\n return getDimension({\n ref: dragging.ref,\n descriptor: dragging.descriptor,\n env: dragging.env,\n windowScroll: origin,\n direction: previous.direction,\n isDropDisabled: previous.isDropDisabled,\n isCombineEnabled: previous.isCombineEnabled,\n shouldClipSubject: !previous.ignoreContainerClipping\n });\n };\n\n if (!options.withoutPlaceholder) {\n return execute();\n }\n\n return withoutPlaceholder(previous.getPlaceholderRef(), execute);\n }, [previousRef]);\n var dragStopped = useCallback(function () {\n var dragging = whileDraggingRef.current;\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot stop drag when no active drag') : invariant(false) : void 0;\n var closest = getClosestScrollableFromDrag(dragging);\n whileDraggingRef.current = null;\n\n if (!closest) {\n return;\n }\n\n scheduleScrollUpdate.cancel();\n closest.removeEventListener('scroll', onClosestScroll, getListenerOptions(dragging.scrollOptions));\n }, [onClosestScroll, scheduleScrollUpdate]);\n var scroll = useCallback(function (change) {\n var dragging = whileDraggingRef.current;\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot scroll when there is no drag') : invariant(false) : void 0;\n var closest = getClosestScrollableFromDrag(dragging);\n !closest ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot scroll a droppable with no closest scrollable') : invariant(false) : void 0;\n closest.scrollTop += change.y;\n closest.scrollLeft += change.x;\n }, []);\n var callbacks = useMemo(function () {\n return {\n getDimensionAndWatchScroll: getDimensionAndWatchScroll,\n recollect: recollect,\n dragStopped: dragStopped,\n scroll: scroll\n };\n }, [dragStopped, getDimensionAndWatchScroll, recollect, scroll]);\n useIsomorphicLayoutEffect(function () {\n publishedDescriptorRef.current = descriptor;\n marshal.registerDroppable(descriptor, callbacks);\n return function () {\n if (whileDraggingRef.current) {\n process.env.NODE_ENV !== \"production\" ? warning('Unsupported: changing the droppableId or type of a Droppable during a drag') : void 0;\n dragStopped();\n }\n\n marshal.unregisterDroppable(descriptor);\n };\n }, [callbacks, descriptor, dragStopped, marshal]);\n useIsomorphicLayoutEffect(function () {\n if (!whileDraggingRef.current) {\n return;\n }\n\n marshal.updateDroppableIsEnabled(publishedDescriptorRef.current.id, !args.isDropDisabled);\n }, [args.isDropDisabled, marshal]);\n useIsomorphicLayoutEffect(function () {\n if (!whileDraggingRef.current) {\n return;\n }\n\n marshal.updateDroppableIsCombineEnabled(publishedDescriptorRef.current.id, args.isCombineEnabled);\n }, [args.isCombineEnabled, marshal]);\n}\n\nfunction noop() {}\n\nvar empty = {\n width: 0,\n height: 0,\n margin: noSpacing\n};\n\nvar getSize = function getSize(_ref) {\n var isAnimatingOpenOnMount = _ref.isAnimatingOpenOnMount,\n placeholder = _ref.placeholder,\n animate = _ref.animate;\n\n if (isAnimatingOpenOnMount) {\n return empty;\n }\n\n if (animate === 'close') {\n return empty;\n }\n\n return {\n height: placeholder.client.borderBox.height,\n width: placeholder.client.borderBox.width,\n margin: placeholder.client.margin\n };\n};\n\nvar getStyle = function getStyle(_ref2) {\n var isAnimatingOpenOnMount = _ref2.isAnimatingOpenOnMount,\n placeholder = _ref2.placeholder,\n animate = _ref2.animate;\n var size = getSize({\n isAnimatingOpenOnMount: isAnimatingOpenOnMount,\n placeholder: placeholder,\n animate: animate\n });\n return {\n display: placeholder.display,\n boxSizing: 'border-box',\n width: size.width,\n height: size.height,\n marginTop: size.margin.top,\n marginRight: size.margin.right,\n marginBottom: size.margin.bottom,\n marginLeft: size.margin.left,\n flexShrink: '0',\n flexGrow: '0',\n pointerEvents: 'none',\n transition: transitions.placeholder\n };\n};\n\nfunction Placeholder(props) {\n var animateOpenTimerRef = useRef(null);\n var tryClearAnimateOpenTimer = useCallback(function () {\n if (!animateOpenTimerRef.current) {\n return;\n }\n\n clearTimeout(animateOpenTimerRef.current);\n animateOpenTimerRef.current = null;\n }, []);\n var animate = props.animate,\n onTransitionEnd = props.onTransitionEnd,\n onClose = props.onClose,\n styleContext = props.styleContext;\n\n var _useState = useState(props.animate === 'open'),\n isAnimatingOpenOnMount = _useState[0],\n setIsAnimatingOpenOnMount = _useState[1];\n\n useEffect(function () {\n if (!isAnimatingOpenOnMount) {\n return noop;\n }\n\n if (animate !== 'open') {\n tryClearAnimateOpenTimer();\n setIsAnimatingOpenOnMount(false);\n return noop;\n }\n\n if (animateOpenTimerRef.current) {\n return noop;\n }\n\n animateOpenTimerRef.current = setTimeout(function () {\n animateOpenTimerRef.current = null;\n setIsAnimatingOpenOnMount(false);\n });\n return tryClearAnimateOpenTimer;\n }, [animate, isAnimatingOpenOnMount, tryClearAnimateOpenTimer]);\n var onSizeChangeEnd = useCallback(function (event) {\n if (event.propertyName !== 'height') {\n return;\n }\n\n onTransitionEnd();\n\n if (animate === 'close') {\n onClose();\n }\n }, [animate, onClose, onTransitionEnd]);\n var style = getStyle({\n isAnimatingOpenOnMount: isAnimatingOpenOnMount,\n animate: props.animate,\n placeholder: props.placeholder\n });\n return React.createElement(props.placeholder.tagName, {\n style: style,\n 'data-react-beautiful-dnd-placeholder': styleContext,\n onTransitionEnd: onSizeChangeEnd,\n ref: props.innerRef\n });\n}\n\nvar Placeholder$1 = React.memo(Placeholder);\n\nvar DroppableContext = React.createContext(null);\n\nvar getWindowFromEl = (function (el) {\n return el && el.ownerDocument ? el.ownerDocument.defaultView : window;\n});\n\nfunction isHtmlElement(el) {\n return el instanceof getWindowFromEl(el).HTMLElement;\n}\n\nfunction checkIsValidInnerRef(el) {\n !(el && isHtmlElement(el)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"\\n provided.innerRef has not been provided with a HTMLElement.\\n\\n You can find a guide on using the innerRef callback functions at:\\n https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/using-inner-ref.md\\n \") : invariant(false) : void 0;\n}\n\nfunction checkOwnProps(props) {\n !props.droppableId ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'A Droppable requires a droppableId prop') : invariant(false) : void 0;\n !(typeof props.isDropDisabled === 'boolean') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'isDropDisabled must be a boolean') : invariant(false) : void 0;\n !(typeof props.isCombineEnabled === 'boolean') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'isCombineEnabled must be a boolean') : invariant(false) : void 0;\n !(typeof props.ignoreContainerClipping === 'boolean') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ignoreContainerClipping must be a boolean') : invariant(false) : void 0;\n}\n\nfunction checkPlaceholderRef(props, placeholderEl) {\n if (!props.placeholder) {\n return;\n }\n\n if (placeholderEl) {\n return;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Droppable setup issue [droppableId: \\\"\" + props.droppableId + \"\\\"]:\\n DroppableProvided > placeholder could not be found.\\n\\n Please be sure to add the {provided.placeholder} React Node as a child of your Droppable.\\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/api/droppable.md\\n \") : void 0;\n}\n\nfunction useValidation(_ref) {\n var props = _ref.props,\n getDroppableRef = _ref.getDroppableRef,\n getPlaceholderRef = _ref.getPlaceholderRef;\n useEffect(function () {\n if (process.env.NODE_ENV !== 'production') {\n checkOwnProps(props);\n checkIsValidInnerRef(getDroppableRef());\n checkPlaceholderRef(props, getPlaceholderRef());\n }\n });\n}\n\nvar AnimateInOut = function (_React$PureComponent) {\n _inheritsLoose(AnimateInOut, _React$PureComponent);\n\n function AnimateInOut() {\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$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;\n _this.state = {\n isVisible: Boolean(_this.props.on),\n data: _this.props.on,\n animate: _this.props.shouldAnimate && _this.props.on ? 'open' : 'none'\n };\n\n _this.onClose = function () {\n if (_this.state.animate !== 'close') {\n return;\n }\n\n _this.setState({\n isVisible: false\n });\n };\n\n return _this;\n }\n\n AnimateInOut.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n if (!props.shouldAnimate) {\n return {\n isVisible: Boolean(props.on),\n data: props.on,\n animate: 'none'\n };\n }\n\n if (props.on) {\n return {\n isVisible: true,\n data: props.on,\n animate: 'open'\n };\n }\n\n if (state.isVisible) {\n return {\n isVisible: true,\n data: state.data,\n animate: 'close'\n };\n }\n\n return {\n isVisible: false,\n animate: 'close',\n data: null\n };\n };\n\n var _proto = AnimateInOut.prototype;\n\n _proto.render = function render() {\n if (!this.state.isVisible) {\n return null;\n }\n\n var provided = {\n onClose: this.onClose,\n data: this.state.data,\n animate: this.state.animate\n };\n return this.props.children(provided);\n };\n\n return AnimateInOut;\n}(React.PureComponent);\n\nfunction Droppable(props) {\n var appContext = useContext(AppContext);\n !appContext ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find app context') : invariant(false) : void 0;\n var styleContext = appContext.style,\n isMovementAllowed = appContext.isMovementAllowed;\n var droppableRef = useRef(null);\n var placeholderRef = useRef(null);\n var children = props.children,\n droppableId = props.droppableId,\n type = props.type,\n direction = props.direction,\n ignoreContainerClipping = props.ignoreContainerClipping,\n isDropDisabled = props.isDropDisabled,\n isCombineEnabled = props.isCombineEnabled,\n snapshot = props.snapshot,\n updateViewportMaxScroll = props.updateViewportMaxScroll;\n var getDroppableRef = useCallback(function () {\n return droppableRef.current;\n }, []);\n var getPlaceholderRef = useCallback(function () {\n return placeholderRef.current;\n }, []);\n var setDroppableRef = useCallback(function (value) {\n droppableRef.current = value;\n }, []);\n var setPlaceholderRef = useCallback(function (value) {\n placeholderRef.current = value;\n }, []);\n var onPlaceholderTransitionEnd = useCallback(function () {\n if (isMovementAllowed()) {\n updateViewportMaxScroll({\n maxScroll: getMaxWindowScroll()\n });\n }\n }, [isMovementAllowed, updateViewportMaxScroll]);\n useDroppableDimensionPublisher({\n droppableId: droppableId,\n type: type,\n direction: direction,\n isDropDisabled: isDropDisabled,\n isCombineEnabled: isCombineEnabled,\n ignoreContainerClipping: ignoreContainerClipping,\n getDroppableRef: getDroppableRef,\n getPlaceholderRef: getPlaceholderRef\n });\n var placeholder = React.createElement(AnimateInOut, {\n on: props.placeholder,\n shouldAnimate: props.shouldAnimatePlaceholder\n }, function (_ref) {\n var onClose = _ref.onClose,\n data = _ref.data,\n animate = _ref.animate;\n return React.createElement(Placeholder$1, {\n placeholder: data,\n onClose: onClose,\n innerRef: setPlaceholderRef,\n animate: animate,\n styleContext: styleContext,\n onTransitionEnd: onPlaceholderTransitionEnd\n });\n });\n var provided = useMemo(function () {\n return {\n innerRef: setDroppableRef,\n placeholder: placeholder,\n droppableProps: {\n 'data-react-beautiful-dnd-droppable': styleContext\n }\n };\n }, [placeholder, setDroppableRef, styleContext]);\n var droppableContext = useMemo(function () {\n return {\n droppableId: droppableId,\n type: type\n };\n }, [droppableId, type]);\n useValidation({\n props: props,\n getDroppableRef: function getDroppableRef() {\n return droppableRef.current;\n },\n getPlaceholderRef: function getPlaceholderRef() {\n return placeholderRef.current;\n }\n });\n return React.createElement(DroppableContext.Provider, {\n value: droppableContext\n }, children(provided, snapshot));\n}\n\nvar isStrictEqual = (function (a, b) {\n return a === b;\n});\n\nvar whatIsDraggedOverFromResult = (function (result) {\n var combine = result.combine,\n destination = result.destination;\n\n if (destination) {\n return destination.droppableId;\n }\n\n if (combine) {\n return combine.droppableId;\n }\n\n return null;\n});\n\nvar isMatchingType = function isMatchingType(type, critical) {\n return type === critical.droppable.type;\n};\n\nvar getDraggable = function getDraggable(critical, dimensions) {\n return dimensions.draggables[critical.draggable.id];\n};\n\nvar makeMapStateToProps = function makeMapStateToProps() {\n var idle = {\n placeholder: null,\n shouldAnimatePlaceholder: true,\n snapshot: {\n isDraggingOver: false,\n draggingOverWith: null,\n draggingFromThisWith: null\n }\n };\n\n var idleWithoutAnimation = _extends({}, idle, {\n shouldAnimatePlaceholder: false\n });\n\n var getMapProps = memoizeOne(function (id, isDraggingOver, dragging, snapshot) {\n var isHome = dragging.descriptor.droppableId === id;\n\n if (isHome) {\n return {\n placeholder: dragging.placeholder,\n shouldAnimatePlaceholder: false,\n snapshot: snapshot\n };\n }\n\n if (!isDraggingOver) {\n return idle;\n }\n\n return {\n placeholder: dragging.placeholder,\n shouldAnimatePlaceholder: true,\n snapshot: snapshot\n };\n });\n var getSnapshot = memoizeOne(function (id, isDraggingOver, dragging) {\n var draggableId = dragging.descriptor.id;\n var isHome = dragging.descriptor.droppableId === id;\n var draggingOverWith = isDraggingOver ? draggableId : null;\n var draggingFromThisWith = isHome ? draggableId : null;\n return {\n isDraggingOver: isDraggingOver,\n draggingOverWith: draggingOverWith,\n draggingFromThisWith: draggingFromThisWith\n };\n });\n\n var selector = function selector(state, ownProps) {\n var id = ownProps.droppableId;\n var type = ownProps.type;\n\n if (state.isDragging) {\n var critical = state.critical;\n\n if (!isMatchingType(type, critical)) {\n return idle;\n }\n\n var dragging = getDraggable(critical, state.dimensions);\n var isDraggingOver = whatIsDraggedOver(state.impact) === id;\n var snapshot = getSnapshot(id, isDraggingOver, dragging);\n return getMapProps(id, isDraggingOver, dragging, snapshot);\n }\n\n if (state.phase === 'DROP_ANIMATING') {\n var completed = state.completed;\n\n if (!isMatchingType(type, completed.critical)) {\n return idle;\n }\n\n var _dragging = getDraggable(completed.critical, state.dimensions);\n\n var _snapshot = getSnapshot(id, whatIsDraggedOverFromResult(completed.result) === id, _dragging);\n\n return getMapProps(id, whatIsDraggedOver(completed.impact) === id, _dragging, _snapshot);\n }\n\n if (state.phase === 'IDLE' && !state.completed && state.shouldFlush) {\n return idleWithoutAnimation;\n }\n\n if (state.phase === 'IDLE' && state.completed) {\n var _completed = state.completed;\n\n if (!isMatchingType(type, _completed.critical)) {\n return idle;\n }\n\n var wasOver = whatIsDraggedOver(_completed.impact) === id;\n var wasCombining = Boolean(_completed.impact.merge);\n\n if (state.shouldFlush) {\n return idleWithoutAnimation;\n }\n\n if (wasOver) {\n return wasCombining ? idle : idleWithoutAnimation;\n }\n\n return idle;\n }\n\n return idle;\n };\n\n return selector;\n};\nvar mapDispatchToProps = {\n updateViewportMaxScroll: updateViewportMaxScroll\n};\nvar defaultProps = {\n type: 'DEFAULT',\n direction: 'vertical',\n isDropDisabled: false,\n isCombineEnabled: false,\n ignoreContainerClipping: false\n};\nvar ConnectedDroppable = connect(makeMapStateToProps, mapDispatchToProps, null, {\n context: StoreContext,\n pure: true,\n areStatePropsEqual: isStrictEqual\n})(Droppable);\nConnectedDroppable.defaultProps = defaultProps;\n\nvar zIndexOptions = {\n dragging: 5000,\n dropAnimating: 4500\n};\n\nvar getDraggingTransition = function getDraggingTransition(shouldAnimateDragMovement, dropping) {\n if (dropping) {\n return transitions.drop(dropping.duration);\n }\n\n if (shouldAnimateDragMovement) {\n return transitions.snap;\n }\n\n return transitions.fluid;\n};\n\nvar getDraggingOpacity = function getDraggingOpacity(isCombining, isDropAnimating) {\n if (!isCombining) {\n return null;\n }\n\n return isDropAnimating ? combine.opacity.drop : combine.opacity.combining;\n};\n\nvar getShouldDraggingAnimate = function getShouldDraggingAnimate(dragging) {\n if (dragging.forceShouldAnimate != null) {\n return dragging.forceShouldAnimate;\n }\n\n return dragging.mode === 'SNAP';\n};\n\nfunction getDraggingStyle(dragging) {\n var dimension = dragging.dimension;\n var box = dimension.client;\n var offset = dragging.offset,\n combineWith = dragging.combineWith,\n dropping = dragging.dropping;\n var isCombining = Boolean(combineWith);\n var shouldAnimate = getShouldDraggingAnimate(dragging);\n var isDropAnimating = Boolean(dropping);\n var transform = isDropAnimating ? transforms.drop(offset, isCombining) : transforms.moveTo(offset);\n var style = {\n position: 'fixed',\n top: box.marginBox.top,\n left: box.marginBox.left,\n boxSizing: 'border-box',\n width: box.borderBox.width,\n height: box.borderBox.height,\n transition: getDraggingTransition(shouldAnimate, dropping),\n transform: transform,\n opacity: getDraggingOpacity(isCombining, isDropAnimating),\n zIndex: isDropAnimating ? zIndexOptions.dropAnimating : zIndexOptions.dragging,\n pointerEvents: 'none'\n };\n return style;\n}\n\nfunction getSecondaryStyle(secondary) {\n return {\n transform: transforms.moveTo(secondary.offset),\n transition: secondary.shouldAnimateDisplacement ? null : 'none'\n };\n}\n\nfunction getStyle$1(mapped) {\n return mapped.type === 'DRAGGING' ? getDraggingStyle(mapped) : getSecondaryStyle(mapped);\n}\n\nvar createEventMarshal = (function () {\n var isMouseDownHandled = false;\n\n var handle = function handle() {\n !!isMouseDownHandled ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot handle mouse down as it is already handled') : invariant(false) : void 0;\n isMouseDownHandled = true;\n };\n\n var isHandled = function isHandled() {\n return isMouseDownHandled;\n };\n\n var reset = function reset() {\n isMouseDownHandled = false;\n };\n\n return {\n handle: handle,\n isHandled: isHandled,\n reset: reset\n };\n});\n\nvar getOptions = function getOptions(shared, fromBinding) {\n return _extends({}, shared, fromBinding);\n};\n\nvar bindEvents = function bindEvents(el, bindings, sharedOptions) {\n bindings.forEach(function (binding) {\n var options = getOptions(sharedOptions, binding.options);\n el.addEventListener(binding.eventName, binding.fn, options);\n });\n};\nvar unbindEvents = function unbindEvents(el, bindings, sharedOptions) {\n bindings.forEach(function (binding) {\n var options = getOptions(sharedOptions, binding.options);\n el.removeEventListener(binding.eventName, binding.fn, options);\n });\n};\n\nvar createScheduler = (function (callbacks) {\n var memoizedMove = memoizeOne(function (x, y) {\n var point = {\n x: x,\n y: y\n };\n callbacks.onMove(point);\n });\n var move = rafSchd(function (point) {\n return memoizedMove(point.x, point.y);\n });\n var moveUp = rafSchd(callbacks.onMoveUp);\n var moveDown = rafSchd(callbacks.onMoveDown);\n var moveRight = rafSchd(callbacks.onMoveRight);\n var moveLeft = rafSchd(callbacks.onMoveLeft);\n var windowScrollMove = rafSchd(callbacks.onWindowScroll);\n\n var cancel = function cancel() {\n move.cancel();\n moveUp.cancel();\n moveDown.cancel();\n moveRight.cancel();\n moveLeft.cancel();\n windowScrollMove.cancel();\n };\n\n return {\n move: move,\n moveUp: moveUp,\n moveDown: moveDown,\n moveRight: moveRight,\n moveLeft: moveLeft,\n windowScrollMove: windowScrollMove,\n cancel: cancel\n };\n});\n\nvar tab = 9;\nvar enter = 13;\nvar escape = 27;\nvar space = 32;\nvar pageUp = 33;\nvar pageDown = 34;\nvar end = 35;\nvar home = 36;\nvar arrowLeft = 37;\nvar arrowUp = 38;\nvar arrowRight = 39;\nvar arrowDown = 40;\n\nvar supportedEventName = function () {\n var base = 'visibilitychange';\n\n if (typeof document === 'undefined') {\n return base;\n }\n\n var candidates = [base, \"ms\" + base, \"webkit\" + base, \"moz\" + base, \"o\" + base];\n var supported = find(candidates, function (eventName) {\n return \"on\" + eventName in document;\n });\n return supported || base;\n}();\n\nvar sharedOptions = {\n capture: true\n};\nvar createPostDragEventPreventer = (function (getWindow) {\n var isBound = false;\n\n var bind = function bind() {\n if (isBound) {\n return;\n }\n\n isBound = true;\n bindEvents(getWindow(), pointerEvents, sharedOptions);\n };\n\n var unbind = function unbind() {\n if (!isBound) {\n return;\n }\n\n isBound = false;\n unbindEvents(getWindow(), pointerEvents, sharedOptions);\n };\n\n var pointerEvents = [{\n eventName: 'click',\n fn: function fn(event) {\n event.preventDefault();\n unbind();\n }\n }, {\n eventName: 'mousedown',\n fn: unbind\n }, {\n eventName: 'touchstart',\n fn: unbind\n }];\n\n var preventNext = function preventNext() {\n if (isBound) {\n unbind();\n }\n\n bind();\n };\n\n var preventer = {\n preventNext: preventNext,\n abort: unbind\n };\n return preventer;\n});\n\nvar sloppyClickThreshold = 5;\nvar isSloppyClickThresholdExceeded = (function (original, current) {\n return Math.abs(current.x - original.x) >= sloppyClickThreshold || Math.abs(current.y - original.y) >= sloppyClickThreshold;\n});\n\nvar _preventedKeys;\nvar preventedKeys = (_preventedKeys = {}, _preventedKeys[enter] = true, _preventedKeys[tab] = true, _preventedKeys);\nvar preventStandardKeyEvents = (function (event) {\n if (preventedKeys[event.keyCode]) {\n event.preventDefault();\n }\n});\n\nvar primaryButton = 0;\n\nvar noop$1 = function noop() {};\n\nvar mouseDownMarshal = createEventMarshal();\nfunction useMouseSensor(args) {\n var canStartCapturing = args.canStartCapturing,\n getWindow = args.getWindow,\n callbacks = args.callbacks,\n onCaptureStart = args.onCaptureStart,\n onCaptureEnd = args.onCaptureEnd;\n var pendingRef = useRef(null);\n var isDraggingRef = useRef(false);\n var unbindWindowEventsRef = useRef(noop$1);\n var getIsCapturing = useCallback(function () {\n return Boolean(pendingRef.current || isDraggingRef.current);\n }, []);\n var schedule = useMemo(function () {\n !!getIsCapturing() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Should not recreate scheduler while capturing') : invariant(false) : void 0;\n return createScheduler(callbacks);\n }, [callbacks, getIsCapturing]);\n var postDragEventPreventer = useMemo(function () {\n return createPostDragEventPreventer(getWindow);\n }, [getWindow]);\n var stop = useCallback(function () {\n if (!getIsCapturing()) {\n return;\n }\n\n schedule.cancel();\n unbindWindowEventsRef.current();\n var shouldBlockClick = isDraggingRef.current;\n mouseDownMarshal.reset();\n\n if (shouldBlockClick) {\n postDragEventPreventer.preventNext();\n }\n\n pendingRef.current = null;\n isDraggingRef.current = false;\n onCaptureEnd();\n }, [getIsCapturing, onCaptureEnd, postDragEventPreventer, schedule]);\n var cancel = useCallback(function () {\n var wasDragging = isDraggingRef.current;\n stop();\n\n if (wasDragging) {\n callbacks.onCancel();\n }\n }, [callbacks, stop]);\n var startDragging = useCallback(function () {\n !!isDraggingRef.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot start a drag while dragging') : invariant(false) : void 0;\n var pending = pendingRef.current;\n !pending ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot start a drag without a pending drag') : invariant(false) : void 0;\n pendingRef.current = null;\n isDraggingRef.current = true;\n callbacks.onLift({\n clientSelection: pending,\n movementMode: 'FLUID'\n });\n }, [callbacks]);\n var windowBindings = useMemo(function () {\n !!getIsCapturing() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Should not recreate window bindings while capturing') : invariant(false) : void 0;\n var bindings = [{\n eventName: 'mousemove',\n fn: function fn(event) {\n var button = event.button,\n clientX = event.clientX,\n clientY = event.clientY;\n\n if (button !== primaryButton) {\n return;\n }\n\n var point = {\n x: clientX,\n y: clientY\n };\n\n if (isDraggingRef.current) {\n event.preventDefault();\n schedule.move(point);\n return;\n }\n\n var pending = pendingRef.current;\n\n if (!pending) {\n stop();\n process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected there to be an active or pending drag when window mousemove event is received') : invariant(false);\n }\n\n if (!isSloppyClickThresholdExceeded(pending, point)) {\n return;\n }\n\n event.preventDefault();\n startDragging();\n }\n }, {\n eventName: 'mouseup',\n fn: function fn(event) {\n var wasDragging = isDraggingRef.current;\n stop();\n\n if (wasDragging) {\n event.preventDefault();\n callbacks.onDrop();\n }\n }\n }, {\n eventName: 'mousedown',\n fn: function fn(event) {\n if (isDraggingRef.current) {\n event.preventDefault();\n }\n\n cancel();\n }\n }, {\n eventName: 'keydown',\n fn: function fn(event) {\n if (pendingRef.current) {\n stop();\n return;\n }\n\n if (event.keyCode === escape) {\n event.preventDefault();\n cancel();\n return;\n }\n\n preventStandardKeyEvents(event);\n }\n }, {\n eventName: 'resize',\n fn: cancel\n }, {\n eventName: 'scroll',\n options: {\n passive: true,\n capture: false\n },\n fn: function fn(event) {\n if (event.currentTarget !== getWindow()) {\n return;\n }\n\n if (pendingRef.current) {\n stop();\n return;\n }\n\n schedule.windowScrollMove();\n }\n }, {\n eventName: 'webkitmouseforcedown',\n fn: function fn() {\n cancel();\n }\n }, {\n eventName: supportedEventName,\n fn: cancel\n }];\n return bindings;\n }, [getIsCapturing, cancel, startDragging, schedule, stop, callbacks, getWindow]);\n var bindWindowEvents = useCallback(function () {\n var win = getWindow();\n var options = {\n capture: true\n };\n\n unbindWindowEventsRef.current = function () {\n return unbindEvents(win, windowBindings, options);\n };\n\n bindEvents(win, windowBindings, options);\n }, [getWindow, windowBindings]);\n var startPendingDrag = useCallback(function (point) {\n !!pendingRef.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected there to be no pending drag') : invariant(false) : void 0;\n pendingRef.current = point;\n onCaptureStart(stop);\n bindWindowEvents();\n }, [bindWindowEvents, onCaptureStart, stop]);\n var onMouseDown = useCallback(function (event) {\n if (mouseDownMarshal.isHandled()) {\n return;\n }\n\n !!getIsCapturing() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Should not be able to perform a mouse down while a drag or pending drag is occurring') : invariant(false) : void 0;\n\n if (!canStartCapturing(event)) {\n return;\n }\n\n if (event.button !== primaryButton) {\n return;\n }\n\n if (event.ctrlKey || event.metaKey || event.shiftKey || event.altKey) {\n return;\n }\n\n mouseDownMarshal.handle();\n event.preventDefault();\n var point = {\n x: event.clientX,\n y: event.clientY\n };\n startPendingDrag(point);\n }, [canStartCapturing, getIsCapturing, startPendingDrag]);\n return onMouseDown;\n}\n\nfunction isElement(el) {\n return el instanceof getWindowFromEl(el).Element;\n}\n\nvar interactiveTagNames = {\n input: true,\n button: true,\n textarea: true,\n select: true,\n option: true,\n optgroup: true,\n video: true,\n audio: true\n};\n\nvar isAnInteractiveElement = function isAnInteractiveElement(parent, current) {\n if (current == null) {\n return false;\n }\n\n var hasAnInteractiveTag = Boolean(interactiveTagNames[current.tagName.toLowerCase()]);\n\n if (hasAnInteractiveTag) {\n return true;\n }\n\n var attribute = current.getAttribute('contenteditable');\n\n if (attribute === 'true' || attribute === '') {\n return true;\n }\n\n if (current === parent) {\n return false;\n }\n\n return isAnInteractiveElement(parent, current.parentElement);\n};\n\nvar shouldAllowDraggingFromTarget = (function (event, canDragInteractiveElements) {\n if (canDragInteractiveElements) {\n return true;\n }\n\n var target = event.target,\n currentTarget = event.currentTarget;\n\n if (!isElement(target) || !isElement(currentTarget)) {\n return true;\n }\n\n return !isAnInteractiveElement(currentTarget, target);\n});\n\nvar getBorderBoxCenterPosition = (function (el) {\n return getRect(el.getBoundingClientRect()).center;\n});\n\nvar _scrollJumpKeys;\nvar scrollJumpKeys = (_scrollJumpKeys = {}, _scrollJumpKeys[pageDown] = true, _scrollJumpKeys[pageUp] = true, _scrollJumpKeys[home] = true, _scrollJumpKeys[end] = true, _scrollJumpKeys);\n\nfunction noop$2() {}\n\nfunction useKeyboardSensor(args) {\n var canStartCapturing = args.canStartCapturing,\n getWindow = args.getWindow,\n callbacks = args.callbacks,\n onCaptureStart = args.onCaptureStart,\n onCaptureEnd = args.onCaptureEnd,\n getDraggableRef = args.getDraggableRef;\n var isDraggingRef = useRef(false);\n var unbindWindowEventsRef = useRef(noop$2);\n var getIsDragging = useCallback(function () {\n return isDraggingRef.current;\n }, []);\n var schedule = useMemo(function () {\n !!getIsDragging() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Should not recreate scheduler while capturing') : invariant(false) : void 0;\n return createScheduler(callbacks);\n }, [callbacks, getIsDragging]);\n var stop = useCallback(function () {\n if (!getIsDragging()) {\n return;\n }\n\n schedule.cancel();\n unbindWindowEventsRef.current();\n isDraggingRef.current = false;\n onCaptureEnd();\n }, [getIsDragging, onCaptureEnd, schedule]);\n var cancel = useCallback(function () {\n var wasDragging = isDraggingRef.current;\n stop();\n\n if (wasDragging) {\n callbacks.onCancel();\n }\n }, [callbacks, stop]);\n var windowBindings = useMemo(function () {\n !!getIsDragging() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Should not recreate window bindings when dragging') : invariant(false) : void 0;\n return [{\n eventName: 'mousedown',\n fn: cancel\n }, {\n eventName: 'mouseup',\n fn: cancel\n }, {\n eventName: 'click',\n fn: cancel\n }, {\n eventName: 'touchstart',\n fn: cancel\n }, {\n eventName: 'resize',\n fn: cancel\n }, {\n eventName: 'wheel',\n fn: cancel,\n options: {\n passive: true\n }\n }, {\n eventName: 'scroll',\n options: {\n capture: false\n },\n fn: function fn(event) {\n if (event.currentTarget !== getWindow()) {\n return;\n }\n\n callbacks.onWindowScroll();\n }\n }, {\n eventName: supportedEventName,\n fn: cancel\n }];\n }, [callbacks, cancel, getIsDragging, getWindow]);\n var bindWindowEvents = useCallback(function () {\n var win = getWindow();\n var options = {\n capture: true\n };\n\n unbindWindowEventsRef.current = function () {\n return unbindEvents(win, windowBindings, options);\n };\n\n bindEvents(win, windowBindings, options);\n }, [getWindow, windowBindings]);\n var startDragging = useCallback(function () {\n !!isDraggingRef.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot start a drag while dragging') : invariant(false) : void 0;\n var ref = getDraggableRef();\n !ref ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot start a keyboard drag without a draggable ref') : invariant(false) : void 0;\n isDraggingRef.current = true;\n onCaptureStart(stop);\n bindWindowEvents();\n var center = getBorderBoxCenterPosition(ref);\n callbacks.onLift({\n clientSelection: center,\n movementMode: 'SNAP'\n });\n }, [bindWindowEvents, callbacks, getDraggableRef, onCaptureStart, stop]);\n var onKeyDown = useCallback(function (event) {\n if (!getIsDragging()) {\n if (event.defaultPrevented) {\n return;\n }\n\n if (!canStartCapturing(event)) {\n return;\n }\n\n if (event.keyCode !== space) {\n return;\n }\n\n event.preventDefault();\n startDragging();\n return;\n }\n\n if (event.keyCode === escape) {\n event.preventDefault();\n cancel();\n return;\n }\n\n if (event.keyCode === space) {\n event.preventDefault();\n stop();\n callbacks.onDrop();\n return;\n }\n\n if (event.keyCode === arrowDown) {\n event.preventDefault();\n schedule.moveDown();\n return;\n }\n\n if (event.keyCode === arrowUp) {\n event.preventDefault();\n schedule.moveUp();\n return;\n }\n\n if (event.keyCode === arrowRight) {\n event.preventDefault();\n schedule.moveRight();\n return;\n }\n\n if (event.keyCode === arrowLeft) {\n event.preventDefault();\n schedule.moveLeft();\n return;\n }\n\n if (scrollJumpKeys[event.keyCode]) {\n event.preventDefault();\n return;\n }\n\n preventStandardKeyEvents(event);\n }, [callbacks, canStartCapturing, cancel, getIsDragging, schedule, startDragging, stop]);\n return onKeyDown;\n}\n\nvar timeForLongPress = 120;\nvar forcePressThreshold = 0.15;\nvar touchStartMarshal = createEventMarshal();\n\nvar noop$3 = function noop() {};\n\nfunction useTouchSensor(args) {\n var callbacks = args.callbacks,\n getWindow = args.getWindow,\n canStartCapturing = args.canStartCapturing,\n getShouldRespectForcePress = args.getShouldRespectForcePress,\n onCaptureStart = args.onCaptureStart,\n onCaptureEnd = args.onCaptureEnd;\n var pendingRef = useRef(null);\n var isDraggingRef = useRef(false);\n var hasMovedRef = useRef(false);\n var unbindWindowEventsRef = useRef(noop$3);\n var getIsCapturing = useCallback(function () {\n return Boolean(pendingRef.current || isDraggingRef.current);\n }, []);\n var postDragClickPreventer = useMemo(function () {\n return createPostDragEventPreventer(getWindow);\n }, [getWindow]);\n var schedule = useMemo(function () {\n !!getIsCapturing() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Should not recreate scheduler while capturing') : invariant(false) : void 0;\n return createScheduler(callbacks);\n }, [callbacks, getIsCapturing]);\n var stop = useCallback(function () {\n if (!getIsCapturing()) {\n return;\n }\n\n schedule.cancel();\n unbindWindowEventsRef.current();\n touchStartMarshal.reset();\n hasMovedRef.current = false;\n onCaptureEnd();\n\n if (isDraggingRef.current) {\n postDragClickPreventer.preventNext();\n isDraggingRef.current = false;\n return;\n }\n\n var pending = pendingRef.current;\n !pending ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected a pending drag') : invariant(false) : void 0;\n clearTimeout(pending.longPressTimerId);\n pendingRef.current = null;\n }, [getIsCapturing, onCaptureEnd, postDragClickPreventer, schedule]);\n var cancel = useCallback(function () {\n var wasDragging = isDraggingRef.current;\n stop();\n\n if (wasDragging) {\n callbacks.onCancel();\n }\n }, [callbacks, stop]);\n var windowBindings = useMemo(function () {\n !!getIsCapturing() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Should not recreate window bindings while capturing') : invariant(false) : void 0;\n var bindings = [{\n eventName: 'touchmove',\n options: {\n passive: false,\n capture: false\n },\n fn: function fn(event) {\n if (!isDraggingRef.current) {\n stop();\n return;\n }\n\n if (!hasMovedRef.current) {\n hasMovedRef.current = true;\n }\n\n var touch = event.touches[0];\n\n if (!touch) {\n return;\n }\n\n var point = {\n x: touch.clientX,\n y: touch.clientY\n };\n event.preventDefault();\n schedule.move(point);\n }\n }, {\n eventName: 'touchend',\n fn: function fn(event) {\n if (!isDraggingRef.current) {\n stop();\n return;\n }\n\n event.preventDefault();\n stop();\n callbacks.onDrop();\n }\n }, {\n eventName: 'touchcancel',\n fn: function fn(event) {\n if (!isDraggingRef.current) {\n stop();\n return;\n }\n\n event.preventDefault();\n cancel();\n }\n }, {\n eventName: 'touchstart',\n fn: cancel\n }, {\n eventName: 'orientationchange',\n fn: cancel\n }, {\n eventName: 'resize',\n fn: cancel\n }, {\n eventName: 'scroll',\n options: {\n passive: true,\n capture: false\n },\n fn: function fn() {\n if (pendingRef.current) {\n stop();\n return;\n }\n\n schedule.windowScrollMove();\n }\n }, {\n eventName: 'contextmenu',\n fn: function fn(event) {\n event.preventDefault();\n }\n }, {\n eventName: 'keydown',\n fn: function fn(event) {\n if (!isDraggingRef.current) {\n cancel();\n return;\n }\n\n if (event.keyCode === escape) {\n event.preventDefault();\n }\n\n cancel();\n }\n }, {\n eventName: 'touchforcechange',\n fn: function fn(event) {\n var touch = event.touches[0];\n var isForcePress = touch.force >= forcePressThreshold;\n\n if (!isForcePress) {\n return;\n }\n\n var shouldRespect = getShouldRespectForcePress();\n\n if (pendingRef.current) {\n if (shouldRespect) {\n cancel();\n }\n\n return;\n }\n\n if (shouldRespect) {\n if (hasMovedRef.current) {\n event.preventDefault();\n return;\n }\n\n cancel();\n return;\n }\n\n event.preventDefault();\n }\n }, {\n eventName: supportedEventName,\n fn: cancel\n }];\n return bindings;\n }, [callbacks, cancel, getIsCapturing, getShouldRespectForcePress, schedule, stop]);\n var bindWindowEvents = useCallback(function () {\n var win = getWindow();\n var options = {\n capture: true\n };\n\n unbindWindowEventsRef.current = function () {\n return unbindEvents(win, windowBindings, options);\n };\n\n bindEvents(win, windowBindings, options);\n }, [getWindow, windowBindings]);\n var startDragging = useCallback(function () {\n var pending = pendingRef.current;\n !pending ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot start a drag without a pending drag') : invariant(false) : void 0;\n isDraggingRef.current = true;\n pendingRef.current = null;\n hasMovedRef.current = false;\n callbacks.onLift({\n clientSelection: pending.point,\n movementMode: 'FLUID'\n });\n }, [callbacks]);\n var startPendingDrag = useCallback(function (event) {\n !!pendingRef.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected there to be no pending drag') : invariant(false) : void 0;\n var touch = event.touches[0];\n var clientX = touch.clientX,\n clientY = touch.clientY;\n var point = {\n x: clientX,\n y: clientY\n };\n var longPressTimerId = setTimeout(startDragging, timeForLongPress);\n var pending = {\n point: point,\n longPressTimerId: longPressTimerId\n };\n pendingRef.current = pending;\n onCaptureStart(stop);\n bindWindowEvents();\n }, [bindWindowEvents, onCaptureStart, startDragging, stop]);\n\n var onTouchStart = function onTouchStart(event) {\n if (touchStartMarshal.isHandled()) {\n return;\n }\n\n !!getIsCapturing() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Should not be able to perform a touch start while a drag or pending drag is occurring') : invariant(false) : void 0;\n\n if (!canStartCapturing(event)) {\n return;\n }\n\n touchStartMarshal.handle();\n startPendingDrag(event);\n };\n\n useIsomorphicLayoutEffect(function webkitHack() {\n var unbind = bindEvents(window, [{\n eventName: 'touchmove',\n fn: noop$3,\n options: {\n capture: false,\n passive: false\n }\n }]);\n return unbind;\n }, []);\n return onTouchStart;\n}\n\nfunction isSvgElement(el) {\n return Boolean(getWindowFromEl(el).SVGElement) && el instanceof getWindowFromEl(el).SVGElement;\n}\n\nvar selector = \"[\" + dragHandle + \"]\";\n\nvar throwIfSVG = function throwIfSVG(el) {\n !!isSvgElement(el) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"A drag handle cannot be an SVGElement: it has inconsistent focus support.\\n\\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/dragging-svgs.md\") : invariant(false) : void 0;\n};\n\nvar getDragHandleRef = function getDragHandleRef(draggableRef) {\n if (draggableRef.hasAttribute(dragHandle)) {\n throwIfSVG(draggableRef);\n return draggableRef;\n }\n\n var el = draggableRef.querySelector(selector);\n throwIfSVG(draggableRef);\n !el ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"\\n Cannot find drag handle element inside of Draggable.\\n Please be sure to apply the {...provided.dragHandleProps} to your Draggable\\n\\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/api/draggable.md\\n \") : invariant(false) : void 0;\n !isHtmlElement(el) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'A drag handle must be a HTMLElement') : invariant(false) : void 0;\n return el;\n};\n\nfunction useValidation$1(_ref) {\n var isEnabled = _ref.isEnabled,\n getDraggableRef = _ref.getDraggableRef;\n useEffect(function () {\n if (process.env.NODE_ENV !== 'production') {\n if (!isEnabled) {\n return;\n }\n\n var draggableRef = getDraggableRef();\n !draggableRef ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Drag handle was unable to find draggable ref') : invariant(false) : void 0;\n getDragHandleRef(draggableRef);\n }\n }, [getDraggableRef, isEnabled]);\n}\n\nvar retainingFocusFor = null;\nvar listenerOptions = {\n capture: true\n};\n\nvar clearRetentionOnFocusChange = function () {\n var isBound = false;\n\n var bind = function bind() {\n if (isBound) {\n return;\n }\n\n isBound = true;\n window.addEventListener('focus', onWindowFocusChange, listenerOptions);\n };\n\n var unbind = function unbind() {\n if (!isBound) {\n return;\n }\n\n isBound = false;\n window.removeEventListener('focus', onWindowFocusChange, listenerOptions);\n };\n\n var onWindowFocusChange = function onWindowFocusChange() {\n unbind();\n retainingFocusFor = null;\n };\n\n var result = function result() {\n return bind();\n };\n\n result.cancel = function () {\n return unbind();\n };\n\n return result;\n}();\n\nvar retain = function retain(id) {\n retainingFocusFor = id;\n clearRetentionOnFocusChange();\n};\n\nvar tryRestoreFocus = function tryRestoreFocus(id, draggableRef) {\n if (!retainingFocusFor) {\n return;\n }\n\n if (id !== retainingFocusFor) {\n return;\n }\n\n retainingFocusFor = null;\n clearRetentionOnFocusChange.cancel();\n var dragHandleRef = getDragHandleRef(draggableRef);\n\n if (!dragHandleRef) {\n process.env.NODE_ENV !== \"production\" ? warning('Could not find drag handle in the DOM to focus on it') : void 0;\n return;\n }\n\n dragHandleRef.focus();\n};\n\nvar retainer = {\n retain: retain,\n tryRestoreFocus: tryRestoreFocus\n};\n\nfunction noop$4() {}\n\nfunction useFocusRetainer(args) {\n var isFocusedRef = useRef(false);\n var lastArgsRef = usePrevious(args);\n var getDraggableRef = args.getDraggableRef;\n var onFocus = useCallback(function () {\n isFocusedRef.current = true;\n }, []);\n var onBlur = useCallback(function () {\n isFocusedRef.current = false;\n }, []);\n useIsomorphicLayoutEffect(function () {\n var first = lastArgsRef.current;\n\n if (!first.isEnabled) {\n return noop$4;\n }\n\n var draggable = getDraggableRef();\n !draggable ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Drag handle could not obtain draggable ref') : invariant(false) : void 0;\n var dragHandle = getDragHandleRef(draggable);\n retainer.tryRestoreFocus(first.draggableId, dragHandle);\n return function () {\n var last = lastArgsRef.current;\n\n var shouldRetainFocus = function () {\n if (!last.isEnabled) {\n return false;\n }\n\n if (!isFocusedRef.current) {\n return false;\n }\n\n return last.isDragging || last.isDropAnimating;\n }();\n\n if (shouldRetainFocus) {\n retainer.retain(last.draggableId);\n }\n };\n }, [getDraggableRef, lastArgsRef]);\n var lastDraggableRef = useRef(null);\n useIsomorphicLayoutEffect(function () {\n if (!lastDraggableRef.current) {\n return;\n }\n\n var draggableRef = getDraggableRef();\n\n if (!draggableRef) {\n return;\n }\n\n if (draggableRef === lastDraggableRef.current) {\n return;\n }\n\n if (isFocusedRef.current && lastArgsRef.current.isEnabled) {\n getDragHandleRef(draggableRef).focus();\n }\n });\n useIsomorphicLayoutEffect(function () {\n lastDraggableRef.current = getDraggableRef();\n });\n return {\n onBlur: onBlur,\n onFocus: onFocus\n };\n}\n\nfunction preventHtml5Dnd(event) {\n event.preventDefault();\n}\n\nfunction useDragHandle(args) {\n var capturingRef = useRef(null);\n var onCaptureStart = useCallback(function (abort) {\n !!capturingRef.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot start capturing while something else is') : invariant(false) : void 0;\n capturingRef.current = {\n abort: abort\n };\n }, []);\n var onCaptureEnd = useCallback(function () {\n !capturingRef.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot stop capturing while nothing is capturing') : invariant(false) : void 0;\n capturingRef.current = null;\n }, []);\n var abortCapture = useCallback(function () {\n !capturingRef.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot abort capture when there is none') : invariant(false) : void 0;\n capturingRef.current.abort();\n }, []);\n\n var _useRequiredContext = useRequiredContext(AppContext),\n canLift = _useRequiredContext.canLift,\n styleContext = _useRequiredContext.style;\n\n var isDragging = args.isDragging,\n isEnabled = args.isEnabled,\n draggableId = args.draggableId,\n callbacks = args.callbacks,\n getDraggableRef = args.getDraggableRef,\n getShouldRespectForcePress = args.getShouldRespectForcePress,\n canDragInteractiveElements = args.canDragInteractiveElements;\n var lastArgsRef = usePrevious(args);\n useValidation$1({\n isEnabled: isEnabled,\n getDraggableRef: getDraggableRef\n });\n var getWindow = useCallback(function () {\n return getWindowFromEl(getDraggableRef());\n }, [getDraggableRef]);\n var canStartCapturing = useCallback(function (event) {\n if (!isEnabled) {\n return false;\n }\n\n if (capturingRef.current) {\n return false;\n }\n\n if (!canLift(draggableId)) {\n return false;\n }\n\n return shouldAllowDraggingFromTarget(event, canDragInteractiveElements);\n }, [canDragInteractiveElements, canLift, draggableId, isEnabled]);\n\n var _useFocusRetainer = useFocusRetainer(args),\n onBlur = _useFocusRetainer.onBlur,\n onFocus = _useFocusRetainer.onFocus;\n\n var mouseArgs = useMemo(function () {\n return {\n callbacks: callbacks,\n getDraggableRef: getDraggableRef,\n getWindow: getWindow,\n canStartCapturing: canStartCapturing,\n onCaptureStart: onCaptureStart,\n onCaptureEnd: onCaptureEnd,\n getShouldRespectForcePress: getShouldRespectForcePress\n };\n }, [callbacks, getDraggableRef, getWindow, canStartCapturing, onCaptureStart, onCaptureEnd, getShouldRespectForcePress]);\n var onMouseDown = useMouseSensor(mouseArgs);\n var keyboardArgs = useMemo(function () {\n return {\n callbacks: callbacks,\n getDraggableRef: getDraggableRef,\n getWindow: getWindow,\n canStartCapturing: canStartCapturing,\n onCaptureStart: onCaptureStart,\n onCaptureEnd: onCaptureEnd\n };\n }, [callbacks, canStartCapturing, getDraggableRef, getWindow, onCaptureEnd, onCaptureStart]);\n var onKeyDown = useKeyboardSensor(keyboardArgs);\n var touchArgs = useMemo(function () {\n return {\n callbacks: callbacks,\n getDraggableRef: getDraggableRef,\n getWindow: getWindow,\n canStartCapturing: canStartCapturing,\n getShouldRespectForcePress: getShouldRespectForcePress,\n onCaptureStart: onCaptureStart,\n onCaptureEnd: onCaptureEnd\n };\n }, [callbacks, getDraggableRef, getWindow, canStartCapturing, getShouldRespectForcePress, onCaptureStart, onCaptureEnd]);\n var onTouchStart = useTouchSensor(touchArgs);\n useIsomorphicLayoutEffect(function () {\n return function () {\n if (!capturingRef.current) {\n return;\n }\n\n abortCapture();\n\n if (lastArgsRef.current.isDragging) {\n lastArgsRef.current.callbacks.onCancel();\n }\n };\n }, []);\n\n if (!isEnabled && capturingRef.current) {\n abortCapture();\n\n if (lastArgsRef.current.isDragging) {\n process.env.NODE_ENV !== \"production\" ? warning('You have disabled dragging on a Draggable while it was dragging. The drag has been cancelled') : void 0;\n callbacks.onCancel();\n }\n }\n\n useIsomorphicLayoutEffect(function () {\n if (!isDragging && capturingRef.current) {\n abortCapture();\n }\n }, [abortCapture, isDragging]);\n var props = useMemo(function () {\n if (!isEnabled) {\n return null;\n }\n\n return {\n onMouseDown: onMouseDown,\n onKeyDown: onKeyDown,\n onTouchStart: onTouchStart,\n onFocus: onFocus,\n onBlur: onBlur,\n tabIndex: 0,\n 'data-react-beautiful-dnd-drag-handle': styleContext,\n 'aria-roledescription': 'Draggable item. Press space bar to lift',\n draggable: false,\n onDragStart: preventHtml5Dnd\n };\n }, [isEnabled, onBlur, onFocus, onKeyDown, onMouseDown, onTouchStart, styleContext]);\n return props;\n}\n\nfunction getDimension$1(descriptor, el, windowScroll) {\n if (windowScroll === void 0) {\n windowScroll = origin;\n }\n\n var computedStyles = window.getComputedStyle(el);\n var borderBox = el.getBoundingClientRect();\n var client = calculateBox(borderBox, computedStyles);\n var page = withScroll(client, windowScroll);\n var placeholder = {\n client: client,\n tagName: el.tagName.toLowerCase(),\n display: computedStyles.display\n };\n var displaceBy = {\n x: client.marginBox.width,\n y: client.marginBox.height\n };\n var dimension = {\n descriptor: descriptor,\n placeholder: placeholder,\n displaceBy: displaceBy,\n client: client,\n page: page\n };\n return dimension;\n}\n\nfunction useDraggableDimensionPublisher(args) {\n var draggableId = args.draggableId,\n index = args.index,\n getDraggableRef = args.getDraggableRef;\n var appContext = useRequiredContext(AppContext);\n var marshal = appContext.marshal;\n var droppableContext = useRequiredContext(DroppableContext);\n var droppableId = droppableContext.droppableId,\n type = droppableContext.type;\n var descriptor = useMemo(function () {\n var result = {\n id: draggableId,\n droppableId: droppableId,\n type: type,\n index: index\n };\n return result;\n }, [draggableId, droppableId, index, type]);\n var publishedDescriptorRef = useRef(descriptor);\n var makeDimension = useCallback(function (windowScroll) {\n var latest = publishedDescriptorRef.current;\n var el = getDraggableRef();\n !el ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot get dimension when no ref is set') : invariant(false) : void 0;\n return getDimension$1(latest, el, windowScroll);\n }, [getDraggableRef]);\n useIsomorphicLayoutEffect(function () {\n marshal.registerDraggable(publishedDescriptorRef.current, makeDimension);\n return function () {\n return marshal.unregisterDraggable(publishedDescriptorRef.current);\n };\n }, [makeDimension, marshal]);\n useIsomorphicLayoutEffect(function () {\n if (publishedDescriptorRef.current === descriptor) {\n return;\n }\n\n var previous = publishedDescriptorRef.current;\n publishedDescriptorRef.current = descriptor;\n marshal.updateDraggable(previous, descriptor, makeDimension);\n }, [descriptor, makeDimension, marshal]);\n}\n\nfunction checkOwnProps$1(props) {\n !_Number$isInteger(props.index) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Draggable requires an integer index prop') : invariant(false) : void 0;\n !props.draggableId ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Draggable requires a draggableId') : invariant(false) : void 0;\n !(typeof props.isDragDisabled === 'boolean') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'isDragDisabled must be a boolean') : invariant(false) : void 0;\n}\n\nfunction checkForOutdatedProps(props) {\n if (Object.prototype.hasOwnProperty.call(props, 'shouldRespectForceTouch')) {\n process.env.NODE_ENV !== \"production\" ? warning('shouldRespectForceTouch has been renamed to shouldRespectForcePress') : void 0;\n }\n}\n\nfunction useValidation$2(props, getRef) {\n useEffect(function () {\n if (process.env.NODE_ENV !== 'production') {\n checkOwnProps$1(props);\n checkForOutdatedProps(props);\n checkIsValidInnerRef(getRef());\n }\n });\n}\n\nfunction Draggable(props) {\n var ref = useRef(null);\n var setRef = useCallback(function (el) {\n ref.current = el;\n }, []);\n var getRef = useCallback(function () {\n return ref.current;\n }, []);\n var appContext = useRequiredContext(AppContext);\n useValidation$2(props, getRef);\n var children = props.children,\n draggableId = props.draggableId,\n isDragDisabled = props.isDragDisabled,\n shouldRespectForcePress = props.shouldRespectForcePress,\n canDragInteractiveElements = props.disableInteractiveElementBlocking,\n index = props.index,\n mapped = props.mapped,\n moveUpAction = props.moveUp,\n moveAction = props.move,\n dropAction = props.drop,\n moveDownAction = props.moveDown,\n moveRightAction = props.moveRight,\n moveLeftAction = props.moveLeft,\n moveByWindowScrollAction = props.moveByWindowScroll,\n liftAction = props.lift,\n dropAnimationFinishedAction = props.dropAnimationFinished;\n var forPublisher = useMemo(function () {\n return {\n draggableId: draggableId,\n index: index,\n getDraggableRef: getRef\n };\n }, [draggableId, getRef, index]);\n useDraggableDimensionPublisher(forPublisher);\n var onLift = useCallback(function (options) {\n start('LIFT');\n var el = ref.current;\n !el ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n !!isDragDisabled ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot lift a Draggable when it is disabled') : invariant(false) : void 0;\n var clientSelection = options.clientSelection,\n movementMode = options.movementMode;\n liftAction({\n id: draggableId,\n clientSelection: clientSelection,\n movementMode: movementMode\n });\n finish('LIFT');\n }, [draggableId, isDragDisabled, liftAction]);\n var getShouldRespectForcePress = useCallback(function () {\n return shouldRespectForcePress;\n }, [shouldRespectForcePress]);\n var callbacks = useMemo(function () {\n return {\n onLift: onLift,\n onMove: function onMove(clientSelection) {\n return moveAction({\n client: clientSelection\n });\n },\n onDrop: function onDrop() {\n return dropAction({\n reason: 'DROP'\n });\n },\n onCancel: function onCancel() {\n return dropAction({\n reason: 'CANCEL'\n });\n },\n onMoveUp: moveUpAction,\n onMoveDown: moveDownAction,\n onMoveRight: moveRightAction,\n onMoveLeft: moveLeftAction,\n onWindowScroll: function onWindowScroll() {\n return moveByWindowScrollAction({\n newScroll: getWindowScroll()\n });\n }\n };\n }, [dropAction, moveAction, moveByWindowScrollAction, moveDownAction, moveLeftAction, moveRightAction, moveUpAction, onLift]);\n var isDragging = mapped.type === 'DRAGGING';\n var isDropAnimating = mapped.type === 'DRAGGING' && Boolean(mapped.dropping);\n var dragHandleArgs = useMemo(function () {\n return {\n draggableId: draggableId,\n isDragging: isDragging,\n isDropAnimating: isDropAnimating,\n isEnabled: !isDragDisabled,\n callbacks: callbacks,\n getDraggableRef: getRef,\n canDragInteractiveElements: canDragInteractiveElements,\n getShouldRespectForcePress: getShouldRespectForcePress\n };\n }, [callbacks, canDragInteractiveElements, draggableId, getRef, getShouldRespectForcePress, isDragDisabled, isDragging, isDropAnimating]);\n var dragHandleProps = useDragHandle(dragHandleArgs);\n var onMoveEnd = useCallback(function (event) {\n if (mapped.type !== 'DRAGGING') {\n return;\n }\n\n if (!mapped.dropping) {\n return;\n }\n\n if (event.propertyName !== 'transform') {\n return;\n }\n\n dropAnimationFinishedAction();\n }, [dropAnimationFinishedAction, mapped]);\n var provided = useMemo(function () {\n var style = getStyle$1(mapped);\n var onTransitionEnd = mapped.type === 'DRAGGING' && mapped.dropping ? onMoveEnd : null;\n var result = {\n innerRef: setRef,\n draggableProps: {\n 'data-react-beautiful-dnd-draggable': appContext.style,\n style: style,\n onTransitionEnd: onTransitionEnd\n },\n dragHandleProps: dragHandleProps\n };\n return result;\n }, [appContext.style, dragHandleProps, mapped, onMoveEnd, setRef]);\n return children(provided, mapped.snapshot);\n}\n\nvar getCombineWithFromResult = function getCombineWithFromResult(result) {\n return result.combine ? result.combine.draggableId : null;\n};\n\nvar getCombineWithFromImpact = function getCombineWithFromImpact(impact) {\n return impact.merge ? impact.merge.combine.draggableId : null;\n};\n\nvar makeMapStateToProps$1 = function makeMapStateToProps() {\n var getDraggingSnapshot = memoizeOne(function (mode, draggingOver, combineWith, dropping) {\n return {\n isDragging: true,\n isDropAnimating: Boolean(dropping),\n dropAnimation: dropping,\n mode: mode,\n draggingOver: draggingOver,\n combineWith: combineWith,\n combineTargetFor: null\n };\n });\n var getSecondarySnapshot = memoizeOne(function (combineTargetFor) {\n return {\n isDragging: false,\n isDropAnimating: false,\n dropAnimation: null,\n mode: null,\n draggingOver: null,\n combineTargetFor: combineTargetFor,\n combineWith: null\n };\n });\n var defaultMapProps = {\n mapped: {\n type: 'SECONDARY',\n offset: origin,\n combineTargetFor: null,\n shouldAnimateDisplacement: true,\n snapshot: getSecondarySnapshot(null)\n }\n };\n var memoizedOffset = memoizeOne(function (x, y) {\n return {\n x: x,\n y: y\n };\n });\n var getDraggingProps = memoizeOne(function (offset, mode, dimension, draggingOver, combineWith, forceShouldAnimate) {\n return {\n mapped: {\n type: 'DRAGGING',\n dropping: null,\n draggingOver: draggingOver,\n combineWith: combineWith,\n mode: mode,\n offset: offset,\n dimension: dimension,\n forceShouldAnimate: forceShouldAnimate,\n snapshot: getDraggingSnapshot(mode, draggingOver, combineWith, null)\n }\n };\n });\n var getSecondaryProps = memoizeOne(function (offset, combineTargetFor, shouldAnimateDisplacement) {\n if (combineTargetFor === void 0) {\n combineTargetFor = null;\n }\n\n return {\n mapped: {\n type: 'SECONDARY',\n offset: offset,\n combineTargetFor: combineTargetFor,\n shouldAnimateDisplacement: shouldAnimateDisplacement,\n snapshot: getSecondarySnapshot(combineTargetFor)\n }\n };\n });\n\n var getSecondaryMovement = function getSecondaryMovement(ownId, draggingId, impact) {\n var map = impact.movement.map;\n var displacement = map[ownId];\n var movement = impact.movement;\n var merge = impact.merge;\n var isCombinedWith = Boolean(merge && merge.combine.draggableId === ownId);\n var displacedBy = movement.displacedBy.point;\n var offset = memoizedOffset(displacedBy.x, displacedBy.y);\n\n if (isCombinedWith) {\n return getSecondaryProps(displacement ? offset : origin, draggingId, displacement ? displacement.shouldAnimate : true);\n }\n\n if (!displacement) {\n return null;\n }\n\n if (!displacement.isVisible) {\n return null;\n }\n\n return getSecondaryProps(offset, null, displacement.shouldAnimate);\n };\n\n var draggingSelector = function draggingSelector(state, ownProps) {\n if (state.isDragging) {\n if (state.critical.draggable.id !== ownProps.draggableId) {\n return null;\n }\n\n var offset = state.current.client.offset;\n var dimension = state.dimensions.draggables[ownProps.draggableId];\n var mode = state.movementMode;\n var draggingOver = whatIsDraggedOver(state.impact);\n var combineWith = getCombineWithFromImpact(state.impact);\n var forceShouldAnimate = state.forceShouldAnimate;\n return getDraggingProps(memoizedOffset(offset.x, offset.y), mode, dimension, draggingOver, combineWith, forceShouldAnimate);\n }\n\n if (state.phase === 'DROP_ANIMATING') {\n var completed = state.completed;\n\n if (completed.result.draggableId !== ownProps.draggableId) {\n return null;\n }\n\n var _dimension = state.dimensions.draggables[ownProps.draggableId];\n var result = completed.result;\n var _mode = result.mode;\n\n var _draggingOver = whatIsDraggedOverFromResult(result);\n\n var _combineWith = getCombineWithFromResult(result);\n\n var duration = state.dropDuration;\n var dropping = {\n duration: duration,\n curve: curves.drop,\n moveTo: state.newHomeClientOffset,\n opacity: _combineWith ? combine.opacity.drop : null,\n scale: _combineWith ? combine.scale.drop : null\n };\n return {\n mapped: {\n type: 'DRAGGING',\n offset: state.newHomeClientOffset,\n dimension: _dimension,\n dropping: dropping,\n draggingOver: _draggingOver,\n combineWith: _combineWith,\n mode: _mode,\n forceShouldAnimate: null,\n snapshot: getDraggingSnapshot(_mode, _draggingOver, _combineWith, dropping)\n }\n };\n }\n\n return null;\n };\n\n var secondarySelector = function secondarySelector(state, ownProps) {\n if (state.isDragging) {\n if (state.critical.draggable.id === ownProps.draggableId) {\n return null;\n }\n\n return getSecondaryMovement(ownProps.draggableId, state.critical.draggable.id, state.impact);\n }\n\n if (state.phase === 'DROP_ANIMATING') {\n var completed = state.completed;\n\n if (completed.result.draggableId === ownProps.draggableId) {\n return null;\n }\n\n return getSecondaryMovement(ownProps.draggableId, completed.result.draggableId, completed.impact);\n }\n\n return null;\n };\n\n var selector = function selector(state, ownProps) {\n return draggingSelector(state, ownProps) || secondarySelector(state, ownProps) || defaultMapProps;\n };\n\n return selector;\n};\nvar mapDispatchToProps$1 = {\n lift: lift,\n move: move,\n moveUp: moveUp,\n moveDown: moveDown,\n moveLeft: moveLeft,\n moveRight: moveRight,\n moveByWindowScroll: moveByWindowScroll,\n drop: drop,\n dropAnimationFinished: dropAnimationFinished\n};\nvar defaultProps$1 = {\n isDragDisabled: false,\n disableInteractiveElementBlocking: false,\n shouldRespectForcePress: false\n};\nvar ConnectedDraggable = connect(makeMapStateToProps$1, mapDispatchToProps$1, null, {\n context: StoreContext,\n pure: true,\n areStatePropsEqual: isStrictEqual\n})(Draggable);\nConnectedDraggable.defaultProps = defaultProps$1;\n\nexport { DragDropContext, ConnectedDraggable as Draggable, ConnectedDroppable as Droppable, resetServerContext };\n","/**\r\n * Maintains a stack of the current service in scope.\r\n * This is used to provide the correct service to spawn().\r\n */\nvar serviceStack = [];\n\nvar provide = function (service, fn) {\n serviceStack.push(service);\n var result = fn(service);\n serviceStack.pop();\n return result;\n};\n\nvar consume = function (fn) {\n return fn(serviceStack[serviceStack.length - 1]);\n};\n\nexport { consume, provide };","!function(e,n){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(\"microsoftTeams\",[],n):\"object\"==typeof exports?exports.microsoftTeams=n():e.microsoftTeams=n()}(window,function(){return function(t){var r={};function o(e){if(r[e])return r[e].exports;var n=r[e]={i:e,l:!1,exports:{}};return t[e].call(n.exports,n,n.exports,o),n.l=!0,n.exports}return o.m=t,o.c=r,o.d=function(e,n,t){o.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:t})},o.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},o.t=function(n,e){if(1&e&&(n=o(n)),8&e)return n;if(4&e&&\"object\"==typeof n&&n&&n.__esModule)return n;var t=Object.create(null);if(o.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:n}),2&e&&\"string\"!=typeof n)for(var r in n)o.d(t,r,function(e){return n[e]}.bind(null,r));return t},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,\"a\",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p=\"\",o(o.s=19)}([function(e,n,t){\"use strict\";var r=this&&this.__spreadArray||function(e,n,t){if(t||2===arguments.length)for(var r,o=0,i=n.length;oNumber(r[i])?1:-1;return 0},n.generateGUID=function(){return r.v4()}},function(e,n,t){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.ErrorCode=n.FileOpenPreference=void 0,function(e){e.Inline=\"inline\",e.Desktop=\"desktop\",e.Web=\"web\"}(n.FileOpenPreference||(n.FileOpenPreference={})),function(e){e[e.NOT_SUPPORTED_ON_PLATFORM=100]=\"NOT_SUPPORTED_ON_PLATFORM\",e[e.INTERNAL_ERROR=500]=\"INTERNAL_ERROR\",e[e.NOT_SUPPORTED_IN_CURRENT_CONTEXT=501]=\"NOT_SUPPORTED_IN_CURRENT_CONTEXT\",e[e.PERMISSION_DENIED=1e3]=\"PERMISSION_DENIED\",e[e.NETWORK_ERROR=2e3]=\"NETWORK_ERROR\",e[e.NO_HW_SUPPORT=3e3]=\"NO_HW_SUPPORT\",e[e.INVALID_ARGUMENTS=4e3]=\"INVALID_ARGUMENTS\",e[e.UNAUTHORIZED_USER_OPERATION=5e3]=\"UNAUTHORIZED_USER_OPERATION\",e[e.INSUFFICIENT_RESOURCES=6e3]=\"INSUFFICIENT_RESOURCES\",e[e.THROTTLE=7e3]=\"THROTTLE\",e[e.USER_ABORT=8e3]=\"USER_ABORT\",e[e.OPERATION_TIMED_OUT=8001]=\"OPERATION_TIMED_OUT\",e[e.OLD_PLATFORM=9e3]=\"OLD_PLATFORM\",e[e.FILE_NOT_FOUND=404]=\"FILE_NOT_FOUND\",e[e.SIZE_EXCEEDED=1e4]=\"SIZE_EXCEEDED\"}(n.ErrorCode||(n.ErrorCode={}))},function(e,n,t){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.GlobalVars=void 0;var r=function(){function e(){}return e.initializeCalled=!1,e.initializeCompleted=!1,e.additionalValidOrigins=[],e.additionalValidOriginsRegexp=null,e.initializeCallbacks=[],e.isFramelessWindow=!1,e.printCapabilityEnabled=!1,e}();n.GlobalVars=r},function(e,n,t){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.stageView=n.sharing=n.video=n.people=n.monetization=n.meeting=n.location=n.media=n.menus=n.ParentAppWindow=n.ChildAppWindow=n.tasks=n.settings=n.navigateToTab=n.navigateCrossDomain=n.navigateBack=n.returnFocus=n.shareDeepLink=n.setFrameContext=n.registerAppButtonHoverLeaveHandler=n.registerAppButtonHoverEnterHandler=n.registerAppButtonClickHandler=n.registerOnThemeChangeHandler=n.registerOnLoadHandler=n.registerFullScreenHandler=n.registerChangeSettingsHandler=n.registerFocusEnterHandler=n.registerBeforeUnloadHandler=n.registerBackButtonHandler=n.print=n.initializeWithFrameContext=n.initialize=n.getTabInstances=n.getMruTabInstances=n.getContext=n.executeDeepLink=n.enablePrintCapability=n.FileOpenPreference=n.ErrorCode=n.ChannelType=n.UserTeamRole=n.TeamType=n.TaskModuleDimension=n.HostClientType=n.FrameContexts=n.authentication=n.appInitialization=void 0;var r=t(25);Object.defineProperty(n,\"appInitialization\",{enumerable:!0,get:function(){return r.appInitialization}});var o=t(11);Object.defineProperty(n,\"authentication\",{enumerable:!0,get:function(){return o.authentication}});var i=t(2);Object.defineProperty(n,\"FrameContexts\",{enumerable:!0,get:function(){return i.FrameContexts}}),Object.defineProperty(n,\"HostClientType\",{enumerable:!0,get:function(){return i.HostClientType}}),Object.defineProperty(n,\"TaskModuleDimension\",{enumerable:!0,get:function(){return i.TaskModuleDimension}}),Object.defineProperty(n,\"TeamType\",{enumerable:!0,get:function(){return i.TeamType}}),Object.defineProperty(n,\"UserTeamRole\",{enumerable:!0,get:function(){return i.UserTeamRole}}),Object.defineProperty(n,\"ChannelType\",{enumerable:!0,get:function(){return i.ChannelType}});var a=t(6);Object.defineProperty(n,\"ErrorCode\",{enumerable:!0,get:function(){return a.ErrorCode}}),Object.defineProperty(n,\"FileOpenPreference\",{enumerable:!0,get:function(){return a.FileOpenPreference}});var s=t(26);Object.defineProperty(n,\"enablePrintCapability\",{enumerable:!0,get:function(){return s.enablePrintCapability}}),Object.defineProperty(n,\"executeDeepLink\",{enumerable:!0,get:function(){return s.executeDeepLink}}),Object.defineProperty(n,\"getContext\",{enumerable:!0,get:function(){return s.getContext}}),Object.defineProperty(n,\"getMruTabInstances\",{enumerable:!0,get:function(){return s.getMruTabInstances}}),Object.defineProperty(n,\"getTabInstances\",{enumerable:!0,get:function(){return s.getTabInstances}}),Object.defineProperty(n,\"initialize\",{enumerable:!0,get:function(){return s.initialize}}),Object.defineProperty(n,\"initializeWithFrameContext\",{enumerable:!0,get:function(){return s.initializeWithFrameContext}}),Object.defineProperty(n,\"print\",{enumerable:!0,get:function(){return s.print}}),Object.defineProperty(n,\"registerBackButtonHandler\",{enumerable:!0,get:function(){return s.registerBackButtonHandler}}),Object.defineProperty(n,\"registerBeforeUnloadHandler\",{enumerable:!0,get:function(){return s.registerBeforeUnloadHandler}}),Object.defineProperty(n,\"registerFocusEnterHandler\",{enumerable:!0,get:function(){return s.registerFocusEnterHandler}}),Object.defineProperty(n,\"registerChangeSettingsHandler\",{enumerable:!0,get:function(){return s.registerChangeSettingsHandler}}),Object.defineProperty(n,\"registerFullScreenHandler\",{enumerable:!0,get:function(){return s.registerFullScreenHandler}}),Object.defineProperty(n,\"registerOnLoadHandler\",{enumerable:!0,get:function(){return s.registerOnLoadHandler}}),Object.defineProperty(n,\"registerOnThemeChangeHandler\",{enumerable:!0,get:function(){return s.registerOnThemeChangeHandler}}),Object.defineProperty(n,\"registerAppButtonClickHandler\",{enumerable:!0,get:function(){return s.registerAppButtonClickHandler}}),Object.defineProperty(n,\"registerAppButtonHoverEnterHandler\",{enumerable:!0,get:function(){return s.registerAppButtonHoverEnterHandler}}),Object.defineProperty(n,\"registerAppButtonHoverLeaveHandler\",{enumerable:!0,get:function(){return s.registerAppButtonHoverLeaveHandler}}),Object.defineProperty(n,\"setFrameContext\",{enumerable:!0,get:function(){return s.setFrameContext}}),Object.defineProperty(n,\"shareDeepLink\",{enumerable:!0,get:function(){return s.shareDeepLink}});var l=t(27);Object.defineProperty(n,\"returnFocus\",{enumerable:!0,get:function(){return l.returnFocus}}),Object.defineProperty(n,\"navigateBack\",{enumerable:!0,get:function(){return l.navigateBack}}),Object.defineProperty(n,\"navigateCrossDomain\",{enumerable:!0,get:function(){return l.navigateCrossDomain}}),Object.defineProperty(n,\"navigateToTab\",{enumerable:!0,get:function(){return l.navigateToTab}});var u=t(12);Object.defineProperty(n,\"settings\",{enumerable:!0,get:function(){return u.settings}});var d=t(28);Object.defineProperty(n,\"tasks\",{enumerable:!0,get:function(){return d.tasks}});var c=t(16);Object.defineProperty(n,\"ChildAppWindow\",{enumerable:!0,get:function(){return c.ChildAppWindow}}),Object.defineProperty(n,\"ParentAppWindow\",{enumerable:!0,get:function(){return c.ParentAppWindow}});var g=t(15);Object.defineProperty(n,\"menus\",{enumerable:!0,get:function(){return g.menus}});var m=t(17);Object.defineProperty(n,\"media\",{enumerable:!0,get:function(){return m.media}});var f=t(29);Object.defineProperty(n,\"location\",{enumerable:!0,get:function(){return f.location}});var p=t(30);Object.defineProperty(n,\"meeting\",{enumerable:!0,get:function(){return p.meeting}});var C=t(31);Object.defineProperty(n,\"monetization\",{enumerable:!0,get:function(){return C.monetization}});var h=t(32);Object.defineProperty(n,\"people\",{enumerable:!0,get:function(){return h.people}});var b=t(33);Object.defineProperty(n,\"video\",{enumerable:!0,get:function(){return b.video}});var v=t(34);Object.defineProperty(n,\"sharing\",{enumerable:!0,get:function(){return v.sharing}});var y=t(35);Object.defineProperty(n,\"stageView\",{enumerable:!0,get:function(){return y.stageView}})},function(e,n){var t,r,o=\"undefined\"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||\"undefined\"!=typeof msCrypto&&\"function\"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);o?(t=new Uint8Array(16),e.exports=function(){return o(t),t}):(r=new Array(16),e.exports=function(){for(var e,n=0;n<16;n++)0==(3&n)&&(e=4294967296*Math.random()),r[n]=e>>>((3&n)<<3)&255;return r})},function(e,n){for(var r=[],t=0;t<256;++t)r[t]=(t+256).toString(16).substr(1);e.exports=function(e,n){var t=n||0;return[(n=r)[e[t++]],n[e[t++]],n[e[t++]],n[e[t++]],\"-\",n[e[t++]],n[e[t++]],\"-\",n[e[t++]],n[e[t++]],\"-\",n[e[t++]],n[e[t++]],\"-\",n[e[t++]],n[e[t++]],n[e[t++]],n[e[t++]],n[e[t++]],n[e[+t]]].join(\"\")}},function(e,n,t){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.authentication=void 0;var c=t(1),g=t(7),m=t(2),f=t(0),p=t(3);!function(e){var i,n;function a(){t();try{f.Communication.childWindow&&f.Communication.childWindow.close()}finally{f.Communication.childWindow=null,f.Communication.childOrigin=null}}function r(e){i=e,a();var n=i.width||600,t=i.height||400,n=Math.min(n,f.Communication.currentWindow.outerWidth-400),t=Math.min(t,f.Communication.currentWindow.outerHeight-200),r=document.createElement(\"a\");r.href=i.url.replace(\"{oauthRedirectMethod}\",\"web\");var o=void 0!==f.Communication.currentWindow.screenLeft?f.Communication.currentWindow.screenLeft:f.Communication.currentWindow.screenX,e=void 0!==f.Communication.currentWindow.screenTop?f.Communication.currentWindow.screenTop:f.Communication.currentWindow.screenY;o+=f.Communication.currentWindow.outerWidth/2-n/2,e+=f.Communication.currentWindow.outerHeight/2-t/2,f.Communication.childWindow=f.Communication.currentWindow.open(r.href,\"_blank\",\"toolbar=no, location=yes, status=no, menubar=no, scrollbars=yes, top=\"+e+\", left=\"+o+\", width=\"+n+\", height=\"+t),f.Communication.childWindow?s():l(\"FailedToOpenWindow\")}function t(){n&&(clearInterval(n),n=0),(0,p.removeHandler)(\"initialize\"),(0,p.removeHandler)(\"navigateCrossDomain\")}function s(){t(),n=f.Communication.currentWindow.setInterval(function(){if(!f.Communication.childWindow||f.Communication.childWindow.closed)l(\"CancelledByUser\");else{var e=f.Communication.childOrigin;try{f.Communication.childOrigin=\"*\",(0,f.sendMessageEventToChild)(\"ping\")}finally{f.Communication.childOrigin=e}}},100),(0,p.registerHandler)(\"initialize\",function(){return[m.FrameContexts.authentication,g.GlobalVars.hostClientType]}),(0,p.registerHandler)(\"navigateCrossDomain\",function(){return!1})}function o(e){try{i&&i.successCallback&&i.successCallback(e)}finally{i=null,a()}}function l(e){try{i&&i.failureCallback&&i.failureCallback(e)}finally{i=null,a()}}function u(e,n,t){var r;e&&((r=document.createElement(\"a\")).href=decodeURIComponent(e),r.host&&r.host!==window.location.host&&\"outlook.office.com\"===r.host&&-1n.sequence?1:-1}),e.forEach(function(e){e.sequence==r&&(t=t?new Blob([t,e.file],{type:n}):new Blob([e.file],{type:n}),r++)}),t},n.decodeAttachment=function(e,n){if(null==e||null==n)return null;for(var t=atob(e.chunk),r=new Array(t.length),o=0;o>>24&255,o[r++]=t>>>16&255,o[r++]=t>>>8&255,o[r++]=255&t,s=s/4294967296*1e4&268435455,o[r++]=s>>>8&255,o[r++]=255&s,o[r++]=s>>>24&15|16,o[r++]=s>>>16&255,o[r++]=a>>>8|128,o[r++]=255&a;for(var u=0;u<6;++u)o[r+u]=i[u];return n||m(o)}},function(e,n,t){var a=t(9),s=t(10);e.exports=function(e,n,t){var r=n&&t||0;\"string\"==typeof e&&(n=\"binary\"===e?new Array(16):null,e=null);var o=(e=e||{}).random||(e.rng||a)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,n)for(var i=0;i<16;++i)n[r+i]=o[i];return n||s(o)}},function(e,n,t){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.appInitialization=void 0;var r=t(1),o=t(4),i=t(0);!function(n){n.Messages={AppLoaded:\"appInitialization.appLoaded\",Success:\"appInitialization.success\",Failure:\"appInitialization.failure\",ExpectedFailure:\"appInitialization.expectedFailure\"},function(e){e.AuthFailed=\"AuthFailed\",e.Timeout=\"Timeout\",e.Other=\"Other\"}(n.FailedReason||(n.FailedReason={})),function(e){e.PermissionError=\"PermissionError\",e.NotFound=\"NotFound\",e.Throttling=\"Throttling\",e.Offline=\"Offline\",e.Other=\"Other\"}(n.ExpectedFailureReason||(n.ExpectedFailureReason={})),n.notifyAppLoaded=function(){(0,r.ensureInitialized)(),(0,i.sendMessageToParent)(n.Messages.AppLoaded,[o.version])},n.notifySuccess=function(){(0,r.ensureInitialized)(),(0,i.sendMessageToParent)(n.Messages.Success,[o.version])},n.notifyFailure=function(e){(0,r.ensureInitialized)(),(0,i.sendMessageToParent)(n.Messages.Failure,[e.reason,e.message])},n.notifyExpectedFailure=function(e){(0,r.ensureInitialized)(),(0,i.sendMessageToParent)(n.Messages.ExpectedFailure,[e.reason,e.message])}}(n.appInitialization||(n.appInitialization={}))},function(e,n,t){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.initializeWithFrameContext=n.setFrameContext=n.executeDeepLink=n.shareDeepLink=n.getMruTabInstances=n.getTabInstances=n.registerChangeSettingsHandler=n.registerFocusEnterHandler=n.registerBeforeUnloadHandler=n.registerOnLoadHandler=n.registerBackButtonHandler=n.registerAppButtonHoverLeaveHandler=n.registerAppButtonHoverEnterHandler=n.registerAppButtonClickHandler=n.registerFullScreenHandler=n.registerOnThemeChangeHandler=n.getContext=n.print=n.enablePrintCapability=n._uninitialize=n._initialize=n.initialize=void 0;var r=t(1),o=t(7),i=t(4),a=t(12),s=t(5),l=t(13),u=t(2),d=t(0),c=t(11),g=t(14),m=t(15),f=t(3);function p(e,n){o.GlobalVars.initializeCalled||(o.GlobalVars.initializeCalled=!0,f.initializeHandlers(),(0,d.initializeCommunication)(function(e,n,t){void 0===t&&(t=i.defaultSDKVersionForCompatCheck),o.GlobalVars.frameContext=e,o.GlobalVars.hostClientType=n,o.GlobalVars.clientSupportedSDKVersion=t,o.GlobalVars.initializeCallbacks.forEach(function(e){return e()}),o.GlobalVars.initializeCallbacks=[],o.GlobalVars.initializeCompleted=!0},n),c.authentication.initialize(),a.settings.initialize(),m.menus.initialize(),(0,g.initializePrivateApis)()),Array.isArray(n)&&(0,r.processAdditionalValidOrigins)(n),e&&(o.GlobalVars.initializeCompleted?e():o.GlobalVars.initializeCallbacks.push(e))}function C(){window.print()}function h(e){(0,r.ensureInitialized)(),f.registerOnThemeChangeHandler(e)}function b(e){(0,r.ensureInitialized)(),f.registerHandler(\"fullScreenChange\",e)}function v(e){(0,r.ensureInitialized)(),f.registerBackButtonHandler(e)}function y(e){(0,r.ensureInitialized)(),f.registerOnLoadHandler(e)}function P(e){(0,r.ensureInitialized)(),f.registerBeforeUnloadHandler(e)}function T(e){(0,r.ensureInitialized)(),f.registerFocusEnterHandler(e)}function w(e){(0,r.ensureInitialized)(u.FrameContexts.content),(0,d.sendMessageToParent)(\"setFrameContext\",[e])}n.initialize=p,n._initialize=function(e){d.Communication.currentWindow=e},n._uninitialize=function(){o.GlobalVars.initializeCalled&&(o.GlobalVars.frameContext&&(h(null),b(null),v(null),P(null),T(null),y(null),l.logs.registerGetLogHandler(null)),o.GlobalVars.frameContext===u.FrameContexts.settings&&a.settings.registerOnSaveHandler(null),o.GlobalVars.frameContext===u.FrameContexts.remove&&a.settings.registerOnRemoveHandler(null),o.GlobalVars.initializeCalled=!1,o.GlobalVars.initializeCompleted=!1,o.GlobalVars.initializeCallbacks=[],o.GlobalVars.additionalValidOrigins=[],o.GlobalVars.frameContext=null,o.GlobalVars.hostClientType=null,(o.GlobalVars.isFramelessWindow=!1,d.uninitializeCommunication)())},n.enablePrintCapability=function(){o.GlobalVars.printCapabilityEnabled||(o.GlobalVars.printCapabilityEnabled=!0,(0,r.ensureInitialized)(),document.addEventListener(\"keydown\",function(e){(e.ctrlKey||e.metaKey)&&80===e.keyCode&&(C(),e.cancelBubble=!0,e.preventDefault(),e.stopImmediatePropagation())}))},n.print=C,n.getContext=function(n){(0,r.ensureInitialized)(),(0,d.sendMessageToParent)(\"getContext\",function(e){e.frameContext||(e.frameContext=o.GlobalVars.frameContext),n(e)})},n.registerOnThemeChangeHandler=h,n.registerFullScreenHandler=b,n.registerAppButtonClickHandler=function(e){(0,r.ensureInitialized)(u.FrameContexts.content),f.registerHandler(\"appButtonClick\",e)},n.registerAppButtonHoverEnterHandler=function(e){(0,r.ensureInitialized)(u.FrameContexts.content),f.registerHandler(\"appButtonHoverEnter\",e)},n.registerAppButtonHoverLeaveHandler=function(e){(0,r.ensureInitialized)(u.FrameContexts.content),f.registerHandler(\"appButtonHoverLeave\",e)},n.registerBackButtonHandler=v,n.registerOnLoadHandler=y,n.registerBeforeUnloadHandler=P,n.registerFocusEnterHandler=T,n.registerChangeSettingsHandler=function(e){(0,r.ensureInitialized)(u.FrameContexts.content),f.registerHandler(\"changeSettings\",e)},n.getTabInstances=function(e,n){(0,r.ensureInitialized)(),(0,d.sendMessageToParent)(\"getTabInstances\",[n],e)},n.getMruTabInstances=function(e,n){(0,r.ensureInitialized)(),(0,d.sendMessageToParent)(\"getMruTabInstances\",[n],e)},n.shareDeepLink=function(e){(0,r.ensureInitialized)(u.FrameContexts.content,u.FrameContexts.sidePanel,u.FrameContexts.meetingStage),(0,d.sendMessageToParent)(\"shareDeepLink\",[e.subEntityId,e.subEntityLabel,e.subEntityWebUrl])},n.executeDeepLink=function(e,n){(0,r.ensureInitialized)(u.FrameContexts.content,u.FrameContexts.sidePanel,u.FrameContexts.settings,u.FrameContexts.task,u.FrameContexts.stage,u.FrameContexts.meetingStage),(0,d.sendMessageToParent)(\"executeDeepLink\",[e],n||(0,s.getGenericOnCompleteHandler)())},n.setFrameContext=w,n.initializeWithFrameContext=function(e,n,t){p(n,t),w(e)}},function(e,n,t){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.navigateBack=n.navigateCrossDomain=n.navigateToTab=n.returnFocus=void 0;var r=t(1),o=t(5),i=t(2),a=t(0);n.returnFocus=function(e){(0,r.ensureInitialized)(),(0,a.sendMessageToParent)(\"returnFocus\",[e])},n.navigateToTab=function(e,n){(0,r.ensureInitialized)(),(0,a.sendMessageToParent)(\"navigateToTab\",[e],n||(0,o.getGenericOnCompleteHandler)(\"Invalid internalTabInstanceId and/or channelId were/was provided\"))},n.navigateCrossDomain=function(e,n){(0,r.ensureInitialized)(i.FrameContexts.content,i.FrameContexts.sidePanel,i.FrameContexts.settings,i.FrameContexts.remove,i.FrameContexts.task,i.FrameContexts.stage,i.FrameContexts.meetingStage),(0,a.sendMessageToParent)(\"navigateCrossDomain\",[e],n||(0,o.getGenericOnCompleteHandler)(\"Cross-origin navigation is only supported for URLs matching the pattern registered in the manifest.\"))},n.navigateBack=function(e){(0,r.ensureInitialized)(),(0,a.sendMessageToParent)(\"navigateBack\",[],e||(0,o.getGenericOnCompleteHandler)(\"Back navigation is not supported in the current client or context.\"))}},function(e,n,t){\"use strict\";var r=this&&this.__rest||function(e,n){var t={};for(o in e)Object.prototype.hasOwnProperty.call(e,o)&&n.indexOf(o)<0&&(t[o]=e[o]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols)for(var r=0,o=Object.getOwnPropertySymbols(e);r 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}","var _typeof = require(\"./typeof.js\")[\"default\"];\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\n\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && 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(nodeInterop);\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 (key !== \"default\" && 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, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define(['kefir'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('kefir'));\n } else {\n root.KefirBus = factory(root.Kefir);\n }\n}(this, function (Kefir) {\n\n var dummyPool = {plug: function() {}, unplug: function() {}};\n\n function kefirBus() {\n var ended = false;\n var pool = Kefir.pool();\n var emitter = null;\n\n var stream = Kefir.stream(function(_emitter) {\n function sub(event) {\n _emitter.emitEvent(event);\n }\n emitter = _emitter;\n\n if (ended) {\n _emitter.end();\n } else {\n pool.onAny(sub);\n return function() {\n emitter = null;\n pool.offAny(sub);\n };\n }\n });\n\n stream.value = stream.emit = function(x) {\n if (emitter) emitter.emit(x);\n return stream;\n };\n\n stream.error = function(err) {\n if (emitter) emitter.error(err);\n return stream;\n };\n\n stream.event = stream.emitEvent = function(event) {\n if (event.type === 'end') {\n stream.end();\n } else {\n if (emitter) emitter.emitEvent(event);\n }\n return stream;\n };\n\n stream.plug = function(s) {\n pool.plug(s);\n return stream;\n };\n\n stream.unplug = function(s) {\n pool.unplug(s);\n return stream;\n };\n\n stream.end = function() {\n if (!ended) {\n ended = true;\n if (emitter) emitter.end();\n pool = dummyPool;\n }\n return stream;\n };\n\n return stream.setName('bus');\n }\n\n // Make kefirBus accessible as the default export of this module.\n // Small hack to make `import kefirBus from 'kefir-bus';` work with TypeScript.\n kefirBus.default = kefirBus;\n\n return kefirBus;\n}));\n","import { StateNode } from './StateNode.js';\n\nfunction Machine(config, options, initialContext) {\n if (initialContext === void 0) {\n initialContext = config.context;\n }\n\n var resolvedInitialContext = typeof initialContext === 'function' ? initialContext() : initialContext;\n return new StateNode(config, options, resolvedInitialContext);\n}\n\nfunction createMachine(config, options) {\n var resolvedInitialContext = typeof config.context === 'function' ? config.context() : config.context;\n return new StateNode(config, options, resolvedInitialContext);\n}\n\nexport { Machine, createMachine };","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\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 toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1); // 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, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n\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}","/* eslint-env node */\n'use strict';\n\n// SDP helpers.\nvar SDPUtils = {};\n\n// Generate an alphanumeric identifier for cname or mids.\n// TODO: use UUIDs instead? https://gist.github.com/jed/982883\nSDPUtils.generateIdentifier = function() {\n return Math.random().toString(36).substr(2, 10);\n};\n\n// The RTCP CNAME used by all peerconnections from the same JS.\nSDPUtils.localCName = SDPUtils.generateIdentifier();\n\n// Splits SDP into lines, dealing with both CRLF and LF.\nSDPUtils.splitLines = function(blob) {\n return blob.trim().split('\\n').map(function(line) {\n return line.trim();\n });\n};\n// Splits SDP into sessionpart and mediasections. Ensures CRLF.\nSDPUtils.splitSections = function(blob) {\n var parts = blob.split('\\nm=');\n return parts.map(function(part, index) {\n return (index > 0 ? 'm=' + part : part).trim() + '\\r\\n';\n });\n};\n\n// returns the session description.\nSDPUtils.getDescription = function(blob) {\n var sections = SDPUtils.splitSections(blob);\n return sections && sections[0];\n};\n\n// returns the individual media sections.\nSDPUtils.getMediaSections = function(blob) {\n var sections = SDPUtils.splitSections(blob);\n sections.shift();\n return sections;\n};\n\n// Returns lines that start with a certain prefix.\nSDPUtils.matchPrefix = function(blob, prefix) {\n return SDPUtils.splitLines(blob).filter(function(line) {\n return line.indexOf(prefix) === 0;\n });\n};\n\n// Parses an ICE candidate line. Sample input:\n// candidate:702786350 2 udp 41819902 8.8.8.8 60769 typ relay raddr 8.8.8.8\n// rport 55996\"\nSDPUtils.parseCandidate = function(line) {\n var parts;\n // Parse both variants.\n if (line.indexOf('a=candidate:') === 0) {\n parts = line.substring(12).split(' ');\n } else {\n parts = line.substring(10).split(' ');\n }\n\n var candidate = {\n foundation: parts[0],\n component: parseInt(parts[1], 10),\n protocol: parts[2].toLowerCase(),\n priority: parseInt(parts[3], 10),\n ip: parts[4],\n address: parts[4], // address is an alias for ip.\n port: parseInt(parts[5], 10),\n // skip parts[6] == 'typ'\n type: parts[7]\n };\n\n for (var i = 8; i < parts.length; i += 2) {\n switch (parts[i]) {\n case 'raddr':\n candidate.relatedAddress = parts[i + 1];\n break;\n case 'rport':\n candidate.relatedPort = parseInt(parts[i + 1], 10);\n break;\n case 'tcptype':\n candidate.tcpType = parts[i + 1];\n break;\n case 'ufrag':\n candidate.ufrag = parts[i + 1]; // for backward compability.\n candidate.usernameFragment = parts[i + 1];\n break;\n default: // extension handling, in particular ufrag\n candidate[parts[i]] = parts[i + 1];\n break;\n }\n }\n return candidate;\n};\n\n// Translates a candidate object into SDP candidate attribute.\nSDPUtils.writeCandidate = function(candidate) {\n var sdp = [];\n sdp.push(candidate.foundation);\n sdp.push(candidate.component);\n sdp.push(candidate.protocol.toUpperCase());\n sdp.push(candidate.priority);\n sdp.push(candidate.address || candidate.ip);\n sdp.push(candidate.port);\n\n var type = candidate.type;\n sdp.push('typ');\n sdp.push(type);\n if (type !== 'host' && candidate.relatedAddress &&\n candidate.relatedPort) {\n sdp.push('raddr');\n sdp.push(candidate.relatedAddress);\n sdp.push('rport');\n sdp.push(candidate.relatedPort);\n }\n if (candidate.tcpType && candidate.protocol.toLowerCase() === 'tcp') {\n sdp.push('tcptype');\n sdp.push(candidate.tcpType);\n }\n if (candidate.usernameFragment || candidate.ufrag) {\n sdp.push('ufrag');\n sdp.push(candidate.usernameFragment || candidate.ufrag);\n }\n return 'candidate:' + sdp.join(' ');\n};\n\n// Parses an ice-options line, returns an array of option tags.\n// a=ice-options:foo bar\nSDPUtils.parseIceOptions = function(line) {\n return line.substr(14).split(' ');\n};\n\n// Parses an rtpmap line, returns RTCRtpCoddecParameters. Sample input:\n// a=rtpmap:111 opus/48000/2\nSDPUtils.parseRtpMap = function(line) {\n var parts = line.substr(9).split(' ');\n var parsed = {\n payloadType: parseInt(parts.shift(), 10) // was: id\n };\n\n parts = parts[0].split('/');\n\n parsed.name = parts[0];\n parsed.clockRate = parseInt(parts[1], 10); // was: clockrate\n parsed.channels = parts.length === 3 ? parseInt(parts[2], 10) : 1;\n // legacy alias, got renamed back to channels in ORTC.\n parsed.numChannels = parsed.channels;\n return parsed;\n};\n\n// Generate an a=rtpmap line from RTCRtpCodecCapability or\n// RTCRtpCodecParameters.\nSDPUtils.writeRtpMap = function(codec) {\n var pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n var channels = codec.channels || codec.numChannels || 1;\n return 'a=rtpmap:' + pt + ' ' + codec.name + '/' + codec.clockRate +\n (channels !== 1 ? '/' + channels : '') + '\\r\\n';\n};\n\n// Parses an a=extmap line (headerextension from RFC 5285). Sample input:\n// a=extmap:2 urn:ietf:params:rtp-hdrext:toffset\n// a=extmap:2/sendonly urn:ietf:params:rtp-hdrext:toffset\nSDPUtils.parseExtmap = function(line) {\n var parts = line.substr(9).split(' ');\n return {\n id: parseInt(parts[0], 10),\n direction: parts[0].indexOf('/') > 0 ? parts[0].split('/')[1] : 'sendrecv',\n uri: parts[1]\n };\n};\n\n// Generates a=extmap line from RTCRtpHeaderExtensionParameters or\n// RTCRtpHeaderExtension.\nSDPUtils.writeExtmap = function(headerExtension) {\n return 'a=extmap:' + (headerExtension.id || headerExtension.preferredId) +\n (headerExtension.direction && headerExtension.direction !== 'sendrecv'\n ? '/' + headerExtension.direction\n : '') +\n ' ' + headerExtension.uri + '\\r\\n';\n};\n\n// Parses an ftmp line, returns dictionary. Sample input:\n// a=fmtp:96 vbr=on;cng=on\n// Also deals with vbr=on; cng=on\nSDPUtils.parseFmtp = function(line) {\n var parsed = {};\n var kv;\n var parts = line.substr(line.indexOf(' ') + 1).split(';');\n for (var j = 0; j < parts.length; j++) {\n kv = parts[j].trim().split('=');\n parsed[kv[0].trim()] = kv[1];\n }\n return parsed;\n};\n\n// Generates an a=ftmp line from RTCRtpCodecCapability or RTCRtpCodecParameters.\nSDPUtils.writeFmtp = function(codec) {\n var line = '';\n var pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.parameters && Object.keys(codec.parameters).length) {\n var params = [];\n Object.keys(codec.parameters).forEach(function(param) {\n if (codec.parameters[param]) {\n params.push(param + '=' + codec.parameters[param]);\n } else {\n params.push(param);\n }\n });\n line += 'a=fmtp:' + pt + ' ' + params.join(';') + '\\r\\n';\n }\n return line;\n};\n\n// Parses an rtcp-fb line, returns RTCPRtcpFeedback object. Sample input:\n// a=rtcp-fb:98 nack rpsi\nSDPUtils.parseRtcpFb = function(line) {\n var parts = line.substr(line.indexOf(' ') + 1).split(' ');\n return {\n type: parts.shift(),\n parameter: parts.join(' ')\n };\n};\n// Generate a=rtcp-fb lines from RTCRtpCodecCapability or RTCRtpCodecParameters.\nSDPUtils.writeRtcpFb = function(codec) {\n var lines = '';\n var pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.rtcpFeedback && codec.rtcpFeedback.length) {\n // FIXME: special handling for trr-int?\n codec.rtcpFeedback.forEach(function(fb) {\n lines += 'a=rtcp-fb:' + pt + ' ' + fb.type +\n (fb.parameter && fb.parameter.length ? ' ' + fb.parameter : '') +\n '\\r\\n';\n });\n }\n return lines;\n};\n\n// Parses an RFC 5576 ssrc media attribute. Sample input:\n// a=ssrc:3735928559 cname:something\nSDPUtils.parseSsrcMedia = function(line) {\n var sp = line.indexOf(' ');\n var parts = {\n ssrc: parseInt(line.substr(7, sp - 7), 10)\n };\n var colon = line.indexOf(':', sp);\n if (colon > -1) {\n parts.attribute = line.substr(sp + 1, colon - sp - 1);\n parts.value = line.substr(colon + 1);\n } else {\n parts.attribute = line.substr(sp + 1);\n }\n return parts;\n};\n\nSDPUtils.parseSsrcGroup = function(line) {\n var parts = line.substr(13).split(' ');\n return {\n semantics: parts.shift(),\n ssrcs: parts.map(function(ssrc) {\n return parseInt(ssrc, 10);\n })\n };\n};\n\n// Extracts the MID (RFC 5888) from a media section.\n// returns the MID or undefined if no mid line was found.\nSDPUtils.getMid = function(mediaSection) {\n var mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:')[0];\n if (mid) {\n return mid.substr(6);\n }\n};\n\nSDPUtils.parseFingerprint = function(line) {\n var parts = line.substr(14).split(' ');\n return {\n algorithm: parts[0].toLowerCase(), // algorithm is case-sensitive in Edge.\n value: parts[1]\n };\n};\n\n// Extracts DTLS parameters from SDP media section or sessionpart.\n// FIXME: for consistency with other functions this should only\n// get the fingerprint line as input. See also getIceParameters.\nSDPUtils.getDtlsParameters = function(mediaSection, sessionpart) {\n var lines = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=fingerprint:');\n // Note: a=setup line is ignored since we use the 'auto' role.\n // Note2: 'algorithm' is not case sensitive except in Edge.\n return {\n role: 'auto',\n fingerprints: lines.map(SDPUtils.parseFingerprint)\n };\n};\n\n// Serializes DTLS parameters to SDP.\nSDPUtils.writeDtlsParameters = function(params, setupType) {\n var sdp = 'a=setup:' + setupType + '\\r\\n';\n params.fingerprints.forEach(function(fp) {\n sdp += 'a=fingerprint:' + fp.algorithm + ' ' + fp.value + '\\r\\n';\n });\n return sdp;\n};\n\n// Parses a=crypto lines into\n// https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#dictionary-rtcsrtpsdesparameters-members\nSDPUtils.parseCryptoLine = function(line) {\n var parts = line.substr(9).split(' ');\n return {\n tag: parseInt(parts[0], 10),\n cryptoSuite: parts[1],\n keyParams: parts[2],\n sessionParams: parts.slice(3),\n };\n};\n\nSDPUtils.writeCryptoLine = function(parameters) {\n return 'a=crypto:' + parameters.tag + ' ' +\n parameters.cryptoSuite + ' ' +\n (typeof parameters.keyParams === 'object'\n ? SDPUtils.writeCryptoKeyParams(parameters.keyParams)\n : parameters.keyParams) +\n (parameters.sessionParams ? ' ' + parameters.sessionParams.join(' ') : '') +\n '\\r\\n';\n};\n\n// Parses the crypto key parameters into\n// https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#rtcsrtpkeyparam*\nSDPUtils.parseCryptoKeyParams = function(keyParams) {\n if (keyParams.indexOf('inline:') !== 0) {\n return null;\n }\n var parts = keyParams.substr(7).split('|');\n return {\n keyMethod: 'inline',\n keySalt: parts[0],\n lifeTime: parts[1],\n mkiValue: parts[2] ? parts[2].split(':')[0] : undefined,\n mkiLength: parts[2] ? parts[2].split(':')[1] : undefined,\n };\n};\n\nSDPUtils.writeCryptoKeyParams = function(keyParams) {\n return keyParams.keyMethod + ':'\n + keyParams.keySalt +\n (keyParams.lifeTime ? '|' + keyParams.lifeTime : '') +\n (keyParams.mkiValue && keyParams.mkiLength\n ? '|' + keyParams.mkiValue + ':' + keyParams.mkiLength\n : '');\n};\n\n// Extracts all SDES paramters.\nSDPUtils.getCryptoParameters = function(mediaSection, sessionpart) {\n var lines = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=crypto:');\n return lines.map(SDPUtils.parseCryptoLine);\n};\n\n// Parses ICE information from SDP media section or sessionpart.\n// FIXME: for consistency with other functions this should only\n// get the ice-ufrag and ice-pwd lines as input.\nSDPUtils.getIceParameters = function(mediaSection, sessionpart) {\n var ufrag = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=ice-ufrag:')[0];\n var pwd = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=ice-pwd:')[0];\n if (!(ufrag && pwd)) {\n return null;\n }\n return {\n usernameFragment: ufrag.substr(12),\n password: pwd.substr(10),\n };\n};\n\n// Serializes ICE parameters to SDP.\nSDPUtils.writeIceParameters = function(params) {\n return 'a=ice-ufrag:' + params.usernameFragment + '\\r\\n' +\n 'a=ice-pwd:' + params.password + '\\r\\n';\n};\n\n// Parses the SDP media section and returns RTCRtpParameters.\nSDPUtils.parseRtpParameters = function(mediaSection) {\n var description = {\n codecs: [],\n headerExtensions: [],\n fecMechanisms: [],\n rtcp: []\n };\n var lines = SDPUtils.splitLines(mediaSection);\n var mline = lines[0].split(' ');\n for (var i = 3; i < mline.length; i++) { // find all codecs from mline[3..]\n var pt = mline[i];\n var rtpmapline = SDPUtils.matchPrefix(\n mediaSection, 'a=rtpmap:' + pt + ' ')[0];\n if (rtpmapline) {\n var codec = SDPUtils.parseRtpMap(rtpmapline);\n var fmtps = SDPUtils.matchPrefix(\n mediaSection, 'a=fmtp:' + pt + ' ');\n // Only the first a=fmtp: is considered.\n codec.parameters = fmtps.length ? SDPUtils.parseFmtp(fmtps[0]) : {};\n codec.rtcpFeedback = SDPUtils.matchPrefix(\n mediaSection, 'a=rtcp-fb:' + pt + ' ')\n .map(SDPUtils.parseRtcpFb);\n description.codecs.push(codec);\n // parse FEC mechanisms from rtpmap lines.\n switch (codec.name.toUpperCase()) {\n case 'RED':\n case 'ULPFEC':\n description.fecMechanisms.push(codec.name.toUpperCase());\n break;\n default: // only RED and ULPFEC are recognized as FEC mechanisms.\n break;\n }\n }\n }\n SDPUtils.matchPrefix(mediaSection, 'a=extmap:').forEach(function(line) {\n description.headerExtensions.push(SDPUtils.parseExtmap(line));\n });\n // FIXME: parse rtcp.\n return description;\n};\n\n// Generates parts of the SDP media section describing the capabilities /\n// parameters.\nSDPUtils.writeRtpDescription = function(kind, caps) {\n var sdp = '';\n\n // Build the mline.\n sdp += 'm=' + kind + ' ';\n sdp += caps.codecs.length > 0 ? '9' : '0'; // reject if no codecs.\n sdp += ' UDP/TLS/RTP/SAVPF ';\n sdp += caps.codecs.map(function(codec) {\n if (codec.preferredPayloadType !== undefined) {\n return codec.preferredPayloadType;\n }\n return codec.payloadType;\n }).join(' ') + '\\r\\n';\n\n sdp += 'c=IN IP4 0.0.0.0\\r\\n';\n sdp += 'a=rtcp:9 IN IP4 0.0.0.0\\r\\n';\n\n // Add a=rtpmap lines for each codec. Also fmtp and rtcp-fb.\n caps.codecs.forEach(function(codec) {\n sdp += SDPUtils.writeRtpMap(codec);\n sdp += SDPUtils.writeFmtp(codec);\n sdp += SDPUtils.writeRtcpFb(codec);\n });\n var maxptime = 0;\n caps.codecs.forEach(function(codec) {\n if (codec.maxptime > maxptime) {\n maxptime = codec.maxptime;\n }\n });\n if (maxptime > 0) {\n sdp += 'a=maxptime:' + maxptime + '\\r\\n';\n }\n sdp += 'a=rtcp-mux\\r\\n';\n\n if (caps.headerExtensions) {\n caps.headerExtensions.forEach(function(extension) {\n sdp += SDPUtils.writeExtmap(extension);\n });\n }\n // FIXME: write fecMechanisms.\n return sdp;\n};\n\n// Parses the SDP media section and returns an array of\n// RTCRtpEncodingParameters.\nSDPUtils.parseRtpEncodingParameters = function(mediaSection) {\n var encodingParameters = [];\n var description = SDPUtils.parseRtpParameters(mediaSection);\n var hasRed = description.fecMechanisms.indexOf('RED') !== -1;\n var hasUlpfec = description.fecMechanisms.indexOf('ULPFEC') !== -1;\n\n // filter a=ssrc:... cname:, ignore PlanB-msid\n var ssrcs = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(function(line) {\n return SDPUtils.parseSsrcMedia(line);\n })\n .filter(function(parts) {\n return parts.attribute === 'cname';\n });\n var primarySsrc = ssrcs.length > 0 && ssrcs[0].ssrc;\n var secondarySsrc;\n\n var flows = SDPUtils.matchPrefix(mediaSection, 'a=ssrc-group:FID')\n .map(function(line) {\n var parts = line.substr(17).split(' ');\n return parts.map(function(part) {\n return parseInt(part, 10);\n });\n });\n if (flows.length > 0 && flows[0].length > 1 && flows[0][0] === primarySsrc) {\n secondarySsrc = flows[0][1];\n }\n\n description.codecs.forEach(function(codec) {\n if (codec.name.toUpperCase() === 'RTX' && codec.parameters.apt) {\n var encParam = {\n ssrc: primarySsrc,\n codecPayloadType: parseInt(codec.parameters.apt, 10)\n };\n if (primarySsrc && secondarySsrc) {\n encParam.rtx = {ssrc: secondarySsrc};\n }\n encodingParameters.push(encParam);\n if (hasRed) {\n encParam = JSON.parse(JSON.stringify(encParam));\n encParam.fec = {\n ssrc: primarySsrc,\n mechanism: hasUlpfec ? 'red+ulpfec' : 'red'\n };\n encodingParameters.push(encParam);\n }\n }\n });\n if (encodingParameters.length === 0 && primarySsrc) {\n encodingParameters.push({\n ssrc: primarySsrc\n });\n }\n\n // we support both b=AS and b=TIAS but interpret AS as TIAS.\n var bandwidth = SDPUtils.matchPrefix(mediaSection, 'b=');\n if (bandwidth.length) {\n if (bandwidth[0].indexOf('b=TIAS:') === 0) {\n bandwidth = parseInt(bandwidth[0].substr(7), 10);\n } else if (bandwidth[0].indexOf('b=AS:') === 0) {\n // use formula from JSEP to convert b=AS to TIAS value.\n bandwidth = parseInt(bandwidth[0].substr(5), 10) * 1000 * 0.95\n - (50 * 40 * 8);\n } else {\n bandwidth = undefined;\n }\n encodingParameters.forEach(function(params) {\n params.maxBitrate = bandwidth;\n });\n }\n return encodingParameters;\n};\n\n// parses http://draft.ortc.org/#rtcrtcpparameters*\nSDPUtils.parseRtcpParameters = function(mediaSection) {\n var rtcpParameters = {};\n\n // Gets the first SSRC. Note tha with RTX there might be multiple\n // SSRCs.\n var remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(function(line) {\n return SDPUtils.parseSsrcMedia(line);\n })\n .filter(function(obj) {\n return obj.attribute === 'cname';\n })[0];\n if (remoteSsrc) {\n rtcpParameters.cname = remoteSsrc.value;\n rtcpParameters.ssrc = remoteSsrc.ssrc;\n }\n\n // Edge uses the compound attribute instead of reducedSize\n // compound is !reducedSize\n var rsize = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-rsize');\n rtcpParameters.reducedSize = rsize.length > 0;\n rtcpParameters.compound = rsize.length === 0;\n\n // parses the rtcp-mux attrіbute.\n // Note that Edge does not support unmuxed RTCP.\n var mux = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-mux');\n rtcpParameters.mux = mux.length > 0;\n\n return rtcpParameters;\n};\n\n// parses either a=msid: or a=ssrc:... msid lines and returns\n// the id of the MediaStream and MediaStreamTrack.\nSDPUtils.parseMsid = function(mediaSection) {\n var parts;\n var spec = SDPUtils.matchPrefix(mediaSection, 'a=msid:');\n if (spec.length === 1) {\n parts = spec[0].substr(7).split(' ');\n return {stream: parts[0], track: parts[1]};\n }\n var planB = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(function(line) {\n return SDPUtils.parseSsrcMedia(line);\n })\n .filter(function(msidParts) {\n return msidParts.attribute === 'msid';\n });\n if (planB.length > 0) {\n parts = planB[0].value.split(' ');\n return {stream: parts[0], track: parts[1]};\n }\n};\n\n// SCTP\n// parses draft-ietf-mmusic-sctp-sdp-26 first and falls back\n// to draft-ietf-mmusic-sctp-sdp-05\nSDPUtils.parseSctpDescription = function(mediaSection) {\n var mline = SDPUtils.parseMLine(mediaSection);\n var maxSizeLine = SDPUtils.matchPrefix(mediaSection, 'a=max-message-size:');\n var maxMessageSize;\n if (maxSizeLine.length > 0) {\n maxMessageSize = parseInt(maxSizeLine[0].substr(19), 10);\n }\n if (isNaN(maxMessageSize)) {\n maxMessageSize = 65536;\n }\n var sctpPort = SDPUtils.matchPrefix(mediaSection, 'a=sctp-port:');\n if (sctpPort.length > 0) {\n return {\n port: parseInt(sctpPort[0].substr(12), 10),\n protocol: mline.fmt,\n maxMessageSize: maxMessageSize\n };\n }\n var sctpMapLines = SDPUtils.matchPrefix(mediaSection, 'a=sctpmap:');\n if (sctpMapLines.length > 0) {\n var parts = SDPUtils.matchPrefix(mediaSection, 'a=sctpmap:')[0]\n .substr(10)\n .split(' ');\n return {\n port: parseInt(parts[0], 10),\n protocol: parts[1],\n maxMessageSize: maxMessageSize\n };\n }\n};\n\n// SCTP\n// outputs the draft-ietf-mmusic-sctp-sdp-26 version that all browsers\n// support by now receiving in this format, unless we originally parsed\n// as the draft-ietf-mmusic-sctp-sdp-05 format (indicated by the m-line\n// protocol of DTLS/SCTP -- without UDP/ or TCP/)\nSDPUtils.writeSctpDescription = function(media, sctp) {\n var output = [];\n if (media.protocol !== 'DTLS/SCTP') {\n output = [\n 'm=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.protocol + '\\r\\n',\n 'c=IN IP4 0.0.0.0\\r\\n',\n 'a=sctp-port:' + sctp.port + '\\r\\n'\n ];\n } else {\n output = [\n 'm=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.port + '\\r\\n',\n 'c=IN IP4 0.0.0.0\\r\\n',\n 'a=sctpmap:' + sctp.port + ' ' + sctp.protocol + ' 65535\\r\\n'\n ];\n }\n if (sctp.maxMessageSize !== undefined) {\n output.push('a=max-message-size:' + sctp.maxMessageSize + '\\r\\n');\n }\n return output.join('');\n};\n\n// Generate a session ID for SDP.\n// https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-20#section-5.2.1\n// recommends using a cryptographically random +ve 64-bit value\n// but right now this should be acceptable and within the right range\nSDPUtils.generateSessionId = function() {\n return Math.random().toString().substr(2, 21);\n};\n\n// Write boilder plate for start of SDP\n// sessId argument is optional - if not supplied it will\n// be generated randomly\n// sessVersion is optional and defaults to 2\n// sessUser is optional and defaults to 'thisisadapterortc'\nSDPUtils.writeSessionBoilerplate = function(sessId, sessVer, sessUser) {\n var sessionId;\n var version = sessVer !== undefined ? sessVer : 2;\n if (sessId) {\n sessionId = sessId;\n } else {\n sessionId = SDPUtils.generateSessionId();\n }\n var user = sessUser || 'thisisadapterortc';\n // FIXME: sess-id should be an NTP timestamp.\n return 'v=0\\r\\n' +\n 'o=' + user + ' ' + sessionId + ' ' + version +\n ' IN IP4 127.0.0.1\\r\\n' +\n 's=-\\r\\n' +\n 't=0 0\\r\\n';\n};\n\nSDPUtils.writeMediaSection = function(transceiver, caps, type, stream) {\n var sdp = SDPUtils.writeRtpDescription(transceiver.kind, caps);\n\n // Map ICE parameters (ufrag, pwd) to SDP.\n sdp += SDPUtils.writeIceParameters(\n transceiver.iceGatherer.getLocalParameters());\n\n // Map DTLS parameters to SDP.\n sdp += SDPUtils.writeDtlsParameters(\n transceiver.dtlsTransport.getLocalParameters(),\n type === 'offer' ? 'actpass' : 'active');\n\n sdp += 'a=mid:' + transceiver.mid + '\\r\\n';\n\n if (transceiver.direction) {\n sdp += 'a=' + transceiver.direction + '\\r\\n';\n } else if (transceiver.rtpSender && transceiver.rtpReceiver) {\n sdp += 'a=sendrecv\\r\\n';\n } else if (transceiver.rtpSender) {\n sdp += 'a=sendonly\\r\\n';\n } else if (transceiver.rtpReceiver) {\n sdp += 'a=recvonly\\r\\n';\n } else {\n sdp += 'a=inactive\\r\\n';\n }\n\n if (transceiver.rtpSender) {\n // spec.\n var msid = 'msid:' + stream.id + ' ' +\n transceiver.rtpSender.track.id + '\\r\\n';\n sdp += 'a=' + msid;\n\n // for Chrome.\n sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].ssrc +\n ' ' + msid;\n if (transceiver.sendEncodingParameters[0].rtx) {\n sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].rtx.ssrc +\n ' ' + msid;\n sdp += 'a=ssrc-group:FID ' +\n transceiver.sendEncodingParameters[0].ssrc + ' ' +\n transceiver.sendEncodingParameters[0].rtx.ssrc +\n '\\r\\n';\n }\n }\n // FIXME: this should be written by writeRtpDescription.\n sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].ssrc +\n ' cname:' + SDPUtils.localCName + '\\r\\n';\n if (transceiver.rtpSender && transceiver.sendEncodingParameters[0].rtx) {\n sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].rtx.ssrc +\n ' cname:' + SDPUtils.localCName + '\\r\\n';\n }\n return sdp;\n};\n\n// Gets the direction from the mediaSection or the sessionpart.\nSDPUtils.getDirection = function(mediaSection, sessionpart) {\n // Look for sendrecv, sendonly, recvonly, inactive, default to sendrecv.\n var lines = SDPUtils.splitLines(mediaSection);\n for (var i = 0; i < lines.length; i++) {\n switch (lines[i]) {\n case 'a=sendrecv':\n case 'a=sendonly':\n case 'a=recvonly':\n case 'a=inactive':\n return lines[i].substr(2);\n default:\n // FIXME: What should happen here?\n }\n }\n if (sessionpart) {\n return SDPUtils.getDirection(sessionpart);\n }\n return 'sendrecv';\n};\n\nSDPUtils.getKind = function(mediaSection) {\n var lines = SDPUtils.splitLines(mediaSection);\n var mline = lines[0].split(' ');\n return mline[0].substr(2);\n};\n\nSDPUtils.isRejected = function(mediaSection) {\n return mediaSection.split(' ', 2)[1] === '0';\n};\n\nSDPUtils.parseMLine = function(mediaSection) {\n var lines = SDPUtils.splitLines(mediaSection);\n var parts = lines[0].substr(2).split(' ');\n return {\n kind: parts[0],\n port: parseInt(parts[1], 10),\n protocol: parts[2],\n fmt: parts.slice(3).join(' ')\n };\n};\n\nSDPUtils.parseOLine = function(mediaSection) {\n var line = SDPUtils.matchPrefix(mediaSection, 'o=')[0];\n var parts = line.substr(2).split(' ');\n return {\n username: parts[0],\n sessionId: parts[1],\n sessionVersion: parseInt(parts[2], 10),\n netType: parts[3],\n addressType: parts[4],\n address: parts[5]\n };\n};\n\n// a very naive interpretation of a valid SDP.\nSDPUtils.isValidSDP = function(blob) {\n if (typeof blob !== 'string' || blob.length === 0) {\n return false;\n }\n var lines = SDPUtils.splitLines(blob);\n for (var i = 0; i < lines.length; i++) {\n if (lines[i].length < 2 || lines[i].charAt(1) !== '=') {\n return false;\n }\n // TODO: check the modifier a bit more.\n }\n return true;\n};\n\n// Expose public methods.\nif (typeof module === 'object') {\n module.exports = SDPUtils;\n}\n","import { toInvokeSource, mapContext, isMachine } from './utils.js';\nimport { provide } from './serviceScope.js';\n\nfunction createNullActor(id) {\n return {\n id: id,\n send: function () {\n return void 0;\n },\n subscribe: function () {\n return {\n unsubscribe: function () {\n return void 0;\n }\n };\n },\n toJSON: function () {\n return {\n id: id\n };\n }\n };\n}\n/**\r\n * Creates a deferred actor that is able to be invoked given the provided\r\n * invocation information in its `.meta` value.\r\n *\r\n * @param invokeDefinition The meta information needed to invoke the actor.\r\n */\n\n\nfunction createInvocableActor(invokeDefinition, machine, context, _event) {\n var _a;\n\n var invokeSrc = toInvokeSource(invokeDefinition.src);\n var serviceCreator = (_a = machine === null || machine === void 0 ? void 0 : machine.options.services) === null || _a === void 0 ? void 0 : _a[invokeSrc.type];\n var resolvedData = invokeDefinition.data ? mapContext(invokeDefinition.data, context, _event) : undefined;\n var tempActor = serviceCreator ? createDeferredActor(serviceCreator, invokeDefinition.id, resolvedData) : createNullActor(invokeDefinition.id);\n tempActor.meta = invokeDefinition;\n return tempActor;\n}\n\nfunction createDeferredActor(entity, id, data) {\n var tempActor = createNullActor(id);\n tempActor.deferred = true;\n\n if (isMachine(entity)) {\n // \"mute\" the existing service scope so potential spawned actors within the `.initialState` stay deferred here\n tempActor.state = provide(undefined, function () {\n return (data ? entity.withContext(data) : entity).initialState;\n });\n }\n\n return tempActor;\n}\n\nfunction isActor(item) {\n try {\n return typeof item.send === 'function';\n } catch (e) {\n return false;\n }\n}\n\nexport { createDeferredActor, createInvocableActor, createNullActor, isActor };","import { useContext } from 'react';\nimport { invariant } from '@react-dnd/invariant';\nimport { DndContext } from '../../common/DndContext';\n/**\n * A hook to retrieve the DragDropManager from Context\n */\n\nexport function useDragDropManager() {\n var _useContext = useContext(DndContext),\n dragDropManager = _useContext.dragDropManager;\n\n invariant(dragDropManager != null, 'Expected drag drop context');\n return dragDropManager;\n}","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","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","import { __values, __assign, __spread } from './_virtual/_tslib.js';\nimport { IS_PRODUCTION } from './environment.js';\nimport { warn, mapContext, isFunction, keys, toSCXMLEvent, toInvokeSource, isPromiseLike, isObservable, isMachine, reportUnhandledExceptionOnInvocation, symbolObservable, isArray, toEventObject, isString, uniqueId } from './utils.js';\nimport { ActionTypes, SpecialTargets } from './types.js';\nimport { isInFinalState } from './stateUtils.js';\nimport { errorPlatform, log, stop, start, cancel, send, update, error as error$1 } from './actionTypes.js';\nimport { doneInvoke, initEvent, getActionFunction, error } from './actions.js';\nimport { isState, State, bindActionToState } from './State.js';\nimport { provide, consume } from './serviceScope.js';\nimport { isActor, createDeferredActor } from './Actor.js';\nimport { Scheduler } from './scheduler.js';\nimport { registry } from './registry.js';\nimport { registerService } from './devTools.js';\nvar DEFAULT_SPAWN_OPTIONS = {\n sync: false,\n autoForward: false\n};\nvar InterpreterStatus;\n\n(function (InterpreterStatus) {\n InterpreterStatus[InterpreterStatus[\"NotStarted\"] = 0] = \"NotStarted\";\n InterpreterStatus[InterpreterStatus[\"Running\"] = 1] = \"Running\";\n InterpreterStatus[InterpreterStatus[\"Stopped\"] = 2] = \"Stopped\";\n})(InterpreterStatus || (InterpreterStatus = {}));\n\nvar Interpreter =\n/*#__PURE__*/\n\n/** @class */\nfunction () {\n /**\r\n * Creates a new Interpreter instance (i.e., service) for the given machine with the provided options, if any.\r\n *\r\n * @param machine The machine to be interpreted\r\n * @param options Interpreter options\r\n */\n function Interpreter(machine, options) {\n var _this = this;\n\n if (options === void 0) {\n options = Interpreter.defaultOptions;\n }\n\n this.machine = machine;\n this.scheduler = new Scheduler();\n this.delayedEventsMap = {};\n this.listeners = new Set();\n this.contextListeners = new Set();\n this.stopListeners = new Set();\n this.doneListeners = new Set();\n this.eventListeners = new Set();\n this.sendListeners = new Set();\n /**\r\n * Whether the service is started.\r\n */\n\n this.initialized = false;\n this._status = InterpreterStatus.NotStarted;\n this.children = new Map();\n this.forwardTo = new Set();\n /**\r\n * Alias for Interpreter.prototype.start\r\n */\n\n this.init = this.start;\n /**\r\n * Sends an event to the running interpreter to trigger a transition.\r\n *\r\n * An array of events (batched) can be sent as well, which will send all\r\n * batched events to the running interpreter. The listeners will be\r\n * notified only **once** when all events are processed.\r\n *\r\n * @param event The event(s) to send\r\n */\n\n this.send = function (event, payload) {\n if (isArray(event)) {\n _this.batch(event);\n\n return _this.state;\n }\n\n var _event = toSCXMLEvent(toEventObject(event, payload));\n\n if (_this._status === InterpreterStatus.Stopped) {\n // do nothing\n if (!IS_PRODUCTION) {\n warn(false, \"Event \\\"\" + _event.name + \"\\\" was sent to stopped service \\\"\" + _this.machine.id + \"\\\". This service has already reached its final state, and will not transition.\\nEvent: \" + JSON.stringify(_event.data));\n }\n\n return _this.state;\n }\n\n if (_this._status === InterpreterStatus.NotStarted && _this.options.deferEvents) {\n // tslint:disable-next-line:no-console\n if (!IS_PRODUCTION) {\n warn(false, \"Event \\\"\" + _event.name + \"\\\" was sent to uninitialized service \\\"\" + _this.machine.id + \"\\\" and is deferred. Make sure .start() is called for this service.\\nEvent: \" + JSON.stringify(_event.data));\n }\n } else if (_this._status !== InterpreterStatus.Running) {\n throw new Error(\"Event \\\"\" + _event.name + \"\\\" was sent to uninitialized service \\\"\" + _this.machine.id + \"\\\". Make sure .start() is called for this service, or set { deferEvents: true } in the service options.\\nEvent: \" + JSON.stringify(_event.data));\n }\n\n _this.scheduler.schedule(function () {\n // Forward copy of event to child actors\n _this.forward(_event);\n\n var nextState = _this.nextState(_event);\n\n _this.update(nextState, _event);\n });\n\n return _this._state; // TODO: deprecate (should return void)\n // tslint:disable-next-line:semicolon\n };\n\n this.sendTo = function (event, to) {\n var isParent = _this.parent && (to === SpecialTargets.Parent || _this.parent.id === to);\n var target = isParent ? _this.parent : isActor(to) ? to : _this.children.get(to) || registry.get(to);\n\n if (!target) {\n if (!isParent) {\n throw new Error(\"Unable to send event to child '\" + to + \"' from service '\" + _this.id + \"'.\");\n } // tslint:disable-next-line:no-console\n\n\n if (!IS_PRODUCTION) {\n warn(false, \"Service '\" + _this.id + \"' has no parent: unable to send event \" + event.type);\n }\n\n return;\n }\n\n if ('machine' in target) {\n // Send SCXML events to machines\n target.send(__assign(__assign({}, event), {\n name: event.name === error$1 ? \"\" + error(_this.id) : event.name,\n origin: _this.sessionId\n }));\n } else {\n // Send normal events to other targets\n target.send(event.data);\n }\n };\n\n var resolvedOptions = __assign(__assign({}, Interpreter.defaultOptions), options);\n\n var clock = resolvedOptions.clock,\n logger = resolvedOptions.logger,\n parent = resolvedOptions.parent,\n id = resolvedOptions.id;\n var resolvedId = id !== undefined ? id : machine.id;\n this.id = resolvedId;\n this.logger = logger;\n this.clock = clock;\n this.parent = parent;\n this.options = resolvedOptions;\n this.scheduler = new Scheduler({\n deferEvents: this.options.deferEvents\n });\n this.sessionId = registry.bookId();\n }\n\n Object.defineProperty(Interpreter.prototype, \"initialState\", {\n get: function () {\n var _this = this;\n\n if (this._initialState) {\n return this._initialState;\n }\n\n return provide(this, function () {\n _this._initialState = _this.machine.initialState;\n return _this._initialState;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Interpreter.prototype, \"state\", {\n get: function () {\n if (!IS_PRODUCTION) {\n warn(this._status !== InterpreterStatus.NotStarted, \"Attempted to read state from uninitialized service '\" + this.id + \"'. Make sure the service is started first.\");\n }\n\n return this._state;\n },\n enumerable: false,\n configurable: true\n });\n /**\r\n * Executes the actions of the given state, with that state's `context` and `event`.\r\n *\r\n * @param state The state whose actions will be executed\r\n * @param actionsConfig The action implementations to use\r\n */\n\n Interpreter.prototype.execute = function (state, actionsConfig) {\n var e_1, _a;\n\n try {\n for (var _b = __values(state.actions), _c = _b.next(); !_c.done; _c = _b.next()) {\n var action = _c.value;\n this.exec(action, state, actionsConfig);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n };\n\n Interpreter.prototype.update = function (state, _event) {\n var e_2, _a, e_3, _b, e_4, _c, e_5, _d;\n\n var _this = this; // Attach session ID to state\n\n\n state._sessionid = this.sessionId; // Update state\n\n this._state = state; // Execute actions\n\n if (this.options.execute) {\n this.execute(this.state);\n } // Dev tools\n\n\n if (this.devTools) {\n this.devTools.send(_event.data, state);\n } // Execute listeners\n\n\n if (state.event) {\n try {\n for (var _e = __values(this.eventListeners), _f = _e.next(); !_f.done; _f = _e.next()) {\n var listener = _f.value;\n listener(state.event);\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (_f && !_f.done && (_a = _e.return)) _a.call(_e);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n }\n\n try {\n for (var _g = __values(this.listeners), _h = _g.next(); !_h.done; _h = _g.next()) {\n var listener = _h.value;\n listener(state, state.event);\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (_h && !_h.done && (_b = _g.return)) _b.call(_g);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n\n try {\n for (var _j = __values(this.contextListeners), _k = _j.next(); !_k.done; _k = _j.next()) {\n var contextListener = _k.value;\n contextListener(this.state.context, this.state.history ? this.state.history.context : undefined);\n }\n } catch (e_4_1) {\n e_4 = {\n error: e_4_1\n };\n } finally {\n try {\n if (_k && !_k.done && (_c = _j.return)) _c.call(_j);\n } finally {\n if (e_4) throw e_4.error;\n }\n }\n\n var isDone = isInFinalState(state.configuration || [], this.machine);\n\n if (this.state.configuration && isDone) {\n // get final child state node\n var finalChildStateNode = state.configuration.find(function (sn) {\n return sn.type === 'final' && sn.parent === _this.machine;\n });\n var doneData = finalChildStateNode && finalChildStateNode.doneData ? mapContext(finalChildStateNode.doneData, state.context, _event) : undefined;\n\n try {\n for (var _l = __values(this.doneListeners), _m = _l.next(); !_m.done; _m = _l.next()) {\n var listener = _m.value;\n listener(doneInvoke(this.id, doneData));\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (_m && !_m.done && (_d = _l.return)) _d.call(_l);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n\n this.stop();\n }\n };\n /*\r\n * Adds a listener that is notified whenever a state transition happens. The listener is called with\r\n * the next state and the event object that caused the state transition.\r\n *\r\n * @param listener The state listener\r\n */\n\n\n Interpreter.prototype.onTransition = function (listener) {\n this.listeners.add(listener); // Send current state to listener\n\n if (this._status === InterpreterStatus.Running) {\n listener(this.state, this.state.event);\n }\n\n return this;\n };\n\n Interpreter.prototype.subscribe = function (nextListenerOrObserver, _, // TODO: error listener\n completeListener) {\n var _this = this;\n\n if (!nextListenerOrObserver) {\n return {\n unsubscribe: function () {\n return void 0;\n }\n };\n }\n\n var listener;\n var resolvedCompleteListener = completeListener;\n\n if (typeof nextListenerOrObserver === 'function') {\n listener = nextListenerOrObserver;\n } else {\n listener = nextListenerOrObserver.next.bind(nextListenerOrObserver);\n resolvedCompleteListener = nextListenerOrObserver.complete.bind(nextListenerOrObserver);\n }\n\n this.listeners.add(listener); // Send current state to listener\n\n if (this._status === InterpreterStatus.Running) {\n listener(this.state);\n }\n\n if (resolvedCompleteListener) {\n this.onDone(resolvedCompleteListener);\n }\n\n return {\n unsubscribe: function () {\n listener && _this.listeners.delete(listener);\n resolvedCompleteListener && _this.doneListeners.delete(resolvedCompleteListener);\n }\n };\n };\n /**\r\n * Adds an event listener that is notified whenever an event is sent to the running interpreter.\r\n * @param listener The event listener\r\n */\n\n\n Interpreter.prototype.onEvent = function (listener) {\n this.eventListeners.add(listener);\n return this;\n };\n /**\r\n * Adds an event listener that is notified whenever a `send` event occurs.\r\n * @param listener The event listener\r\n */\n\n\n Interpreter.prototype.onSend = function (listener) {\n this.sendListeners.add(listener);\n return this;\n };\n /**\r\n * Adds a context listener that is notified whenever the state context changes.\r\n * @param listener The context listener\r\n */\n\n\n Interpreter.prototype.onChange = function (listener) {\n this.contextListeners.add(listener);\n return this;\n };\n /**\r\n * Adds a listener that is notified when the machine is stopped.\r\n * @param listener The listener\r\n */\n\n\n Interpreter.prototype.onStop = function (listener) {\n this.stopListeners.add(listener);\n return this;\n };\n /**\r\n * Adds a state listener that is notified when the statechart has reached its final state.\r\n * @param listener The state listener\r\n */\n\n\n Interpreter.prototype.onDone = function (listener) {\n this.doneListeners.add(listener);\n return this;\n };\n /**\r\n * Removes a listener.\r\n * @param listener The listener to remove\r\n */\n\n\n Interpreter.prototype.off = function (listener) {\n this.listeners.delete(listener);\n this.eventListeners.delete(listener);\n this.sendListeners.delete(listener);\n this.stopListeners.delete(listener);\n this.doneListeners.delete(listener);\n this.contextListeners.delete(listener);\n return this;\n };\n /**\r\n * Starts the interpreter from the given state, or the initial state.\r\n * @param initialState The state to start the statechart from\r\n */\n\n\n Interpreter.prototype.start = function (initialState) {\n var _this = this;\n\n if (this._status === InterpreterStatus.Running) {\n // Do not restart the service if it is already started\n return this;\n }\n\n registry.register(this.sessionId, this);\n this.initialized = true;\n this._status = InterpreterStatus.Running;\n var resolvedState = initialState === undefined ? this.initialState : provide(this, function () {\n return isState(initialState) ? _this.machine.resolveState(initialState) : _this.machine.resolveState(State.from(initialState, _this.machine.context));\n });\n\n if (this.options.devTools) {\n this.attachDev();\n }\n\n this.scheduler.initialize(function () {\n _this.update(resolvedState, initEvent);\n });\n return this;\n };\n /**\r\n * Stops the interpreter and unsubscribe all listeners.\r\n *\r\n * This will also notify the `onStop` listeners.\r\n */\n\n\n Interpreter.prototype.stop = function () {\n var e_6, _a, e_7, _b, e_8, _c, e_9, _d, e_10, _e;\n\n try {\n for (var _f = __values(this.listeners), _g = _f.next(); !_g.done; _g = _f.next()) {\n var listener = _g.value;\n this.listeners.delete(listener);\n }\n } catch (e_6_1) {\n e_6 = {\n error: e_6_1\n };\n } finally {\n try {\n if (_g && !_g.done && (_a = _f.return)) _a.call(_f);\n } finally {\n if (e_6) throw e_6.error;\n }\n }\n\n try {\n for (var _h = __values(this.stopListeners), _j = _h.next(); !_j.done; _j = _h.next()) {\n var listener = _j.value; // call listener, then remove\n\n listener();\n this.stopListeners.delete(listener);\n }\n } catch (e_7_1) {\n e_7 = {\n error: e_7_1\n };\n } finally {\n try {\n if (_j && !_j.done && (_b = _h.return)) _b.call(_h);\n } finally {\n if (e_7) throw e_7.error;\n }\n }\n\n try {\n for (var _k = __values(this.contextListeners), _l = _k.next(); !_l.done; _l = _k.next()) {\n var listener = _l.value;\n this.contextListeners.delete(listener);\n }\n } catch (e_8_1) {\n e_8 = {\n error: e_8_1\n };\n } finally {\n try {\n if (_l && !_l.done && (_c = _k.return)) _c.call(_k);\n } finally {\n if (e_8) throw e_8.error;\n }\n }\n\n try {\n for (var _m = __values(this.doneListeners), _o = _m.next(); !_o.done; _o = _m.next()) {\n var listener = _o.value;\n this.doneListeners.delete(listener);\n }\n } catch (e_9_1) {\n e_9 = {\n error: e_9_1\n };\n } finally {\n try {\n if (_o && !_o.done && (_d = _m.return)) _d.call(_m);\n } finally {\n if (e_9) throw e_9.error;\n }\n } // Stop all children\n\n\n this.children.forEach(function (child) {\n if (isFunction(child.stop)) {\n child.stop();\n }\n });\n\n try {\n // Cancel all delayed events\n for (var _p = __values(keys(this.delayedEventsMap)), _q = _p.next(); !_q.done; _q = _p.next()) {\n var key = _q.value;\n this.clock.clearTimeout(this.delayedEventsMap[key]);\n }\n } catch (e_10_1) {\n e_10 = {\n error: e_10_1\n };\n } finally {\n try {\n if (_q && !_q.done && (_e = _p.return)) _e.call(_p);\n } finally {\n if (e_10) throw e_10.error;\n }\n }\n\n this.scheduler.clear();\n this.initialized = false;\n this._status = InterpreterStatus.Stopped;\n registry.free(this.sessionId);\n return this;\n };\n\n Interpreter.prototype.batch = function (events) {\n var _this = this;\n\n if (this._status === InterpreterStatus.NotStarted && this.options.deferEvents) {\n // tslint:disable-next-line:no-console\n if (!IS_PRODUCTION) {\n warn(false, events.length + \" event(s) were sent to uninitialized service \\\"\" + this.machine.id + \"\\\" and are deferred. Make sure .start() is called for this service.\\nEvent: \" + JSON.stringify(event));\n }\n } else if (this._status !== InterpreterStatus.Running) {\n throw new Error( // tslint:disable-next-line:max-line-length\n events.length + \" event(s) were sent to uninitialized service \\\"\" + this.machine.id + \"\\\". Make sure .start() is called for this service, or set { deferEvents: true } in the service options.\");\n }\n\n this.scheduler.schedule(function () {\n var e_11, _a;\n\n var nextState = _this.state;\n var batchChanged = false;\n var batchedActions = [];\n\n var _loop_1 = function (event_1) {\n var _event = toSCXMLEvent(event_1);\n\n _this.forward(_event);\n\n nextState = provide(_this, function () {\n return _this.machine.transition(nextState, _event);\n });\n batchedActions.push.apply(batchedActions, __spread(nextState.actions.map(function (a) {\n return bindActionToState(a, nextState);\n })));\n batchChanged = batchChanged || !!nextState.changed;\n };\n\n try {\n for (var events_1 = __values(events), events_1_1 = events_1.next(); !events_1_1.done; events_1_1 = events_1.next()) {\n var event_1 = events_1_1.value;\n\n _loop_1(event_1);\n }\n } catch (e_11_1) {\n e_11 = {\n error: e_11_1\n };\n } finally {\n try {\n if (events_1_1 && !events_1_1.done && (_a = events_1.return)) _a.call(events_1);\n } finally {\n if (e_11) throw e_11.error;\n }\n }\n\n nextState.changed = batchChanged;\n nextState.actions = batchedActions;\n\n _this.update(nextState, toSCXMLEvent(events[events.length - 1]));\n });\n };\n /**\r\n * Returns a send function bound to this interpreter instance.\r\n *\r\n * @param event The event to be sent by the sender.\r\n */\n\n\n Interpreter.prototype.sender = function (event) {\n return this.send.bind(this, event);\n };\n /**\r\n * Returns the next state given the interpreter's current state and the event.\r\n *\r\n * This is a pure method that does _not_ update the interpreter's state.\r\n *\r\n * @param event The event to determine the next state\r\n */\n\n\n Interpreter.prototype.nextState = function (event) {\n var _this = this;\n\n var _event = toSCXMLEvent(event);\n\n if (_event.name.indexOf(errorPlatform) === 0 && !this.state.nextEvents.some(function (nextEvent) {\n return nextEvent.indexOf(errorPlatform) === 0;\n })) {\n throw _event.data.data;\n }\n\n var nextState = provide(this, function () {\n return _this.machine.transition(_this.state, _event);\n });\n return nextState;\n };\n\n Interpreter.prototype.forward = function (event) {\n var e_12, _a;\n\n try {\n for (var _b = __values(this.forwardTo), _c = _b.next(); !_c.done; _c = _b.next()) {\n var id = _c.value;\n var child = this.children.get(id);\n\n if (!child) {\n throw new Error(\"Unable to forward event '\" + event + \"' from interpreter '\" + this.id + \"' to nonexistant child '\" + id + \"'.\");\n }\n\n child.send(event);\n }\n } catch (e_12_1) {\n e_12 = {\n error: e_12_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_12) throw e_12.error;\n }\n }\n };\n\n Interpreter.prototype.defer = function (sendAction) {\n var _this = this;\n\n this.delayedEventsMap[sendAction.id] = this.clock.setTimeout(function () {\n if (sendAction.to) {\n _this.sendTo(sendAction._event, sendAction.to);\n } else {\n _this.send(sendAction._event);\n }\n }, sendAction.delay);\n };\n\n Interpreter.prototype.cancel = function (sendId) {\n this.clock.clearTimeout(this.delayedEventsMap[sendId]);\n delete this.delayedEventsMap[sendId];\n };\n\n Interpreter.prototype.exec = function (action, state, actionFunctionMap) {\n if (actionFunctionMap === void 0) {\n actionFunctionMap = this.machine.options.actions;\n }\n\n var context = state.context,\n _event = state._event;\n var actionOrExec = action.exec || getActionFunction(action.type, actionFunctionMap);\n var exec = isFunction(actionOrExec) ? actionOrExec : actionOrExec ? actionOrExec.exec : action.exec;\n\n if (exec) {\n try {\n return exec(context, _event.data, {\n action: action,\n state: this.state,\n _event: _event\n });\n } catch (err) {\n if (this.parent) {\n this.parent.send({\n type: 'xstate.error',\n data: err\n });\n }\n\n throw err;\n }\n }\n\n switch (action.type) {\n case send:\n var sendAction = action;\n\n if (typeof sendAction.delay === 'number') {\n this.defer(sendAction);\n return;\n } else {\n if (sendAction.to) {\n this.sendTo(sendAction._event, sendAction.to);\n } else {\n this.send(sendAction._event);\n }\n }\n\n break;\n\n case cancel:\n this.cancel(action.sendId);\n break;\n\n case start:\n {\n var activity = action.activity; // If the activity will be stopped right after it's started\n // (such as in transient states)\n // don't bother starting the activity.\n\n if (!this.state.activities[activity.id || activity.type]) {\n break;\n } // Invoked services\n\n\n if (activity.type === ActionTypes.Invoke) {\n var invokeSource = toInvokeSource(activity.src);\n var serviceCreator = this.machine.options.services ? this.machine.options.services[invokeSource.type] : undefined;\n var id = activity.id,\n data = activity.data;\n\n if (!IS_PRODUCTION) {\n warn(!('forward' in activity), // tslint:disable-next-line:max-line-length\n \"`forward` property is deprecated (found in invocation of '\" + activity.src + \"' in in machine '\" + this.machine.id + \"'). \" + \"Please use `autoForward` instead.\");\n }\n\n var autoForward = 'autoForward' in activity ? activity.autoForward : !!activity.forward;\n\n if (!serviceCreator) {\n // tslint:disable-next-line:no-console\n if (!IS_PRODUCTION) {\n warn(false, \"No service found for invocation '\" + activity.src + \"' in machine '\" + this.machine.id + \"'.\");\n }\n\n return;\n }\n\n var resolvedData = data ? mapContext(data, context, _event) : undefined;\n var source = isFunction(serviceCreator) ? serviceCreator(context, _event.data, {\n data: resolvedData,\n src: invokeSource\n }) : serviceCreator;\n\n if (isPromiseLike(source)) {\n this.state.children[id] = this.spawnPromise(Promise.resolve(source), id);\n } else if (isFunction(source)) {\n this.state.children[id] = this.spawnCallback(source, id);\n } else if (isObservable(source)) {\n this.state.children[id] = this.spawnObservable(source, id);\n } else if (isMachine(source)) {\n // TODO: try/catch here\n this.state.children[id] = this.spawnMachine(resolvedData ? source.withContext(resolvedData) : source, {\n id: id,\n autoForward: autoForward\n });\n }\n } else {\n this.spawnActivity(activity);\n }\n\n break;\n }\n\n case stop:\n {\n this.stopChild(action.activity.id);\n break;\n }\n\n case log:\n var label = action.label,\n value = action.value;\n\n if (label) {\n this.logger(label, value);\n } else {\n this.logger(value);\n }\n\n break;\n\n default:\n if (!IS_PRODUCTION) {\n warn(false, \"No implementation found for action type '\" + action.type + \"'\");\n }\n\n break;\n }\n\n return undefined;\n };\n\n Interpreter.prototype.removeChild = function (childId) {\n this.children.delete(childId);\n this.forwardTo.delete(childId);\n delete this.state.children[childId];\n };\n\n Interpreter.prototype.stopChild = function (childId) {\n var child = this.children.get(childId);\n\n if (!child) {\n return;\n }\n\n this.removeChild(childId);\n\n if (isFunction(child.stop)) {\n child.stop();\n }\n };\n\n Interpreter.prototype.spawn = function (entity, name, options) {\n if (isPromiseLike(entity)) {\n return this.spawnPromise(Promise.resolve(entity), name);\n } else if (isFunction(entity)) {\n return this.spawnCallback(entity, name);\n } else if (isActor(entity)) {\n return this.spawnActor(entity);\n } else if (isObservable(entity)) {\n return this.spawnObservable(entity, name);\n } else if (isMachine(entity)) {\n return this.spawnMachine(entity, __assign(__assign({}, options), {\n id: name\n }));\n } else {\n throw new Error(\"Unable to spawn entity \\\"\" + name + \"\\\" of type \\\"\" + typeof entity + \"\\\".\");\n }\n };\n\n Interpreter.prototype.spawnMachine = function (machine, options) {\n var _this = this;\n\n if (options === void 0) {\n options = {};\n }\n\n var childService = new Interpreter(machine, __assign(__assign({}, this.options), {\n parent: this,\n id: options.id || machine.id\n }));\n\n var resolvedOptions = __assign(__assign({}, DEFAULT_SPAWN_OPTIONS), options);\n\n if (resolvedOptions.sync) {\n childService.onTransition(function (state) {\n _this.send(update, {\n state: state,\n id: childService.id\n });\n });\n }\n\n var actor = childService;\n this.children.set(childService.id, actor);\n\n if (resolvedOptions.autoForward) {\n this.forwardTo.add(childService.id);\n }\n\n childService.onDone(function (doneEvent) {\n _this.removeChild(childService.id);\n\n _this.send(toSCXMLEvent(doneEvent, {\n origin: childService.id\n }));\n }).start();\n return actor;\n };\n\n Interpreter.prototype.spawnPromise = function (promise, id) {\n var _this = this;\n\n var canceled = false;\n promise.then(function (response) {\n if (!canceled) {\n _this.removeChild(id);\n\n _this.send(toSCXMLEvent(doneInvoke(id, response), {\n origin: id\n }));\n }\n }, function (errorData) {\n if (!canceled) {\n _this.removeChild(id);\n\n var errorEvent = error(id, errorData);\n\n try {\n // Send \"error.platform.id\" to this (parent).\n _this.send(toSCXMLEvent(errorEvent, {\n origin: id\n }));\n } catch (error) {\n reportUnhandledExceptionOnInvocation(errorData, error, id);\n\n if (_this.devTools) {\n _this.devTools.send(errorEvent, _this.state);\n }\n\n if (_this.machine.strict) {\n // it would be better to always stop the state machine if unhandled\n // exception/promise rejection happens but because we don't want to\n // break existing code so enforce it on strict mode only especially so\n // because documentation says that onError is optional\n _this.stop();\n }\n }\n }\n });\n var actor = {\n id: id,\n send: function () {\n return void 0;\n },\n subscribe: function (next, handleError, complete) {\n var unsubscribed = false;\n promise.then(function (response) {\n if (unsubscribed) {\n return;\n }\n\n next && next(response);\n\n if (unsubscribed) {\n return;\n }\n\n complete && complete();\n }, function (err) {\n if (unsubscribed) {\n return;\n }\n\n handleError(err);\n });\n return {\n unsubscribe: function () {\n return unsubscribed = true;\n }\n };\n },\n stop: function () {\n canceled = true;\n },\n toJSON: function () {\n return {\n id: id\n };\n }\n };\n this.children.set(id, actor);\n return actor;\n };\n\n Interpreter.prototype.spawnCallback = function (callback, id) {\n var _this = this;\n\n var canceled = false;\n var receivers = new Set();\n var listeners = new Set();\n\n var receive = function (e) {\n listeners.forEach(function (listener) {\n return listener(e);\n });\n\n if (canceled) {\n return;\n }\n\n _this.send(e);\n };\n\n var callbackStop;\n\n try {\n callbackStop = callback(receive, function (newListener) {\n receivers.add(newListener);\n });\n } catch (err) {\n this.send(error(id, err));\n }\n\n if (isPromiseLike(callbackStop)) {\n // it turned out to be an async function, can't reliably check this before calling `callback`\n // because transpiled async functions are not recognizable\n return this.spawnPromise(callbackStop, id);\n }\n\n var actor = {\n id: id,\n send: function (event) {\n return receivers.forEach(function (receiver) {\n return receiver(event);\n });\n },\n subscribe: function (next) {\n listeners.add(next);\n return {\n unsubscribe: function () {\n listeners.delete(next);\n }\n };\n },\n stop: function () {\n canceled = true;\n\n if (isFunction(callbackStop)) {\n callbackStop();\n }\n },\n toJSON: function () {\n return {\n id: id\n };\n }\n };\n this.children.set(id, actor);\n return actor;\n };\n\n Interpreter.prototype.spawnObservable = function (source, id) {\n var _this = this;\n\n var subscription = source.subscribe(function (value) {\n _this.send(toSCXMLEvent(value, {\n origin: id\n }));\n }, function (err) {\n _this.removeChild(id);\n\n _this.send(toSCXMLEvent(error(id, err), {\n origin: id\n }));\n }, function () {\n _this.removeChild(id);\n\n _this.send(toSCXMLEvent(doneInvoke(id), {\n origin: id\n }));\n });\n var actor = {\n id: id,\n send: function () {\n return void 0;\n },\n subscribe: function (next, handleError, complete) {\n return source.subscribe(next, handleError, complete);\n },\n stop: function () {\n return subscription.unsubscribe();\n },\n toJSON: function () {\n return {\n id: id\n };\n }\n };\n this.children.set(id, actor);\n return actor;\n };\n\n Interpreter.prototype.spawnActor = function (actor) {\n this.children.set(actor.id, actor);\n return actor;\n };\n\n Interpreter.prototype.spawnActivity = function (activity) {\n var implementation = this.machine.options && this.machine.options.activities ? this.machine.options.activities[activity.type] : undefined;\n\n if (!implementation) {\n if (!IS_PRODUCTION) {\n warn(false, \"No implementation found for activity '\" + activity.type + \"'\");\n } // tslint:disable-next-line:no-console\n\n\n return;\n } // Start implementation\n\n\n var dispose = implementation(this.state.context, activity);\n this.spawnEffect(activity.id, dispose);\n };\n\n Interpreter.prototype.spawnEffect = function (id, dispose) {\n this.children.set(id, {\n id: id,\n send: function () {\n return void 0;\n },\n subscribe: function () {\n return {\n unsubscribe: function () {\n return void 0;\n }\n };\n },\n stop: dispose || undefined,\n toJSON: function () {\n return {\n id: id\n };\n }\n });\n };\n\n Interpreter.prototype.attachDev = function () {\n if (this.options.devTools && typeof window !== 'undefined') {\n if (window.__REDUX_DEVTOOLS_EXTENSION__) {\n var devToolsOptions = typeof this.options.devTools === 'object' ? this.options.devTools : undefined;\n this.devTools = window.__REDUX_DEVTOOLS_EXTENSION__.connect(__assign(__assign({\n name: this.id,\n autoPause: true,\n stateSanitizer: function (state) {\n return {\n value: state.value,\n context: state.context,\n actions: state.actions\n };\n }\n }, devToolsOptions), {\n features: __assign({\n jump: false,\n skip: false\n }, devToolsOptions ? devToolsOptions.features : undefined)\n }), this.machine);\n this.devTools.init(this.state);\n } // add XState-specific dev tooling hook\n\n\n registerService(this);\n }\n };\n\n Interpreter.prototype.toJSON = function () {\n return {\n id: this.id\n };\n };\n\n Interpreter.prototype[symbolObservable] = function () {\n return this;\n };\n /**\r\n * The default interpreter options:\r\n *\r\n * - `clock` uses the global `setTimeout` and `clearTimeout` functions\r\n * - `logger` uses the global `console.log()` method\r\n */\n\n\n Interpreter.defaultOptions = /*#__PURE__*/function (global) {\n return {\n execute: true,\n deferEvents: true,\n clock: {\n setTimeout: function (fn, ms) {\n return global.setTimeout.call(null, fn, ms);\n },\n clearTimeout: function (id) {\n return global.clearTimeout.call(null, id);\n }\n },\n logger: global.console.log.bind(console),\n devTools: false\n };\n }(typeof self !== 'undefined' ? self : global);\n\n Interpreter.interpret = interpret;\n return Interpreter;\n}();\n\nvar resolveSpawnOptions = function (nameOrOptions) {\n if (isString(nameOrOptions)) {\n return __assign(__assign({}, DEFAULT_SPAWN_OPTIONS), {\n name: nameOrOptions\n });\n }\n\n return __assign(__assign(__assign({}, DEFAULT_SPAWN_OPTIONS), {\n name: uniqueId()\n }), nameOrOptions);\n};\n\nfunction spawn(entity, nameOrOptions) {\n var resolvedOptions = resolveSpawnOptions(nameOrOptions);\n return consume(function (service) {\n if (!IS_PRODUCTION) {\n var isLazyEntity = isMachine(entity) || isFunction(entity);\n warn(!!service || isLazyEntity, \"Attempted to spawn an Actor (ID: \\\"\" + (isMachine(entity) ? entity.id : 'undefined') + \"\\\") outside of a service. This will have no effect.\");\n }\n\n if (service) {\n return service.spawn(entity, resolvedOptions.name, resolvedOptions);\n } else {\n return createDeferredActor(entity, resolvedOptions.name);\n }\n });\n}\n/**\r\n * Creates a new Interpreter instance for the given machine with the provided options, if any.\r\n *\r\n * @param machine The machine to interpret\r\n * @param options Interpreter options\r\n */\n\n\nfunction interpret(machine, options) {\n var interpreter = new Interpreter(machine, options);\n return interpreter;\n}\n\nexport { Interpreter, interpret, spawn };","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n date.setDate(date.getDate() + amount);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\n\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n var dayOfMonth = date.getDate(); // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","import { __assign, __rest } from './_virtual/_tslib.js';\nimport { invoke } from './actionTypes.js';\nimport './actions.js';\n\nfunction toInvokeSource(src) {\n if (typeof src === 'string') {\n var simpleSrc = {\n type: src\n };\n\n simpleSrc.toString = function () {\n return src;\n }; // v4 compat - TODO: remove in v5\n\n\n return simpleSrc;\n }\n\n return src;\n}\n\nfunction toInvokeDefinition(invokeConfig) {\n return __assign(__assign({\n type: invoke\n }, invokeConfig), {\n toJSON: function () {\n var onDone = invokeConfig.onDone,\n onError = invokeConfig.onError,\n invokeDef = __rest(invokeConfig, [\"onDone\", \"onError\"]);\n\n return __assign(__assign({}, invokeDef), {\n type: invoke,\n src: toInvokeSource(invokeConfig.src)\n });\n }\n });\n}\n\nexport { toInvokeDefinition, toInvokeSource };","import { __assign, __values, __spread, __read, __rest } from './_virtual/_tslib.js';\nimport { STATE_DELIMITER } from './constants.js';\nimport { IS_PRODUCTION } from './environment.js';\nimport { mapValues, isArray, flatten, keys, toArray, toStateValue, isString, getEventType, matchesState, path, evaluateGuard, mapContext, toSCXMLEvent, pathToStateValue, isBuiltInEvent, partition, updateHistoryValue, toStatePath, mapFilterValues, warn, toStatePaths, nestedPath, normalizeTarget, toGuard, toTransitionConfigArray, isMachine, isFunction } from './utils.js';\nimport { SpecialTargets } from './types.js';\nimport { getAllStateNodes, getConfiguration, has, getChildren, isInFinalState, getValue, isLeafNode } from './stateUtils.js';\nimport { start as start$1, stop as stop$1, invoke, update, nullEvent, raise as raise$1, send as send$1 } from './actionTypes.js';\nimport { done, start, raise, stop, toActionObjects, resolveActions, doneInvoke, error, toActionObject, toActivityDefinition, after, send, cancel, initEvent } from './actions.js';\nimport { State, stateValuesEqual } from './State.js';\nimport { createInvocableActor } from './Actor.js';\nimport { toInvokeDefinition } from './invokeUtils.js';\nvar NULL_EVENT = '';\nvar STATE_IDENTIFIER = '#';\nvar WILDCARD = '*';\nvar EMPTY_OBJECT = {};\n\nvar isStateId = function (str) {\n return str[0] === STATE_IDENTIFIER;\n};\n\nvar createDefaultOptions = function () {\n return {\n actions: {},\n guards: {},\n services: {},\n activities: {},\n delays: {}\n };\n};\n\nvar validateArrayifiedTransitions = function (stateNode, event, transitions) {\n var hasNonLastUnguardedTarget = transitions.slice(0, -1).some(function (transition) {\n return !('cond' in transition) && !('in' in transition) && (isString(transition.target) || isMachine(transition.target));\n });\n var eventText = event === NULL_EVENT ? 'the transient event' : \"event '\" + event + \"'\";\n warn(!hasNonLastUnguardedTarget, \"One or more transitions for \" + eventText + \" on state '\" + stateNode.id + \"' are unreachable. \" + \"Make sure that the default transition is the last one defined.\");\n};\n\nvar StateNode =\n/*#__PURE__*/\n\n/** @class */\nfunction () {\n function StateNode(\n /**\r\n * The raw config used to create the machine.\r\n */\n config, options,\n /**\r\n * The initial extended state\r\n */\n context) {\n var _this = this;\n\n this.config = config;\n this.context = context;\n /**\r\n * The order this state node appears. Corresponds to the implicit SCXML document order.\r\n */\n\n this.order = -1;\n this.__xstatenode = true;\n this.__cache = {\n events: undefined,\n relativeValue: new Map(),\n initialStateValue: undefined,\n initialState: undefined,\n on: undefined,\n transitions: undefined,\n candidates: {},\n delayedTransitions: undefined\n };\n this.idMap = {};\n this.options = Object.assign(createDefaultOptions(), options);\n this.parent = this.options._parent;\n this.key = this.config.key || this.options._key || this.config.id || '(machine)';\n this.machine = this.parent ? this.parent.machine : this;\n this.path = this.parent ? this.parent.path.concat(this.key) : [];\n this.delimiter = this.config.delimiter || (this.parent ? this.parent.delimiter : STATE_DELIMITER);\n this.id = this.config.id || __spread([this.machine.key], this.path).join(this.delimiter);\n this.version = this.parent ? this.parent.version : this.config.version;\n this.type = this.config.type || (this.config.parallel ? 'parallel' : this.config.states && keys(this.config.states).length ? 'compound' : this.config.history ? 'history' : 'atomic');\n\n if (!IS_PRODUCTION) {\n warn(!('parallel' in this.config), \"The \\\"parallel\\\" property is deprecated and will be removed in version 4.1. \" + (this.config.parallel ? \"Replace with `type: 'parallel'`\" : \"Use `type: '\" + this.type + \"'`\") + \" in the config for state node '\" + this.id + \"' instead.\");\n }\n\n this.initial = this.config.initial;\n this.states = this.config.states ? mapValues(this.config.states, function (stateConfig, key) {\n var _a;\n\n var stateNode = new StateNode(stateConfig, {\n _parent: _this,\n _key: key\n });\n Object.assign(_this.idMap, __assign((_a = {}, _a[stateNode.id] = stateNode, _a), stateNode.idMap));\n return stateNode;\n }) : EMPTY_OBJECT; // Document order\n\n var order = 0;\n\n function dfs(stateNode) {\n var e_1, _a;\n\n stateNode.order = order++;\n\n try {\n for (var _b = __values(getChildren(stateNode)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n dfs(child);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n }\n\n dfs(this); // History config\n\n this.history = this.config.history === true ? 'shallow' : this.config.history || false;\n this._transient = !!this.config.always || (!this.config.on ? false : Array.isArray(this.config.on) ? this.config.on.some(function (_a) {\n var event = _a.event;\n return event === NULL_EVENT;\n }) : NULL_EVENT in this.config.on);\n this.strict = !!this.config.strict; // TODO: deprecate (entry)\n\n this.onEntry = toArray(this.config.entry || this.config.onEntry).map(function (action) {\n return toActionObject(action);\n }); // TODO: deprecate (exit)\n\n this.onExit = toArray(this.config.exit || this.config.onExit).map(function (action) {\n return toActionObject(action);\n });\n this.meta = this.config.meta;\n this.doneData = this.type === 'final' ? this.config.data : undefined;\n this.invoke = toArray(this.config.invoke).map(function (invokeConfig, i) {\n var _a, _b;\n\n if (isMachine(invokeConfig)) {\n _this.machine.options.services = __assign((_a = {}, _a[invokeConfig.id] = invokeConfig, _a), _this.machine.options.services);\n return toInvokeDefinition({\n src: invokeConfig.id,\n id: invokeConfig.id\n });\n } else if (isString(invokeConfig.src)) {\n return toInvokeDefinition(__assign(__assign({}, invokeConfig), {\n id: invokeConfig.id || invokeConfig.src,\n src: invokeConfig.src\n }));\n } else if (isMachine(invokeConfig.src) || isFunction(invokeConfig.src)) {\n var invokeSrc = _this.id + \":invocation[\" + i + \"]\"; // TODO: util function\n\n _this.machine.options.services = __assign((_b = {}, _b[invokeSrc] = invokeConfig.src, _b), _this.machine.options.services);\n return toInvokeDefinition(__assign(__assign({\n id: invokeSrc\n }, invokeConfig), {\n src: invokeSrc\n }));\n } else {\n var invokeSource = invokeConfig.src;\n return toInvokeDefinition(__assign(__assign({\n id: invokeSource.type\n }, invokeConfig), {\n src: invokeSource\n }));\n }\n });\n this.activities = toArray(this.config.activities).concat(this.invoke).map(function (activity) {\n return toActivityDefinition(activity);\n });\n this.transition = this.transition.bind(this); // TODO: this is the real fix for initialization once\n // state node getters are deprecated\n // if (!this.parent) {\n // this._init();\n // }\n }\n\n StateNode.prototype._init = function () {\n if (this.__cache.transitions) {\n return;\n }\n\n getAllStateNodes(this).forEach(function (stateNode) {\n return stateNode.on;\n });\n };\n /**\r\n * Clones this state machine with custom options and context.\r\n *\r\n * @param options Options (actions, guards, activities, services) to recursively merge with the existing options.\r\n * @param context Custom context (will override predefined context)\r\n */\n\n\n StateNode.prototype.withConfig = function (options, context) {\n if (context === void 0) {\n context = this.context;\n }\n\n var _a = this.options,\n actions = _a.actions,\n activities = _a.activities,\n guards = _a.guards,\n services = _a.services,\n delays = _a.delays;\n return new StateNode(this.config, {\n actions: __assign(__assign({}, actions), options.actions),\n activities: __assign(__assign({}, activities), options.activities),\n guards: __assign(__assign({}, guards), options.guards),\n services: __assign(__assign({}, services), options.services),\n delays: __assign(__assign({}, delays), options.delays)\n }, context);\n };\n /**\r\n * Clones this state machine with custom context.\r\n *\r\n * @param context Custom context (will override predefined context, not recursive)\r\n */\n\n\n StateNode.prototype.withContext = function (context) {\n return new StateNode(this.config, this.options, context);\n };\n\n Object.defineProperty(StateNode.prototype, \"definition\", {\n /**\r\n * The well-structured state node definition.\r\n */\n get: function () {\n return {\n id: this.id,\n key: this.key,\n version: this.version,\n context: this.context,\n type: this.type,\n initial: this.initial,\n history: this.history,\n states: mapValues(this.states, function (state) {\n return state.definition;\n }),\n on: this.on,\n transitions: this.transitions,\n entry: this.onEntry,\n exit: this.onExit,\n activities: this.activities || [],\n meta: this.meta,\n order: this.order || -1,\n data: this.doneData,\n invoke: this.invoke\n };\n },\n enumerable: false,\n configurable: true\n });\n\n StateNode.prototype.toJSON = function () {\n return this.definition;\n };\n\n Object.defineProperty(StateNode.prototype, \"on\", {\n /**\r\n * The mapping of events to transitions.\r\n */\n get: function () {\n if (this.__cache.on) {\n return this.__cache.on;\n }\n\n var transitions = this.transitions;\n return this.__cache.on = transitions.reduce(function (map, transition) {\n map[transition.eventType] = map[transition.eventType] || [];\n map[transition.eventType].push(transition);\n return map;\n }, {});\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StateNode.prototype, \"after\", {\n get: function () {\n return this.__cache.delayedTransitions || (this.__cache.delayedTransitions = this.getDelayedTransitions(), this.__cache.delayedTransitions);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StateNode.prototype, \"transitions\", {\n /**\r\n * All the transitions that can be taken from this state node.\r\n */\n get: function () {\n return this.__cache.transitions || (this.__cache.transitions = this.formatTransitions(), this.__cache.transitions);\n },\n enumerable: false,\n configurable: true\n });\n\n StateNode.prototype.getCandidates = function (eventName) {\n if (this.__cache.candidates[eventName]) {\n return this.__cache.candidates[eventName];\n }\n\n var transient = eventName === NULL_EVENT;\n var candidates = this.transitions.filter(function (transition) {\n var sameEventType = transition.eventType === eventName; // null events should only match against eventless transitions\n\n return transient ? sameEventType : sameEventType || transition.eventType === WILDCARD;\n });\n this.__cache.candidates[eventName] = candidates;\n return candidates;\n };\n /**\r\n * All delayed transitions from the config.\r\n */\n\n\n StateNode.prototype.getDelayedTransitions = function () {\n var _this = this;\n\n var afterConfig = this.config.after;\n\n if (!afterConfig) {\n return [];\n }\n\n var mutateEntryExit = function (delay, i) {\n var delayRef = isFunction(delay) ? _this.id + \":delay[\" + i + \"]\" : delay;\n var eventType = after(delayRef, _this.id);\n\n _this.onEntry.push(send(eventType, {\n delay: delay\n }));\n\n _this.onExit.push(cancel(eventType));\n\n return eventType;\n };\n\n var delayedTransitions = isArray(afterConfig) ? afterConfig.map(function (transition, i) {\n var eventType = mutateEntryExit(transition.delay, i);\n return __assign(__assign({}, transition), {\n event: eventType\n });\n }) : flatten(keys(afterConfig).map(function (delay, i) {\n var configTransition = afterConfig[delay];\n var resolvedTransition = isString(configTransition) ? {\n target: configTransition\n } : configTransition;\n var resolvedDelay = !isNaN(+delay) ? +delay : delay;\n var eventType = mutateEntryExit(resolvedDelay, i);\n return toArray(resolvedTransition).map(function (transition) {\n return __assign(__assign({}, transition), {\n event: eventType,\n delay: resolvedDelay\n });\n });\n }));\n return delayedTransitions.map(function (delayedTransition) {\n var delay = delayedTransition.delay;\n return __assign(__assign({}, _this.formatTransition(delayedTransition)), {\n delay: delay\n });\n });\n };\n /**\r\n * Returns the state nodes represented by the current state value.\r\n *\r\n * @param state The state value or State instance\r\n */\n\n\n StateNode.prototype.getStateNodes = function (state) {\n var _a;\n\n var _this = this;\n\n if (!state) {\n return [];\n }\n\n var stateValue = state instanceof State ? state.value : toStateValue(state, this.delimiter);\n\n if (isString(stateValue)) {\n var initialStateValue = this.getStateNode(stateValue).initial;\n return initialStateValue !== undefined ? this.getStateNodes((_a = {}, _a[stateValue] = initialStateValue, _a)) : [this.states[stateValue]];\n }\n\n var subStateKeys = keys(stateValue);\n var subStateNodes = subStateKeys.map(function (subStateKey) {\n return _this.getStateNode(subStateKey);\n });\n return subStateNodes.concat(subStateKeys.reduce(function (allSubStateNodes, subStateKey) {\n var subStateNode = _this.getStateNode(subStateKey).getStateNodes(stateValue[subStateKey]);\n\n return allSubStateNodes.concat(subStateNode);\n }, []));\n };\n /**\r\n * Returns `true` if this state node explicitly handles the given event.\r\n *\r\n * @param event The event in question\r\n */\n\n\n StateNode.prototype.handles = function (event) {\n var eventType = getEventType(event);\n return this.events.includes(eventType);\n };\n /**\r\n * Resolves the given `state` to a new `State` instance relative to this machine.\r\n *\r\n * This ensures that `.events` and `.nextEvents` represent the correct values.\r\n *\r\n * @param state The state to resolve\r\n */\n\n\n StateNode.prototype.resolveState = function (state) {\n var configuration = Array.from(getConfiguration([], this.getStateNodes(state.value)));\n return new State(__assign(__assign({}, state), {\n value: this.resolve(state.value),\n configuration: configuration\n }));\n };\n\n StateNode.prototype.transitionLeafNode = function (stateValue, state, _event) {\n var stateNode = this.getStateNode(stateValue);\n var next = stateNode.next(state, _event);\n\n if (!next || !next.transitions.length) {\n return this.next(state, _event);\n }\n\n return next;\n };\n\n StateNode.prototype.transitionCompoundNode = function (stateValue, state, _event) {\n var subStateKeys = keys(stateValue);\n var stateNode = this.getStateNode(subStateKeys[0]);\n\n var next = stateNode._transition(stateValue[subStateKeys[0]], state, _event);\n\n if (!next || !next.transitions.length) {\n return this.next(state, _event);\n }\n\n return next;\n };\n\n StateNode.prototype.transitionParallelNode = function (stateValue, state, _event) {\n var e_2, _a;\n\n var transitionMap = {};\n\n try {\n for (var _b = __values(keys(stateValue)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var subStateKey = _c.value;\n var subStateValue = stateValue[subStateKey];\n\n if (!subStateValue) {\n continue;\n }\n\n var subStateNode = this.getStateNode(subStateKey);\n\n var next = subStateNode._transition(subStateValue, state, _event);\n\n if (next) {\n transitionMap[subStateKey] = next;\n }\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n var stateTransitions = keys(transitionMap).map(function (key) {\n return transitionMap[key];\n });\n var enabledTransitions = flatten(stateTransitions.map(function (st) {\n return st.transitions;\n }));\n var willTransition = stateTransitions.some(function (st) {\n return st.transitions.length > 0;\n });\n\n if (!willTransition) {\n return this.next(state, _event);\n }\n\n var entryNodes = flatten(stateTransitions.map(function (t) {\n return t.entrySet;\n }));\n var configuration = flatten(keys(transitionMap).map(function (key) {\n return transitionMap[key].configuration;\n }));\n return {\n transitions: enabledTransitions,\n entrySet: entryNodes,\n exitSet: flatten(stateTransitions.map(function (t) {\n return t.exitSet;\n })),\n configuration: configuration,\n source: state,\n actions: flatten(keys(transitionMap).map(function (key) {\n return transitionMap[key].actions;\n }))\n };\n };\n\n StateNode.prototype._transition = function (stateValue, state, _event) {\n // leaf node\n if (isString(stateValue)) {\n return this.transitionLeafNode(stateValue, state, _event);\n } // hierarchical node\n\n\n if (keys(stateValue).length === 1) {\n return this.transitionCompoundNode(stateValue, state, _event);\n } // orthogonal node\n\n\n return this.transitionParallelNode(stateValue, state, _event);\n };\n\n StateNode.prototype.next = function (state, _event) {\n var e_3, _a;\n\n var _this = this;\n\n var eventName = _event.name;\n var actions = [];\n var nextStateNodes = [];\n var selectedTransition;\n\n try {\n for (var _b = __values(this.getCandidates(eventName)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var candidate = _c.value;\n var cond = candidate.cond,\n stateIn = candidate.in;\n var resolvedContext = state.context;\n var isInState = stateIn ? isString(stateIn) && isStateId(stateIn) ? // Check if in state by ID\n state.matches(toStateValue(this.getStateNodeById(stateIn).path, this.delimiter)) : // Check if in state by relative grandparent\n matchesState(toStateValue(stateIn, this.delimiter), path(this.path.slice(0, -2))(state.value)) : true;\n var guardPassed = false;\n\n try {\n guardPassed = !cond || evaluateGuard(this.machine, cond, resolvedContext, _event, state);\n } catch (err) {\n throw new Error(\"Unable to evaluate guard '\" + (cond.name || cond.type) + \"' in transition for event '\" + eventName + \"' in state node '\" + this.id + \"':\\n\" + err.message);\n }\n\n if (guardPassed && isInState) {\n if (candidate.target !== undefined) {\n nextStateNodes = candidate.target;\n }\n\n actions.push.apply(actions, __spread(candidate.actions));\n selectedTransition = candidate;\n break;\n }\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n\n if (!selectedTransition) {\n return undefined;\n }\n\n if (!nextStateNodes.length) {\n return {\n transitions: [selectedTransition],\n entrySet: [],\n exitSet: [],\n configuration: state.value ? [this] : [],\n source: state,\n actions: actions\n };\n }\n\n var allNextStateNodes = flatten(nextStateNodes.map(function (stateNode) {\n return _this.getRelativeStateNodes(stateNode, state.historyValue);\n }));\n var isInternal = !!selectedTransition.internal;\n var reentryNodes = isInternal ? [] : flatten(allNextStateNodes.map(function (n) {\n return _this.nodesFromChild(n);\n }));\n return {\n transitions: [selectedTransition],\n entrySet: reentryNodes,\n exitSet: isInternal ? [] : [this],\n configuration: allNextStateNodes,\n source: state,\n actions: actions\n };\n };\n\n StateNode.prototype.nodesFromChild = function (childStateNode) {\n if (childStateNode.escapes(this)) {\n return [];\n }\n\n var nodes = [];\n var marker = childStateNode;\n\n while (marker && marker !== this) {\n nodes.push(marker);\n marker = marker.parent;\n }\n\n nodes.push(this); // inclusive\n\n return nodes;\n };\n /**\r\n * Whether the given state node \"escapes\" this state node. If the `stateNode` is equal to or the parent of\r\n * this state node, it does not escape.\r\n */\n\n\n StateNode.prototype.escapes = function (stateNode) {\n if (this === stateNode) {\n return false;\n }\n\n var parent = this.parent;\n\n while (parent) {\n if (parent === stateNode) {\n return false;\n }\n\n parent = parent.parent;\n }\n\n return true;\n };\n\n StateNode.prototype.getActions = function (transition, currentContext, _event, prevState) {\n var e_4, _a, e_5, _b;\n\n var prevConfig = getConfiguration([], prevState ? this.getStateNodes(prevState.value) : [this]);\n var resolvedConfig = transition.configuration.length ? getConfiguration(prevConfig, transition.configuration) : prevConfig;\n\n try {\n for (var resolvedConfig_1 = __values(resolvedConfig), resolvedConfig_1_1 = resolvedConfig_1.next(); !resolvedConfig_1_1.done; resolvedConfig_1_1 = resolvedConfig_1.next()) {\n var sn = resolvedConfig_1_1.value;\n\n if (!has(prevConfig, sn)) {\n transition.entrySet.push(sn);\n }\n }\n } catch (e_4_1) {\n e_4 = {\n error: e_4_1\n };\n } finally {\n try {\n if (resolvedConfig_1_1 && !resolvedConfig_1_1.done && (_a = resolvedConfig_1.return)) _a.call(resolvedConfig_1);\n } finally {\n if (e_4) throw e_4.error;\n }\n }\n\n try {\n for (var prevConfig_1 = __values(prevConfig), prevConfig_1_1 = prevConfig_1.next(); !prevConfig_1_1.done; prevConfig_1_1 = prevConfig_1.next()) {\n var sn = prevConfig_1_1.value;\n\n if (!has(resolvedConfig, sn) || has(transition.exitSet, sn.parent)) {\n transition.exitSet.push(sn);\n }\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (prevConfig_1_1 && !prevConfig_1_1.done && (_b = prevConfig_1.return)) _b.call(prevConfig_1);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n\n if (!transition.source) {\n transition.exitSet = []; // Ensure that root StateNode (machine) is entered\n\n transition.entrySet.push(this);\n }\n\n var doneEvents = flatten(transition.entrySet.map(function (sn) {\n var events = [];\n\n if (sn.type !== 'final') {\n return events;\n }\n\n var parent = sn.parent;\n\n if (!parent.parent) {\n return events;\n }\n\n events.push(done(sn.id, sn.doneData), // TODO: deprecate - final states should not emit done events for their own state.\n done(parent.id, sn.doneData ? mapContext(sn.doneData, currentContext, _event) : undefined));\n var grandparent = parent.parent;\n\n if (grandparent.type === 'parallel') {\n if (getChildren(grandparent).every(function (parentNode) {\n return isInFinalState(transition.configuration, parentNode);\n })) {\n events.push(done(grandparent.id));\n }\n }\n\n return events;\n }));\n transition.exitSet.sort(function (a, b) {\n return b.order - a.order;\n });\n transition.entrySet.sort(function (a, b) {\n return a.order - b.order;\n });\n var entryStates = new Set(transition.entrySet);\n var exitStates = new Set(transition.exitSet);\n\n var _c = __read([flatten(Array.from(entryStates).map(function (stateNode) {\n return __spread(stateNode.activities.map(function (activity) {\n return start(activity);\n }), stateNode.onEntry);\n })).concat(doneEvents.map(raise)), flatten(Array.from(exitStates).map(function (stateNode) {\n return __spread(stateNode.onExit, stateNode.activities.map(function (activity) {\n return stop(activity);\n }));\n }))], 2),\n entryActions = _c[0],\n exitActions = _c[1];\n\n var actions = toActionObjects(exitActions.concat(transition.actions).concat(entryActions), this.machine.options.actions);\n return actions;\n };\n /**\r\n * Determines the next state given the current `state` and sent `event`.\r\n *\r\n * @param state The current State instance or state value\r\n * @param event The event that was sent at the current state\r\n * @param context The current context (extended state) of the current state\r\n */\n\n\n StateNode.prototype.transition = function (state, event, context) {\n if (state === void 0) {\n state = this.initialState;\n }\n\n var _event = toSCXMLEvent(event);\n\n var currentState;\n\n if (state instanceof State) {\n currentState = context === undefined ? state : this.resolveState(State.from(state, context));\n } else {\n var resolvedStateValue = isString(state) ? this.resolve(pathToStateValue(this.getResolvedPath(state))) : this.resolve(state);\n var resolvedContext = context ? context : this.machine.context;\n currentState = this.resolveState(State.from(resolvedStateValue, resolvedContext));\n }\n\n if (!IS_PRODUCTION && _event.name === WILDCARD) {\n throw new Error(\"An event cannot have the wildcard type ('\" + WILDCARD + \"')\");\n }\n\n if (this.strict) {\n if (!this.events.includes(_event.name) && !isBuiltInEvent(_event.name)) {\n throw new Error(\"Machine '\" + this.id + \"' does not accept event '\" + _event.name + \"'\");\n }\n }\n\n var stateTransition = this._transition(currentState.value, currentState, _event) || {\n transitions: [],\n configuration: [],\n entrySet: [],\n exitSet: [],\n source: currentState,\n actions: []\n };\n var prevConfig = getConfiguration([], this.getStateNodes(currentState.value));\n var resolvedConfig = stateTransition.configuration.length ? getConfiguration(prevConfig, stateTransition.configuration) : prevConfig;\n stateTransition.configuration = __spread(resolvedConfig);\n return this.resolveTransition(stateTransition, currentState, _event);\n };\n\n StateNode.prototype.resolveRaisedTransition = function (state, _event, originalEvent) {\n var _a;\n\n var currentActions = state.actions;\n state = this.transition(state, _event); // Save original event to state\n // TODO: this should be the raised event! Delete in V5 (breaking)\n\n state._event = originalEvent;\n state.event = originalEvent.data;\n\n (_a = state.actions).unshift.apply(_a, __spread(currentActions));\n\n return state;\n };\n\n StateNode.prototype.resolveTransition = function (stateTransition, currentState, _event, context) {\n var e_6, _a;\n\n var _this = this;\n\n if (_event === void 0) {\n _event = initEvent;\n }\n\n if (context === void 0) {\n context = this.machine.context;\n }\n\n var configuration = stateTransition.configuration; // Transition will \"apply\" if:\n // - this is the initial state (there is no current state)\n // - OR there are transitions\n\n var willTransition = !currentState || stateTransition.transitions.length > 0;\n var resolvedStateValue = willTransition ? getValue(this.machine, configuration) : undefined;\n var historyValue = currentState ? currentState.historyValue ? currentState.historyValue : stateTransition.source ? this.machine.historyValue(currentState.value) : undefined : undefined;\n var currentContext = currentState ? currentState.context : context;\n var actions = this.getActions(stateTransition, currentContext, _event, currentState);\n var activities = currentState ? __assign({}, currentState.activities) : {};\n\n try {\n for (var actions_1 = __values(actions), actions_1_1 = actions_1.next(); !actions_1_1.done; actions_1_1 = actions_1.next()) {\n var action = actions_1_1.value;\n\n if (action.type === start$1) {\n activities[action.activity.id || action.activity.type] = action;\n } else if (action.type === stop$1) {\n activities[action.activity.id || action.activity.type] = false;\n }\n }\n } catch (e_6_1) {\n e_6 = {\n error: e_6_1\n };\n } finally {\n try {\n if (actions_1_1 && !actions_1_1.done && (_a = actions_1.return)) _a.call(actions_1);\n } finally {\n if (e_6) throw e_6.error;\n }\n }\n\n var _b = __read(resolveActions(this, currentState, currentContext, _event, actions), 2),\n resolvedActions = _b[0],\n updatedContext = _b[1];\n\n var _c = __read(partition(resolvedActions, function (action) {\n return action.type === raise$1 || action.type === send$1 && action.to === SpecialTargets.Internal;\n }), 2),\n raisedEvents = _c[0],\n nonRaisedActions = _c[1];\n\n var invokeActions = resolvedActions.filter(function (action) {\n return action.type === start$1 && action.activity.type === invoke;\n });\n var children = invokeActions.reduce(function (acc, action) {\n acc[action.activity.id] = createInvocableActor(action.activity, _this.machine, updatedContext, _event);\n return acc;\n }, currentState ? __assign({}, currentState.children) : {});\n var resolvedConfiguration = resolvedStateValue ? stateTransition.configuration : currentState ? currentState.configuration : [];\n var meta = resolvedConfiguration.reduce(function (acc, stateNode) {\n if (stateNode.meta !== undefined) {\n acc[stateNode.id] = stateNode.meta;\n }\n\n return acc;\n }, {});\n var isDone = isInFinalState(resolvedConfiguration, this);\n var nextState = new State({\n value: resolvedStateValue || currentState.value,\n context: updatedContext,\n _event: _event,\n // Persist _sessionid between states\n _sessionid: currentState ? currentState._sessionid : null,\n historyValue: resolvedStateValue ? historyValue ? updateHistoryValue(historyValue, resolvedStateValue) : undefined : currentState ? currentState.historyValue : undefined,\n history: !resolvedStateValue || stateTransition.source ? currentState : undefined,\n actions: resolvedStateValue ? nonRaisedActions : [],\n activities: resolvedStateValue ? activities : currentState ? currentState.activities : {},\n meta: resolvedStateValue ? meta : currentState ? currentState.meta : undefined,\n events: [],\n configuration: resolvedConfiguration,\n transitions: stateTransition.transitions,\n children: children,\n done: isDone\n });\n var didUpdateContext = currentContext !== updatedContext;\n nextState.changed = _event.name === update || didUpdateContext; // Dispose of penultimate histories to prevent memory leaks\n\n var history = nextState.history;\n\n if (history) {\n delete history.history;\n }\n\n if (!resolvedStateValue) {\n return nextState;\n }\n\n var maybeNextState = nextState;\n\n if (!isDone) {\n var isTransient = this._transient || configuration.some(function (stateNode) {\n return stateNode._transient;\n });\n\n if (isTransient) {\n maybeNextState = this.resolveRaisedTransition(maybeNextState, {\n type: nullEvent\n }, _event);\n }\n\n while (raisedEvents.length) {\n var raisedEvent = raisedEvents.shift();\n maybeNextState = this.resolveRaisedTransition(maybeNextState, raisedEvent._event, _event);\n }\n } // Detect if state changed\n\n\n var changed = maybeNextState.changed || (history ? !!maybeNextState.actions.length || didUpdateContext || typeof history.value !== typeof maybeNextState.value || !stateValuesEqual(maybeNextState.value, history.value) : undefined);\n maybeNextState.changed = changed; // Preserve original history after raised events\n\n maybeNextState.historyValue = nextState.historyValue;\n maybeNextState.history = history;\n return maybeNextState;\n };\n /**\r\n * Returns the child state node from its relative `stateKey`, or throws.\r\n */\n\n\n StateNode.prototype.getStateNode = function (stateKey) {\n if (isStateId(stateKey)) {\n return this.machine.getStateNodeById(stateKey);\n }\n\n if (!this.states) {\n throw new Error(\"Unable to retrieve child state '\" + stateKey + \"' from '\" + this.id + \"'; no child states exist.\");\n }\n\n var result = this.states[stateKey];\n\n if (!result) {\n throw new Error(\"Child state '\" + stateKey + \"' does not exist on '\" + this.id + \"'\");\n }\n\n return result;\n };\n /**\r\n * Returns the state node with the given `stateId`, or throws.\r\n *\r\n * @param stateId The state ID. The prefix \"#\" is removed.\r\n */\n\n\n StateNode.prototype.getStateNodeById = function (stateId) {\n var resolvedStateId = isStateId(stateId) ? stateId.slice(STATE_IDENTIFIER.length) : stateId;\n\n if (resolvedStateId === this.id) {\n return this;\n }\n\n var stateNode = this.machine.idMap[resolvedStateId];\n\n if (!stateNode) {\n throw new Error(\"Child state node '#\" + resolvedStateId + \"' does not exist on machine '\" + this.id + \"'\");\n }\n\n return stateNode;\n };\n /**\r\n * Returns the relative state node from the given `statePath`, or throws.\r\n *\r\n * @param statePath The string or string array relative path to the state node.\r\n */\n\n\n StateNode.prototype.getStateNodeByPath = function (statePath) {\n if (typeof statePath === 'string' && isStateId(statePath)) {\n try {\n return this.getStateNodeById(statePath.slice(1));\n } catch (e) {// try individual paths\n // throw e;\n }\n }\n\n var arrayStatePath = toStatePath(statePath, this.delimiter).slice();\n var currentStateNode = this;\n\n while (arrayStatePath.length) {\n var key = arrayStatePath.shift();\n\n if (!key.length) {\n break;\n }\n\n currentStateNode = currentStateNode.getStateNode(key);\n }\n\n return currentStateNode;\n };\n /**\r\n * Resolves a partial state value with its full representation in this machine.\r\n *\r\n * @param stateValue The partial state value to resolve.\r\n */\n\n\n StateNode.prototype.resolve = function (stateValue) {\n var _a;\n\n var _this = this;\n\n if (!stateValue) {\n return this.initialStateValue || EMPTY_OBJECT; // TODO: type-specific properties\n }\n\n switch (this.type) {\n case 'parallel':\n return mapValues(this.initialStateValue, function (subStateValue, subStateKey) {\n return subStateValue ? _this.getStateNode(subStateKey).resolve(stateValue[subStateKey] || subStateValue) : EMPTY_OBJECT;\n });\n\n case 'compound':\n if (isString(stateValue)) {\n var subStateNode = this.getStateNode(stateValue);\n\n if (subStateNode.type === 'parallel' || subStateNode.type === 'compound') {\n return _a = {}, _a[stateValue] = subStateNode.initialStateValue, _a;\n }\n\n return stateValue;\n }\n\n if (!keys(stateValue).length) {\n return this.initialStateValue || {};\n }\n\n return mapValues(stateValue, function (subStateValue, subStateKey) {\n return subStateValue ? _this.getStateNode(subStateKey).resolve(subStateValue) : EMPTY_OBJECT;\n });\n\n default:\n return stateValue || EMPTY_OBJECT;\n }\n };\n\n StateNode.prototype.getResolvedPath = function (stateIdentifier) {\n if (isStateId(stateIdentifier)) {\n var stateNode = this.machine.idMap[stateIdentifier.slice(STATE_IDENTIFIER.length)];\n\n if (!stateNode) {\n throw new Error(\"Unable to find state node '\" + stateIdentifier + \"'\");\n }\n\n return stateNode.path;\n }\n\n return toStatePath(stateIdentifier, this.delimiter);\n };\n\n Object.defineProperty(StateNode.prototype, \"initialStateValue\", {\n get: function () {\n var _a;\n\n if (this.__cache.initialStateValue) {\n return this.__cache.initialStateValue;\n }\n\n var initialStateValue;\n\n if (this.type === 'parallel') {\n initialStateValue = mapFilterValues(this.states, function (state) {\n return state.initialStateValue || EMPTY_OBJECT;\n }, function (stateNode) {\n return !(stateNode.type === 'history');\n });\n } else if (this.initial !== undefined) {\n if (!this.states[this.initial]) {\n throw new Error(\"Initial state '\" + this.initial + \"' not found on '\" + this.key + \"'\");\n }\n\n initialStateValue = isLeafNode(this.states[this.initial]) ? this.initial : (_a = {}, _a[this.initial] = this.states[this.initial].initialStateValue, _a);\n }\n\n this.__cache.initialStateValue = initialStateValue;\n return this.__cache.initialStateValue;\n },\n enumerable: false,\n configurable: true\n });\n\n StateNode.prototype.getInitialState = function (stateValue, context) {\n var configuration = this.getStateNodes(stateValue);\n return this.resolveTransition({\n configuration: configuration,\n entrySet: configuration,\n exitSet: [],\n transitions: [],\n source: undefined,\n actions: []\n }, undefined, undefined, context);\n };\n\n Object.defineProperty(StateNode.prototype, \"initialState\", {\n /**\r\n * The initial State instance, which includes all actions to be executed from\r\n * entering the initial state.\r\n */\n get: function () {\n this._init(); // TODO: this should be in the constructor (see note in constructor)\n\n\n var initialStateValue = this.initialStateValue;\n\n if (!initialStateValue) {\n throw new Error(\"Cannot retrieve initial state from simple state '\" + this.id + \"'.\");\n }\n\n return this.getInitialState(initialStateValue);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StateNode.prototype, \"target\", {\n /**\r\n * The target state value of the history state node, if it exists. This represents the\r\n * default state value to transition to if no history value exists yet.\r\n */\n get: function () {\n var target;\n\n if (this.type === 'history') {\n var historyConfig = this.config;\n\n if (isString(historyConfig.target)) {\n target = isStateId(historyConfig.target) ? pathToStateValue(this.machine.getStateNodeById(historyConfig.target).path.slice(this.path.length - 1)) : historyConfig.target;\n } else {\n target = historyConfig.target;\n }\n }\n\n return target;\n },\n enumerable: false,\n configurable: true\n });\n /**\r\n * Returns the leaf nodes from a state path relative to this state node.\r\n *\r\n * @param relativeStateId The relative state path to retrieve the state nodes\r\n * @param history The previous state to retrieve history\r\n * @param resolve Whether state nodes should resolve to initial child state nodes\r\n */\n\n StateNode.prototype.getRelativeStateNodes = function (relativeStateId, historyValue, resolve) {\n if (resolve === void 0) {\n resolve = true;\n }\n\n return resolve ? relativeStateId.type === 'history' ? relativeStateId.resolveHistory(historyValue) : relativeStateId.initialStateNodes : [relativeStateId];\n };\n\n Object.defineProperty(StateNode.prototype, \"initialStateNodes\", {\n get: function () {\n var _this = this;\n\n if (isLeafNode(this)) {\n return [this];\n } // Case when state node is compound but no initial state is defined\n\n\n if (this.type === 'compound' && !this.initial) {\n if (!IS_PRODUCTION) {\n warn(false, \"Compound state node '\" + this.id + \"' has no initial state.\");\n }\n\n return [this];\n }\n\n var initialStateNodePaths = toStatePaths(this.initialStateValue);\n return flatten(initialStateNodePaths.map(function (initialPath) {\n return _this.getFromRelativePath(initialPath);\n }));\n },\n enumerable: false,\n configurable: true\n });\n /**\r\n * Retrieves state nodes from a relative path to this state node.\r\n *\r\n * @param relativePath The relative path from this state node\r\n * @param historyValue\r\n */\n\n StateNode.prototype.getFromRelativePath = function (relativePath) {\n if (!relativePath.length) {\n return [this];\n }\n\n var _a = __read(relativePath),\n stateKey = _a[0],\n childStatePath = _a.slice(1);\n\n if (!this.states) {\n throw new Error(\"Cannot retrieve subPath '\" + stateKey + \"' from node with no states\");\n }\n\n var childStateNode = this.getStateNode(stateKey);\n\n if (childStateNode.type === 'history') {\n return childStateNode.resolveHistory();\n }\n\n if (!this.states[stateKey]) {\n throw new Error(\"Child state '\" + stateKey + \"' does not exist on '\" + this.id + \"'\");\n }\n\n return this.states[stateKey].getFromRelativePath(childStatePath);\n };\n\n StateNode.prototype.historyValue = function (relativeStateValue) {\n if (!keys(this.states).length) {\n return undefined;\n }\n\n return {\n current: relativeStateValue || this.initialStateValue,\n states: mapFilterValues(this.states, function (stateNode, key) {\n if (!relativeStateValue) {\n return stateNode.historyValue();\n }\n\n var subStateValue = isString(relativeStateValue) ? undefined : relativeStateValue[key];\n return stateNode.historyValue(subStateValue || stateNode.initialStateValue);\n }, function (stateNode) {\n return !stateNode.history;\n })\n };\n };\n /**\r\n * Resolves to the historical value(s) of the parent state node,\r\n * represented by state nodes.\r\n *\r\n * @param historyValue\r\n */\n\n\n StateNode.prototype.resolveHistory = function (historyValue) {\n var _this = this;\n\n if (this.type !== 'history') {\n return [this];\n }\n\n var parent = this.parent;\n\n if (!historyValue) {\n var historyTarget = this.target;\n return historyTarget ? flatten(toStatePaths(historyTarget).map(function (relativeChildPath) {\n return parent.getFromRelativePath(relativeChildPath);\n })) : parent.initialStateNodes;\n }\n\n var subHistoryValue = nestedPath(parent.path, 'states')(historyValue).current;\n\n if (isString(subHistoryValue)) {\n return [parent.getStateNode(subHistoryValue)];\n }\n\n return flatten(toStatePaths(subHistoryValue).map(function (subStatePath) {\n return _this.history === 'deep' ? parent.getFromRelativePath(subStatePath) : [parent.states[subStatePath[0]]];\n }));\n };\n\n Object.defineProperty(StateNode.prototype, \"stateIds\", {\n /**\r\n * All the state node IDs of this state node and its descendant state nodes.\r\n */\n get: function () {\n var _this = this;\n\n var childStateIds = flatten(keys(this.states).map(function (stateKey) {\n return _this.states[stateKey].stateIds;\n }));\n return [this.id].concat(childStateIds);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StateNode.prototype, \"events\", {\n /**\r\n * All the event types accepted by this state node and its descendants.\r\n */\n get: function () {\n var e_7, _a, e_8, _b;\n\n if (this.__cache.events) {\n return this.__cache.events;\n }\n\n var states = this.states;\n var events = new Set(this.ownEvents);\n\n if (states) {\n try {\n for (var _c = __values(keys(states)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var stateId = _d.value;\n var state = states[stateId];\n\n if (state.states) {\n try {\n for (var _e = (e_8 = void 0, __values(state.events)), _f = _e.next(); !_f.done; _f = _e.next()) {\n var event_1 = _f.value;\n events.add(\"\" + event_1);\n }\n } catch (e_8_1) {\n e_8 = {\n error: e_8_1\n };\n } finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n } finally {\n if (e_8) throw e_8.error;\n }\n }\n }\n }\n } catch (e_7_1) {\n e_7 = {\n error: e_7_1\n };\n } finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n } finally {\n if (e_7) throw e_7.error;\n }\n }\n }\n\n return this.__cache.events = Array.from(events);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StateNode.prototype, \"ownEvents\", {\n /**\r\n * All the events that have transitions directly from this state node.\r\n *\r\n * Excludes any inert events.\r\n */\n get: function () {\n var events = new Set(this.transitions.filter(function (transition) {\n return !(!transition.target && !transition.actions.length && transition.internal);\n }).map(function (transition) {\n return transition.eventType;\n }));\n return Array.from(events);\n },\n enumerable: false,\n configurable: true\n });\n\n StateNode.prototype.resolveTarget = function (_target) {\n var _this = this;\n\n if (_target === undefined) {\n // an undefined target signals that the state node should not transition from that state when receiving that event\n return undefined;\n }\n\n return _target.map(function (target) {\n if (!isString(target)) {\n return target;\n }\n\n var isInternalTarget = target[0] === _this.delimiter; // If internal target is defined on machine,\n // do not include machine key on target\n\n if (isInternalTarget && !_this.parent) {\n return _this.getStateNodeByPath(target.slice(1));\n }\n\n var resolvedTarget = isInternalTarget ? _this.key + target : target;\n\n if (_this.parent) {\n try {\n var targetStateNode = _this.parent.getStateNodeByPath(resolvedTarget);\n\n return targetStateNode;\n } catch (err) {\n throw new Error(\"Invalid transition definition for state node '\" + _this.id + \"':\\n\" + err.message);\n }\n } else {\n return _this.getStateNodeByPath(resolvedTarget);\n }\n });\n };\n\n StateNode.prototype.formatTransition = function (transitionConfig) {\n var _this = this;\n\n var normalizedTarget = normalizeTarget(transitionConfig.target);\n var internal = 'internal' in transitionConfig ? transitionConfig.internal : normalizedTarget ? normalizedTarget.some(function (_target) {\n return isString(_target) && _target[0] === _this.delimiter;\n }) : true;\n var guards = this.machine.options.guards;\n var target = this.resolveTarget(normalizedTarget);\n\n var transition = __assign(__assign({}, transitionConfig), {\n actions: toActionObjects(toArray(transitionConfig.actions)),\n cond: toGuard(transitionConfig.cond, guards),\n target: target,\n source: this,\n internal: internal,\n eventType: transitionConfig.event,\n toJSON: function () {\n return __assign(__assign({}, transition), {\n target: transition.target ? transition.target.map(function (t) {\n return \"#\" + t.id;\n }) : undefined,\n source: \"#\" + _this.id\n });\n }\n });\n\n return transition;\n };\n\n StateNode.prototype.formatTransitions = function () {\n var e_9, _a;\n\n var _this = this;\n\n var onConfig;\n\n if (!this.config.on) {\n onConfig = [];\n } else if (Array.isArray(this.config.on)) {\n onConfig = this.config.on;\n } else {\n var _b = this.config.on,\n _c = WILDCARD,\n _d = _b[_c],\n wildcardConfigs = _d === void 0 ? [] : _d,\n strictTransitionConfigs_1 = __rest(_b, [typeof _c === \"symbol\" ? _c : _c + \"\"]);\n\n onConfig = flatten(keys(strictTransitionConfigs_1).map(function (key) {\n if (!IS_PRODUCTION && key === NULL_EVENT) {\n warn(false, \"Empty string transition configs (e.g., `{ on: { '': ... }}`) for transient transitions are deprecated. Specify the transition in the `{ always: ... }` property instead. \" + (\"Please check the `on` configuration for \\\"#\" + _this.id + \"\\\".\"));\n }\n\n var transitionConfigArray = toTransitionConfigArray(key, strictTransitionConfigs_1[key]);\n\n if (!IS_PRODUCTION) {\n validateArrayifiedTransitions(_this, key, transitionConfigArray);\n }\n\n return transitionConfigArray;\n }).concat(toTransitionConfigArray(WILDCARD, wildcardConfigs)));\n }\n\n var eventlessConfig = this.config.always ? toTransitionConfigArray('', this.config.always) : [];\n var doneConfig = this.config.onDone ? toTransitionConfigArray(String(done(this.id)), this.config.onDone) : [];\n\n if (!IS_PRODUCTION) {\n warn(!(this.config.onDone && !this.parent), \"Root nodes cannot have an \\\".onDone\\\" transition. Please check the config of \\\"\" + this.id + \"\\\".\");\n }\n\n var invokeConfig = flatten(this.invoke.map(function (invokeDef) {\n var settleTransitions = [];\n\n if (invokeDef.onDone) {\n settleTransitions.push.apply(settleTransitions, __spread(toTransitionConfigArray(String(doneInvoke(invokeDef.id)), invokeDef.onDone)));\n }\n\n if (invokeDef.onError) {\n settleTransitions.push.apply(settleTransitions, __spread(toTransitionConfigArray(String(error(invokeDef.id)), invokeDef.onError)));\n }\n\n return settleTransitions;\n }));\n var delayedTransitions = this.after;\n var formattedTransitions = flatten(__spread(doneConfig, invokeConfig, onConfig, eventlessConfig).map(function (transitionConfig) {\n return toArray(transitionConfig).map(function (transition) {\n return _this.formatTransition(transition);\n });\n }));\n\n try {\n for (var delayedTransitions_1 = __values(delayedTransitions), delayedTransitions_1_1 = delayedTransitions_1.next(); !delayedTransitions_1_1.done; delayedTransitions_1_1 = delayedTransitions_1.next()) {\n var delayedTransition = delayedTransitions_1_1.value;\n formattedTransitions.push(delayedTransition);\n }\n } catch (e_9_1) {\n e_9 = {\n error: e_9_1\n };\n } finally {\n try {\n if (delayedTransitions_1_1 && !delayedTransitions_1_1.done && (_a = delayedTransitions_1.return)) _a.call(delayedTransitions_1);\n } finally {\n if (e_9) throw e_9.error;\n }\n }\n\n return formattedTransitions;\n };\n\n return StateNode;\n}();\n\nexport { StateNode };","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Modal = require(\"./components/Modal\");\n\nvar _Modal2 = _interopRequireDefault(_Modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Modal2.default;\nmodule.exports = exports[\"default\"];","'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","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","module.exports = require(\"core-js/library/fn/object/assign\");","var dateLongFormatter = function (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\nvar timeLongFormatter = function (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\nvar dateTimeLongFormatter = function (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;","function _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\nexport function isRef(obj) {\n return (// eslint-disable-next-line no-prototype-builtins\n obj !== null && _typeof(obj) === 'object' && obj.hasOwnProperty('current')\n );\n}","export var INIT_COORDS = 'dnd-core/INIT_COORDS';\nexport var BEGIN_DRAG = 'dnd-core/BEGIN_DRAG';\nexport var PUBLISH_DRAG_SOURCE = 'dnd-core/PUBLISH_DRAG_SOURCE';\nexport var HOVER = 'dnd-core/HOVER';\nexport var DROP = 'dnd-core/DROP';\nexport var END_DRAG = 'dnd-core/END_DRAG';","export var strictEquality = function strictEquality(a, b) {\n return a === b;\n};\n/**\n * Determine if two cartesian coordinate offsets are equal\n * @param offsetA\n * @param offsetB\n */\n\nexport function areCoordsEqual(offsetA, offsetB) {\n if (!offsetA && !offsetB) {\n return true;\n } else if (!offsetA || !offsetB) {\n return false;\n } else {\n return offsetA.x === offsetB.x && offsetA.y === offsetB.y;\n }\n}\n/**\n * Determines if two arrays of items are equal\n * @param a The first array of items\n * @param b The second array of items\n */\n\nexport function areArraysEqual(a, b) {\n var isEqual = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : strictEquality;\n\n if (a.length !== b.length) {\n return false;\n }\n\n for (var i = 0; i < a.length; ++i) {\n if (!isEqual(a[i], b[i])) {\n return false;\n }\n }\n\n return true;\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { INIT_COORDS, BEGIN_DRAG, HOVER, END_DRAG, DROP } from '../actions/dragDrop';\nimport { areCoordsEqual } from '../utils/equality';\nvar initialState = {\n initialSourceClientOffset: null,\n initialClientOffset: null,\n clientOffset: null\n};\nexport default function dragOffset() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n var payload = action.payload;\n\n switch (action.type) {\n case INIT_COORDS:\n case BEGIN_DRAG:\n return {\n initialSourceClientOffset: payload.sourceClientOffset,\n initialClientOffset: payload.clientOffset,\n clientOffset: payload.clientOffset\n };\n\n case HOVER:\n if (areCoordsEqual(state.clientOffset, payload.clientOffset)) {\n return state;\n }\n\n return _objectSpread({}, state, {\n clientOffset: payload.clientOffset\n });\n\n case END_DRAG:\n case DROP:\n return initialState;\n\n default:\n return state;\n }\n}","export var ADD_SOURCE = 'dnd-core/ADD_SOURCE';\nexport var ADD_TARGET = 'dnd-core/ADD_TARGET';\nexport var REMOVE_SOURCE = 'dnd-core/REMOVE_SOURCE';\nexport var REMOVE_TARGET = 'dnd-core/REMOVE_TARGET';\nexport function addSource(sourceId) {\n return {\n type: ADD_SOURCE,\n payload: {\n sourceId: sourceId\n }\n };\n}\nexport function addTarget(targetId) {\n return {\n type: ADD_TARGET,\n payload: {\n targetId: targetId\n }\n };\n}\nexport function removeSource(sourceId) {\n return {\n type: REMOVE_SOURCE,\n payload: {\n sourceId: sourceId\n }\n };\n}\nexport function removeTarget(targetId) {\n return {\n type: REMOVE_TARGET,\n payload: {\n targetId: targetId\n }\n };\n}","function _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\n// cheap lodash replacements\n\n/**\n * drop-in replacement for _.get\n * @param obj\n * @param path\n * @param defaultValue\n */\nexport function get(obj, path, defaultValue) {\n return path.split('.').reduce(function (a, c) {\n return a && a[c] ? a[c] : defaultValue || null;\n }, obj);\n}\n/**\n * drop-in replacement for _.without\n */\n\nexport function without(items, item) {\n return items.filter(function (i) {\n return i !== item;\n });\n}\n/**\n * drop-in replacement for _.isString\n * @param input\n */\n\nexport function isString(input) {\n return typeof input === 'string';\n}\n/**\n * drop-in replacement for _.isString\n * @param input\n */\n\nexport function isObject(input) {\n return _typeof(input) === 'object';\n}\n/**\n * repalcement for _.xor\n * @param itemsA\n * @param itemsB\n */\n\nexport function xor(itemsA, itemsB) {\n var map = new Map();\n\n var insertItem = function insertItem(item) {\n return map.set(item, map.has(item) ? map.get(item) + 1 : 1);\n };\n\n itemsA.forEach(insertItem);\n itemsB.forEach(insertItem);\n var result = [];\n map.forEach(function (count, key) {\n if (count === 1) {\n result.push(key);\n }\n });\n return result;\n}\n/**\n * replacement for _.intersection\n * @param itemsA\n * @param itemsB\n */\n\nexport function intersection(itemsA, itemsB) {\n return itemsA.filter(function (t) {\n return itemsB.indexOf(t) > -1;\n });\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { BEGIN_DRAG, PUBLISH_DRAG_SOURCE, HOVER, END_DRAG, DROP } from '../actions/dragDrop';\nimport { REMOVE_TARGET } from '../actions/registry';\nimport { without } from '../utils/js_utils';\nvar initialState = {\n itemType: null,\n item: null,\n sourceId: null,\n targetIds: [],\n dropResult: null,\n didDrop: false,\n isSourcePublic: null\n};\nexport default function dragOperation() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n var payload = action.payload;\n\n switch (action.type) {\n case BEGIN_DRAG:\n return _objectSpread({}, state, {\n itemType: payload.itemType,\n item: payload.item,\n sourceId: payload.sourceId,\n isSourcePublic: payload.isSourcePublic,\n dropResult: null,\n didDrop: false\n });\n\n case PUBLISH_DRAG_SOURCE:\n return _objectSpread({}, state, {\n isSourcePublic: true\n });\n\n case HOVER:\n return _objectSpread({}, state, {\n targetIds: payload.targetIds\n });\n\n case REMOVE_TARGET:\n if (state.targetIds.indexOf(payload.targetId) === -1) {\n return state;\n }\n\n return _objectSpread({}, state, {\n targetIds: without(state.targetIds, payload.targetId)\n });\n\n case DROP:\n return _objectSpread({}, state, {\n dropResult: payload.dropResult,\n didDrop: true,\n targetIds: []\n });\n\n case END_DRAG:\n return _objectSpread({}, state, {\n itemType: null,\n item: null,\n sourceId: null,\n dropResult: null,\n didDrop: false,\n isSourcePublic: null,\n targetIds: []\n });\n\n default:\n return state;\n }\n}","import { ADD_SOURCE, ADD_TARGET, REMOVE_SOURCE, REMOVE_TARGET } from '../actions/registry';\nexport default function refCount() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case ADD_SOURCE:\n case ADD_TARGET:\n return state + 1;\n\n case REMOVE_SOURCE:\n case REMOVE_TARGET:\n return state - 1;\n\n default:\n return state;\n }\n}","import { intersection } from './js_utils';\nexport var NONE = [];\nexport var ALL = [];\nNONE.__IS_NONE__ = true;\nALL.__IS_ALL__ = true;\n/**\n * Determines if the given handler IDs are dirty or not.\n *\n * @param dirtyIds The set of dirty handler ids\n * @param handlerIds The set of handler ids to check\n */\n\nexport function areDirty(dirtyIds, handlerIds) {\n if (dirtyIds === NONE) {\n return false;\n }\n\n if (dirtyIds === ALL || typeof handlerIds === 'undefined') {\n return true;\n }\n\n var commonIds = intersection(handlerIds, dirtyIds);\n return commonIds.length > 0;\n}","import { BEGIN_DRAG, PUBLISH_DRAG_SOURCE, HOVER, END_DRAG, DROP } from '../actions/dragDrop';\nimport { ADD_SOURCE, ADD_TARGET, REMOVE_SOURCE, REMOVE_TARGET } from '../actions/registry';\nimport { areArraysEqual } from '../utils/equality';\nimport { NONE, ALL } from '../utils/dirtiness';\nimport { xor } from '../utils/js_utils';\nexport default function dirtyHandlerIds() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : NONE;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case HOVER:\n break;\n\n case ADD_SOURCE:\n case ADD_TARGET:\n case REMOVE_TARGET:\n case REMOVE_SOURCE:\n return NONE;\n\n case BEGIN_DRAG:\n case PUBLISH_DRAG_SOURCE:\n case END_DRAG:\n case DROP:\n default:\n return ALL;\n }\n\n var _action$payload = action.payload,\n _action$payload$targe = _action$payload.targetIds,\n targetIds = _action$payload$targe === void 0 ? [] : _action$payload$targe,\n _action$payload$prevT = _action$payload.prevTargetIds,\n prevTargetIds = _action$payload$prevT === void 0 ? [] : _action$payload$prevT;\n var result = xor(targetIds, prevTargetIds);\n var didChange = result.length > 0 || !areArraysEqual(targetIds, prevTargetIds);\n\n if (!didChange) {\n return NONE;\n } // Check the target ids at the innermost position. If they are valid, add them\n // to the result\n\n\n var prevInnermostTargetId = prevTargetIds[prevTargetIds.length - 1];\n var innermostTargetId = targetIds[targetIds.length - 1];\n\n if (prevInnermostTargetId !== innermostTargetId) {\n if (prevInnermostTargetId) {\n result.push(prevInnermostTargetId);\n }\n\n if (innermostTargetId) {\n result.push(innermostTargetId);\n }\n }\n\n return result;\n}","export default function stateId() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return state + 1;\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport dragOffset from './dragOffset';\nimport dragOperation from './dragOperation';\nimport refCount from './refCount';\nimport dirtyHandlerIds from './dirtyHandlerIds';\nimport stateId from './stateId';\nimport { get } from '../utils/js_utils';\nexport default function reduce() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments.length > 1 ? arguments[1] : undefined;\n return {\n dirtyHandlerIds: dirtyHandlerIds(state.dirtyHandlerIds, {\n type: action.type,\n payload: _objectSpread({}, action.payload, {\n prevTargetIds: get(state, 'dragOperation.targetIds', [])\n })\n }),\n dragOffset: dragOffset(state.dragOffset, action),\n refCount: refCount(state.refCount, action),\n dragOperation: dragOperation(state.dragOperation, action),\n stateId: stateId(state.stateId)\n };\n}","import { INIT_COORDS } from '../types';\nexport function setClientOffset(clientOffset, sourceClientOffset) {\n return {\n type: INIT_COORDS,\n payload: {\n sourceClientOffset: sourceClientOffset || null,\n clientOffset: clientOffset || null\n }\n };\n}","import { invariant } from '@react-dnd/invariant';\nimport { setClientOffset } from './local/setClientOffset';\nimport { isObject } from '../../utils/js_utils';\nimport { BEGIN_DRAG, INIT_COORDS } from './types';\nvar ResetCoordinatesAction = {\n type: INIT_COORDS,\n payload: {\n clientOffset: null,\n sourceClientOffset: null\n }\n};\nexport default function createBeginDrag(manager) {\n return function beginDrag() {\n var sourceIds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n publishSource: true\n };\n var _options$publishSourc = options.publishSource,\n publishSource = _options$publishSourc === void 0 ? true : _options$publishSourc,\n clientOffset = options.clientOffset,\n getSourceClientOffset = options.getSourceClientOffset;\n var monitor = manager.getMonitor();\n var registry = manager.getRegistry(); // Initialize the coordinates using the client offset\n\n manager.dispatch(setClientOffset(clientOffset));\n verifyInvariants(sourceIds, monitor, registry); // Get the draggable source\n\n var sourceId = getDraggableSource(sourceIds, monitor);\n\n if (sourceId === null) {\n manager.dispatch(ResetCoordinatesAction);\n return;\n } // Get the source client offset\n\n\n var sourceClientOffset = null;\n\n if (clientOffset) {\n verifyGetSourceClientOffsetIsFunction(getSourceClientOffset);\n sourceClientOffset = getSourceClientOffset(sourceId);\n } // Initialize the full coordinates\n\n\n manager.dispatch(setClientOffset(clientOffset, sourceClientOffset));\n var source = registry.getSource(sourceId);\n var item = source.beginDrag(monitor, sourceId);\n verifyItemIsObject(item);\n registry.pinSource(sourceId);\n var itemType = registry.getSourceType(sourceId);\n return {\n type: BEGIN_DRAG,\n payload: {\n itemType: itemType,\n item: item,\n sourceId: sourceId,\n clientOffset: clientOffset || null,\n sourceClientOffset: sourceClientOffset || null,\n isSourcePublic: !!publishSource\n }\n };\n };\n}\n\nfunction verifyInvariants(sourceIds, monitor, registry) {\n invariant(!monitor.isDragging(), 'Cannot call beginDrag while dragging.');\n sourceIds.forEach(function (sourceId) {\n invariant(registry.getSource(sourceId), 'Expected sourceIds to be registered.');\n });\n}\n\nfunction verifyGetSourceClientOffsetIsFunction(getSourceClientOffset) {\n invariant(typeof getSourceClientOffset === 'function', 'When clientOffset is provided, getSourceClientOffset must be a function.');\n}\n\nfunction verifyItemIsObject(item) {\n invariant(isObject(item), 'Item must be an object.');\n}\n\nfunction getDraggableSource(sourceIds, monitor) {\n var sourceId = null;\n\n for (var i = sourceIds.length - 1; i >= 0; i--) {\n if (monitor.canDragSource(sourceIds[i])) {\n sourceId = sourceIds[i];\n break;\n }\n }\n\n return sourceId;\n}","import { PUBLISH_DRAG_SOURCE } from './types';\nexport default function createPublishDragSource(manager) {\n return function publishDragSource() {\n var monitor = manager.getMonitor();\n\n if (monitor.isDragging()) {\n return {\n type: PUBLISH_DRAG_SOURCE\n };\n }\n };\n}","export default function matchesType(targetType, draggedItemType) {\n if (draggedItemType === null) {\n return targetType === null;\n }\n\n return Array.isArray(targetType) ? targetType.some(function (t) {\n return t === draggedItemType;\n }) : targetType === draggedItemType;\n}","import { invariant } from '@react-dnd/invariant';\nimport matchesType from '../../utils/matchesType';\nimport { HOVER } from './types';\nexport default function createHover(manager) {\n return function hover(targetIdsArg) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n clientOffset = _ref.clientOffset;\n\n verifyTargetIdsIsArray(targetIdsArg);\n var targetIds = targetIdsArg.slice(0);\n var monitor = manager.getMonitor();\n var registry = manager.getRegistry();\n checkInvariants(targetIds, monitor, registry);\n var draggedItemType = monitor.getItemType();\n removeNonMatchingTargetIds(targetIds, registry, draggedItemType);\n hoverAllTargets(targetIds, monitor, registry);\n return {\n type: HOVER,\n payload: {\n targetIds: targetIds,\n clientOffset: clientOffset || null\n }\n };\n };\n}\n\nfunction verifyTargetIdsIsArray(targetIdsArg) {\n invariant(Array.isArray(targetIdsArg), 'Expected targetIds to be an array.');\n}\n\nfunction checkInvariants(targetIds, monitor, registry) {\n invariant(monitor.isDragging(), 'Cannot call hover while not dragging.');\n invariant(!monitor.didDrop(), 'Cannot call hover after drop.');\n\n for (var i = 0; i < targetIds.length; i++) {\n var targetId = targetIds[i];\n invariant(targetIds.lastIndexOf(targetId) === i, 'Expected targetIds to be unique in the passed array.');\n var target = registry.getTarget(targetId);\n invariant(target, 'Expected targetIds to be registered.');\n }\n}\n\nfunction removeNonMatchingTargetIds(targetIds, registry, draggedItemType) {\n // Remove those targetIds that don't match the targetType. This\n // fixes shallow isOver which would only be non-shallow because of\n // non-matching targets.\n for (var i = targetIds.length - 1; i >= 0; i--) {\n var targetId = targetIds[i];\n var targetType = registry.getTargetType(targetId);\n\n if (!matchesType(targetType, draggedItemType)) {\n targetIds.splice(i, 1);\n }\n }\n}\n\nfunction hoverAllTargets(targetIds, monitor, registry) {\n // Finally call hover on all matching targets.\n targetIds.forEach(function (targetId) {\n var target = registry.getTarget(targetId);\n target.hover(monitor, targetId);\n });\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { invariant } from '@react-dnd/invariant';\nimport { DROP } from './types';\nimport { isObject } from '../../utils/js_utils';\nexport default function createDrop(manager) {\n return function drop() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var monitor = manager.getMonitor();\n var registry = manager.getRegistry();\n verifyInvariants(monitor);\n var targetIds = getDroppableTargets(monitor); // Multiple actions are dispatched here, which is why this doesn't return an action\n\n targetIds.forEach(function (targetId, index) {\n var dropResult = determineDropResult(targetId, index, registry, monitor);\n var action = {\n type: DROP,\n payload: {\n dropResult: _objectSpread({}, options, {}, dropResult)\n }\n };\n manager.dispatch(action);\n });\n };\n}\n\nfunction verifyInvariants(monitor) {\n invariant(monitor.isDragging(), 'Cannot call drop while not dragging.');\n invariant(!monitor.didDrop(), 'Cannot call drop twice during one drag operation.');\n}\n\nfunction determineDropResult(targetId, index, registry, monitor) {\n var target = registry.getTarget(targetId);\n var dropResult = target ? target.drop(monitor, targetId) : undefined;\n verifyDropResultType(dropResult);\n\n if (typeof dropResult === 'undefined') {\n dropResult = index === 0 ? {} : monitor.getDropResult();\n }\n\n return dropResult;\n}\n\nfunction verifyDropResultType(dropResult) {\n invariant(typeof dropResult === 'undefined' || isObject(dropResult), 'Drop result must either be an object or undefined.');\n}\n\nfunction getDroppableTargets(monitor) {\n var targetIds = monitor.getTargetIds().filter(monitor.canDropOnTarget, monitor);\n targetIds.reverse();\n return targetIds;\n}","import { invariant } from '@react-dnd/invariant';\nimport { END_DRAG } from './types';\nexport default function createEndDrag(manager) {\n return function endDrag() {\n var monitor = manager.getMonitor();\n var registry = manager.getRegistry();\n verifyIsDragging(monitor);\n var sourceId = monitor.getSourceId();\n var source = registry.getSource(sourceId, true);\n source.endDrag(monitor, sourceId);\n registry.unpinSource();\n return {\n type: END_DRAG\n };\n };\n}\n\nfunction verifyIsDragging(monitor) {\n invariant(monitor.isDragging(), 'Cannot call endDrag while not dragging.');\n}","/**\n * Coordinate addition\n * @param a The first coordinate\n * @param b The second coordinate\n */\nexport function add(a, b) {\n return {\n x: a.x + b.x,\n y: a.y + b.y\n };\n}\n/**\n * Coordinate subtraction\n * @param a The first coordinate\n * @param b The second coordinate\n */\n\nexport function subtract(a, b) {\n return {\n x: a.x - b.x,\n y: a.y - b.y\n };\n}\n/**\n * Returns the cartesian distance of the drag source component's position, based on its position\n * at the time when the current drag operation has started, and the movement difference.\n *\n * Returns null if no item is being dragged.\n *\n * @param state The offset state to compute from\n */\n\nexport function getSourceClientOffset(state) {\n var clientOffset = state.clientOffset,\n initialClientOffset = state.initialClientOffset,\n initialSourceClientOffset = state.initialSourceClientOffset;\n\n if (!clientOffset || !initialClientOffset || !initialSourceClientOffset) {\n return null;\n }\n\n return subtract(add(clientOffset, initialSourceClientOffset), initialClientOffset);\n}\n/**\n * Determines the x,y offset between the client offset and the initial client offset\n *\n * @param state The offset state to compute from\n */\n\nexport function getDifferenceFromInitialOffset(state) {\n var clientOffset = state.clientOffset,\n initialClientOffset = state.initialClientOffset;\n\n if (!clientOffset || !initialClientOffset) {\n return null;\n }\n\n return subtract(clientOffset, initialClientOffset);\n}","function _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\nimport { invariant } from '@react-dnd/invariant';\nimport matchesType from './utils/matchesType';\nimport { getSourceClientOffset as _getSourceClientOffset, getDifferenceFromInitialOffset as _getDifferenceFromInitialOffset } from './utils/coords';\nimport { areDirty } from './utils/dirtiness';\n\nvar DragDropMonitorImpl =\n/*#__PURE__*/\nfunction () {\n function DragDropMonitorImpl(store, registry) {\n _classCallCheck(this, DragDropMonitorImpl);\n\n this.store = store;\n this.registry = registry;\n }\n\n _createClass(DragDropMonitorImpl, [{\n key: \"subscribeToStateChange\",\n value: function subscribeToStateChange(listener) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n handlerIds: undefined\n };\n var handlerIds = options.handlerIds;\n invariant(typeof listener === 'function', 'listener must be a function.');\n invariant(typeof handlerIds === 'undefined' || Array.isArray(handlerIds), 'handlerIds, when specified, must be an array of strings.');\n var prevStateId = this.store.getState().stateId;\n\n var handleChange = function handleChange() {\n var state = _this.store.getState();\n\n var currentStateId = state.stateId;\n\n try {\n var canSkipListener = currentStateId === prevStateId || currentStateId === prevStateId + 1 && !areDirty(state.dirtyHandlerIds, handlerIds);\n\n if (!canSkipListener) {\n listener();\n }\n } finally {\n prevStateId = currentStateId;\n }\n };\n\n return this.store.subscribe(handleChange);\n }\n }, {\n key: \"subscribeToOffsetChange\",\n value: function subscribeToOffsetChange(listener) {\n var _this2 = this;\n\n invariant(typeof listener === 'function', 'listener must be a function.');\n var previousState = this.store.getState().dragOffset;\n\n var handleChange = function handleChange() {\n var nextState = _this2.store.getState().dragOffset;\n\n if (nextState === previousState) {\n return;\n }\n\n previousState = nextState;\n listener();\n };\n\n return this.store.subscribe(handleChange);\n }\n }, {\n key: \"canDragSource\",\n value: function canDragSource(sourceId) {\n if (!sourceId) {\n return false;\n }\n\n var source = this.registry.getSource(sourceId);\n invariant(source, 'Expected to find a valid source.');\n\n if (this.isDragging()) {\n return false;\n }\n\n return source.canDrag(this, sourceId);\n }\n }, {\n key: \"canDropOnTarget\",\n value: function canDropOnTarget(targetId) {\n // undefined on initial render\n if (!targetId) {\n return false;\n }\n\n var target = this.registry.getTarget(targetId);\n invariant(target, 'Expected to find a valid target.');\n\n if (!this.isDragging() || this.didDrop()) {\n return false;\n }\n\n var targetType = this.registry.getTargetType(targetId);\n var draggedItemType = this.getItemType();\n return matchesType(targetType, draggedItemType) && target.canDrop(this, targetId);\n }\n }, {\n key: \"isDragging\",\n value: function isDragging() {\n return Boolean(this.getItemType());\n }\n }, {\n key: \"isDraggingSource\",\n value: function isDraggingSource(sourceId) {\n // undefined on initial render\n if (!sourceId) {\n return false;\n }\n\n var source = this.registry.getSource(sourceId, true);\n invariant(source, 'Expected to find a valid source.');\n\n if (!this.isDragging() || !this.isSourcePublic()) {\n return false;\n }\n\n var sourceType = this.registry.getSourceType(sourceId);\n var draggedItemType = this.getItemType();\n\n if (sourceType !== draggedItemType) {\n return false;\n }\n\n return source.isDragging(this, sourceId);\n }\n }, {\n key: \"isOverTarget\",\n value: function isOverTarget(targetId) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n shallow: false\n };\n\n // undefined on initial render\n if (!targetId) {\n return false;\n }\n\n var shallow = options.shallow;\n\n if (!this.isDragging()) {\n return false;\n }\n\n var targetType = this.registry.getTargetType(targetId);\n var draggedItemType = this.getItemType();\n\n if (draggedItemType && !matchesType(targetType, draggedItemType)) {\n return false;\n }\n\n var targetIds = this.getTargetIds();\n\n if (!targetIds.length) {\n return false;\n }\n\n var index = targetIds.indexOf(targetId);\n\n if (shallow) {\n return index === targetIds.length - 1;\n } else {\n return index > -1;\n }\n }\n }, {\n key: \"getItemType\",\n value: function getItemType() {\n return this.store.getState().dragOperation.itemType;\n }\n }, {\n key: \"getItem\",\n value: function getItem() {\n return this.store.getState().dragOperation.item;\n }\n }, {\n key: \"getSourceId\",\n value: function getSourceId() {\n return this.store.getState().dragOperation.sourceId;\n }\n }, {\n key: \"getTargetIds\",\n value: function getTargetIds() {\n return this.store.getState().dragOperation.targetIds;\n }\n }, {\n key: \"getDropResult\",\n value: function getDropResult() {\n return this.store.getState().dragOperation.dropResult;\n }\n }, {\n key: \"didDrop\",\n value: function didDrop() {\n return this.store.getState().dragOperation.didDrop;\n }\n }, {\n key: \"isSourcePublic\",\n value: function isSourcePublic() {\n return this.store.getState().dragOperation.isSourcePublic;\n }\n }, {\n key: \"getInitialClientOffset\",\n value: function getInitialClientOffset() {\n return this.store.getState().dragOffset.initialClientOffset;\n }\n }, {\n key: \"getInitialSourceClientOffset\",\n value: function getInitialSourceClientOffset() {\n return this.store.getState().dragOffset.initialSourceClientOffset;\n }\n }, {\n key: \"getClientOffset\",\n value: function getClientOffset() {\n return this.store.getState().dragOffset.clientOffset;\n }\n }, {\n key: \"getSourceClientOffset\",\n value: function getSourceClientOffset() {\n return _getSourceClientOffset(this.store.getState().dragOffset);\n }\n }, {\n key: \"getDifferenceFromInitialOffset\",\n value: function getDifferenceFromInitialOffset() {\n return _getDifferenceFromInitialOffset(this.store.getState().dragOffset);\n }\n }]);\n\n return DragDropMonitorImpl;\n}();\n\nexport { DragDropMonitorImpl as default };","export var HandlerRole;\n\n(function (HandlerRole) {\n HandlerRole[\"SOURCE\"] = \"SOURCE\";\n HandlerRole[\"TARGET\"] = \"TARGET\";\n})(HandlerRole || (HandlerRole = {}));","var nextUniqueId = 0;\nexport default function getNextUniqueId() {\n return nextUniqueId++;\n}","function _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\nimport { invariant } from '@react-dnd/invariant';\nexport function validateSourceContract(source) {\n invariant(typeof source.canDrag === 'function', 'Expected canDrag to be a function.');\n invariant(typeof source.beginDrag === 'function', 'Expected beginDrag to be a function.');\n invariant(typeof source.endDrag === 'function', 'Expected endDrag to be a function.');\n}\nexport function validateTargetContract(target) {\n invariant(typeof target.canDrop === 'function', 'Expected canDrop to be a function.');\n invariant(typeof target.hover === 'function', 'Expected hover to be a function.');\n invariant(typeof target.drop === 'function', 'Expected beginDrag to be a function.');\n}\nexport function validateType(type, allowArray) {\n if (allowArray && Array.isArray(type)) {\n type.forEach(function (t) {\n return validateType(t, false);\n });\n return;\n }\n\n invariant(typeof type === 'string' || _typeof(type) === 'symbol', allowArray ? 'Type can only be a string, a symbol, or an array of either.' : 'Type can only be a string or a symbol.');\n}","function _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 _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) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } 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\nimport { invariant } from '@react-dnd/invariant';\nimport { addSource as _addSource, addTarget as _addTarget, removeSource as _removeSource, removeTarget as _removeTarget } from './actions/registry';\nimport getNextUniqueId from './utils/getNextUniqueId';\nimport { HandlerRole } from './interfaces';\nimport { validateSourceContract, validateTargetContract, validateType } from './contracts';\nimport { asap } from '@react-dnd/asap';\n\nfunction getNextHandlerId(role) {\n var id = getNextUniqueId().toString();\n\n switch (role) {\n case HandlerRole.SOURCE:\n return \"S\".concat(id);\n\n case HandlerRole.TARGET:\n return \"T\".concat(id);\n\n default:\n throw new Error(\"Unknown Handler Role: \".concat(role));\n }\n}\n\nfunction parseRoleFromHandlerId(handlerId) {\n switch (handlerId[0]) {\n case 'S':\n return HandlerRole.SOURCE;\n\n case 'T':\n return HandlerRole.TARGET;\n\n default:\n invariant(false, \"Cannot parse handler ID: \".concat(handlerId));\n }\n}\n\nfunction mapContainsValue(map, searchValue) {\n var entries = map.entries();\n var isDone = false;\n\n do {\n var _entries$next = entries.next(),\n done = _entries$next.done,\n _entries$next$value = _slicedToArray(_entries$next.value, 2),\n value = _entries$next$value[1];\n\n if (value === searchValue) {\n return true;\n }\n\n isDone = !!done;\n } while (!isDone);\n\n return false;\n}\n\nvar HandlerRegistryImpl =\n/*#__PURE__*/\nfunction () {\n function HandlerRegistryImpl(store) {\n _classCallCheck(this, HandlerRegistryImpl);\n\n this.types = new Map();\n this.dragSources = new Map();\n this.dropTargets = new Map();\n this.pinnedSourceId = null;\n this.pinnedSource = null;\n this.store = store;\n }\n\n _createClass(HandlerRegistryImpl, [{\n key: \"addSource\",\n value: function addSource(type, source) {\n validateType(type);\n validateSourceContract(source);\n var sourceId = this.addHandler(HandlerRole.SOURCE, type, source);\n this.store.dispatch(_addSource(sourceId));\n return sourceId;\n }\n }, {\n key: \"addTarget\",\n value: function addTarget(type, target) {\n validateType(type, true);\n validateTargetContract(target);\n var targetId = this.addHandler(HandlerRole.TARGET, type, target);\n this.store.dispatch(_addTarget(targetId));\n return targetId;\n }\n }, {\n key: \"containsHandler\",\n value: function containsHandler(handler) {\n return mapContainsValue(this.dragSources, handler) || mapContainsValue(this.dropTargets, handler);\n }\n }, {\n key: \"getSource\",\n value: function getSource(sourceId) {\n var includePinned = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n invariant(this.isSourceId(sourceId), 'Expected a valid source ID.');\n var isPinned = includePinned && sourceId === this.pinnedSourceId;\n var source = isPinned ? this.pinnedSource : this.dragSources.get(sourceId);\n return source;\n }\n }, {\n key: \"getTarget\",\n value: function getTarget(targetId) {\n invariant(this.isTargetId(targetId), 'Expected a valid target ID.');\n return this.dropTargets.get(targetId);\n }\n }, {\n key: \"getSourceType\",\n value: function getSourceType(sourceId) {\n invariant(this.isSourceId(sourceId), 'Expected a valid source ID.');\n return this.types.get(sourceId);\n }\n }, {\n key: \"getTargetType\",\n value: function getTargetType(targetId) {\n invariant(this.isTargetId(targetId), 'Expected a valid target ID.');\n return this.types.get(targetId);\n }\n }, {\n key: \"isSourceId\",\n value: function isSourceId(handlerId) {\n var role = parseRoleFromHandlerId(handlerId);\n return role === HandlerRole.SOURCE;\n }\n }, {\n key: \"isTargetId\",\n value: function isTargetId(handlerId) {\n var role = parseRoleFromHandlerId(handlerId);\n return role === HandlerRole.TARGET;\n }\n }, {\n key: \"removeSource\",\n value: function removeSource(sourceId) {\n var _this = this;\n\n invariant(this.getSource(sourceId), 'Expected an existing source.');\n this.store.dispatch(_removeSource(sourceId));\n asap(function () {\n _this.dragSources.delete(sourceId);\n\n _this.types.delete(sourceId);\n });\n }\n }, {\n key: \"removeTarget\",\n value: function removeTarget(targetId) {\n invariant(this.getTarget(targetId), 'Expected an existing target.');\n this.store.dispatch(_removeTarget(targetId));\n this.dropTargets.delete(targetId);\n this.types.delete(targetId);\n }\n }, {\n key: \"pinSource\",\n value: function pinSource(sourceId) {\n var source = this.getSource(sourceId);\n invariant(source, 'Expected an existing source.');\n this.pinnedSourceId = sourceId;\n this.pinnedSource = source;\n }\n }, {\n key: \"unpinSource\",\n value: function unpinSource() {\n invariant(this.pinnedSource, 'No source is pinned at the time.');\n this.pinnedSourceId = null;\n this.pinnedSource = null;\n }\n }, {\n key: \"addHandler\",\n value: function addHandler(role, type, handler) {\n var id = getNextHandlerId(role);\n this.types.set(id, type);\n\n if (role === HandlerRole.SOURCE) {\n this.dragSources.set(id, handler);\n } else if (role === HandlerRole.TARGET) {\n this.dropTargets.set(id, handler);\n }\n\n return id;\n }\n }]);\n\n return HandlerRegistryImpl;\n}();\n\nexport { HandlerRegistryImpl as default };","function _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\nimport { createStore } from 'redux';\nimport reducer from './reducers';\nimport dragDropActions from './actions/dragDrop';\nimport DragDropMonitorImpl from './DragDropMonitorImpl';\nimport HandlerRegistryImpl from './HandlerRegistryImpl';\n\nfunction makeStoreInstance(debugMode) {\n // TODO: if we ever make a react-native version of this,\n // we'll need to consider how to pull off dev-tooling\n var reduxDevTools = typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__;\n return createStore(reducer, debugMode && reduxDevTools && reduxDevTools({\n name: 'dnd-core',\n instanceId: 'dnd-core'\n }));\n}\n\nvar DragDropManagerImpl =\n/*#__PURE__*/\nfunction () {\n function DragDropManagerImpl() {\n var _this = this;\n\n var debugMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n _classCallCheck(this, DragDropManagerImpl);\n\n this.isSetUp = false;\n\n this.handleRefCountChange = function () {\n var shouldSetUp = _this.store.getState().refCount > 0;\n\n if (_this.backend) {\n if (shouldSetUp && !_this.isSetUp) {\n _this.backend.setup();\n\n _this.isSetUp = true;\n } else if (!shouldSetUp && _this.isSetUp) {\n _this.backend.teardown();\n\n _this.isSetUp = false;\n }\n }\n };\n\n var store = makeStoreInstance(debugMode);\n this.store = store;\n this.monitor = new DragDropMonitorImpl(store, new HandlerRegistryImpl(store));\n store.subscribe(this.handleRefCountChange);\n }\n\n _createClass(DragDropManagerImpl, [{\n key: \"receiveBackend\",\n value: function receiveBackend(backend) {\n this.backend = backend;\n }\n }, {\n key: \"getMonitor\",\n value: function getMonitor() {\n return this.monitor;\n }\n }, {\n key: \"getBackend\",\n value: function getBackend() {\n return this.backend;\n }\n }, {\n key: \"getRegistry\",\n value: function getRegistry() {\n return this.monitor.registry;\n }\n }, {\n key: \"getActions\",\n value: function getActions() {\n /* eslint-disable-next-line @typescript-eslint/no-this-alias */\n var manager = this;\n var dispatch = this.store.dispatch;\n\n function bindActionCreator(actionCreator) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var action = actionCreator.apply(manager, args);\n\n if (typeof action !== 'undefined') {\n dispatch(action);\n }\n };\n }\n\n var actions = dragDropActions(this);\n return Object.keys(actions).reduce(function (boundActions, key) {\n var action = actions[key];\n boundActions[key] = bindActionCreator(action);\n return boundActions;\n }, {});\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(action) {\n this.store.dispatch(action);\n }\n }]);\n\n return DragDropManagerImpl;\n}();\n\nexport { DragDropManagerImpl as default };","import createBeginDrag from './beginDrag';\nimport createPublishDragSource from './publishDragSource';\nimport createHover from './hover';\nimport createDrop from './drop';\nimport createEndDrag from './endDrag';\nexport * from './types';\nexport default function createDragDropActions(manager) {\n return {\n beginDrag: createBeginDrag(manager),\n publishDragSource: createPublishDragSource(manager),\n hover: createHover(manager),\n drop: createDrop(manager),\n endDrag: createEndDrag(manager)\n };\n}","import DragDropManagerImpl from './DragDropManagerImpl';\nexport function createDragDropManager(backendFactory, globalContext, backendOptions, debugMode) {\n var manager = new DragDropManagerImpl(debugMode);\n var backend = backendFactory(manager, globalContext, backendOptions);\n manager.receiveBackend(backend);\n return manager;\n}","import * as React from 'react';\nimport { createDragDropManager } from 'dnd-core';\n/**\n * Create the React Context\n */\n\nexport var DndContext = React.createContext({\n dragDropManager: undefined\n});\n/**\n * Creates the context object we're providing\n * @param backend\n * @param context\n */\n\nexport function createDndContext(backend, context, options, debugMode) {\n return {\n dragDropManager: createDragDropManager(backend, context, options, debugMode)\n };\n}","var children = /*#__PURE__*/new Map();\nvar sessionIdIndex = 0;\nvar registry = {\n bookId: function () {\n return \"x:\" + sessionIdIndex++;\n },\n register: function (id, actor) {\n children.set(id, actor);\n return id;\n },\n get: function (id) {\n return children.get(id);\n },\n free: function (id) {\n children.delete(id);\n }\n};\nexport { registry };","if (process.env.NODE_ENV === 'production') {\n module.exports = require('./dist/react-table.production.min.js')\n} else {\n module.exports = require('./dist/react-table.development.js')\n}\n","/* @flow */\n\nimport * as React from 'react';\nimport type {Node as ReactNode} from 'react';\nimport PropTypes from 'prop-types';\nimport type MenuList from './MenuList';\nimport type MenuEvent from './events/MenuEvent';\nimport ChosenEvent from './events/ChosenEvent';\nimport type {Direction, Rect} from './types';\n\nexport type MenuListInspectorContextValue = {\n registerMenuList(menuList: MenuList): void;\n unregisterMenuList(menuList: MenuList): void;\n dispatchEvent(event: MenuEvent): void;\n};\n\nexport const MenuListInspectorContext = React.createContext(null);\n\nexport type Props = {\n onItemChosen?: (event: ChosenEvent) => void;\n onLeftPushed?: (event: MenuEvent) => void;\n onRightPushed?: (event: MenuEvent) => void;\n children: ReactNode;\n};\n\nexport default class MenuListInspector extends React.Component {\n static propTypes = {\n onItemChosen: PropTypes.func,\n onLeftPushed: PropTypes.func,\n onRightPushed: PropTypes.func,\n\n children: PropTypes.element\n };\n\n static contextType = MenuListInspectorContext;\n\n _descendantMenuLists: Array = [];\n\n _parentCtx(): ?MenuListInspectorContextValue {\n return this.context;\n }\n\n _menuListInspectorContext: MenuListInspectorContextValue = {\n registerMenuList: (menuList: MenuList) => {\n this._descendantMenuLists.push(menuList);\n },\n unregisterMenuList: (menuList: MenuList) => {\n const i = this._descendantMenuLists.indexOf(menuList);\n if (i < 0) throw new Error('MenuList not registered');\n this._descendantMenuLists.splice(i, 1);\n },\n dispatchEvent: (event: MenuEvent) => {\n switch (event.type) {\n case 'chosen':\n /*:: if (!(event instanceof ChosenEvent)) throw new Error(); */\n if (this.props.onItemChosen) this.props.onItemChosen(event);\n break;\n case 'left':\n if (this.props.onLeftPushed) this.props.onLeftPushed(event);\n break;\n case 'right':\n if (this.props.onRightPushed) this.props.onRightPushed(event);\n break;\n }\n if (event.cancelBubble) return;\n const parentCtx = this._parentCtx();\n if (parentCtx) {\n parentCtx.dispatchEvent(event);\n }\n }\n };\n\n moveCursor(direction: Direction, prevCursorLocation: ?Rect): boolean {\n const menuList = this._descendantMenuLists[0];\n if (!menuList) {\n return false;\n }\n menuList.moveCursor(direction, prevCursorLocation);\n return true;\n }\n\n hasHighlight(): boolean {\n for (let i=0, len=this._descendantMenuLists.length; i\n {this.props.children}\n \n );\n }\n}\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 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 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","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","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\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 * 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","// Cache implementation based on Erik Rasmussen's `lru-memoize`:\n// https://github.com/erikras/lru-memoize\nvar NOT_FOUND = 'NOT_FOUND';\n\nfunction createSingletonCache(equals) {\n var entry;\n return {\n get: function get(key) {\n if (entry && equals(entry.key, key)) {\n return entry.value;\n }\n\n return NOT_FOUND;\n },\n put: function put(key, value) {\n entry = {\n key: key,\n value: value\n };\n },\n getEntries: function getEntries() {\n return entry ? [entry] : [];\n },\n clear: function clear() {\n entry = undefined;\n }\n };\n}\n\nfunction createLruCache(maxSize, equals) {\n var entries = [];\n\n function get(key) {\n var cacheIndex = entries.findIndex(function (entry) {\n return equals(key, entry.key);\n }); // We found a cached entry\n\n if (cacheIndex > -1) {\n var entry = entries[cacheIndex]; // Cached entry not at top of cache, move it to the top\n\n if (cacheIndex > 0) {\n entries.splice(cacheIndex, 1);\n entries.unshift(entry);\n }\n\n return entry.value;\n } // No entry found in cache, return sentinel\n\n\n return NOT_FOUND;\n }\n\n function put(key, value) {\n if (get(key) === NOT_FOUND) {\n // TODO Is unshift slow?\n entries.unshift({\n key: key,\n value: value\n });\n\n if (entries.length > maxSize) {\n entries.pop();\n }\n }\n }\n\n function getEntries() {\n return entries;\n }\n\n function clear() {\n entries = [];\n }\n\n return {\n get: get,\n put: put,\n getEntries: getEntries,\n clear: clear\n };\n}\n\nexport var defaultEqualityCheck = function defaultEqualityCheck(a, b) {\n return a === b;\n};\nexport function createCacheKeyComparator(equalityCheck) {\n return function areArgumentsShallowlyEqual(prev, next) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n } // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\n\n\n var length = prev.length;\n\n for (var i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n\n return true;\n };\n}\n// defaultMemoize now supports a configurable cache size with LRU behavior,\n// and optional comparison of the result value with existing values\nexport function defaultMemoize(func, equalityCheckOrOptions) {\n var providedOptions = typeof equalityCheckOrOptions === 'object' ? equalityCheckOrOptions : {\n equalityCheck: equalityCheckOrOptions\n };\n var _providedOptions$equa = providedOptions.equalityCheck,\n equalityCheck = _providedOptions$equa === void 0 ? defaultEqualityCheck : _providedOptions$equa,\n _providedOptions$maxS = providedOptions.maxSize,\n maxSize = _providedOptions$maxS === void 0 ? 1 : _providedOptions$maxS,\n resultEqualityCheck = providedOptions.resultEqualityCheck;\n var comparator = createCacheKeyComparator(equalityCheck);\n var cache = maxSize === 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator); // we reference arguments instead of spreading them for performance reasons\n\n function memoized() {\n var value = cache.get(arguments);\n\n if (value === NOT_FOUND) {\n // @ts-ignore\n value = func.apply(null, arguments);\n\n if (resultEqualityCheck) {\n var entries = cache.getEntries();\n var matchingEntry = entries.find(function (entry) {\n return resultEqualityCheck(entry.value, value);\n });\n\n if (matchingEntry) {\n value = matchingEntry.value;\n }\n }\n\n cache.put(arguments, value);\n }\n\n return value;\n }\n\n memoized.clearCache = function () {\n return cache.clear();\n };\n\n return memoized;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\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 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 * @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 * const 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}","export function registerTarget(type, target, manager) {\n var registry = manager.getRegistry();\n var targetId = registry.addTarget(type, target);\n return [targetId, function () {\n return registry.removeTarget(targetId);\n }];\n}\nexport function registerSource(type, source, manager) {\n var registry = manager.getRegistry();\n var sourceId = registry.addSource(type, source);\n return [sourceId, function () {\n return registry.removeSource(sourceId);\n }];\n}","'use strict';\r\n\r\n// Last time updated: 2021-03-09 3:20:22 AM UTC\r\n\r\n// ________________\r\n// RecordRTC v5.6.2\r\n\r\n// Open-Sourced: https://github.com/muaz-khan/RecordRTC\r\n\r\n// --------------------------------------------------\r\n// Muaz Khan - www.MuazKhan.com\r\n// MIT License - www.WebRTC-Experiment.com/licence\r\n// --------------------------------------------------\r\n\r\n// ____________\r\n// RecordRTC.js\r\n\r\n/**\r\n * {@link https://github.com/muaz-khan/RecordRTC|RecordRTC} is a WebRTC JavaScript library for audio/video as well as screen activity recording. It supports Chrome, Firefox, Opera, Android, and Microsoft Edge. Platforms: Linux, Mac and Windows. \r\n * @summary Record audio, video or screen inside the browser.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef RecordRTC\r\n * @class\r\n * @example\r\n * var recorder = RecordRTC(mediaStream or [arrayOfMediaStream], {\r\n * type: 'video', // audio or video or gif or canvas\r\n * recorderType: MediaStreamRecorder || CanvasRecorder || StereoAudioRecorder || Etc\r\n * });\r\n * recorder.startRecording();\r\n * @see For further information:\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - Single media-stream object, array of media-streams, html-canvas-element, etc.\r\n * @param {object} config - {type:\"video\", recorderType: MediaStreamRecorder, disableLogs: true, numberOfAudioChannels: 1, bufferSize: 0, sampleRate: 0, desiredSampRate: 16000, video: HTMLVideoElement, etc.}\r\n */\r\n\r\nfunction RecordRTC(mediaStream, config) {\r\n if (!mediaStream) {\r\n throw 'First parameter is required.';\r\n }\r\n\r\n config = config || {\r\n type: 'video'\r\n };\r\n\r\n config = new RecordRTCConfiguration(mediaStream, config);\r\n\r\n // a reference to user's recordRTC object\r\n var self = this;\r\n\r\n function startRecording(config2) {\r\n if (!config.disableLogs) {\r\n console.log('RecordRTC version: ', self.version);\r\n }\r\n\r\n if (!!config2) {\r\n // allow users to set options using startRecording method\r\n // config2 is similar to main \"config\" object (second parameter over RecordRTC constructor)\r\n config = new RecordRTCConfiguration(mediaStream, config2);\r\n }\r\n\r\n if (!config.disableLogs) {\r\n console.log('started recording ' + config.type + ' stream.');\r\n }\r\n\r\n if (mediaRecorder) {\r\n mediaRecorder.clearRecordedData();\r\n mediaRecorder.record();\r\n\r\n setState('recording');\r\n\r\n if (self.recordingDuration) {\r\n handleRecordingDuration();\r\n }\r\n return self;\r\n }\r\n\r\n initRecorder(function() {\r\n if (self.recordingDuration) {\r\n handleRecordingDuration();\r\n }\r\n });\r\n\r\n return self;\r\n }\r\n\r\n function initRecorder(initCallback) {\r\n if (initCallback) {\r\n config.initCallback = function() {\r\n initCallback();\r\n initCallback = config.initCallback = null; // recorder.initRecorder should be call-backed once.\r\n };\r\n }\r\n\r\n var Recorder = new GetRecorderType(mediaStream, config);\r\n\r\n mediaRecorder = new Recorder(mediaStream, config);\r\n mediaRecorder.record();\r\n\r\n setState('recording');\r\n\r\n if (!config.disableLogs) {\r\n console.log('Initialized recorderType:', mediaRecorder.constructor.name, 'for output-type:', config.type);\r\n }\r\n }\r\n\r\n function stopRecording(callback) {\r\n callback = callback || function() {};\r\n\r\n if (!mediaRecorder) {\r\n warningLog();\r\n return;\r\n }\r\n\r\n if (self.state === 'paused') {\r\n self.resumeRecording();\r\n\r\n setTimeout(function() {\r\n stopRecording(callback);\r\n }, 1);\r\n return;\r\n }\r\n\r\n if (self.state !== 'recording' && !config.disableLogs) {\r\n console.warn('Recording state should be: \"recording\", however current state is: ', self.state);\r\n }\r\n\r\n if (!config.disableLogs) {\r\n console.log('Stopped recording ' + config.type + ' stream.');\r\n }\r\n\r\n if (config.type !== 'gif') {\r\n mediaRecorder.stop(_callback);\r\n } else {\r\n mediaRecorder.stop();\r\n _callback();\r\n }\r\n\r\n setState('stopped');\r\n\r\n function _callback(__blob) {\r\n if (!mediaRecorder) {\r\n if (typeof callback.call === 'function') {\r\n callback.call(self, '');\r\n } else {\r\n callback('');\r\n }\r\n return;\r\n }\r\n\r\n Object.keys(mediaRecorder).forEach(function(key) {\r\n if (typeof mediaRecorder[key] === 'function') {\r\n return;\r\n }\r\n\r\n self[key] = mediaRecorder[key];\r\n });\r\n\r\n var blob = mediaRecorder.blob;\r\n\r\n if (!blob) {\r\n if (__blob) {\r\n mediaRecorder.blob = blob = __blob;\r\n } else {\r\n throw 'Recording failed.';\r\n }\r\n }\r\n\r\n if (blob && !config.disableLogs) {\r\n console.log(blob.type, '->', bytesToSize(blob.size));\r\n }\r\n\r\n if (callback) {\r\n var url;\r\n\r\n try {\r\n url = URL.createObjectURL(blob);\r\n } catch (e) {}\r\n\r\n if (typeof callback.call === 'function') {\r\n callback.call(self, url);\r\n } else {\r\n callback(url);\r\n }\r\n }\r\n\r\n if (!config.autoWriteToDisk) {\r\n return;\r\n }\r\n\r\n getDataURL(function(dataURL) {\r\n var parameter = {};\r\n parameter[config.type + 'Blob'] = dataURL;\r\n DiskStorage.Store(parameter);\r\n });\r\n }\r\n }\r\n\r\n function pauseRecording() {\r\n if (!mediaRecorder) {\r\n warningLog();\r\n return;\r\n }\r\n\r\n if (self.state !== 'recording') {\r\n if (!config.disableLogs) {\r\n console.warn('Unable to pause the recording. Recording state: ', self.state);\r\n }\r\n return;\r\n }\r\n\r\n setState('paused');\r\n\r\n mediaRecorder.pause();\r\n\r\n if (!config.disableLogs) {\r\n console.log('Paused recording.');\r\n }\r\n }\r\n\r\n function resumeRecording() {\r\n if (!mediaRecorder) {\r\n warningLog();\r\n return;\r\n }\r\n\r\n if (self.state !== 'paused') {\r\n if (!config.disableLogs) {\r\n console.warn('Unable to resume the recording. Recording state: ', self.state);\r\n }\r\n return;\r\n }\r\n\r\n setState('recording');\r\n\r\n // not all libs have this method yet\r\n mediaRecorder.resume();\r\n\r\n if (!config.disableLogs) {\r\n console.log('Resumed recording.');\r\n }\r\n }\r\n\r\n function readFile(_blob) {\r\n postMessage(new FileReaderSync().readAsDataURL(_blob));\r\n }\r\n\r\n function getDataURL(callback, _mediaRecorder) {\r\n if (!callback) {\r\n throw 'Pass a callback function over getDataURL.';\r\n }\r\n\r\n var blob = _mediaRecorder ? _mediaRecorder.blob : (mediaRecorder || {}).blob;\r\n\r\n if (!blob) {\r\n if (!config.disableLogs) {\r\n console.warn('Blob encoder did not finish its job yet.');\r\n }\r\n\r\n setTimeout(function() {\r\n getDataURL(callback, _mediaRecorder);\r\n }, 1000);\r\n return;\r\n }\r\n\r\n if (typeof Worker !== 'undefined' && !navigator.mozGetUserMedia) {\r\n var webWorker = processInWebWorker(readFile);\r\n\r\n webWorker.onmessage = function(event) {\r\n callback(event.data);\r\n };\r\n\r\n webWorker.postMessage(blob);\r\n } else {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(blob);\r\n reader.onload = function(event) {\r\n callback(event.target.result);\r\n };\r\n }\r\n\r\n function processInWebWorker(_function) {\r\n try {\r\n var blob = URL.createObjectURL(new Blob([_function.toString(),\r\n 'this.onmessage = function (eee) {' + _function.name + '(eee.data);}'\r\n ], {\r\n type: 'application/javascript'\r\n }));\r\n\r\n var worker = new Worker(blob);\r\n URL.revokeObjectURL(blob);\r\n return worker;\r\n } catch (e) {}\r\n }\r\n }\r\n\r\n function handleRecordingDuration(counter) {\r\n counter = counter || 0;\r\n\r\n if (self.state === 'paused') {\r\n setTimeout(function() {\r\n handleRecordingDuration(counter);\r\n }, 1000);\r\n return;\r\n }\r\n\r\n if (self.state === 'stopped') {\r\n return;\r\n }\r\n\r\n if (counter >= self.recordingDuration) {\r\n stopRecording(self.onRecordingStopped);\r\n return;\r\n }\r\n\r\n counter += 1000; // 1-second\r\n\r\n setTimeout(function() {\r\n handleRecordingDuration(counter);\r\n }, 1000);\r\n }\r\n\r\n function setState(state) {\r\n if (!self) {\r\n return;\r\n }\r\n\r\n self.state = state;\r\n\r\n if (typeof self.onStateChanged.call === 'function') {\r\n self.onStateChanged.call(self, state);\r\n } else {\r\n self.onStateChanged(state);\r\n }\r\n }\r\n\r\n var WARNING = 'It seems that recorder is destroyed or \"startRecording\" is not invoked for ' + config.type + ' recorder.';\r\n\r\n function warningLog() {\r\n if (config.disableLogs === true) {\r\n return;\r\n }\r\n\r\n console.warn(WARNING);\r\n }\r\n\r\n var mediaRecorder;\r\n\r\n var returnObject = {\r\n /**\r\n * This method starts the recording.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * var recorder = RecordRTC(mediaStream, {\r\n * type: 'video'\r\n * });\r\n * recorder.startRecording();\r\n */\r\n startRecording: startRecording,\r\n\r\n /**\r\n * This method stops the recording. It is strongly recommended to get \"blob\" or \"URI\" inside the callback to make sure all recorders finished their job.\r\n * @param {function} callback - Callback to get the recorded blob.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * // use either \"this\" or \"recorder\" object; both are identical\r\n * video.src = this.toURL();\r\n * var blob = this.getBlob();\r\n * });\r\n */\r\n stopRecording: stopRecording,\r\n\r\n /**\r\n * This method pauses the recording. You can resume recording using \"resumeRecording\" method.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @todo Firefox is unable to pause the recording. Fix it.\r\n * @example\r\n * recorder.pauseRecording(); // pause the recording\r\n * recorder.resumeRecording(); // resume again\r\n */\r\n pauseRecording: pauseRecording,\r\n\r\n /**\r\n * This method resumes the recording.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.pauseRecording(); // first of all, pause the recording\r\n * recorder.resumeRecording(); // now resume it\r\n */\r\n resumeRecording: resumeRecording,\r\n\r\n /**\r\n * This method initializes the recording.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @todo This method should be deprecated.\r\n * @example\r\n * recorder.initRecorder();\r\n */\r\n initRecorder: initRecorder,\r\n\r\n /**\r\n * Ask RecordRTC to auto-stop the recording after 5 minutes.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * var fiveMinutes = 5 * 1000 * 60;\r\n * recorder.setRecordingDuration(fiveMinutes, function() {\r\n * var blob = this.getBlob();\r\n * video.src = this.toURL();\r\n * });\r\n * \r\n * // or otherwise\r\n * recorder.setRecordingDuration(fiveMinutes).onRecordingStopped(function() {\r\n * var blob = this.getBlob();\r\n * video.src = this.toURL();\r\n * });\r\n */\r\n setRecordingDuration: function(recordingDuration, callback) {\r\n if (typeof recordingDuration === 'undefined') {\r\n throw 'recordingDuration is required.';\r\n }\r\n\r\n if (typeof recordingDuration !== 'number') {\r\n throw 'recordingDuration must be a number.';\r\n }\r\n\r\n self.recordingDuration = recordingDuration;\r\n self.onRecordingStopped = callback || function() {};\r\n\r\n return {\r\n onRecordingStopped: function(callback) {\r\n self.onRecordingStopped = callback;\r\n }\r\n };\r\n },\r\n\r\n /**\r\n * This method can be used to clear/reset all the recorded data.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @todo Figure out the difference between \"reset\" and \"clearRecordedData\" methods.\r\n * @example\r\n * recorder.clearRecordedData();\r\n */\r\n clearRecordedData: function() {\r\n if (!mediaRecorder) {\r\n warningLog();\r\n return;\r\n }\r\n\r\n mediaRecorder.clearRecordedData();\r\n\r\n if (!config.disableLogs) {\r\n console.log('Cleared old recorded data.');\r\n }\r\n },\r\n\r\n /**\r\n * Get the recorded blob. Use this method inside the \"stopRecording\" callback.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * var blob = this.getBlob();\r\n *\r\n * var file = new File([blob], 'filename.webm', {\r\n * type: 'video/webm'\r\n * });\r\n *\r\n * var formData = new FormData();\r\n * formData.append('file', file); // upload \"File\" object rather than a \"Blob\"\r\n * uploadToServer(formData);\r\n * });\r\n * @returns {Blob} Returns recorded data as \"Blob\" object.\r\n */\r\n getBlob: function() {\r\n if (!mediaRecorder) {\r\n warningLog();\r\n return;\r\n }\r\n\r\n return mediaRecorder.blob;\r\n },\r\n\r\n /**\r\n * Get data-URI instead of Blob.\r\n * @param {function} callback - Callback to get the Data-URI.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * recorder.getDataURL(function(dataURI) {\r\n * video.src = dataURI;\r\n * });\r\n * });\r\n */\r\n getDataURL: getDataURL,\r\n\r\n /**\r\n * Get virtual/temporary URL. Usage of this URL is limited to current tab.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * video.src = this.toURL();\r\n * });\r\n * @returns {String} Returns a virtual/temporary URL for the recorded \"Blob\".\r\n */\r\n toURL: function() {\r\n if (!mediaRecorder) {\r\n warningLog();\r\n return;\r\n }\r\n\r\n return URL.createObjectURL(mediaRecorder.blob);\r\n },\r\n\r\n /**\r\n * Get internal recording object (i.e. internal module) e.g. MutliStreamRecorder, MediaStreamRecorder, StereoAudioRecorder or WhammyRecorder etc.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * var internalRecorder = recorder.getInternalRecorder();\r\n * if(internalRecorder instanceof MultiStreamRecorder) {\r\n * internalRecorder.addStreams([newAudioStream]);\r\n * internalRecorder.resetVideoStreams([screenStream]);\r\n * }\r\n * @returns {Object} Returns internal recording object.\r\n */\r\n getInternalRecorder: function() {\r\n return mediaRecorder;\r\n },\r\n\r\n /**\r\n * Invoke save-as dialog to save the recorded blob into your disk.\r\n * @param {string} fileName - Set your own file name.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * this.save('file-name');\r\n *\r\n * // or manually:\r\n * invokeSaveAsDialog(this.getBlob(), 'filename.webm');\r\n * });\r\n */\r\n save: function(fileName) {\r\n if (!mediaRecorder) {\r\n warningLog();\r\n return;\r\n }\r\n\r\n invokeSaveAsDialog(mediaRecorder.blob, fileName);\r\n },\r\n\r\n /**\r\n * This method gets a blob from indexed-DB storage.\r\n * @param {function} callback - Callback to get the recorded blob.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.getFromDisk(function(dataURL) {\r\n * video.src = dataURL;\r\n * });\r\n */\r\n getFromDisk: function(callback) {\r\n if (!mediaRecorder) {\r\n warningLog();\r\n return;\r\n }\r\n\r\n RecordRTC.getFromDisk(config.type, callback);\r\n },\r\n\r\n /**\r\n * This method appends an array of webp images to the recorded video-blob. It takes an \"array\" object.\r\n * @type {Array.}\r\n * @param {Array} arrayOfWebPImages - Array of webp images.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @todo This method should be deprecated.\r\n * @example\r\n * var arrayOfWebPImages = [];\r\n * arrayOfWebPImages.push({\r\n * duration: index,\r\n * image: 'data:image/webp;base64,...'\r\n * });\r\n * recorder.setAdvertisementArray(arrayOfWebPImages);\r\n */\r\n setAdvertisementArray: function(arrayOfWebPImages) {\r\n config.advertisement = [];\r\n\r\n var length = arrayOfWebPImages.length;\r\n for (var i = 0; i < length; i++) {\r\n config.advertisement.push({\r\n duration: i,\r\n image: arrayOfWebPImages[i]\r\n });\r\n }\r\n },\r\n\r\n /**\r\n * It is equivalent to \"recorder.getBlob()\" method. Usage of \"getBlob\" is recommended, though.\r\n * @property {Blob} blob - Recorded Blob can be accessed using this property.\r\n * @memberof RecordRTC\r\n * @instance\r\n * @readonly\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * var blob = this.blob;\r\n *\r\n * // below one is recommended\r\n * var blob = this.getBlob();\r\n * });\r\n */\r\n blob: null,\r\n\r\n /**\r\n * This works only with {recorderType:StereoAudioRecorder}. Use this property on \"stopRecording\" to verify the encoder's sample-rates.\r\n * @property {number} bufferSize - Buffer-size used to encode the WAV container\r\n * @memberof RecordRTC\r\n * @instance\r\n * @readonly\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * alert('Recorder used this buffer-size: ' + this.bufferSize);\r\n * });\r\n */\r\n bufferSize: 0,\r\n\r\n /**\r\n * This works only with {recorderType:StereoAudioRecorder}. Use this property on \"stopRecording\" to verify the encoder's sample-rates.\r\n * @property {number} sampleRate - Sample-rates used to encode the WAV container\r\n * @memberof RecordRTC\r\n * @instance\r\n * @readonly\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * alert('Recorder used these sample-rates: ' + this.sampleRate);\r\n * });\r\n */\r\n sampleRate: 0,\r\n\r\n /**\r\n * {recorderType:StereoAudioRecorder} returns ArrayBuffer object.\r\n * @property {ArrayBuffer} buffer - Audio ArrayBuffer, supported only in Chrome.\r\n * @memberof RecordRTC\r\n * @instance\r\n * @readonly\r\n * @example\r\n * recorder.stopRecording(function() {\r\n * var arrayBuffer = this.buffer;\r\n * alert(arrayBuffer.byteLength);\r\n * });\r\n */\r\n buffer: null,\r\n\r\n /**\r\n * This method resets the recorder. So that you can reuse single recorder instance many times.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.reset();\r\n * recorder.startRecording();\r\n */\r\n reset: function() {\r\n if (self.state === 'recording' && !config.disableLogs) {\r\n console.warn('Stop an active recorder.');\r\n }\r\n\r\n if (mediaRecorder && typeof mediaRecorder.clearRecordedData === 'function') {\r\n mediaRecorder.clearRecordedData();\r\n }\r\n mediaRecorder = null;\r\n setState('inactive');\r\n self.blob = null;\r\n },\r\n\r\n /**\r\n * This method is called whenever recorder's state changes. Use this as an \"event\".\r\n * @property {String} state - A recorder's state can be: recording, paused, stopped or inactive.\r\n * @method\r\n * @memberof RecordRTC\r\n * @instance\r\n * @example\r\n * recorder.onStateChanged = function(state) {\r\n * console.log('Recorder state: ', state);\r\n * };\r\n */\r\n onStateChanged: function(state) {\r\n if (!config.disableLogs) {\r\n console.log('Recorder state changed:', state);\r\n }\r\n },\r\n\r\n /**\r\n * A recorder can have inactive, recording, paused or stopped states.\r\n * @property {String} state - A recorder's state can be: recording, paused, stopped or inactive.\r\n * @memberof RecordRTC\r\n * @static\r\n * @readonly\r\n * @example\r\n * // this looper function will keep you updated about the recorder's states.\r\n * (function looper() {\r\n * document.querySelector('h1').innerHTML = 'Recorder\\'s state is: ' + recorder.state;\r\n * if(recorder.state === 'stopped') return; // ignore+stop\r\n * setTimeout(looper, 1000); // update after every 3-seconds\r\n * })();\r\n * recorder.startRecording();\r\n */\r\n state: 'inactive',\r\n\r\n /**\r\n * Get recorder's readonly state.\r\n * @method\r\n * @memberof RecordRTC\r\n * @example\r\n * var state = recorder.getState();\r\n * @returns {String} Returns recording state.\r\n */\r\n getState: function() {\r\n return self.state;\r\n },\r\n\r\n /**\r\n * Destroy RecordRTC instance. Clear all recorders and objects.\r\n * @method\r\n * @memberof RecordRTC\r\n * @example\r\n * recorder.destroy();\r\n */\r\n destroy: function() {\r\n var disableLogsCache = config.disableLogs;\r\n\r\n config = {\r\n disableLogs: true\r\n };\r\n self.reset();\r\n setState('destroyed');\r\n returnObject = self = null;\r\n\r\n if (Storage.AudioContextConstructor) {\r\n Storage.AudioContextConstructor.close();\r\n Storage.AudioContextConstructor = null;\r\n }\r\n\r\n config.disableLogs = disableLogsCache;\r\n\r\n if (!config.disableLogs) {\r\n console.log('RecordRTC is destroyed.');\r\n }\r\n },\r\n\r\n /**\r\n * RecordRTC version number\r\n * @property {String} version - Release version number.\r\n * @memberof RecordRTC\r\n * @static\r\n * @readonly\r\n * @example\r\n * alert(recorder.version);\r\n */\r\n version: '5.6.2'\r\n };\r\n\r\n if (!this) {\r\n self = returnObject;\r\n return returnObject;\r\n }\r\n\r\n // if someone wants to use RecordRTC with the \"new\" keyword.\r\n for (var prop in returnObject) {\r\n this[prop] = returnObject[prop];\r\n }\r\n\r\n self = this;\r\n\r\n return returnObject;\r\n}\r\n\r\nRecordRTC.version = '5.6.2';\r\n\r\nif (typeof module !== 'undefined' /* && !!module.exports*/ ) {\r\n module.exports = RecordRTC;\r\n}\r\n\r\nif (typeof define === 'function' && define.amd) {\r\n define('RecordRTC', [], function() {\r\n return RecordRTC;\r\n });\r\n}\n\r\nRecordRTC.getFromDisk = function(type, callback) {\r\n if (!callback) {\r\n throw 'callback is mandatory.';\r\n }\r\n\r\n console.log('Getting recorded ' + (type === 'all' ? 'blobs' : type + ' blob ') + ' from disk!');\r\n DiskStorage.Fetch(function(dataURL, _type) {\r\n if (type !== 'all' && _type === type + 'Blob' && callback) {\r\n callback(dataURL);\r\n }\r\n\r\n if (type === 'all' && callback) {\r\n callback(dataURL, _type.replace('Blob', ''));\r\n }\r\n });\r\n};\r\n\r\n/**\r\n * This method can be used to store recorded blobs into IndexedDB storage.\r\n * @param {object} options - {audio: Blob, video: Blob, gif: Blob}\r\n * @method\r\n * @memberof RecordRTC\r\n * @example\r\n * RecordRTC.writeToDisk({\r\n * audio: audioBlob,\r\n * video: videoBlob,\r\n * gif : gifBlob\r\n * });\r\n */\r\nRecordRTC.writeToDisk = function(options) {\r\n console.log('Writing recorded blob(s) to disk!');\r\n options = options || {};\r\n if (options.audio && options.video && options.gif) {\r\n options.audio.getDataURL(function(audioDataURL) {\r\n options.video.getDataURL(function(videoDataURL) {\r\n options.gif.getDataURL(function(gifDataURL) {\r\n DiskStorage.Store({\r\n audioBlob: audioDataURL,\r\n videoBlob: videoDataURL,\r\n gifBlob: gifDataURL\r\n });\r\n });\r\n });\r\n });\r\n } else if (options.audio && options.video) {\r\n options.audio.getDataURL(function(audioDataURL) {\r\n options.video.getDataURL(function(videoDataURL) {\r\n DiskStorage.Store({\r\n audioBlob: audioDataURL,\r\n videoBlob: videoDataURL\r\n });\r\n });\r\n });\r\n } else if (options.audio && options.gif) {\r\n options.audio.getDataURL(function(audioDataURL) {\r\n options.gif.getDataURL(function(gifDataURL) {\r\n DiskStorage.Store({\r\n audioBlob: audioDataURL,\r\n gifBlob: gifDataURL\r\n });\r\n });\r\n });\r\n } else if (options.video && options.gif) {\r\n options.video.getDataURL(function(videoDataURL) {\r\n options.gif.getDataURL(function(gifDataURL) {\r\n DiskStorage.Store({\r\n videoBlob: videoDataURL,\r\n gifBlob: gifDataURL\r\n });\r\n });\r\n });\r\n } else if (options.audio) {\r\n options.audio.getDataURL(function(audioDataURL) {\r\n DiskStorage.Store({\r\n audioBlob: audioDataURL\r\n });\r\n });\r\n } else if (options.video) {\r\n options.video.getDataURL(function(videoDataURL) {\r\n DiskStorage.Store({\r\n videoBlob: videoDataURL\r\n });\r\n });\r\n } else if (options.gif) {\r\n options.gif.getDataURL(function(gifDataURL) {\r\n DiskStorage.Store({\r\n gifBlob: gifDataURL\r\n });\r\n });\r\n }\r\n};\n\r\n// __________________________\r\n// RecordRTC-Configuration.js\r\n\r\n/**\r\n * {@link RecordRTCConfiguration} is an inner/private helper for {@link RecordRTC}.\r\n * @summary It configures the 2nd parameter passed over {@link RecordRTC} and returns a valid \"config\" object.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef RecordRTCConfiguration\r\n * @class\r\n * @example\r\n * var options = RecordRTCConfiguration(mediaStream, options);\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - MediaStream object fetched using getUserMedia API or generated using captureStreamUntilEnded or WebAudio API.\r\n * @param {object} config - {type:\"video\", disableLogs: true, numberOfAudioChannels: 1, bufferSize: 0, sampleRate: 0, video: HTMLVideoElement, getNativeBlob:true, etc.}\r\n */\r\n\r\nfunction RecordRTCConfiguration(mediaStream, config) {\r\n if (!config.recorderType && !config.type) {\r\n if (!!config.audio && !!config.video) {\r\n config.type = 'video';\r\n } else if (!!config.audio && !config.video) {\r\n config.type = 'audio';\r\n }\r\n }\r\n\r\n if (config.recorderType && !config.type) {\r\n if (config.recorderType === WhammyRecorder || config.recorderType === CanvasRecorder || (typeof WebAssemblyRecorder !== 'undefined' && config.recorderType === WebAssemblyRecorder)) {\r\n config.type = 'video';\r\n } else if (config.recorderType === GifRecorder) {\r\n config.type = 'gif';\r\n } else if (config.recorderType === StereoAudioRecorder) {\r\n config.type = 'audio';\r\n } else if (config.recorderType === MediaStreamRecorder) {\r\n if (getTracks(mediaStream, 'audio').length && getTracks(mediaStream, 'video').length) {\r\n config.type = 'video';\r\n } else if (!getTracks(mediaStream, 'audio').length && getTracks(mediaStream, 'video').length) {\r\n config.type = 'video';\r\n } else if (getTracks(mediaStream, 'audio').length && !getTracks(mediaStream, 'video').length) {\r\n config.type = 'audio';\r\n } else {\r\n // config.type = 'UnKnown';\r\n }\r\n }\r\n }\r\n\r\n if (typeof MediaStreamRecorder !== 'undefined' && typeof MediaRecorder !== 'undefined' && 'requestData' in MediaRecorder.prototype) {\r\n if (!config.mimeType) {\r\n config.mimeType = 'video/webm';\r\n }\r\n\r\n if (!config.type) {\r\n config.type = config.mimeType.split('/')[0];\r\n }\r\n\r\n if (!config.bitsPerSecond) {\r\n // config.bitsPerSecond = 128000;\r\n }\r\n }\r\n\r\n // consider default type=audio\r\n if (!config.type) {\r\n if (config.mimeType) {\r\n config.type = config.mimeType.split('/')[0];\r\n }\r\n if (!config.type) {\r\n config.type = 'audio';\r\n }\r\n }\r\n\r\n return config;\r\n}\n\r\n// __________________\r\n// GetRecorderType.js\r\n\r\n/**\r\n * {@link GetRecorderType} is an inner/private helper for {@link RecordRTC}.\r\n * @summary It returns best recorder-type available for your browser.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef GetRecorderType\r\n * @class\r\n * @example\r\n * var RecorderType = GetRecorderType(options);\r\n * var recorder = new RecorderType(options);\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - MediaStream object fetched using getUserMedia API or generated using captureStreamUntilEnded or WebAudio API.\r\n * @param {object} config - {type:\"video\", disableLogs: true, numberOfAudioChannels: 1, bufferSize: 0, sampleRate: 0, video: HTMLVideoElement, etc.}\r\n */\r\n\r\nfunction GetRecorderType(mediaStream, config) {\r\n var recorder;\r\n\r\n // StereoAudioRecorder can work with all three: Edge, Firefox and Chrome\r\n // todo: detect if it is Edge, then auto use: StereoAudioRecorder\r\n if (isChrome || isEdge || isOpera) {\r\n // Media Stream Recording API has not been implemented in chrome yet;\r\n // That's why using WebAudio API to record stereo audio in WAV format\r\n recorder = StereoAudioRecorder;\r\n }\r\n\r\n if (typeof MediaRecorder !== 'undefined' && 'requestData' in MediaRecorder.prototype && !isChrome) {\r\n recorder = MediaStreamRecorder;\r\n }\r\n\r\n // video recorder (in WebM format)\r\n if (config.type === 'video' && (isChrome || isOpera)) {\r\n recorder = WhammyRecorder;\r\n\r\n if (typeof WebAssemblyRecorder !== 'undefined' && typeof ReadableStream !== 'undefined') {\r\n recorder = WebAssemblyRecorder;\r\n }\r\n }\r\n\r\n // video recorder (in Gif format)\r\n if (config.type === 'gif') {\r\n recorder = GifRecorder;\r\n }\r\n\r\n // html2canvas recording!\r\n if (config.type === 'canvas') {\r\n recorder = CanvasRecorder;\r\n }\r\n\r\n if (isMediaRecorderCompatible() && recorder !== CanvasRecorder && recorder !== GifRecorder && typeof MediaRecorder !== 'undefined' && 'requestData' in MediaRecorder.prototype) {\r\n if (getTracks(mediaStream, 'video').length || getTracks(mediaStream, 'audio').length) {\r\n // audio-only recording\r\n if (config.type === 'audio') {\r\n if (typeof MediaRecorder.isTypeSupported === 'function' && MediaRecorder.isTypeSupported('audio/webm')) {\r\n recorder = MediaStreamRecorder;\r\n }\r\n // else recorder = StereoAudioRecorder;\r\n } else {\r\n // video or screen tracks\r\n if (typeof MediaRecorder.isTypeSupported === 'function' && MediaRecorder.isTypeSupported('video/webm')) {\r\n recorder = MediaStreamRecorder;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (mediaStream instanceof Array && mediaStream.length) {\r\n recorder = MultiStreamRecorder;\r\n }\r\n\r\n if (config.recorderType) {\r\n recorder = config.recorderType;\r\n }\r\n\r\n if (!config.disableLogs && !!recorder && !!recorder.name) {\r\n console.log('Using recorderType:', recorder.name || recorder.constructor.name);\r\n }\r\n\r\n if (!recorder && isSafari) {\r\n recorder = MediaStreamRecorder;\r\n }\r\n\r\n return recorder;\r\n}\n\r\n// _____________\r\n// MRecordRTC.js\r\n\r\n/**\r\n * MRecordRTC runs on top of {@link RecordRTC} to bring multiple recordings in a single place, by providing simple API.\r\n * @summary MRecordRTC stands for \"Multiple-RecordRTC\".\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef MRecordRTC\r\n * @class\r\n * @example\r\n * var recorder = new MRecordRTC();\r\n * recorder.addStream(MediaStream);\r\n * recorder.mediaType = {\r\n * audio: true, // or StereoAudioRecorder or MediaStreamRecorder\r\n * video: true, // or WhammyRecorder or MediaStreamRecorder or WebAssemblyRecorder or CanvasRecorder\r\n * gif: true // or GifRecorder\r\n * };\r\n * // mimeType is optional and should be set only in advance cases.\r\n * recorder.mimeType = {\r\n * audio: 'audio/wav',\r\n * video: 'video/webm',\r\n * gif: 'image/gif'\r\n * };\r\n * recorder.startRecording();\r\n * @see For further information:\r\n * @see {@link https://github.com/muaz-khan/RecordRTC/tree/master/MRecordRTC|MRecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - MediaStream object fetched using getUserMedia API or generated using captureStreamUntilEnded or WebAudio API.\r\n * @requires {@link RecordRTC}\r\n */\r\n\r\nfunction MRecordRTC(mediaStream) {\r\n\r\n /**\r\n * This method attaches MediaStream object to {@link MRecordRTC}.\r\n * @param {MediaStream} mediaStream - A MediaStream object, either fetched using getUserMedia API, or generated using captureStreamUntilEnded or WebAudio API.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.addStream(MediaStream);\r\n */\r\n this.addStream = function(_mediaStream) {\r\n if (_mediaStream) {\r\n mediaStream = _mediaStream;\r\n }\r\n };\r\n\r\n /**\r\n * This property can be used to set the recording type e.g. audio, or video, or gif, or canvas.\r\n * @property {object} mediaType - {audio: true, video: true, gif: true}\r\n * @memberof MRecordRTC\r\n * @example\r\n * var recorder = new MRecordRTC();\r\n * recorder.mediaType = {\r\n * audio: true, // TRUE or StereoAudioRecorder or MediaStreamRecorder\r\n * video: true, // TRUE or WhammyRecorder or MediaStreamRecorder or WebAssemblyRecorder or CanvasRecorder\r\n * gif : true // TRUE or GifRecorder\r\n * };\r\n */\r\n this.mediaType = {\r\n audio: true,\r\n video: true\r\n };\r\n\r\n /**\r\n * This method starts recording.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.startRecording();\r\n */\r\n this.startRecording = function() {\r\n var mediaType = this.mediaType;\r\n var recorderType;\r\n var mimeType = this.mimeType || {\r\n audio: null,\r\n video: null,\r\n gif: null\r\n };\r\n\r\n if (typeof mediaType.audio !== 'function' && isMediaRecorderCompatible() && !getTracks(mediaStream, 'audio').length) {\r\n mediaType.audio = false;\r\n }\r\n\r\n if (typeof mediaType.video !== 'function' && isMediaRecorderCompatible() && !getTracks(mediaStream, 'video').length) {\r\n mediaType.video = false;\r\n }\r\n\r\n if (typeof mediaType.gif !== 'function' && isMediaRecorderCompatible() && !getTracks(mediaStream, 'video').length) {\r\n mediaType.gif = false;\r\n }\r\n\r\n if (!mediaType.audio && !mediaType.video && !mediaType.gif) {\r\n throw 'MediaStream must have either audio or video tracks.';\r\n }\r\n\r\n if (!!mediaType.audio) {\r\n recorderType = null;\r\n if (typeof mediaType.audio === 'function') {\r\n recorderType = mediaType.audio;\r\n }\r\n\r\n this.audioRecorder = new RecordRTC(mediaStream, {\r\n type: 'audio',\r\n bufferSize: this.bufferSize,\r\n sampleRate: this.sampleRate,\r\n numberOfAudioChannels: this.numberOfAudioChannels || 2,\r\n disableLogs: this.disableLogs,\r\n recorderType: recorderType,\r\n mimeType: mimeType.audio,\r\n timeSlice: this.timeSlice,\r\n onTimeStamp: this.onTimeStamp\r\n });\r\n\r\n if (!mediaType.video) {\r\n this.audioRecorder.startRecording();\r\n }\r\n }\r\n\r\n if (!!mediaType.video) {\r\n recorderType = null;\r\n if (typeof mediaType.video === 'function') {\r\n recorderType = mediaType.video;\r\n }\r\n\r\n var newStream = mediaStream;\r\n\r\n if (isMediaRecorderCompatible() && !!mediaType.audio && typeof mediaType.audio === 'function') {\r\n var videoTrack = getTracks(mediaStream, 'video')[0];\r\n\r\n if (isFirefox) {\r\n newStream = new MediaStream();\r\n newStream.addTrack(videoTrack);\r\n\r\n if (recorderType && recorderType === WhammyRecorder) {\r\n // Firefox does NOT supports webp-encoding yet\r\n // But Firefox do supports WebAssemblyRecorder\r\n recorderType = MediaStreamRecorder;\r\n }\r\n } else {\r\n newStream = new MediaStream();\r\n newStream.addTrack(videoTrack);\r\n }\r\n }\r\n\r\n this.videoRecorder = new RecordRTC(newStream, {\r\n type: 'video',\r\n video: this.video,\r\n canvas: this.canvas,\r\n frameInterval: this.frameInterval || 10,\r\n disableLogs: this.disableLogs,\r\n recorderType: recorderType,\r\n mimeType: mimeType.video,\r\n timeSlice: this.timeSlice,\r\n onTimeStamp: this.onTimeStamp,\r\n workerPath: this.workerPath,\r\n webAssemblyPath: this.webAssemblyPath,\r\n frameRate: this.frameRate, // used by WebAssemblyRecorder; values: usually 30; accepts any.\r\n bitrate: this.bitrate // used by WebAssemblyRecorder; values: 0 to 1000+\r\n });\r\n\r\n if (!mediaType.audio) {\r\n this.videoRecorder.startRecording();\r\n }\r\n }\r\n\r\n if (!!mediaType.audio && !!mediaType.video) {\r\n var self = this;\r\n\r\n var isSingleRecorder = isMediaRecorderCompatible() === true;\r\n\r\n if (mediaType.audio instanceof StereoAudioRecorder && !!mediaType.video) {\r\n isSingleRecorder = false;\r\n } else if (mediaType.audio !== true && mediaType.video !== true && mediaType.audio !== mediaType.video) {\r\n isSingleRecorder = false;\r\n }\r\n\r\n if (isSingleRecorder === true) {\r\n self.audioRecorder = null;\r\n self.videoRecorder.startRecording();\r\n } else {\r\n self.videoRecorder.initRecorder(function() {\r\n self.audioRecorder.initRecorder(function() {\r\n // Both recorders are ready to record things accurately\r\n self.videoRecorder.startRecording();\r\n self.audioRecorder.startRecording();\r\n });\r\n });\r\n }\r\n }\r\n\r\n if (!!mediaType.gif) {\r\n recorderType = null;\r\n if (typeof mediaType.gif === 'function') {\r\n recorderType = mediaType.gif;\r\n }\r\n this.gifRecorder = new RecordRTC(mediaStream, {\r\n type: 'gif',\r\n frameRate: this.frameRate || 200,\r\n quality: this.quality || 10,\r\n disableLogs: this.disableLogs,\r\n recorderType: recorderType,\r\n mimeType: mimeType.gif\r\n });\r\n this.gifRecorder.startRecording();\r\n }\r\n };\r\n\r\n /**\r\n * This method stops recording.\r\n * @param {function} callback - Callback function is invoked when all encoders finished their jobs.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.stopRecording(function(recording){\r\n * var audioBlob = recording.audio;\r\n * var videoBlob = recording.video;\r\n * var gifBlob = recording.gif;\r\n * });\r\n */\r\n this.stopRecording = function(callback) {\r\n callback = callback || function() {};\r\n\r\n if (this.audioRecorder) {\r\n this.audioRecorder.stopRecording(function(blobURL) {\r\n callback(blobURL, 'audio');\r\n });\r\n }\r\n\r\n if (this.videoRecorder) {\r\n this.videoRecorder.stopRecording(function(blobURL) {\r\n callback(blobURL, 'video');\r\n });\r\n }\r\n\r\n if (this.gifRecorder) {\r\n this.gifRecorder.stopRecording(function(blobURL) {\r\n callback(blobURL, 'gif');\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * This method pauses recording.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.pauseRecording();\r\n */\r\n this.pauseRecording = function() {\r\n if (this.audioRecorder) {\r\n this.audioRecorder.pauseRecording();\r\n }\r\n\r\n if (this.videoRecorder) {\r\n this.videoRecorder.pauseRecording();\r\n }\r\n\r\n if (this.gifRecorder) {\r\n this.gifRecorder.pauseRecording();\r\n }\r\n };\r\n\r\n /**\r\n * This method resumes recording.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.resumeRecording();\r\n */\r\n this.resumeRecording = function() {\r\n if (this.audioRecorder) {\r\n this.audioRecorder.resumeRecording();\r\n }\r\n\r\n if (this.videoRecorder) {\r\n this.videoRecorder.resumeRecording();\r\n }\r\n\r\n if (this.gifRecorder) {\r\n this.gifRecorder.resumeRecording();\r\n }\r\n };\r\n\r\n /**\r\n * This method can be used to manually get all recorded blobs.\r\n * @param {function} callback - All recorded blobs are passed back to the \"callback\" function.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.getBlob(function(recording){\r\n * var audioBlob = recording.audio;\r\n * var videoBlob = recording.video;\r\n * var gifBlob = recording.gif;\r\n * });\r\n * // or\r\n * var audioBlob = recorder.getBlob().audio;\r\n * var videoBlob = recorder.getBlob().video;\r\n */\r\n this.getBlob = function(callback) {\r\n var output = {};\r\n\r\n if (this.audioRecorder) {\r\n output.audio = this.audioRecorder.getBlob();\r\n }\r\n\r\n if (this.videoRecorder) {\r\n output.video = this.videoRecorder.getBlob();\r\n }\r\n\r\n if (this.gifRecorder) {\r\n output.gif = this.gifRecorder.getBlob();\r\n }\r\n\r\n if (callback) {\r\n callback(output);\r\n }\r\n\r\n return output;\r\n };\r\n\r\n /**\r\n * Destroy all recorder instances.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.destroy();\r\n */\r\n this.destroy = function() {\r\n if (this.audioRecorder) {\r\n this.audioRecorder.destroy();\r\n this.audioRecorder = null;\r\n }\r\n\r\n if (this.videoRecorder) {\r\n this.videoRecorder.destroy();\r\n this.videoRecorder = null;\r\n }\r\n\r\n if (this.gifRecorder) {\r\n this.gifRecorder.destroy();\r\n this.gifRecorder = null;\r\n }\r\n };\r\n\r\n /**\r\n * This method can be used to manually get all recorded blobs' DataURLs.\r\n * @param {function} callback - All recorded blobs' DataURLs are passed back to the \"callback\" function.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.getDataURL(function(recording){\r\n * var audioDataURL = recording.audio;\r\n * var videoDataURL = recording.video;\r\n * var gifDataURL = recording.gif;\r\n * });\r\n */\r\n this.getDataURL = function(callback) {\r\n this.getBlob(function(blob) {\r\n if (blob.audio && blob.video) {\r\n getDataURL(blob.audio, function(_audioDataURL) {\r\n getDataURL(blob.video, function(_videoDataURL) {\r\n callback({\r\n audio: _audioDataURL,\r\n video: _videoDataURL\r\n });\r\n });\r\n });\r\n } else if (blob.audio) {\r\n getDataURL(blob.audio, function(_audioDataURL) {\r\n callback({\r\n audio: _audioDataURL\r\n });\r\n });\r\n } else if (blob.video) {\r\n getDataURL(blob.video, function(_videoDataURL) {\r\n callback({\r\n video: _videoDataURL\r\n });\r\n });\r\n }\r\n });\r\n\r\n function getDataURL(blob, callback00) {\r\n if (typeof Worker !== 'undefined') {\r\n var webWorker = processInWebWorker(function readFile(_blob) {\r\n postMessage(new FileReaderSync().readAsDataURL(_blob));\r\n });\r\n\r\n webWorker.onmessage = function(event) {\r\n callback00(event.data);\r\n };\r\n\r\n webWorker.postMessage(blob);\r\n } else {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(blob);\r\n reader.onload = function(event) {\r\n callback00(event.target.result);\r\n };\r\n }\r\n }\r\n\r\n function processInWebWorker(_function) {\r\n var blob = URL.createObjectURL(new Blob([_function.toString(),\r\n 'this.onmessage = function (eee) {' + _function.name + '(eee.data);}'\r\n ], {\r\n type: 'application/javascript'\r\n }));\r\n\r\n var worker = new Worker(blob);\r\n var url;\r\n if (typeof URL !== 'undefined') {\r\n url = URL;\r\n } else if (typeof webkitURL !== 'undefined') {\r\n url = webkitURL;\r\n } else {\r\n throw 'Neither URL nor webkitURL detected.';\r\n }\r\n url.revokeObjectURL(blob);\r\n return worker;\r\n }\r\n };\r\n\r\n /**\r\n * This method can be used to ask {@link MRecordRTC} to write all recorded blobs into IndexedDB storage.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.writeToDisk();\r\n */\r\n this.writeToDisk = function() {\r\n RecordRTC.writeToDisk({\r\n audio: this.audioRecorder,\r\n video: this.videoRecorder,\r\n gif: this.gifRecorder\r\n });\r\n };\r\n\r\n /**\r\n * This method can be used to invoke a save-as dialog for all recorded blobs.\r\n * @param {object} args - {audio: 'audio-name', video: 'video-name', gif: 'gif-name'}\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * recorder.save({\r\n * audio: 'audio-file-name',\r\n * video: 'video-file-name',\r\n * gif : 'gif-file-name'\r\n * });\r\n */\r\n this.save = function(args) {\r\n args = args || {\r\n audio: true,\r\n video: true,\r\n gif: true\r\n };\r\n\r\n if (!!args.audio && this.audioRecorder) {\r\n this.audioRecorder.save(typeof args.audio === 'string' ? args.audio : '');\r\n }\r\n\r\n if (!!args.video && this.videoRecorder) {\r\n this.videoRecorder.save(typeof args.video === 'string' ? args.video : '');\r\n }\r\n if (!!args.gif && this.gifRecorder) {\r\n this.gifRecorder.save(typeof args.gif === 'string' ? args.gif : '');\r\n }\r\n };\r\n}\r\n\r\n/**\r\n * This method can be used to get all recorded blobs from IndexedDB storage.\r\n * @param {string} type - 'all' or 'audio' or 'video' or 'gif'\r\n * @param {function} callback - Callback function to get all stored blobs.\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * MRecordRTC.getFromDisk('all', function(dataURL, type){\r\n * if(type === 'audio') { }\r\n * if(type === 'video') { }\r\n * if(type === 'gif') { }\r\n * });\r\n */\r\nMRecordRTC.getFromDisk = RecordRTC.getFromDisk;\r\n\r\n/**\r\n * This method can be used to store recorded blobs into IndexedDB storage.\r\n * @param {object} options - {audio: Blob, video: Blob, gif: Blob}\r\n * @method\r\n * @memberof MRecordRTC\r\n * @example\r\n * MRecordRTC.writeToDisk({\r\n * audio: audioBlob,\r\n * video: videoBlob,\r\n * gif : gifBlob\r\n * });\r\n */\r\nMRecordRTC.writeToDisk = RecordRTC.writeToDisk;\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.MRecordRTC = MRecordRTC;\r\n}\n\r\nvar browserFakeUserAgent = 'Fake/5.0 (FakeOS) AppleWebKit/123 (KHTML, like Gecko) Fake/12.3.4567.89 Fake/123.45';\r\n\r\n(function(that) {\r\n if (!that) {\r\n return;\r\n }\r\n\r\n if (typeof window !== 'undefined') {\r\n return;\r\n }\r\n\r\n if (typeof global === 'undefined') {\r\n return;\r\n }\r\n\r\n global.navigator = {\r\n userAgent: browserFakeUserAgent,\r\n getUserMedia: function() {}\r\n };\r\n\r\n if (!global.console) {\r\n global.console = {};\r\n }\r\n\r\n if (typeof global.console.log === 'undefined' || typeof global.console.error === 'undefined') {\r\n global.console.error = global.console.log = global.console.log || function() {\r\n console.log(arguments);\r\n };\r\n }\r\n\r\n if (typeof document === 'undefined') {\r\n /*global document:true */\r\n that.document = {\r\n documentElement: {\r\n appendChild: function() {\r\n return '';\r\n }\r\n }\r\n };\r\n\r\n document.createElement = document.captureStream = document.mozCaptureStream = function() {\r\n var obj = {\r\n getContext: function() {\r\n return obj;\r\n },\r\n play: function() {},\r\n pause: function() {},\r\n drawImage: function() {},\r\n toDataURL: function() {\r\n return '';\r\n },\r\n style: {}\r\n };\r\n return obj;\r\n };\r\n\r\n that.HTMLVideoElement = function() {};\r\n }\r\n\r\n if (typeof location === 'undefined') {\r\n /*global location:true */\r\n that.location = {\r\n protocol: 'file:',\r\n href: '',\r\n hash: ''\r\n };\r\n }\r\n\r\n if (typeof screen === 'undefined') {\r\n /*global screen:true */\r\n that.screen = {\r\n width: 0,\r\n height: 0\r\n };\r\n }\r\n\r\n if (typeof URL === 'undefined') {\r\n /*global screen:true */\r\n that.URL = {\r\n createObjectURL: function() {\r\n return '';\r\n },\r\n revokeObjectURL: function() {\r\n return '';\r\n }\r\n };\r\n }\r\n\r\n /*global window:true */\r\n that.window = global;\r\n})(typeof global !== 'undefined' ? global : null);\n\r\n// _____________________________\r\n// Cross-Browser-Declarations.js\r\n\r\n// animation-frame used in WebM recording\r\n\r\n/*jshint -W079 */\r\nvar requestAnimationFrame = window.requestAnimationFrame;\r\nif (typeof requestAnimationFrame === 'undefined') {\r\n if (typeof webkitRequestAnimationFrame !== 'undefined') {\r\n /*global requestAnimationFrame:true */\r\n requestAnimationFrame = webkitRequestAnimationFrame;\r\n } else if (typeof mozRequestAnimationFrame !== 'undefined') {\r\n /*global requestAnimationFrame:true */\r\n requestAnimationFrame = mozRequestAnimationFrame;\r\n } else if (typeof msRequestAnimationFrame !== 'undefined') {\r\n /*global requestAnimationFrame:true */\r\n requestAnimationFrame = msRequestAnimationFrame;\r\n } else if (typeof requestAnimationFrame === 'undefined') {\r\n // via: https://gist.github.com/paulirish/1579671\r\n var lastTime = 0;\r\n\r\n /*global requestAnimationFrame:true */\r\n requestAnimationFrame = function(callback, element) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n var id = setTimeout(function() {\r\n callback(currTime + timeToCall);\r\n }, timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n }\r\n}\r\n\r\n/*jshint -W079 */\r\nvar cancelAnimationFrame = window.cancelAnimationFrame;\r\nif (typeof cancelAnimationFrame === 'undefined') {\r\n if (typeof webkitCancelAnimationFrame !== 'undefined') {\r\n /*global cancelAnimationFrame:true */\r\n cancelAnimationFrame = webkitCancelAnimationFrame;\r\n } else if (typeof mozCancelAnimationFrame !== 'undefined') {\r\n /*global cancelAnimationFrame:true */\r\n cancelAnimationFrame = mozCancelAnimationFrame;\r\n } else if (typeof msCancelAnimationFrame !== 'undefined') {\r\n /*global cancelAnimationFrame:true */\r\n cancelAnimationFrame = msCancelAnimationFrame;\r\n } else if (typeof cancelAnimationFrame === 'undefined') {\r\n /*global cancelAnimationFrame:true */\r\n cancelAnimationFrame = function(id) {\r\n clearTimeout(id);\r\n };\r\n }\r\n}\r\n\r\n// WebAudio API representer\r\nvar AudioContext = window.AudioContext;\r\n\r\nif (typeof AudioContext === 'undefined') {\r\n if (typeof webkitAudioContext !== 'undefined') {\r\n /*global AudioContext:true */\r\n AudioContext = webkitAudioContext;\r\n }\r\n\r\n if (typeof mozAudioContext !== 'undefined') {\r\n /*global AudioContext:true */\r\n AudioContext = mozAudioContext;\r\n }\r\n}\r\n\r\n/*jshint -W079 */\r\nvar URL = window.URL;\r\n\r\nif (typeof URL === 'undefined' && typeof webkitURL !== 'undefined') {\r\n /*global URL:true */\r\n URL = webkitURL;\r\n}\r\n\r\nif (typeof navigator !== 'undefined' && typeof navigator.getUserMedia === 'undefined') { // maybe window.navigator?\r\n if (typeof navigator.webkitGetUserMedia !== 'undefined') {\r\n navigator.getUserMedia = navigator.webkitGetUserMedia;\r\n }\r\n\r\n if (typeof navigator.mozGetUserMedia !== 'undefined') {\r\n navigator.getUserMedia = navigator.mozGetUserMedia;\r\n }\r\n}\r\n\r\nvar isEdge = navigator.userAgent.indexOf('Edge') !== -1 && (!!navigator.msSaveBlob || !!navigator.msSaveOrOpenBlob);\r\nvar isOpera = !!window.opera || navigator.userAgent.indexOf('OPR/') !== -1;\r\nvar isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1 && ('netscape' in window) && / rv:/.test(navigator.userAgent);\r\nvar isChrome = (!isOpera && !isEdge && !!navigator.webkitGetUserMedia) || isElectron() || navigator.userAgent.toLowerCase().indexOf('chrome/') !== -1;\r\n\r\nvar isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\r\n\r\nif (isSafari && !isChrome && navigator.userAgent.indexOf('CriOS') !== -1) {\r\n isSafari = false;\r\n isChrome = true;\r\n}\r\n\r\nvar MediaStream = window.MediaStream;\r\n\r\nif (typeof MediaStream === 'undefined' && typeof webkitMediaStream !== 'undefined') {\r\n MediaStream = webkitMediaStream;\r\n}\r\n\r\n/*global MediaStream:true */\r\nif (typeof MediaStream !== 'undefined') {\r\n // override \"stop\" method for all browsers\r\n if (typeof MediaStream.prototype.stop === 'undefined') {\r\n MediaStream.prototype.stop = function() {\r\n this.getTracks().forEach(function(track) {\r\n track.stop();\r\n });\r\n };\r\n }\r\n}\r\n\r\n// below function via: http://goo.gl/B3ae8c\r\n/**\r\n * Return human-readable file size.\r\n * @param {number} bytes - Pass bytes and get formatted string.\r\n * @returns {string} - formatted string\r\n * @example\r\n * bytesToSize(1024*1024*5) === '5 GB'\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n */\r\nfunction bytesToSize(bytes) {\r\n var k = 1000;\r\n var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];\r\n if (bytes === 0) {\r\n return '0 Bytes';\r\n }\r\n var i = parseInt(Math.floor(Math.log(bytes) / Math.log(k)), 10);\r\n return (bytes / Math.pow(k, i)).toPrecision(3) + ' ' + sizes[i];\r\n}\r\n\r\n/**\r\n * @param {Blob} file - File or Blob object. This parameter is required.\r\n * @param {string} fileName - Optional file name e.g. \"Recorded-Video.webm\"\r\n * @example\r\n * invokeSaveAsDialog(blob or file, [optional] fileName);\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n */\r\nfunction invokeSaveAsDialog(file, fileName) {\r\n if (!file) {\r\n throw 'Blob object is required.';\r\n }\r\n\r\n if (!file.type) {\r\n try {\r\n file.type = 'video/webm';\r\n } catch (e) {}\r\n }\r\n\r\n var fileExtension = (file.type || 'video/webm').split('/')[1];\r\n if (fileExtension.indexOf(';') !== -1) {\r\n // extended mimetype, e.g. 'video/webm;codecs=vp8,opus'\r\n fileExtension = fileExtension.split(';')[0];\r\n }\r\n if (fileName && fileName.indexOf('.') !== -1) {\r\n var splitted = fileName.split('.');\r\n fileName = splitted[0];\r\n fileExtension = splitted[1];\r\n }\r\n\r\n var fileFullName = (fileName || (Math.round(Math.random() * 9999999999) + 888888888)) + '.' + fileExtension;\r\n\r\n if (typeof navigator.msSaveOrOpenBlob !== 'undefined') {\r\n return navigator.msSaveOrOpenBlob(file, fileFullName);\r\n } else if (typeof navigator.msSaveBlob !== 'undefined') {\r\n return navigator.msSaveBlob(file, fileFullName);\r\n }\r\n\r\n var hyperlink = document.createElement('a');\r\n hyperlink.href = URL.createObjectURL(file);\r\n hyperlink.download = fileFullName;\r\n\r\n hyperlink.style = 'display:none;opacity:0;color:transparent;';\r\n (document.body || document.documentElement).appendChild(hyperlink);\r\n\r\n if (typeof hyperlink.click === 'function') {\r\n hyperlink.click();\r\n } else {\r\n hyperlink.target = '_blank';\r\n hyperlink.dispatchEvent(new MouseEvent('click', {\r\n view: window,\r\n bubbles: true,\r\n cancelable: true\r\n }));\r\n }\r\n\r\n URL.revokeObjectURL(hyperlink.href);\r\n}\r\n\r\n/**\r\n * from: https://github.com/cheton/is-electron/blob/master/index.js\r\n **/\r\nfunction isElectron() {\r\n // Renderer process\r\n if (typeof window !== 'undefined' && typeof window.process === 'object' && window.process.type === 'renderer') {\r\n return true;\r\n }\r\n\r\n // Main process\r\n if (typeof process !== 'undefined' && typeof process.versions === 'object' && !!process.versions.electron) {\r\n return true;\r\n }\r\n\r\n // Detect the user agent when the `nodeIntegration` option is set to true\r\n if (typeof navigator === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Electron') >= 0) {\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n\r\nfunction getTracks(stream, kind) {\r\n if (!stream || !stream.getTracks) {\r\n return [];\r\n }\r\n\r\n return stream.getTracks().filter(function(t) {\r\n return t.kind === (kind || 'audio');\r\n });\r\n}\r\n\r\nfunction setSrcObject(stream, element) {\r\n if ('srcObject' in element) {\r\n element.srcObject = stream;\r\n } else if ('mozSrcObject' in element) {\r\n element.mozSrcObject = stream;\r\n } else {\r\n element.srcObject = stream;\r\n }\r\n}\r\n\r\n/**\r\n * @param {Blob} file - File or Blob object.\r\n * @param {function} callback - Callback function.\r\n * @example\r\n * getSeekableBlob(blob or file, callback);\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n */\r\nfunction getSeekableBlob(inputBlob, callback) {\r\n // EBML.js copyrights goes to: https://github.com/legokichi/ts-ebml\r\n if (typeof EBML === 'undefined') {\r\n throw new Error('Please link: https://www.webrtc-experiment.com/EBML.js');\r\n }\r\n\r\n var reader = new EBML.Reader();\r\n var decoder = new EBML.Decoder();\r\n var tools = EBML.tools;\r\n\r\n var fileReader = new FileReader();\r\n fileReader.onload = function(e) {\r\n var ebmlElms = decoder.decode(this.result);\r\n ebmlElms.forEach(function(element) {\r\n reader.read(element);\r\n });\r\n reader.stop();\r\n var refinedMetadataBuf = tools.makeMetadataSeekable(reader.metadatas, reader.duration, reader.cues);\r\n var body = this.result.slice(reader.metadataSize);\r\n var newBlob = new Blob([refinedMetadataBuf, body], {\r\n type: 'video/webm'\r\n });\r\n\r\n callback(newBlob);\r\n };\r\n fileReader.readAsArrayBuffer(inputBlob);\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.invokeSaveAsDialog = invokeSaveAsDialog;\r\n RecordRTC.getTracks = getTracks;\r\n RecordRTC.getSeekableBlob = getSeekableBlob;\r\n RecordRTC.bytesToSize = bytesToSize;\r\n RecordRTC.isElectron = isElectron;\r\n}\r\n\r\n// __________ (used to handle stuff like http://goo.gl/xmE5eg) issue #129\r\n// Storage.js\r\n\r\n/**\r\n * Storage is a standalone object used by {@link RecordRTC} to store reusable objects e.g. \"new AudioContext\".\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @example\r\n * Storage.AudioContext === webkitAudioContext\r\n * @property {webkitAudioContext} AudioContext - Keeps a reference to AudioContext object.\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n */\r\n\r\nvar Storage = {};\r\n\r\nif (typeof AudioContext !== 'undefined') {\r\n Storage.AudioContext = AudioContext;\r\n} else if (typeof webkitAudioContext !== 'undefined') {\r\n Storage.AudioContext = webkitAudioContext;\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.Storage = Storage;\r\n}\n\r\nfunction isMediaRecorderCompatible() {\r\n if (isFirefox || isSafari || isEdge) {\r\n return true;\r\n }\r\n\r\n var nVer = navigator.appVersion;\r\n var nAgt = navigator.userAgent;\r\n var fullVersion = '' + parseFloat(navigator.appVersion);\r\n var majorVersion = parseInt(navigator.appVersion, 10);\r\n var nameOffset, verOffset, ix;\r\n\r\n if (isChrome || isOpera) {\r\n verOffset = nAgt.indexOf('Chrome');\r\n fullVersion = nAgt.substring(verOffset + 7);\r\n }\r\n\r\n // trim the fullVersion string at semicolon/space if present\r\n if ((ix = fullVersion.indexOf(';')) !== -1) {\r\n fullVersion = fullVersion.substring(0, ix);\r\n }\r\n\r\n if ((ix = fullVersion.indexOf(' ')) !== -1) {\r\n fullVersion = fullVersion.substring(0, ix);\r\n }\r\n\r\n majorVersion = parseInt('' + fullVersion, 10);\r\n\r\n if (isNaN(majorVersion)) {\r\n fullVersion = '' + parseFloat(navigator.appVersion);\r\n majorVersion = parseInt(navigator.appVersion, 10);\r\n }\r\n\r\n return majorVersion >= 49;\r\n}\n\r\n// ______________________\r\n// MediaStreamRecorder.js\r\n\r\n/**\r\n * MediaStreamRecorder is an abstraction layer for {@link https://w3c.github.io/mediacapture-record/MediaRecorder.html|MediaRecorder API}. It is used by {@link RecordRTC} to record MediaStream(s) in both Chrome and Firefox.\r\n * @summary Runs top over {@link https://w3c.github.io/mediacapture-record/MediaRecorder.html|MediaRecorder API}.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://github.com/muaz-khan|Muaz Khan}\r\n * @typedef MediaStreamRecorder\r\n * @class\r\n * @example\r\n * var config = {\r\n * mimeType: 'video/webm', // vp8, vp9, h264, mkv, opus/vorbis\r\n * audioBitsPerSecond : 256 * 8 * 1024,\r\n * videoBitsPerSecond : 256 * 8 * 1024,\r\n * bitsPerSecond: 256 * 8 * 1024, // if this is provided, skip above two\r\n * checkForInactiveTracks: true,\r\n * timeSlice: 1000, // concatenate intervals based blobs\r\n * ondataavailable: function() {} // get intervals based blobs\r\n * }\r\n * var recorder = new MediaStreamRecorder(mediaStream, config);\r\n * recorder.record();\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n *\r\n * // or\r\n * var blob = recorder.blob;\r\n * });\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - MediaStream object fetched using getUserMedia API or generated using captureStreamUntilEnded or WebAudio API.\r\n * @param {object} config - {disableLogs:true, initCallback: function, mimeType: \"video/webm\", timeSlice: 1000}\r\n * @throws Will throw an error if first argument \"MediaStream\" is missing. Also throws error if \"MediaRecorder API\" are not supported by the browser.\r\n */\r\n\r\nfunction MediaStreamRecorder(mediaStream, config) {\r\n var self = this;\r\n\r\n if (typeof mediaStream === 'undefined') {\r\n throw 'First argument \"MediaStream\" is required.';\r\n }\r\n\r\n if (typeof MediaRecorder === 'undefined') {\r\n throw 'Your browser does not support the Media Recorder API. Please try other modules e.g. WhammyRecorder or StereoAudioRecorder.';\r\n }\r\n\r\n config = config || {\r\n // bitsPerSecond: 256 * 8 * 1024,\r\n mimeType: 'video/webm'\r\n };\r\n\r\n if (config.type === 'audio') {\r\n if (getTracks(mediaStream, 'video').length && getTracks(mediaStream, 'audio').length) {\r\n var stream;\r\n if (!!navigator.mozGetUserMedia) {\r\n stream = new MediaStream();\r\n stream.addTrack(getTracks(mediaStream, 'audio')[0]);\r\n } else {\r\n // webkitMediaStream\r\n stream = new MediaStream(getTracks(mediaStream, 'audio'));\r\n }\r\n mediaStream = stream;\r\n }\r\n\r\n if (!config.mimeType || config.mimeType.toString().toLowerCase().indexOf('audio') === -1) {\r\n config.mimeType = isChrome ? 'audio/webm' : 'audio/ogg';\r\n }\r\n\r\n if (config.mimeType && config.mimeType.toString().toLowerCase() !== 'audio/ogg' && !!navigator.mozGetUserMedia) {\r\n // forcing better codecs on Firefox (via #166)\r\n config.mimeType = 'audio/ogg';\r\n }\r\n }\r\n\r\n var arrayOfBlobs = [];\r\n\r\n /**\r\n * This method returns array of blobs. Use only with \"timeSlice\". Its useful to preview recording anytime, without using the \"stop\" method.\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * var arrayOfBlobs = recorder.getArrayOfBlobs();\r\n * @returns {Array} Returns array of recorded blobs.\r\n */\r\n this.getArrayOfBlobs = function() {\r\n return arrayOfBlobs;\r\n };\r\n\r\n /**\r\n * This method records MediaStream.\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * recorder.record();\r\n */\r\n this.record = function() {\r\n // set defaults\r\n self.blob = null;\r\n self.clearRecordedData();\r\n self.timestamps = [];\r\n allStates = [];\r\n arrayOfBlobs = [];\r\n\r\n var recorderHints = config;\r\n\r\n if (!config.disableLogs) {\r\n console.log('Passing following config over MediaRecorder API.', recorderHints);\r\n }\r\n\r\n if (mediaRecorder) {\r\n // mandatory to make sure Firefox doesn't fails to record streams 3-4 times without reloading the page.\r\n mediaRecorder = null;\r\n }\r\n\r\n if (isChrome && !isMediaRecorderCompatible()) {\r\n // to support video-only recording on stable\r\n recorderHints = 'video/vp8';\r\n }\r\n\r\n if (typeof MediaRecorder.isTypeSupported === 'function' && recorderHints.mimeType) {\r\n if (!MediaRecorder.isTypeSupported(recorderHints.mimeType)) {\r\n if (!config.disableLogs) {\r\n console.warn('MediaRecorder API seems unable to record mimeType:', recorderHints.mimeType);\r\n }\r\n\r\n recorderHints.mimeType = config.type === 'audio' ? 'audio/webm' : 'video/webm';\r\n }\r\n }\r\n\r\n // using MediaRecorder API here\r\n try {\r\n mediaRecorder = new MediaRecorder(mediaStream, recorderHints);\r\n\r\n // reset\r\n config.mimeType = recorderHints.mimeType;\r\n } catch (e) {\r\n // chrome-based fallback\r\n mediaRecorder = new MediaRecorder(mediaStream);\r\n }\r\n\r\n // old hack?\r\n if (recorderHints.mimeType && !MediaRecorder.isTypeSupported && 'canRecordMimeType' in mediaRecorder && mediaRecorder.canRecordMimeType(recorderHints.mimeType) === false) {\r\n if (!config.disableLogs) {\r\n console.warn('MediaRecorder API seems unable to record mimeType:', recorderHints.mimeType);\r\n }\r\n }\r\n\r\n // Dispatching OnDataAvailable Handler\r\n mediaRecorder.ondataavailable = function(e) {\r\n if (e.data) {\r\n allStates.push('ondataavailable: ' + bytesToSize(e.data.size));\r\n }\r\n\r\n if (typeof config.timeSlice === 'number') {\r\n if (e.data && e.data.size) {\r\n arrayOfBlobs.push(e.data);\r\n updateTimeStamp();\r\n\r\n if (typeof config.ondataavailable === 'function') {\r\n // intervals based blobs\r\n var blob = config.getNativeBlob ? e.data : new Blob([e.data], {\r\n type: getMimeType(recorderHints)\r\n });\r\n config.ondataavailable(blob);\r\n }\r\n }\r\n return;\r\n }\r\n\r\n if (!e.data || !e.data.size || e.data.size < 100 || self.blob) {\r\n // make sure that stopRecording always getting fired\r\n // even if there is invalid data\r\n if (self.recordingCallback) {\r\n self.recordingCallback(new Blob([], {\r\n type: getMimeType(recorderHints)\r\n }));\r\n self.recordingCallback = null;\r\n }\r\n return;\r\n }\r\n\r\n self.blob = config.getNativeBlob ? e.data : new Blob([e.data], {\r\n type: getMimeType(recorderHints)\r\n });\r\n\r\n if (self.recordingCallback) {\r\n self.recordingCallback(self.blob);\r\n self.recordingCallback = null;\r\n }\r\n };\r\n\r\n mediaRecorder.onstart = function() {\r\n allStates.push('started');\r\n };\r\n\r\n mediaRecorder.onpause = function() {\r\n allStates.push('paused');\r\n };\r\n\r\n mediaRecorder.onresume = function() {\r\n allStates.push('resumed');\r\n };\r\n\r\n mediaRecorder.onstop = function() {\r\n allStates.push('stopped');\r\n };\r\n\r\n mediaRecorder.onerror = function(error) {\r\n if (!error) {\r\n return;\r\n }\r\n\r\n if (!error.name) {\r\n error.name = 'UnknownError';\r\n }\r\n\r\n allStates.push('error: ' + error);\r\n\r\n if (!config.disableLogs) {\r\n // via: https://w3c.github.io/mediacapture-record/MediaRecorder.html#exception-summary\r\n if (error.name.toString().toLowerCase().indexOf('invalidstate') !== -1) {\r\n console.error('The MediaRecorder is not in a state in which the proposed operation is allowed to be executed.', error);\r\n } else if (error.name.toString().toLowerCase().indexOf('notsupported') !== -1) {\r\n console.error('MIME type (', recorderHints.mimeType, ') is not supported.', error);\r\n } else if (error.name.toString().toLowerCase().indexOf('security') !== -1) {\r\n console.error('MediaRecorder security error', error);\r\n }\r\n\r\n // older code below\r\n else if (error.name === 'OutOfMemory') {\r\n console.error('The UA has exhaused the available memory. User agents SHOULD provide as much additional information as possible in the message attribute.', error);\r\n } else if (error.name === 'IllegalStreamModification') {\r\n console.error('A modification to the stream has occurred that makes it impossible to continue recording. An example would be the addition of a Track while recording is occurring. User agents SHOULD provide as much additional information as possible in the message attribute.', error);\r\n } else if (error.name === 'OtherRecordingError') {\r\n console.error('Used for an fatal error other than those listed above. User agents SHOULD provide as much additional information as possible in the message attribute.', error);\r\n } else if (error.name === 'GenericError') {\r\n console.error('The UA cannot provide the codec or recording option that has been requested.', error);\r\n } else {\r\n console.error('MediaRecorder Error', error);\r\n }\r\n }\r\n\r\n (function(looper) {\r\n if (!self.manuallyStopped && mediaRecorder && mediaRecorder.state === 'inactive') {\r\n delete config.timeslice;\r\n\r\n // 10 minutes, enough?\r\n mediaRecorder.start(10 * 60 * 1000);\r\n return;\r\n }\r\n\r\n setTimeout(looper, 1000);\r\n })();\r\n\r\n if (mediaRecorder.state !== 'inactive' && mediaRecorder.state !== 'stopped') {\r\n mediaRecorder.stop();\r\n }\r\n };\r\n\r\n if (typeof config.timeSlice === 'number') {\r\n updateTimeStamp();\r\n mediaRecorder.start(config.timeSlice);\r\n } else {\r\n // default is 60 minutes; enough?\r\n // use config => {timeSlice: 1000} otherwise\r\n\r\n mediaRecorder.start(3.6e+6);\r\n }\r\n\r\n if (config.initCallback) {\r\n config.initCallback(); // old code\r\n }\r\n };\r\n\r\n /**\r\n * @property {Array} timestamps - Array of time stamps\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * console.log(recorder.timestamps);\r\n */\r\n this.timestamps = [];\r\n\r\n function updateTimeStamp() {\r\n self.timestamps.push(new Date().getTime());\r\n\r\n if (typeof config.onTimeStamp === 'function') {\r\n config.onTimeStamp(self.timestamps[self.timestamps.length - 1], self.timestamps);\r\n }\r\n }\r\n\r\n function getMimeType(secondObject) {\r\n if (mediaRecorder && mediaRecorder.mimeType) {\r\n return mediaRecorder.mimeType;\r\n }\r\n\r\n return secondObject.mimeType || 'video/webm';\r\n }\r\n\r\n /**\r\n * This method stops recording MediaStream.\r\n * @param {function} callback - Callback function, that is used to pass recorded blob back to the callee.\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n */\r\n this.stop = function(callback) {\r\n callback = callback || function() {};\r\n\r\n self.manuallyStopped = true; // used inside the mediaRecorder.onerror\r\n\r\n if (!mediaRecorder) {\r\n return;\r\n }\r\n\r\n this.recordingCallback = callback;\r\n\r\n if (mediaRecorder.state === 'recording') {\r\n mediaRecorder.stop();\r\n }\r\n\r\n if (typeof config.timeSlice === 'number') {\r\n setTimeout(function() {\r\n self.blob = new Blob(arrayOfBlobs, {\r\n type: getMimeType(config)\r\n });\r\n\r\n self.recordingCallback(self.blob);\r\n }, 100);\r\n }\r\n };\r\n\r\n /**\r\n * This method pauses the recording process.\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * recorder.pause();\r\n */\r\n this.pause = function() {\r\n if (!mediaRecorder) {\r\n return;\r\n }\r\n\r\n if (mediaRecorder.state === 'recording') {\r\n mediaRecorder.pause();\r\n }\r\n };\r\n\r\n /**\r\n * This method resumes the recording process.\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * recorder.resume();\r\n */\r\n this.resume = function() {\r\n if (!mediaRecorder) {\r\n return;\r\n }\r\n\r\n if (mediaRecorder.state === 'paused') {\r\n mediaRecorder.resume();\r\n }\r\n };\r\n\r\n /**\r\n * This method resets currently recorded data.\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * recorder.clearRecordedData();\r\n */\r\n this.clearRecordedData = function() {\r\n if (mediaRecorder && mediaRecorder.state === 'recording') {\r\n self.stop(clearRecordedDataCB);\r\n }\r\n\r\n clearRecordedDataCB();\r\n };\r\n\r\n function clearRecordedDataCB() {\r\n arrayOfBlobs = [];\r\n mediaRecorder = null;\r\n self.timestamps = [];\r\n }\r\n\r\n // Reference to \"MediaRecorder\" object\r\n var mediaRecorder;\r\n\r\n /**\r\n * Access to native MediaRecorder API\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @instance\r\n * @example\r\n * var internal = recorder.getInternalRecorder();\r\n * internal.ondataavailable = function() {}; // override\r\n * internal.stream, internal.onpause, internal.onstop, etc.\r\n * @returns {Object} Returns internal recording object.\r\n */\r\n this.getInternalRecorder = function() {\r\n return mediaRecorder;\r\n };\r\n\r\n function isMediaStreamActive() {\r\n if ('active' in mediaStream) {\r\n if (!mediaStream.active) {\r\n return false;\r\n }\r\n } else if ('ended' in mediaStream) { // old hack\r\n if (mediaStream.ended) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * @property {Blob} blob - Recorded data as \"Blob\" object.\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * recorder.stop(function() {\r\n * var blob = recorder.blob;\r\n * });\r\n */\r\n this.blob = null;\r\n\r\n\r\n /**\r\n * Get MediaRecorder readonly state.\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * var state = recorder.getState();\r\n * @returns {String} Returns recording state.\r\n */\r\n this.getState = function() {\r\n if (!mediaRecorder) {\r\n return 'inactive';\r\n }\r\n\r\n return mediaRecorder.state || 'inactive';\r\n };\r\n\r\n // list of all recording states\r\n var allStates = [];\r\n\r\n /**\r\n * Get MediaRecorder all recording states.\r\n * @method\r\n * @memberof MediaStreamRecorder\r\n * @example\r\n * var state = recorder.getAllStates();\r\n * @returns {Array} Returns all recording states\r\n */\r\n this.getAllStates = function() {\r\n return allStates;\r\n };\r\n\r\n // if any Track within the MediaStream is muted or not enabled at any time, \r\n // the browser will only record black frames \r\n // or silence since that is the content produced by the Track\r\n // so we need to stopRecording as soon as any single track ends.\r\n if (typeof config.checkForInactiveTracks === 'undefined') {\r\n config.checkForInactiveTracks = false; // disable to minimize CPU usage\r\n }\r\n\r\n var self = this;\r\n\r\n // this method checks if media stream is stopped\r\n // or if any track is ended.\r\n (function looper() {\r\n if (!mediaRecorder || config.checkForInactiveTracks === false) {\r\n return;\r\n }\r\n\r\n if (isMediaStreamActive() === false) {\r\n if (!config.disableLogs) {\r\n console.log('MediaStream seems stopped.');\r\n }\r\n self.stop();\r\n return;\r\n }\r\n\r\n setTimeout(looper, 1000); // check every second\r\n })();\r\n\r\n // for debugging\r\n this.name = 'MediaStreamRecorder';\r\n this.toString = function() {\r\n return this.name;\r\n };\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.MediaStreamRecorder = MediaStreamRecorder;\r\n}\r\n\r\n// source code from: http://typedarray.org/wp-content/projects/WebAudioRecorder/script.js\r\n// https://github.com/mattdiamond/Recorderjs#license-mit\r\n// ______________________\r\n// StereoAudioRecorder.js\r\n\r\n/**\r\n * StereoAudioRecorder is a standalone class used by {@link RecordRTC} to bring \"stereo\" audio-recording in chrome.\r\n * @summary JavaScript standalone object for stereo audio recording.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef StereoAudioRecorder\r\n * @class\r\n * @example\r\n * var recorder = new StereoAudioRecorder(MediaStream, {\r\n * sampleRate: 44100,\r\n * bufferSize: 4096\r\n * });\r\n * recorder.record();\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - MediaStream object fetched using getUserMedia API or generated using captureStreamUntilEnded or WebAudio API.\r\n * @param {object} config - {sampleRate: 44100, bufferSize: 4096, numberOfAudioChannels: 1, etc.}\r\n */\r\n\r\nfunction StereoAudioRecorder(mediaStream, config) {\r\n if (!getTracks(mediaStream, 'audio').length) {\r\n throw 'Your stream has no audio tracks.';\r\n }\r\n\r\n config = config || {};\r\n\r\n var self = this;\r\n\r\n // variables\r\n var leftchannel = [];\r\n var rightchannel = [];\r\n var recording = false;\r\n var recordingLength = 0;\r\n var jsAudioNode;\r\n\r\n var numberOfAudioChannels = 2;\r\n\r\n /**\r\n * Set sample rates such as 8K or 16K. Reference: http://stackoverflow.com/a/28977136/552182\r\n * @property {number} desiredSampRate - Desired Bits per sample * 1000\r\n * @memberof StereoAudioRecorder\r\n * @instance\r\n * @example\r\n * var recorder = StereoAudioRecorder(mediaStream, {\r\n * desiredSampRate: 16 * 1000 // bits-per-sample * 1000\r\n * });\r\n */\r\n var desiredSampRate = config.desiredSampRate;\r\n\r\n // backward compatibility\r\n if (config.leftChannel === true) {\r\n numberOfAudioChannels = 1;\r\n }\r\n\r\n if (config.numberOfAudioChannels === 1) {\r\n numberOfAudioChannels = 1;\r\n }\r\n\r\n if (!numberOfAudioChannels || numberOfAudioChannels < 1) {\r\n numberOfAudioChannels = 2;\r\n }\r\n\r\n if (!config.disableLogs) {\r\n console.log('StereoAudioRecorder is set to record number of channels: ' + numberOfAudioChannels);\r\n }\r\n\r\n // if any Track within the MediaStream is muted or not enabled at any time, \r\n // the browser will only record black frames \r\n // or silence since that is the content produced by the Track\r\n // so we need to stopRecording as soon as any single track ends.\r\n if (typeof config.checkForInactiveTracks === 'undefined') {\r\n config.checkForInactiveTracks = true;\r\n }\r\n\r\n function isMediaStreamActive() {\r\n if (config.checkForInactiveTracks === false) {\r\n // always return \"true\"\r\n return true;\r\n }\r\n\r\n if ('active' in mediaStream) {\r\n if (!mediaStream.active) {\r\n return false;\r\n }\r\n } else if ('ended' in mediaStream) { // old hack\r\n if (mediaStream.ended) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * This method records MediaStream.\r\n * @method\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.record();\r\n */\r\n this.record = function() {\r\n if (isMediaStreamActive() === false) {\r\n throw 'Please make sure MediaStream is active.';\r\n }\r\n\r\n resetVariables();\r\n\r\n isAudioProcessStarted = isPaused = false;\r\n recording = true;\r\n\r\n if (typeof config.timeSlice !== 'undefined') {\r\n looper();\r\n }\r\n };\r\n\r\n function mergeLeftRightBuffers(config, callback) {\r\n function mergeAudioBuffers(config, cb) {\r\n var numberOfAudioChannels = config.numberOfAudioChannels;\r\n\r\n // todo: \"slice(0)\" --- is it causes loop? Should be removed?\r\n var leftBuffers = config.leftBuffers.slice(0);\r\n var rightBuffers = config.rightBuffers.slice(0);\r\n var sampleRate = config.sampleRate;\r\n var internalInterleavedLength = config.internalInterleavedLength;\r\n var desiredSampRate = config.desiredSampRate;\r\n\r\n if (numberOfAudioChannels === 2) {\r\n leftBuffers = mergeBuffers(leftBuffers, internalInterleavedLength);\r\n rightBuffers = mergeBuffers(rightBuffers, internalInterleavedLength);\r\n\r\n if (desiredSampRate) {\r\n leftBuffers = interpolateArray(leftBuffers, desiredSampRate, sampleRate);\r\n rightBuffers = interpolateArray(rightBuffers, desiredSampRate, sampleRate);\r\n }\r\n }\r\n\r\n if (numberOfAudioChannels === 1) {\r\n leftBuffers = mergeBuffers(leftBuffers, internalInterleavedLength);\r\n\r\n if (desiredSampRate) {\r\n leftBuffers = interpolateArray(leftBuffers, desiredSampRate, sampleRate);\r\n }\r\n }\r\n\r\n // set sample rate as desired sample rate\r\n if (desiredSampRate) {\r\n sampleRate = desiredSampRate;\r\n }\r\n\r\n // for changing the sampling rate, reference:\r\n // http://stackoverflow.com/a/28977136/552182\r\n function interpolateArray(data, newSampleRate, oldSampleRate) {\r\n var fitCount = Math.round(data.length * (newSampleRate / oldSampleRate));\r\n var newData = [];\r\n var springFactor = Number((data.length - 1) / (fitCount - 1));\r\n newData[0] = data[0];\r\n for (var i = 1; i < fitCount - 1; i++) {\r\n var tmp = i * springFactor;\r\n var before = Number(Math.floor(tmp)).toFixed();\r\n var after = Number(Math.ceil(tmp)).toFixed();\r\n var atPoint = tmp - before;\r\n newData[i] = linearInterpolate(data[before], data[after], atPoint);\r\n }\r\n newData[fitCount - 1] = data[data.length - 1];\r\n return newData;\r\n }\r\n\r\n function linearInterpolate(before, after, atPoint) {\r\n return before + (after - before) * atPoint;\r\n }\r\n\r\n function mergeBuffers(channelBuffer, rLength) {\r\n var result = new Float64Array(rLength);\r\n var offset = 0;\r\n var lng = channelBuffer.length;\r\n\r\n for (var i = 0; i < lng; i++) {\r\n var buffer = channelBuffer[i];\r\n result.set(buffer, offset);\r\n offset += buffer.length;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n function interleave(leftChannel, rightChannel) {\r\n var length = leftChannel.length + rightChannel.length;\r\n\r\n var result = new Float64Array(length);\r\n\r\n var inputIndex = 0;\r\n\r\n for (var index = 0; index < length;) {\r\n result[index++] = leftChannel[inputIndex];\r\n result[index++] = rightChannel[inputIndex];\r\n inputIndex++;\r\n }\r\n return result;\r\n }\r\n\r\n function writeUTFBytes(view, offset, string) {\r\n var lng = string.length;\r\n for (var i = 0; i < lng; i++) {\r\n view.setUint8(offset + i, string.charCodeAt(i));\r\n }\r\n }\r\n\r\n // interleave both channels together\r\n var interleaved;\r\n\r\n if (numberOfAudioChannels === 2) {\r\n interleaved = interleave(leftBuffers, rightBuffers);\r\n }\r\n\r\n if (numberOfAudioChannels === 1) {\r\n interleaved = leftBuffers;\r\n }\r\n\r\n var interleavedLength = interleaved.length;\r\n\r\n // create wav file\r\n var resultingBufferLength = 44 + interleavedLength * 2;\r\n\r\n var buffer = new ArrayBuffer(resultingBufferLength);\r\n\r\n var view = new DataView(buffer);\r\n\r\n // RIFF chunk descriptor/identifier \r\n writeUTFBytes(view, 0, 'RIFF');\r\n\r\n // RIFF chunk length\r\n // changed \"44\" to \"36\" via #401\r\n view.setUint32(4, 36 + interleavedLength * 2, true);\r\n\r\n // RIFF type \r\n writeUTFBytes(view, 8, 'WAVE');\r\n\r\n // format chunk identifier \r\n // FMT sub-chunk\r\n writeUTFBytes(view, 12, 'fmt ');\r\n\r\n // format chunk length \r\n view.setUint32(16, 16, true);\r\n\r\n // sample format (raw)\r\n view.setUint16(20, 1, true);\r\n\r\n // stereo (2 channels)\r\n view.setUint16(22, numberOfAudioChannels, true);\r\n\r\n // sample rate \r\n view.setUint32(24, sampleRate, true);\r\n\r\n // byte rate (sample rate * block align)\r\n view.setUint32(28, sampleRate * numberOfAudioChannels * 2, true);\r\n\r\n // block align (channel count * bytes per sample) \r\n view.setUint16(32, numberOfAudioChannels * 2, true);\r\n\r\n // bits per sample \r\n view.setUint16(34, 16, true);\r\n\r\n // data sub-chunk\r\n // data chunk identifier \r\n writeUTFBytes(view, 36, 'data');\r\n\r\n // data chunk length \r\n view.setUint32(40, interleavedLength * 2, true);\r\n\r\n // write the PCM samples\r\n var lng = interleavedLength;\r\n var index = 44;\r\n var volume = 1;\r\n for (var i = 0; i < lng; i++) {\r\n view.setInt16(index, interleaved[i] * (0x7FFF * volume), true);\r\n index += 2;\r\n }\r\n\r\n if (cb) {\r\n return cb({\r\n buffer: buffer,\r\n view: view\r\n });\r\n }\r\n\r\n postMessage({\r\n buffer: buffer,\r\n view: view\r\n });\r\n }\r\n\r\n if (config.noWorker) {\r\n mergeAudioBuffers(config, function(data) {\r\n callback(data.buffer, data.view);\r\n });\r\n return;\r\n }\r\n\r\n\r\n var webWorker = processInWebWorker(mergeAudioBuffers);\r\n\r\n webWorker.onmessage = function(event) {\r\n callback(event.data.buffer, event.data.view);\r\n\r\n // release memory\r\n URL.revokeObjectURL(webWorker.workerURL);\r\n\r\n // kill webworker (or Chrome will kill your page after ~25 calls)\r\n webWorker.terminate();\r\n };\r\n\r\n webWorker.postMessage(config);\r\n }\r\n\r\n function processInWebWorker(_function) {\r\n var workerURL = URL.createObjectURL(new Blob([_function.toString(),\r\n ';this.onmessage = function (eee) {' + _function.name + '(eee.data);}'\r\n ], {\r\n type: 'application/javascript'\r\n }));\r\n\r\n var worker = new Worker(workerURL);\r\n worker.workerURL = workerURL;\r\n return worker;\r\n }\r\n\r\n /**\r\n * This method stops recording MediaStream.\r\n * @param {function} callback - Callback function, that is used to pass recorded blob back to the callee.\r\n * @method\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n */\r\n this.stop = function(callback) {\r\n callback = callback || function() {};\r\n\r\n // stop recording\r\n recording = false;\r\n\r\n mergeLeftRightBuffers({\r\n desiredSampRate: desiredSampRate,\r\n sampleRate: sampleRate,\r\n numberOfAudioChannels: numberOfAudioChannels,\r\n internalInterleavedLength: recordingLength,\r\n leftBuffers: leftchannel,\r\n rightBuffers: numberOfAudioChannels === 1 ? [] : rightchannel,\r\n noWorker: config.noWorker\r\n }, function(buffer, view) {\r\n /**\r\n * @property {Blob} blob - The recorded blob object.\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.stop(function(){\r\n * var blob = recorder.blob;\r\n * });\r\n */\r\n self.blob = new Blob([view], {\r\n type: 'audio/wav'\r\n });\r\n\r\n /**\r\n * @property {ArrayBuffer} buffer - The recorded buffer object.\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.stop(function(){\r\n * var buffer = recorder.buffer;\r\n * });\r\n */\r\n self.buffer = new ArrayBuffer(view.buffer.byteLength);\r\n\r\n /**\r\n * @property {DataView} view - The recorded data-view object.\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.stop(function(){\r\n * var view = recorder.view;\r\n * });\r\n */\r\n self.view = view;\r\n\r\n self.sampleRate = desiredSampRate || sampleRate;\r\n self.bufferSize = bufferSize;\r\n\r\n // recorded audio length\r\n self.length = recordingLength;\r\n\r\n isAudioProcessStarted = false;\r\n\r\n if (callback) {\r\n callback(self.blob);\r\n }\r\n });\r\n };\r\n\r\n if (typeof RecordRTC.Storage === 'undefined') {\r\n RecordRTC.Storage = {\r\n AudioContextConstructor: null,\r\n AudioContext: window.AudioContext || window.webkitAudioContext\r\n };\r\n }\r\n\r\n if (!RecordRTC.Storage.AudioContextConstructor || RecordRTC.Storage.AudioContextConstructor.state === 'closed') {\r\n RecordRTC.Storage.AudioContextConstructor = new RecordRTC.Storage.AudioContext();\r\n }\r\n\r\n var context = RecordRTC.Storage.AudioContextConstructor;\r\n\r\n // creates an audio node from the microphone incoming stream\r\n var audioInput = context.createMediaStreamSource(mediaStream);\r\n\r\n var legalBufferValues = [0, 256, 512, 1024, 2048, 4096, 8192, 16384];\r\n\r\n /**\r\n * From the spec: This value controls how frequently the audioprocess event is\r\n * dispatched and how many sample-frames need to be processed each call.\r\n * Lower values for buffer size will result in a lower (better) latency.\r\n * Higher values will be necessary to avoid audio breakup and glitches\r\n * The size of the buffer (in sample-frames) which needs to\r\n * be processed each time onprocessaudio is called.\r\n * Legal values are (256, 512, 1024, 2048, 4096, 8192, 16384).\r\n * @property {number} bufferSize - Buffer-size for how frequently the audioprocess event is dispatched.\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder = new StereoAudioRecorder(mediaStream, {\r\n * bufferSize: 4096\r\n * });\r\n */\r\n\r\n // \"0\" means, let chrome decide the most accurate buffer-size for current platform.\r\n var bufferSize = typeof config.bufferSize === 'undefined' ? 4096 : config.bufferSize;\r\n\r\n if (legalBufferValues.indexOf(bufferSize) === -1) {\r\n if (!config.disableLogs) {\r\n console.log('Legal values for buffer-size are ' + JSON.stringify(legalBufferValues, null, '\\t'));\r\n }\r\n }\r\n\r\n if (context.createJavaScriptNode) {\r\n jsAudioNode = context.createJavaScriptNode(bufferSize, numberOfAudioChannels, numberOfAudioChannels);\r\n } else if (context.createScriptProcessor) {\r\n jsAudioNode = context.createScriptProcessor(bufferSize, numberOfAudioChannels, numberOfAudioChannels);\r\n } else {\r\n throw 'WebAudio API has no support on this browser.';\r\n }\r\n\r\n // connect the stream to the script processor\r\n audioInput.connect(jsAudioNode);\r\n\r\n if (!config.bufferSize) {\r\n bufferSize = jsAudioNode.bufferSize; // device buffer-size\r\n }\r\n\r\n /**\r\n * The sample rate (in sample-frames per second) at which the\r\n * AudioContext handles audio. It is assumed that all AudioNodes\r\n * in the context run at this rate. In making this assumption,\r\n * sample-rate converters or \"varispeed\" processors are not supported\r\n * in real-time processing.\r\n * The sampleRate parameter describes the sample-rate of the\r\n * linear PCM audio data in the buffer in sample-frames per second.\r\n * An implementation must support sample-rates in at least\r\n * the range 22050 to 96000.\r\n * @property {number} sampleRate - Buffer-size for how frequently the audioprocess event is dispatched.\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder = new StereoAudioRecorder(mediaStream, {\r\n * sampleRate: 44100\r\n * });\r\n */\r\n var sampleRate = typeof config.sampleRate !== 'undefined' ? config.sampleRate : context.sampleRate || 44100;\r\n\r\n if (sampleRate < 22050 || sampleRate > 96000) {\r\n // Ref: http://stackoverflow.com/a/26303918/552182\r\n if (!config.disableLogs) {\r\n console.log('sample-rate must be under range 22050 and 96000.');\r\n }\r\n }\r\n\r\n if (!config.disableLogs) {\r\n if (config.desiredSampRate) {\r\n console.log('Desired sample-rate: ' + config.desiredSampRate);\r\n }\r\n }\r\n\r\n var isPaused = false;\r\n /**\r\n * This method pauses the recording process.\r\n * @method\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.pause();\r\n */\r\n this.pause = function() {\r\n isPaused = true;\r\n };\r\n\r\n /**\r\n * This method resumes the recording process.\r\n * @method\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.resume();\r\n */\r\n this.resume = function() {\r\n if (isMediaStreamActive() === false) {\r\n throw 'Please make sure MediaStream is active.';\r\n }\r\n\r\n if (!recording) {\r\n if (!config.disableLogs) {\r\n console.log('Seems recording has been restarted.');\r\n }\r\n this.record();\r\n return;\r\n }\r\n\r\n isPaused = false;\r\n };\r\n\r\n /**\r\n * This method resets currently recorded data.\r\n * @method\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.clearRecordedData();\r\n */\r\n this.clearRecordedData = function() {\r\n config.checkForInactiveTracks = false;\r\n\r\n if (recording) {\r\n this.stop(clearRecordedDataCB);\r\n }\r\n\r\n clearRecordedDataCB();\r\n };\r\n\r\n function resetVariables() {\r\n leftchannel = [];\r\n rightchannel = [];\r\n recordingLength = 0;\r\n isAudioProcessStarted = false;\r\n recording = false;\r\n isPaused = false;\r\n context = null;\r\n\r\n self.leftchannel = leftchannel;\r\n self.rightchannel = rightchannel;\r\n self.numberOfAudioChannels = numberOfAudioChannels;\r\n self.desiredSampRate = desiredSampRate;\r\n self.sampleRate = sampleRate;\r\n self.recordingLength = recordingLength;\r\n\r\n intervalsBasedBuffers = {\r\n left: [],\r\n right: [],\r\n recordingLength: 0\r\n };\r\n }\r\n\r\n function clearRecordedDataCB() {\r\n if (jsAudioNode) {\r\n jsAudioNode.onaudioprocess = null;\r\n jsAudioNode.disconnect();\r\n jsAudioNode = null;\r\n }\r\n\r\n if (audioInput) {\r\n audioInput.disconnect();\r\n audioInput = null;\r\n }\r\n\r\n resetVariables();\r\n }\r\n\r\n // for debugging\r\n this.name = 'StereoAudioRecorder';\r\n this.toString = function() {\r\n return this.name;\r\n };\r\n\r\n var isAudioProcessStarted = false;\r\n\r\n function onAudioProcessDataAvailable(e) {\r\n if (isPaused) {\r\n return;\r\n }\r\n\r\n if (isMediaStreamActive() === false) {\r\n if (!config.disableLogs) {\r\n console.log('MediaStream seems stopped.');\r\n }\r\n jsAudioNode.disconnect();\r\n recording = false;\r\n }\r\n\r\n if (!recording) {\r\n if (audioInput) {\r\n audioInput.disconnect();\r\n audioInput = null;\r\n }\r\n return;\r\n }\r\n\r\n /**\r\n * This method is called on \"onaudioprocess\" event's first invocation.\r\n * @method {function} onAudioProcessStarted\r\n * @memberof StereoAudioRecorder\r\n * @example\r\n * recorder.onAudioProcessStarted: function() { };\r\n */\r\n if (!isAudioProcessStarted) {\r\n isAudioProcessStarted = true;\r\n if (config.onAudioProcessStarted) {\r\n config.onAudioProcessStarted();\r\n }\r\n\r\n if (config.initCallback) {\r\n config.initCallback();\r\n }\r\n }\r\n\r\n var left = e.inputBuffer.getChannelData(0);\r\n\r\n // we clone the samples\r\n var chLeft = new Float32Array(left);\r\n leftchannel.push(chLeft);\r\n\r\n if (numberOfAudioChannels === 2) {\r\n var right = e.inputBuffer.getChannelData(1);\r\n var chRight = new Float32Array(right);\r\n rightchannel.push(chRight);\r\n }\r\n\r\n recordingLength += bufferSize;\r\n\r\n // export raw PCM\r\n self.recordingLength = recordingLength;\r\n\r\n if (typeof config.timeSlice !== 'undefined') {\r\n intervalsBasedBuffers.recordingLength += bufferSize;\r\n intervalsBasedBuffers.left.push(chLeft);\r\n\r\n if (numberOfAudioChannels === 2) {\r\n intervalsBasedBuffers.right.push(chRight);\r\n }\r\n }\r\n }\r\n\r\n jsAudioNode.onaudioprocess = onAudioProcessDataAvailable;\r\n\r\n // to prevent self audio to be connected with speakers\r\n if (context.createMediaStreamDestination) {\r\n jsAudioNode.connect(context.createMediaStreamDestination());\r\n } else {\r\n jsAudioNode.connect(context.destination);\r\n }\r\n\r\n // export raw PCM\r\n this.leftchannel = leftchannel;\r\n this.rightchannel = rightchannel;\r\n this.numberOfAudioChannels = numberOfAudioChannels;\r\n this.desiredSampRate = desiredSampRate;\r\n this.sampleRate = sampleRate;\r\n self.recordingLength = recordingLength;\r\n\r\n // helper for intervals based blobs\r\n var intervalsBasedBuffers = {\r\n left: [],\r\n right: [],\r\n recordingLength: 0\r\n };\r\n\r\n // this looper is used to support intervals based blobs (via timeSlice+ondataavailable)\r\n function looper() {\r\n if (!recording || typeof config.ondataavailable !== 'function' || typeof config.timeSlice === 'undefined') {\r\n return;\r\n }\r\n\r\n if (intervalsBasedBuffers.left.length) {\r\n mergeLeftRightBuffers({\r\n desiredSampRate: desiredSampRate,\r\n sampleRate: sampleRate,\r\n numberOfAudioChannels: numberOfAudioChannels,\r\n internalInterleavedLength: intervalsBasedBuffers.recordingLength,\r\n leftBuffers: intervalsBasedBuffers.left,\r\n rightBuffers: numberOfAudioChannels === 1 ? [] : intervalsBasedBuffers.right\r\n }, function(buffer, view) {\r\n var blob = new Blob([view], {\r\n type: 'audio/wav'\r\n });\r\n config.ondataavailable(blob);\r\n\r\n setTimeout(looper, config.timeSlice);\r\n });\r\n\r\n intervalsBasedBuffers = {\r\n left: [],\r\n right: [],\r\n recordingLength: 0\r\n };\r\n } else {\r\n setTimeout(looper, config.timeSlice);\r\n }\r\n }\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.StereoAudioRecorder = StereoAudioRecorder;\r\n}\r\n\r\n// _________________\r\n// CanvasRecorder.js\r\n\r\n/**\r\n * CanvasRecorder is a standalone class used by {@link RecordRTC} to bring HTML5-Canvas recording into video WebM. It uses HTML2Canvas library and runs top over {@link Whammy}.\r\n * @summary HTML2Canvas recording into video WebM.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef CanvasRecorder\r\n * @class\r\n * @example\r\n * var recorder = new CanvasRecorder(htmlElement, { disableLogs: true, useWhammyRecorder: true });\r\n * recorder.record();\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {HTMLElement} htmlElement - querySelector/getElementById/getElementsByTagName[0]/etc.\r\n * @param {object} config - {disableLogs:true, initCallback: function}\r\n */\r\n\r\nfunction CanvasRecorder(htmlElement, config) {\r\n if (typeof html2canvas === 'undefined') {\r\n throw 'Please link: https://www.webrtc-experiment.com/screenshot.js';\r\n }\r\n\r\n config = config || {};\r\n if (!config.frameInterval) {\r\n config.frameInterval = 10;\r\n }\r\n\r\n // via DetectRTC.js\r\n var isCanvasSupportsStreamCapturing = false;\r\n ['captureStream', 'mozCaptureStream', 'webkitCaptureStream'].forEach(function(item) {\r\n if (item in document.createElement('canvas')) {\r\n isCanvasSupportsStreamCapturing = true;\r\n }\r\n });\r\n\r\n var _isChrome = (!!window.webkitRTCPeerConnection || !!window.webkitGetUserMedia) && !!window.chrome;\r\n\r\n var chromeVersion = 50;\r\n var matchArray = navigator.userAgent.match(/Chrom(e|ium)\\/([0-9]+)\\./);\r\n if (_isChrome && matchArray && matchArray[2]) {\r\n chromeVersion = parseInt(matchArray[2], 10);\r\n }\r\n\r\n if (_isChrome && chromeVersion < 52) {\r\n isCanvasSupportsStreamCapturing = false;\r\n }\r\n\r\n if (config.useWhammyRecorder) {\r\n isCanvasSupportsStreamCapturing = false;\r\n }\r\n\r\n var globalCanvas, mediaStreamRecorder;\r\n\r\n if (isCanvasSupportsStreamCapturing) {\r\n if (!config.disableLogs) {\r\n console.log('Your browser supports both MediRecorder API and canvas.captureStream!');\r\n }\r\n\r\n if (htmlElement instanceof HTMLCanvasElement) {\r\n globalCanvas = htmlElement;\r\n } else if (htmlElement instanceof CanvasRenderingContext2D) {\r\n globalCanvas = htmlElement.canvas;\r\n } else {\r\n throw 'Please pass either HTMLCanvasElement or CanvasRenderingContext2D.';\r\n }\r\n } else if (!!navigator.mozGetUserMedia) {\r\n if (!config.disableLogs) {\r\n console.error('Canvas recording is NOT supported in Firefox.');\r\n }\r\n }\r\n\r\n var isRecording;\r\n\r\n /**\r\n * This method records Canvas.\r\n * @method\r\n * @memberof CanvasRecorder\r\n * @example\r\n * recorder.record();\r\n */\r\n this.record = function() {\r\n isRecording = true;\r\n\r\n if (isCanvasSupportsStreamCapturing && !config.useWhammyRecorder) {\r\n // CanvasCaptureMediaStream\r\n var canvasMediaStream;\r\n if ('captureStream' in globalCanvas) {\r\n canvasMediaStream = globalCanvas.captureStream(25); // 25 FPS\r\n } else if ('mozCaptureStream' in globalCanvas) {\r\n canvasMediaStream = globalCanvas.mozCaptureStream(25);\r\n } else if ('webkitCaptureStream' in globalCanvas) {\r\n canvasMediaStream = globalCanvas.webkitCaptureStream(25);\r\n }\r\n\r\n try {\r\n var mdStream = new MediaStream();\r\n mdStream.addTrack(getTracks(canvasMediaStream, 'video')[0]);\r\n canvasMediaStream = mdStream;\r\n } catch (e) {}\r\n\r\n if (!canvasMediaStream) {\r\n throw 'captureStream API are NOT available.';\r\n }\r\n\r\n // Note: Jan 18, 2016 status is that, \r\n // Firefox MediaRecorder API can't record CanvasCaptureMediaStream object.\r\n mediaStreamRecorder = new MediaStreamRecorder(canvasMediaStream, {\r\n mimeType: config.mimeType || 'video/webm'\r\n });\r\n mediaStreamRecorder.record();\r\n } else {\r\n whammy.frames = [];\r\n lastTime = new Date().getTime();\r\n drawCanvasFrame();\r\n }\r\n\r\n if (config.initCallback) {\r\n config.initCallback();\r\n }\r\n };\r\n\r\n this.getWebPImages = function(callback) {\r\n if (htmlElement.nodeName.toLowerCase() !== 'canvas') {\r\n callback();\r\n return;\r\n }\r\n\r\n var framesLength = whammy.frames.length;\r\n whammy.frames.forEach(function(frame, idx) {\r\n var framesRemaining = framesLength - idx;\r\n if (!config.disableLogs) {\r\n console.log(framesRemaining + '/' + framesLength + ' frames remaining');\r\n }\r\n\r\n if (config.onEncodingCallback) {\r\n config.onEncodingCallback(framesRemaining, framesLength);\r\n }\r\n\r\n var webp = frame.image.toDataURL('image/webp', 1);\r\n whammy.frames[idx].image = webp;\r\n });\r\n\r\n if (!config.disableLogs) {\r\n console.log('Generating WebM');\r\n }\r\n\r\n callback();\r\n };\r\n\r\n /**\r\n * This method stops recording Canvas.\r\n * @param {function} callback - Callback function, that is used to pass recorded blob back to the callee.\r\n * @method\r\n * @memberof CanvasRecorder\r\n * @example\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n */\r\n this.stop = function(callback) {\r\n isRecording = false;\r\n\r\n var that = this;\r\n\r\n if (isCanvasSupportsStreamCapturing && mediaStreamRecorder) {\r\n mediaStreamRecorder.stop(callback);\r\n return;\r\n }\r\n\r\n this.getWebPImages(function() {\r\n /**\r\n * @property {Blob} blob - Recorded frames in video/webm blob.\r\n * @memberof CanvasRecorder\r\n * @example\r\n * recorder.stop(function() {\r\n * var blob = recorder.blob;\r\n * });\r\n */\r\n whammy.compile(function(blob) {\r\n if (!config.disableLogs) {\r\n console.log('Recording finished!');\r\n }\r\n\r\n that.blob = blob;\r\n\r\n if (that.blob.forEach) {\r\n that.blob = new Blob([], {\r\n type: 'video/webm'\r\n });\r\n }\r\n\r\n if (callback) {\r\n callback(that.blob);\r\n }\r\n\r\n whammy.frames = [];\r\n });\r\n });\r\n };\r\n\r\n var isPausedRecording = false;\r\n\r\n /**\r\n * This method pauses the recording process.\r\n * @method\r\n * @memberof CanvasRecorder\r\n * @example\r\n * recorder.pause();\r\n */\r\n this.pause = function() {\r\n isPausedRecording = true;\r\n\r\n if (mediaStreamRecorder instanceof MediaStreamRecorder) {\r\n mediaStreamRecorder.pause();\r\n return;\r\n }\r\n };\r\n\r\n /**\r\n * This method resumes the recording process.\r\n * @method\r\n * @memberof CanvasRecorder\r\n * @example\r\n * recorder.resume();\r\n */\r\n this.resume = function() {\r\n isPausedRecording = false;\r\n\r\n if (mediaStreamRecorder instanceof MediaStreamRecorder) {\r\n mediaStreamRecorder.resume();\r\n return;\r\n }\r\n\r\n if (!isRecording) {\r\n this.record();\r\n }\r\n };\r\n\r\n /**\r\n * This method resets currently recorded data.\r\n * @method\r\n * @memberof CanvasRecorder\r\n * @example\r\n * recorder.clearRecordedData();\r\n */\r\n this.clearRecordedData = function() {\r\n if (isRecording) {\r\n this.stop(clearRecordedDataCB);\r\n }\r\n clearRecordedDataCB();\r\n };\r\n\r\n function clearRecordedDataCB() {\r\n whammy.frames = [];\r\n isRecording = false;\r\n isPausedRecording = false;\r\n }\r\n\r\n // for debugging\r\n this.name = 'CanvasRecorder';\r\n this.toString = function() {\r\n return this.name;\r\n };\r\n\r\n function cloneCanvas() {\r\n //create a new canvas\r\n var newCanvas = document.createElement('canvas');\r\n var context = newCanvas.getContext('2d');\r\n\r\n //set dimensions\r\n newCanvas.width = htmlElement.width;\r\n newCanvas.height = htmlElement.height;\r\n\r\n //apply the old canvas to the new one\r\n context.drawImage(htmlElement, 0, 0);\r\n\r\n //return the new canvas\r\n return newCanvas;\r\n }\r\n\r\n function drawCanvasFrame() {\r\n if (isPausedRecording) {\r\n lastTime = new Date().getTime();\r\n return setTimeout(drawCanvasFrame, 500);\r\n }\r\n\r\n if (htmlElement.nodeName.toLowerCase() === 'canvas') {\r\n var duration = new Date().getTime() - lastTime;\r\n // via #206, by Jack i.e. @Seymourr\r\n lastTime = new Date().getTime();\r\n\r\n whammy.frames.push({\r\n image: cloneCanvas(),\r\n duration: duration\r\n });\r\n\r\n if (isRecording) {\r\n setTimeout(drawCanvasFrame, config.frameInterval);\r\n }\r\n return;\r\n }\r\n\r\n html2canvas(htmlElement, {\r\n grabMouse: typeof config.showMousePointer === 'undefined' || config.showMousePointer,\r\n onrendered: function(canvas) {\r\n var duration = new Date().getTime() - lastTime;\r\n if (!duration) {\r\n return setTimeout(drawCanvasFrame, config.frameInterval);\r\n }\r\n\r\n // via #206, by Jack i.e. @Seymourr\r\n lastTime = new Date().getTime();\r\n\r\n whammy.frames.push({\r\n image: canvas.toDataURL('image/webp', 1),\r\n duration: duration\r\n });\r\n\r\n if (isRecording) {\r\n setTimeout(drawCanvasFrame, config.frameInterval);\r\n }\r\n }\r\n });\r\n }\r\n\r\n var lastTime = new Date().getTime();\r\n\r\n var whammy = new Whammy.Video(100);\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.CanvasRecorder = CanvasRecorder;\r\n}\n\r\n// _________________\r\n// WhammyRecorder.js\r\n\r\n/**\r\n * WhammyRecorder is a standalone class used by {@link RecordRTC} to bring video recording in Chrome. It runs top over {@link Whammy}.\r\n * @summary Video recording feature in Chrome.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef WhammyRecorder\r\n * @class\r\n * @example\r\n * var recorder = new WhammyRecorder(mediaStream);\r\n * recorder.record();\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - MediaStream object fetched using getUserMedia API or generated using captureStreamUntilEnded or WebAudio API.\r\n * @param {object} config - {disableLogs: true, initCallback: function, video: HTMLVideoElement, etc.}\r\n */\r\n\r\nfunction WhammyRecorder(mediaStream, config) {\r\n\r\n config = config || {};\r\n\r\n if (!config.frameInterval) {\r\n config.frameInterval = 10;\r\n }\r\n\r\n if (!config.disableLogs) {\r\n console.log('Using frames-interval:', config.frameInterval);\r\n }\r\n\r\n /**\r\n * This method records video.\r\n * @method\r\n * @memberof WhammyRecorder\r\n * @example\r\n * recorder.record();\r\n */\r\n this.record = function() {\r\n if (!config.width) {\r\n config.width = 320;\r\n }\r\n\r\n if (!config.height) {\r\n config.height = 240;\r\n }\r\n\r\n if (!config.video) {\r\n config.video = {\r\n width: config.width,\r\n height: config.height\r\n };\r\n }\r\n\r\n if (!config.canvas) {\r\n config.canvas = {\r\n width: config.width,\r\n height: config.height\r\n };\r\n }\r\n\r\n canvas.width = config.canvas.width || 320;\r\n canvas.height = config.canvas.height || 240;\r\n\r\n context = canvas.getContext('2d');\r\n\r\n // setting defaults\r\n if (config.video && config.video instanceof HTMLVideoElement) {\r\n video = config.video.cloneNode();\r\n\r\n if (config.initCallback) {\r\n config.initCallback();\r\n }\r\n } else {\r\n video = document.createElement('video');\r\n\r\n setSrcObject(mediaStream, video);\r\n\r\n video.onloadedmetadata = function() { // \"onloadedmetadata\" may NOT work in FF?\r\n if (config.initCallback) {\r\n config.initCallback();\r\n }\r\n };\r\n\r\n video.width = config.video.width;\r\n video.height = config.video.height;\r\n }\r\n\r\n video.muted = true;\r\n video.play();\r\n\r\n lastTime = new Date().getTime();\r\n whammy = new Whammy.Video();\r\n\r\n if (!config.disableLogs) {\r\n console.log('canvas resolutions', canvas.width, '*', canvas.height);\r\n console.log('video width/height', video.width || canvas.width, '*', video.height || canvas.height);\r\n }\r\n\r\n drawFrames(config.frameInterval);\r\n };\r\n\r\n /**\r\n * Draw and push frames to Whammy\r\n * @param {integer} frameInterval - set minimum interval (in milliseconds) between each time we push a frame to Whammy\r\n */\r\n function drawFrames(frameInterval) {\r\n frameInterval = typeof frameInterval !== 'undefined' ? frameInterval : 10;\r\n\r\n var duration = new Date().getTime() - lastTime;\r\n if (!duration) {\r\n return setTimeout(drawFrames, frameInterval, frameInterval);\r\n }\r\n\r\n if (isPausedRecording) {\r\n lastTime = new Date().getTime();\r\n return setTimeout(drawFrames, 100);\r\n }\r\n\r\n // via #206, by Jack i.e. @Seymourr\r\n lastTime = new Date().getTime();\r\n\r\n if (video.paused) {\r\n // via: https://github.com/muaz-khan/WebRTC-Experiment/pull/316\r\n // Tweak for Android Chrome\r\n video.play();\r\n }\r\n\r\n context.drawImage(video, 0, 0, canvas.width, canvas.height);\r\n whammy.frames.push({\r\n duration: duration,\r\n image: canvas.toDataURL('image/webp')\r\n });\r\n\r\n if (!isStopDrawing) {\r\n setTimeout(drawFrames, frameInterval, frameInterval);\r\n }\r\n }\r\n\r\n function asyncLoop(o) {\r\n var i = -1,\r\n length = o.length;\r\n\r\n (function loop() {\r\n i++;\r\n if (i === length) {\r\n o.callback();\r\n return;\r\n }\r\n\r\n // \"setTimeout\" added by Jim McLeod\r\n setTimeout(function() {\r\n o.functionToLoop(loop, i);\r\n }, 1);\r\n })();\r\n }\r\n\r\n\r\n /**\r\n * remove black frames from the beginning to the specified frame\r\n * @param {Array} _frames - array of frames to be checked\r\n * @param {number} _framesToCheck - number of frame until check will be executed (-1 - will drop all frames until frame not matched will be found)\r\n * @param {number} _pixTolerance - 0 - very strict (only black pixel color) ; 1 - all\r\n * @param {number} _frameTolerance - 0 - very strict (only black frame color) ; 1 - all\r\n * @returns {Array} - array of frames\r\n */\r\n // pull#293 by @volodalexey\r\n function dropBlackFrames(_frames, _framesToCheck, _pixTolerance, _frameTolerance, callback) {\r\n var localCanvas = document.createElement('canvas');\r\n localCanvas.width = canvas.width;\r\n localCanvas.height = canvas.height;\r\n var context2d = localCanvas.getContext('2d');\r\n var resultFrames = [];\r\n\r\n var checkUntilNotBlack = _framesToCheck === -1;\r\n var endCheckFrame = (_framesToCheck && _framesToCheck > 0 && _framesToCheck <= _frames.length) ?\r\n _framesToCheck : _frames.length;\r\n var sampleColor = {\r\n r: 0,\r\n g: 0,\r\n b: 0\r\n };\r\n var maxColorDifference = Math.sqrt(\r\n Math.pow(255, 2) +\r\n Math.pow(255, 2) +\r\n Math.pow(255, 2)\r\n );\r\n var pixTolerance = _pixTolerance && _pixTolerance >= 0 && _pixTolerance <= 1 ? _pixTolerance : 0;\r\n var frameTolerance = _frameTolerance && _frameTolerance >= 0 && _frameTolerance <= 1 ? _frameTolerance : 0;\r\n var doNotCheckNext = false;\r\n\r\n asyncLoop({\r\n length: endCheckFrame,\r\n functionToLoop: function(loop, f) {\r\n var matchPixCount, endPixCheck, maxPixCount;\r\n\r\n var finishImage = function() {\r\n if (!doNotCheckNext && maxPixCount - matchPixCount <= maxPixCount * frameTolerance) {\r\n // console.log('removed black frame : ' + f + ' ; frame duration ' + _frames[f].duration);\r\n } else {\r\n // console.log('frame is passed : ' + f);\r\n if (checkUntilNotBlack) {\r\n doNotCheckNext = true;\r\n }\r\n resultFrames.push(_frames[f]);\r\n }\r\n loop();\r\n };\r\n\r\n if (!doNotCheckNext) {\r\n var image = new Image();\r\n image.onload = function() {\r\n context2d.drawImage(image, 0, 0, canvas.width, canvas.height);\r\n var imageData = context2d.getImageData(0, 0, canvas.width, canvas.height);\r\n matchPixCount = 0;\r\n endPixCheck = imageData.data.length;\r\n maxPixCount = imageData.data.length / 4;\r\n\r\n for (var pix = 0; pix < endPixCheck; pix += 4) {\r\n var currentColor = {\r\n r: imageData.data[pix],\r\n g: imageData.data[pix + 1],\r\n b: imageData.data[pix + 2]\r\n };\r\n var colorDifference = Math.sqrt(\r\n Math.pow(currentColor.r - sampleColor.r, 2) +\r\n Math.pow(currentColor.g - sampleColor.g, 2) +\r\n Math.pow(currentColor.b - sampleColor.b, 2)\r\n );\r\n // difference in color it is difference in color vectors (r1,g1,b1) <=> (r2,g2,b2)\r\n if (colorDifference <= maxColorDifference * pixTolerance) {\r\n matchPixCount++;\r\n }\r\n }\r\n finishImage();\r\n };\r\n image.src = _frames[f].image;\r\n } else {\r\n finishImage();\r\n }\r\n },\r\n callback: function() {\r\n resultFrames = resultFrames.concat(_frames.slice(endCheckFrame));\r\n\r\n if (resultFrames.length <= 0) {\r\n // at least one last frame should be available for next manipulation\r\n // if total duration of all frames will be < 1000 than ffmpeg doesn't work well...\r\n resultFrames.push(_frames[_frames.length - 1]);\r\n }\r\n callback(resultFrames);\r\n }\r\n });\r\n }\r\n\r\n var isStopDrawing = false;\r\n\r\n /**\r\n * This method stops recording video.\r\n * @param {function} callback - Callback function, that is used to pass recorded blob back to the callee.\r\n * @method\r\n * @memberof WhammyRecorder\r\n * @example\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n */\r\n this.stop = function(callback) {\r\n callback = callback || function() {};\r\n\r\n isStopDrawing = true;\r\n\r\n var _this = this;\r\n // analyse of all frames takes some time!\r\n setTimeout(function() {\r\n // e.g. dropBlackFrames(frames, 10, 1, 1) - will cut all 10 frames\r\n // e.g. dropBlackFrames(frames, 10, 0.5, 0.5) - will analyse 10 frames\r\n // e.g. dropBlackFrames(frames, 10) === dropBlackFrames(frames, 10, 0, 0) - will analyse 10 frames with strict black color\r\n dropBlackFrames(whammy.frames, -1, null, null, function(frames) {\r\n whammy.frames = frames;\r\n\r\n // to display advertisement images!\r\n if (config.advertisement && config.advertisement.length) {\r\n whammy.frames = config.advertisement.concat(whammy.frames);\r\n }\r\n\r\n /**\r\n * @property {Blob} blob - Recorded frames in video/webm blob.\r\n * @memberof WhammyRecorder\r\n * @example\r\n * recorder.stop(function() {\r\n * var blob = recorder.blob;\r\n * });\r\n */\r\n whammy.compile(function(blob) {\r\n _this.blob = blob;\r\n\r\n if (_this.blob.forEach) {\r\n _this.blob = new Blob([], {\r\n type: 'video/webm'\r\n });\r\n }\r\n\r\n if (callback) {\r\n callback(_this.blob);\r\n }\r\n });\r\n });\r\n }, 10);\r\n };\r\n\r\n var isPausedRecording = false;\r\n\r\n /**\r\n * This method pauses the recording process.\r\n * @method\r\n * @memberof WhammyRecorder\r\n * @example\r\n * recorder.pause();\r\n */\r\n this.pause = function() {\r\n isPausedRecording = true;\r\n };\r\n\r\n /**\r\n * This method resumes the recording process.\r\n * @method\r\n * @memberof WhammyRecorder\r\n * @example\r\n * recorder.resume();\r\n */\r\n this.resume = function() {\r\n isPausedRecording = false;\r\n\r\n if (isStopDrawing) {\r\n this.record();\r\n }\r\n };\r\n\r\n /**\r\n * This method resets currently recorded data.\r\n * @method\r\n * @memberof WhammyRecorder\r\n * @example\r\n * recorder.clearRecordedData();\r\n */\r\n this.clearRecordedData = function() {\r\n if (!isStopDrawing) {\r\n this.stop(clearRecordedDataCB);\r\n }\r\n clearRecordedDataCB();\r\n };\r\n\r\n function clearRecordedDataCB() {\r\n whammy.frames = [];\r\n isStopDrawing = true;\r\n isPausedRecording = false;\r\n }\r\n\r\n // for debugging\r\n this.name = 'WhammyRecorder';\r\n this.toString = function() {\r\n return this.name;\r\n };\r\n\r\n var canvas = document.createElement('canvas');\r\n var context = canvas.getContext('2d');\r\n\r\n var video;\r\n var lastTime;\r\n var whammy;\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.WhammyRecorder = WhammyRecorder;\r\n}\n\r\n// https://github.com/antimatter15/whammy/blob/master/LICENSE\r\n// _________\r\n// Whammy.js\r\n\r\n// todo: Firefox now supports webp for webm containers!\r\n// their MediaRecorder implementation works well!\r\n// should we provide an option to record via Whammy.js or MediaRecorder API is a better solution?\r\n\r\n/**\r\n * Whammy is a standalone class used by {@link RecordRTC} to bring video recording in Chrome. It is written by {@link https://github.com/antimatter15|antimatter15}\r\n * @summary A real time javascript webm encoder based on a canvas hack.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef Whammy\r\n * @class\r\n * @example\r\n * var recorder = new Whammy().Video(15);\r\n * recorder.add(context || canvas || dataURL);\r\n * var output = recorder.compile();\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n */\r\n\r\nvar Whammy = (function() {\r\n // a more abstract-ish API\r\n\r\n function WhammyVideo(duration) {\r\n this.frames = [];\r\n this.duration = duration || 1;\r\n this.quality = 0.8;\r\n }\r\n\r\n /**\r\n * Pass Canvas or Context or image/webp(string) to {@link Whammy} encoder.\r\n * @method\r\n * @memberof Whammy\r\n * @example\r\n * recorder = new Whammy().Video(0.8, 100);\r\n * recorder.add(canvas || context || 'image/webp');\r\n * @param {string} frame - Canvas || Context || image/webp\r\n * @param {number} duration - Stick a duration (in milliseconds)\r\n */\r\n WhammyVideo.prototype.add = function(frame, duration) {\r\n if ('canvas' in frame) { //CanvasRenderingContext2D\r\n frame = frame.canvas;\r\n }\r\n\r\n if ('toDataURL' in frame) {\r\n frame = frame.toDataURL('image/webp', this.quality);\r\n }\r\n\r\n if (!(/^data:image\\/webp;base64,/ig).test(frame)) {\r\n throw 'Input must be formatted properly as a base64 encoded DataURI of type image/webp';\r\n }\r\n this.frames.push({\r\n image: frame,\r\n duration: duration || this.duration\r\n });\r\n };\r\n\r\n function processInWebWorker(_function) {\r\n var blob = URL.createObjectURL(new Blob([_function.toString(),\r\n 'this.onmessage = function (eee) {' + _function.name + '(eee.data);}'\r\n ], {\r\n type: 'application/javascript'\r\n }));\r\n\r\n var worker = new Worker(blob);\r\n URL.revokeObjectURL(blob);\r\n return worker;\r\n }\r\n\r\n function whammyInWebWorker(frames) {\r\n function ArrayToWebM(frames) {\r\n var info = checkFrames(frames);\r\n if (!info) {\r\n return [];\r\n }\r\n\r\n var clusterMaxDuration = 30000;\r\n\r\n var EBML = [{\r\n 'id': 0x1a45dfa3, // EBML\r\n 'data': [{\r\n 'data': 1,\r\n 'id': 0x4286 // EBMLVersion\r\n }, {\r\n 'data': 1,\r\n 'id': 0x42f7 // EBMLReadVersion\r\n }, {\r\n 'data': 4,\r\n 'id': 0x42f2 // EBMLMaxIDLength\r\n }, {\r\n 'data': 8,\r\n 'id': 0x42f3 // EBMLMaxSizeLength\r\n }, {\r\n 'data': 'webm',\r\n 'id': 0x4282 // DocType\r\n }, {\r\n 'data': 2,\r\n 'id': 0x4287 // DocTypeVersion\r\n }, {\r\n 'data': 2,\r\n 'id': 0x4285 // DocTypeReadVersion\r\n }]\r\n }, {\r\n 'id': 0x18538067, // Segment\r\n 'data': [{\r\n 'id': 0x1549a966, // Info\r\n 'data': [{\r\n 'data': 1e6, //do things in millisecs (num of nanosecs for duration scale)\r\n 'id': 0x2ad7b1 // TimecodeScale\r\n }, {\r\n 'data': 'whammy',\r\n 'id': 0x4d80 // MuxingApp\r\n }, {\r\n 'data': 'whammy',\r\n 'id': 0x5741 // WritingApp\r\n }, {\r\n 'data': doubleToString(info.duration),\r\n 'id': 0x4489 // Duration\r\n }]\r\n }, {\r\n 'id': 0x1654ae6b, // Tracks\r\n 'data': [{\r\n 'id': 0xae, // TrackEntry\r\n 'data': [{\r\n 'data': 1,\r\n 'id': 0xd7 // TrackNumber\r\n }, {\r\n 'data': 1,\r\n 'id': 0x73c5 // TrackUID\r\n }, {\r\n 'data': 0,\r\n 'id': 0x9c // FlagLacing\r\n }, {\r\n 'data': 'und',\r\n 'id': 0x22b59c // Language\r\n }, {\r\n 'data': 'V_VP8',\r\n 'id': 0x86 // CodecID\r\n }, {\r\n 'data': 'VP8',\r\n 'id': 0x258688 // CodecName\r\n }, {\r\n 'data': 1,\r\n 'id': 0x83 // TrackType\r\n }, {\r\n 'id': 0xe0, // Video\r\n 'data': [{\r\n 'data': info.width,\r\n 'id': 0xb0 // PixelWidth\r\n }, {\r\n 'data': info.height,\r\n 'id': 0xba // PixelHeight\r\n }]\r\n }]\r\n }]\r\n }]\r\n }];\r\n\r\n //Generate clusters (max duration)\r\n var frameNumber = 0;\r\n var clusterTimecode = 0;\r\n while (frameNumber < frames.length) {\r\n\r\n var clusterFrames = [];\r\n var clusterDuration = 0;\r\n do {\r\n clusterFrames.push(frames[frameNumber]);\r\n clusterDuration += frames[frameNumber].duration;\r\n frameNumber++;\r\n } while (frameNumber < frames.length && clusterDuration < clusterMaxDuration);\r\n\r\n var clusterCounter = 0;\r\n var cluster = {\r\n 'id': 0x1f43b675, // Cluster\r\n 'data': getClusterData(clusterTimecode, clusterCounter, clusterFrames)\r\n }; //Add cluster to segment\r\n EBML[1].data.push(cluster);\r\n clusterTimecode += clusterDuration;\r\n }\r\n\r\n return generateEBML(EBML);\r\n }\r\n\r\n function getClusterData(clusterTimecode, clusterCounter, clusterFrames) {\r\n return [{\r\n 'data': clusterTimecode,\r\n 'id': 0xe7 // Timecode\r\n }].concat(clusterFrames.map(function(webp) {\r\n var block = makeSimpleBlock({\r\n discardable: 0,\r\n frame: webp.data.slice(4),\r\n invisible: 0,\r\n keyframe: 1,\r\n lacing: 0,\r\n trackNum: 1,\r\n timecode: Math.round(clusterCounter)\r\n });\r\n clusterCounter += webp.duration;\r\n return {\r\n data: block,\r\n id: 0xa3\r\n };\r\n }));\r\n }\r\n\r\n // sums the lengths of all the frames and gets the duration\r\n\r\n function checkFrames(frames) {\r\n if (!frames[0]) {\r\n postMessage({\r\n error: 'Something went wrong. Maybe WebP format is not supported in the current browser.'\r\n });\r\n return;\r\n }\r\n\r\n var width = frames[0].width,\r\n height = frames[0].height,\r\n duration = frames[0].duration;\r\n\r\n for (var i = 1; i < frames.length; i++) {\r\n duration += frames[i].duration;\r\n }\r\n return {\r\n duration: duration,\r\n width: width,\r\n height: height\r\n };\r\n }\r\n\r\n function numToBuffer(num) {\r\n var parts = [];\r\n while (num > 0) {\r\n parts.push(num & 0xff);\r\n num = num >> 8;\r\n }\r\n return new Uint8Array(parts.reverse());\r\n }\r\n\r\n function strToBuffer(str) {\r\n return new Uint8Array(str.split('').map(function(e) {\r\n return e.charCodeAt(0);\r\n }));\r\n }\r\n\r\n function bitsToBuffer(bits) {\r\n var data = [];\r\n var pad = (bits.length % 8) ? (new Array(1 + 8 - (bits.length % 8))).join('0') : '';\r\n bits = pad + bits;\r\n for (var i = 0; i < bits.length; i += 8) {\r\n data.push(parseInt(bits.substr(i, 8), 2));\r\n }\r\n return new Uint8Array(data);\r\n }\r\n\r\n function generateEBML(json) {\r\n var ebml = [];\r\n for (var i = 0; i < json.length; i++) {\r\n var data = json[i].data;\r\n\r\n if (typeof data === 'object') {\r\n data = generateEBML(data);\r\n }\r\n\r\n if (typeof data === 'number') {\r\n data = bitsToBuffer(data.toString(2));\r\n }\r\n\r\n if (typeof data === 'string') {\r\n data = strToBuffer(data);\r\n }\r\n\r\n var len = data.size || data.byteLength || data.length;\r\n var zeroes = Math.ceil(Math.ceil(Math.log(len) / Math.log(2)) / 8);\r\n var sizeToString = len.toString(2);\r\n var padded = (new Array((zeroes * 7 + 7 + 1) - sizeToString.length)).join('0') + sizeToString;\r\n var size = (new Array(zeroes)).join('0') + '1' + padded;\r\n\r\n ebml.push(numToBuffer(json[i].id));\r\n ebml.push(bitsToBuffer(size));\r\n ebml.push(data);\r\n }\r\n\r\n return new Blob(ebml, {\r\n type: 'video/webm'\r\n });\r\n }\r\n\r\n function toBinStrOld(bits) {\r\n var data = '';\r\n var pad = (bits.length % 8) ? (new Array(1 + 8 - (bits.length % 8))).join('0') : '';\r\n bits = pad + bits;\r\n for (var i = 0; i < bits.length; i += 8) {\r\n data += String.fromCharCode(parseInt(bits.substr(i, 8), 2));\r\n }\r\n return data;\r\n }\r\n\r\n function makeSimpleBlock(data) {\r\n var flags = 0;\r\n\r\n if (data.keyframe) {\r\n flags |= 128;\r\n }\r\n\r\n if (data.invisible) {\r\n flags |= 8;\r\n }\r\n\r\n if (data.lacing) {\r\n flags |= (data.lacing << 1);\r\n }\r\n\r\n if (data.discardable) {\r\n flags |= 1;\r\n }\r\n\r\n if (data.trackNum > 127) {\r\n throw 'TrackNumber > 127 not supported';\r\n }\r\n\r\n var out = [data.trackNum | 0x80, data.timecode >> 8, data.timecode & 0xff, flags].map(function(e) {\r\n return String.fromCharCode(e);\r\n }).join('') + data.frame;\r\n\r\n return out;\r\n }\r\n\r\n function parseWebP(riff) {\r\n var VP8 = riff.RIFF[0].WEBP[0];\r\n\r\n var frameStart = VP8.indexOf('\\x9d\\x01\\x2a'); // A VP8 keyframe starts with the 0x9d012a header\r\n for (var i = 0, c = []; i < 4; i++) {\r\n c[i] = VP8.charCodeAt(frameStart + 3 + i);\r\n }\r\n\r\n var width, height, tmp;\r\n\r\n //the code below is literally copied verbatim from the bitstream spec\r\n tmp = (c[1] << 8) | c[0];\r\n width = tmp & 0x3FFF;\r\n tmp = (c[3] << 8) | c[2];\r\n height = tmp & 0x3FFF;\r\n return {\r\n width: width,\r\n height: height,\r\n data: VP8,\r\n riff: riff\r\n };\r\n }\r\n\r\n function getStrLength(string, offset) {\r\n return parseInt(string.substr(offset + 4, 4).split('').map(function(i) {\r\n var unpadded = i.charCodeAt(0).toString(2);\r\n return (new Array(8 - unpadded.length + 1)).join('0') + unpadded;\r\n }).join(''), 2);\r\n }\r\n\r\n function parseRIFF(string) {\r\n var offset = 0;\r\n var chunks = {};\r\n\r\n while (offset < string.length) {\r\n var id = string.substr(offset, 4);\r\n var len = getStrLength(string, offset);\r\n var data = string.substr(offset + 4 + 4, len);\r\n offset += 4 + 4 + len;\r\n chunks[id] = chunks[id] || [];\r\n\r\n if (id === 'RIFF' || id === 'LIST') {\r\n chunks[id].push(parseRIFF(data));\r\n } else {\r\n chunks[id].push(data);\r\n }\r\n }\r\n return chunks;\r\n }\r\n\r\n function doubleToString(num) {\r\n return [].slice.call(\r\n new Uint8Array((new Float64Array([num])).buffer), 0).map(function(e) {\r\n return String.fromCharCode(e);\r\n }).reverse().join('');\r\n }\r\n\r\n var webm = new ArrayToWebM(frames.map(function(frame) {\r\n var webp = parseWebP(parseRIFF(atob(frame.image.slice(23))));\r\n webp.duration = frame.duration;\r\n return webp;\r\n }));\r\n\r\n postMessage(webm);\r\n }\r\n\r\n /**\r\n * Encodes frames in WebM container. It uses WebWorkinvoke to invoke 'ArrayToWebM' method.\r\n * @param {function} callback - Callback function, that is used to pass recorded blob back to the callee.\r\n * @method\r\n * @memberof Whammy\r\n * @example\r\n * recorder = new Whammy().Video(0.8, 100);\r\n * recorder.compile(function(blob) {\r\n * // blob.size - blob.type\r\n * });\r\n */\r\n WhammyVideo.prototype.compile = function(callback) {\r\n var webWorker = processInWebWorker(whammyInWebWorker);\r\n\r\n webWorker.onmessage = function(event) {\r\n if (event.data.error) {\r\n console.error(event.data.error);\r\n return;\r\n }\r\n callback(event.data);\r\n };\r\n\r\n webWorker.postMessage(this.frames);\r\n };\r\n\r\n return {\r\n /**\r\n * A more abstract-ish API.\r\n * @method\r\n * @memberof Whammy\r\n * @example\r\n * recorder = new Whammy().Video(0.8, 100);\r\n * @param {?number} speed - 0.8\r\n * @param {?number} quality - 100\r\n */\r\n Video: WhammyVideo\r\n };\r\n})();\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.Whammy = Whammy;\r\n}\n\r\n// ______________ (indexed-db)\r\n// DiskStorage.js\r\n\r\n/**\r\n * DiskStorage is a standalone object used by {@link RecordRTC} to store recorded blobs in IndexedDB storage.\r\n * @summary Writing blobs into IndexedDB.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @example\r\n * DiskStorage.Store({\r\n * audioBlob: yourAudioBlob,\r\n * videoBlob: yourVideoBlob,\r\n * gifBlob : yourGifBlob\r\n * });\r\n * DiskStorage.Fetch(function(dataURL, type) {\r\n * if(type === 'audioBlob') { }\r\n * if(type === 'videoBlob') { }\r\n * if(type === 'gifBlob') { }\r\n * });\r\n * // DiskStorage.dataStoreName = 'recordRTC';\r\n * // DiskStorage.onError = function(error) { };\r\n * @property {function} init - This method must be called once to initialize IndexedDB ObjectStore. Though, it is auto-used internally.\r\n * @property {function} Fetch - This method fetches stored blobs from IndexedDB.\r\n * @property {function} Store - This method stores blobs in IndexedDB.\r\n * @property {function} onError - This function is invoked for any known/unknown error.\r\n * @property {string} dataStoreName - Name of the ObjectStore created in IndexedDB storage.\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n */\r\n\r\n\r\nvar DiskStorage = {\r\n /**\r\n * This method must be called once to initialize IndexedDB ObjectStore. Though, it is auto-used internally.\r\n * @method\r\n * @memberof DiskStorage\r\n * @internal\r\n * @example\r\n * DiskStorage.init();\r\n */\r\n init: function() {\r\n var self = this;\r\n\r\n if (typeof indexedDB === 'undefined' || typeof indexedDB.open === 'undefined') {\r\n console.error('IndexedDB API are not available in this browser.');\r\n return;\r\n }\r\n\r\n var dbVersion = 1;\r\n var dbName = this.dbName || location.href.replace(/\\/|:|#|%|\\.|\\[|\\]/g, ''),\r\n db;\r\n var request = indexedDB.open(dbName, dbVersion);\r\n\r\n function createObjectStore(dataBase) {\r\n dataBase.createObjectStore(self.dataStoreName);\r\n }\r\n\r\n function putInDB() {\r\n var transaction = db.transaction([self.dataStoreName], 'readwrite');\r\n\r\n if (self.videoBlob) {\r\n transaction.objectStore(self.dataStoreName).put(self.videoBlob, 'videoBlob');\r\n }\r\n\r\n if (self.gifBlob) {\r\n transaction.objectStore(self.dataStoreName).put(self.gifBlob, 'gifBlob');\r\n }\r\n\r\n if (self.audioBlob) {\r\n transaction.objectStore(self.dataStoreName).put(self.audioBlob, 'audioBlob');\r\n }\r\n\r\n function getFromStore(portionName) {\r\n transaction.objectStore(self.dataStoreName).get(portionName).onsuccess = function(event) {\r\n if (self.callback) {\r\n self.callback(event.target.result, portionName);\r\n }\r\n };\r\n }\r\n\r\n getFromStore('audioBlob');\r\n getFromStore('videoBlob');\r\n getFromStore('gifBlob');\r\n }\r\n\r\n request.onerror = self.onError;\r\n\r\n request.onsuccess = function() {\r\n db = request.result;\r\n db.onerror = self.onError;\r\n\r\n if (db.setVersion) {\r\n if (db.version !== dbVersion) {\r\n var setVersion = db.setVersion(dbVersion);\r\n setVersion.onsuccess = function() {\r\n createObjectStore(db);\r\n putInDB();\r\n };\r\n } else {\r\n putInDB();\r\n }\r\n } else {\r\n putInDB();\r\n }\r\n };\r\n request.onupgradeneeded = function(event) {\r\n createObjectStore(event.target.result);\r\n };\r\n },\r\n /**\r\n * This method fetches stored blobs from IndexedDB.\r\n * @method\r\n * @memberof DiskStorage\r\n * @internal\r\n * @example\r\n * DiskStorage.Fetch(function(dataURL, type) {\r\n * if(type === 'audioBlob') { }\r\n * if(type === 'videoBlob') { }\r\n * if(type === 'gifBlob') { }\r\n * });\r\n */\r\n Fetch: function(callback) {\r\n this.callback = callback;\r\n this.init();\r\n\r\n return this;\r\n },\r\n /**\r\n * This method stores blobs in IndexedDB.\r\n * @method\r\n * @memberof DiskStorage\r\n * @internal\r\n * @example\r\n * DiskStorage.Store({\r\n * audioBlob: yourAudioBlob,\r\n * videoBlob: yourVideoBlob,\r\n * gifBlob : yourGifBlob\r\n * });\r\n */\r\n Store: function(config) {\r\n this.audioBlob = config.audioBlob;\r\n this.videoBlob = config.videoBlob;\r\n this.gifBlob = config.gifBlob;\r\n\r\n this.init();\r\n\r\n return this;\r\n },\r\n /**\r\n * This function is invoked for any known/unknown error.\r\n * @method\r\n * @memberof DiskStorage\r\n * @internal\r\n * @example\r\n * DiskStorage.onError = function(error){\r\n * alerot( JSON.stringify(error) );\r\n * };\r\n */\r\n onError: function(error) {\r\n console.error(JSON.stringify(error, null, '\\t'));\r\n },\r\n\r\n /**\r\n * @property {string} dataStoreName - Name of the ObjectStore created in IndexedDB storage.\r\n * @memberof DiskStorage\r\n * @internal\r\n * @example\r\n * DiskStorage.dataStoreName = 'recordRTC';\r\n */\r\n dataStoreName: 'recordRTC',\r\n dbName: null\r\n};\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.DiskStorage = DiskStorage;\r\n}\n\r\n// ______________\r\n// GifRecorder.js\r\n\r\n/**\r\n * GifRecorder is standalone calss used by {@link RecordRTC} to record video or canvas into animated gif.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef GifRecorder\r\n * @class\r\n * @example\r\n * var recorder = new GifRecorder(mediaStream || canvas || context, { onGifPreview: function, onGifRecordingStarted: function, width: 1280, height: 720, frameRate: 200, quality: 10 });\r\n * recorder.record();\r\n * recorder.stop(function(blob) {\r\n * img.src = URL.createObjectURL(blob);\r\n * });\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - MediaStream object or HTMLCanvasElement or CanvasRenderingContext2D.\r\n * @param {object} config - {disableLogs:true, initCallback: function, width: 320, height: 240, frameRate: 200, quality: 10}\r\n */\r\n\r\nfunction GifRecorder(mediaStream, config) {\r\n if (typeof GIFEncoder === 'undefined') {\r\n var script = document.createElement('script');\r\n script.src = 'https://www.webrtc-experiment.com/gif-recorder.js';\r\n (document.body || document.documentElement).appendChild(script);\r\n }\r\n\r\n config = config || {};\r\n\r\n var isHTMLObject = mediaStream instanceof CanvasRenderingContext2D || mediaStream instanceof HTMLCanvasElement;\r\n\r\n /**\r\n * This method records MediaStream.\r\n * @method\r\n * @memberof GifRecorder\r\n * @example\r\n * recorder.record();\r\n */\r\n this.record = function() {\r\n if (typeof GIFEncoder === 'undefined') {\r\n setTimeout(self.record, 1000);\r\n return;\r\n }\r\n\r\n if (!isLoadedMetaData) {\r\n setTimeout(self.record, 1000);\r\n return;\r\n }\r\n\r\n if (!isHTMLObject) {\r\n if (!config.width) {\r\n config.width = video.offsetWidth || 320;\r\n }\r\n\r\n if (!config.height) {\r\n config.height = video.offsetHeight || 240;\r\n }\r\n\r\n if (!config.video) {\r\n config.video = {\r\n width: config.width,\r\n height: config.height\r\n };\r\n }\r\n\r\n if (!config.canvas) {\r\n config.canvas = {\r\n width: config.width,\r\n height: config.height\r\n };\r\n }\r\n\r\n canvas.width = config.canvas.width || 320;\r\n canvas.height = config.canvas.height || 240;\r\n\r\n video.width = config.video.width || 320;\r\n video.height = config.video.height || 240;\r\n }\r\n\r\n // external library to record as GIF images\r\n gifEncoder = new GIFEncoder();\r\n\r\n // void setRepeat(int iter) \r\n // Sets the number of times the set of GIF frames should be played. \r\n // Default is 1; 0 means play indefinitely.\r\n gifEncoder.setRepeat(0);\r\n\r\n // void setFrameRate(Number fps) \r\n // Sets frame rate in frames per second. \r\n // Equivalent to setDelay(1000/fps).\r\n // Using \"setDelay\" instead of \"setFrameRate\"\r\n gifEncoder.setDelay(config.frameRate || 200);\r\n\r\n // void setQuality(int quality) \r\n // Sets quality of color quantization (conversion of images to the \r\n // maximum 256 colors allowed by the GIF specification). \r\n // Lower values (minimum = 1) produce better colors, \r\n // but slow processing significantly. 10 is the default, \r\n // and produces good color mapping at reasonable speeds. \r\n // Values greater than 20 do not yield significant improvements in speed.\r\n gifEncoder.setQuality(config.quality || 10);\r\n\r\n // Boolean start() \r\n // This writes the GIF Header and returns false if it fails.\r\n gifEncoder.start();\r\n\r\n if (typeof config.onGifRecordingStarted === 'function') {\r\n config.onGifRecordingStarted();\r\n }\r\n\r\n startTime = Date.now();\r\n\r\n function drawVideoFrame(time) {\r\n if (self.clearedRecordedData === true) {\r\n return;\r\n }\r\n\r\n if (isPausedRecording) {\r\n return setTimeout(function() {\r\n drawVideoFrame(time);\r\n }, 100);\r\n }\r\n\r\n lastAnimationFrame = requestAnimationFrame(drawVideoFrame);\r\n\r\n if (typeof lastFrameTime === undefined) {\r\n lastFrameTime = time;\r\n }\r\n\r\n // ~10 fps\r\n if (time - lastFrameTime < 90) {\r\n return;\r\n }\r\n\r\n if (!isHTMLObject && video.paused) {\r\n // via: https://github.com/muaz-khan/WebRTC-Experiment/pull/316\r\n // Tweak for Android Chrome\r\n video.play();\r\n }\r\n\r\n if (!isHTMLObject) {\r\n context.drawImage(video, 0, 0, canvas.width, canvas.height);\r\n }\r\n\r\n if (config.onGifPreview) {\r\n config.onGifPreview(canvas.toDataURL('image/png'));\r\n }\r\n\r\n gifEncoder.addFrame(context);\r\n lastFrameTime = time;\r\n }\r\n\r\n lastAnimationFrame = requestAnimationFrame(drawVideoFrame);\r\n\r\n if (config.initCallback) {\r\n config.initCallback();\r\n }\r\n };\r\n\r\n /**\r\n * This method stops recording MediaStream.\r\n * @param {function} callback - Callback function, that is used to pass recorded blob back to the callee.\r\n * @method\r\n * @memberof GifRecorder\r\n * @example\r\n * recorder.stop(function(blob) {\r\n * img.src = URL.createObjectURL(blob);\r\n * });\r\n */\r\n this.stop = function(callback) {\r\n callback = callback || function() {};\r\n\r\n if (lastAnimationFrame) {\r\n cancelAnimationFrame(lastAnimationFrame);\r\n }\r\n\r\n endTime = Date.now();\r\n\r\n /**\r\n * @property {Blob} blob - The recorded blob object.\r\n * @memberof GifRecorder\r\n * @example\r\n * recorder.stop(function(){\r\n * var blob = recorder.blob;\r\n * });\r\n */\r\n this.blob = new Blob([new Uint8Array(gifEncoder.stream().bin)], {\r\n type: 'image/gif'\r\n });\r\n\r\n callback(this.blob);\r\n\r\n // bug: find a way to clear old recorded blobs\r\n gifEncoder.stream().bin = [];\r\n };\r\n\r\n var isPausedRecording = false;\r\n\r\n /**\r\n * This method pauses the recording process.\r\n * @method\r\n * @memberof GifRecorder\r\n * @example\r\n * recorder.pause();\r\n */\r\n this.pause = function() {\r\n isPausedRecording = true;\r\n };\r\n\r\n /**\r\n * This method resumes the recording process.\r\n * @method\r\n * @memberof GifRecorder\r\n * @example\r\n * recorder.resume();\r\n */\r\n this.resume = function() {\r\n isPausedRecording = false;\r\n };\r\n\r\n /**\r\n * This method resets currently recorded data.\r\n * @method\r\n * @memberof GifRecorder\r\n * @example\r\n * recorder.clearRecordedData();\r\n */\r\n this.clearRecordedData = function() {\r\n self.clearedRecordedData = true;\r\n clearRecordedDataCB();\r\n };\r\n\r\n function clearRecordedDataCB() {\r\n if (gifEncoder) {\r\n gifEncoder.stream().bin = [];\r\n }\r\n }\r\n\r\n // for debugging\r\n this.name = 'GifRecorder';\r\n this.toString = function() {\r\n return this.name;\r\n };\r\n\r\n var canvas = document.createElement('canvas');\r\n var context = canvas.getContext('2d');\r\n\r\n if (isHTMLObject) {\r\n if (mediaStream instanceof CanvasRenderingContext2D) {\r\n context = mediaStream;\r\n canvas = context.canvas;\r\n } else if (mediaStream instanceof HTMLCanvasElement) {\r\n context = mediaStream.getContext('2d');\r\n canvas = mediaStream;\r\n }\r\n }\r\n\r\n var isLoadedMetaData = true;\r\n\r\n if (!isHTMLObject) {\r\n var video = document.createElement('video');\r\n video.muted = true;\r\n video.autoplay = true;\r\n video.playsInline = true;\r\n\r\n isLoadedMetaData = false;\r\n video.onloadedmetadata = function() {\r\n isLoadedMetaData = true;\r\n };\r\n\r\n setSrcObject(mediaStream, video);\r\n\r\n video.play();\r\n }\r\n\r\n var lastAnimationFrame = null;\r\n var startTime, endTime, lastFrameTime;\r\n\r\n var gifEncoder;\r\n\r\n var self = this;\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.GifRecorder = GifRecorder;\r\n}\n\r\n// Last time updated: 2019-06-21 4:09:42 AM UTC\r\n\r\n// ________________________\r\n// MultiStreamsMixer v1.2.2\r\n\r\n// Open-Sourced: https://github.com/muaz-khan/MultiStreamsMixer\r\n\r\n// --------------------------------------------------\r\n// Muaz Khan - www.MuazKhan.com\r\n// MIT License - www.WebRTC-Experiment.com/licence\r\n// --------------------------------------------------\r\n\r\nfunction MultiStreamsMixer(arrayOfMediaStreams, elementClass) {\r\n\r\n var browserFakeUserAgent = 'Fake/5.0 (FakeOS) AppleWebKit/123 (KHTML, like Gecko) Fake/12.3.4567.89 Fake/123.45';\r\n\r\n (function(that) {\r\n if (typeof RecordRTC !== 'undefined') {\r\n return;\r\n }\r\n\r\n if (!that) {\r\n return;\r\n }\r\n\r\n if (typeof window !== 'undefined') {\r\n return;\r\n }\r\n\r\n if (typeof global === 'undefined') {\r\n return;\r\n }\r\n\r\n global.navigator = {\r\n userAgent: browserFakeUserAgent,\r\n getUserMedia: function() {}\r\n };\r\n\r\n if (!global.console) {\r\n global.console = {};\r\n }\r\n\r\n if (typeof global.console.log === 'undefined' || typeof global.console.error === 'undefined') {\r\n global.console.error = global.console.log = global.console.log || function() {\r\n console.log(arguments);\r\n };\r\n }\r\n\r\n if (typeof document === 'undefined') {\r\n /*global document:true */\r\n that.document = {\r\n documentElement: {\r\n appendChild: function() {\r\n return '';\r\n }\r\n }\r\n };\r\n\r\n document.createElement = document.captureStream = document.mozCaptureStream = function() {\r\n var obj = {\r\n getContext: function() {\r\n return obj;\r\n },\r\n play: function() {},\r\n pause: function() {},\r\n drawImage: function() {},\r\n toDataURL: function() {\r\n return '';\r\n },\r\n style: {}\r\n };\r\n return obj;\r\n };\r\n\r\n that.HTMLVideoElement = function() {};\r\n }\r\n\r\n if (typeof location === 'undefined') {\r\n /*global location:true */\r\n that.location = {\r\n protocol: 'file:',\r\n href: '',\r\n hash: ''\r\n };\r\n }\r\n\r\n if (typeof screen === 'undefined') {\r\n /*global screen:true */\r\n that.screen = {\r\n width: 0,\r\n height: 0\r\n };\r\n }\r\n\r\n if (typeof URL === 'undefined') {\r\n /*global screen:true */\r\n that.URL = {\r\n createObjectURL: function() {\r\n return '';\r\n },\r\n revokeObjectURL: function() {\r\n return '';\r\n }\r\n };\r\n }\r\n\r\n /*global window:true */\r\n that.window = global;\r\n })(typeof global !== 'undefined' ? global : null);\r\n\r\n // requires: chrome://flags/#enable-experimental-web-platform-features\r\n\r\n elementClass = elementClass || 'multi-streams-mixer';\r\n\r\n var videos = [];\r\n var isStopDrawingFrames = false;\r\n\r\n var canvas = document.createElement('canvas');\r\n var context = canvas.getContext('2d');\r\n canvas.style.opacity = 0;\r\n canvas.style.position = 'absolute';\r\n canvas.style.zIndex = -1;\r\n canvas.style.top = '-1000em';\r\n canvas.style.left = '-1000em';\r\n canvas.className = elementClass;\r\n (document.body || document.documentElement).appendChild(canvas);\r\n\r\n this.disableLogs = false;\r\n this.frameInterval = 10;\r\n\r\n this.width = 360;\r\n this.height = 240;\r\n\r\n // use gain node to prevent echo\r\n this.useGainNode = true;\r\n\r\n var self = this;\r\n\r\n // _____________________________\r\n // Cross-Browser-Declarations.js\r\n\r\n // WebAudio API representer\r\n var AudioContext = window.AudioContext;\r\n\r\n if (typeof AudioContext === 'undefined') {\r\n if (typeof webkitAudioContext !== 'undefined') {\r\n /*global AudioContext:true */\r\n AudioContext = webkitAudioContext;\r\n }\r\n\r\n if (typeof mozAudioContext !== 'undefined') {\r\n /*global AudioContext:true */\r\n AudioContext = mozAudioContext;\r\n }\r\n }\r\n\r\n /*jshint -W079 */\r\n var URL = window.URL;\r\n\r\n if (typeof URL === 'undefined' && typeof webkitURL !== 'undefined') {\r\n /*global URL:true */\r\n URL = webkitURL;\r\n }\r\n\r\n if (typeof navigator !== 'undefined' && typeof navigator.getUserMedia === 'undefined') { // maybe window.navigator?\r\n if (typeof navigator.webkitGetUserMedia !== 'undefined') {\r\n navigator.getUserMedia = navigator.webkitGetUserMedia;\r\n }\r\n\r\n if (typeof navigator.mozGetUserMedia !== 'undefined') {\r\n navigator.getUserMedia = navigator.mozGetUserMedia;\r\n }\r\n }\r\n\r\n var MediaStream = window.MediaStream;\r\n\r\n if (typeof MediaStream === 'undefined' && typeof webkitMediaStream !== 'undefined') {\r\n MediaStream = webkitMediaStream;\r\n }\r\n\r\n /*global MediaStream:true */\r\n if (typeof MediaStream !== 'undefined') {\r\n // override \"stop\" method for all browsers\r\n if (typeof MediaStream.prototype.stop === 'undefined') {\r\n MediaStream.prototype.stop = function() {\r\n this.getTracks().forEach(function(track) {\r\n track.stop();\r\n });\r\n };\r\n }\r\n }\r\n\r\n var Storage = {};\r\n\r\n if (typeof AudioContext !== 'undefined') {\r\n Storage.AudioContext = AudioContext;\r\n } else if (typeof webkitAudioContext !== 'undefined') {\r\n Storage.AudioContext = webkitAudioContext;\r\n }\r\n\r\n function setSrcObject(stream, element) {\r\n if ('srcObject' in element) {\r\n element.srcObject = stream;\r\n } else if ('mozSrcObject' in element) {\r\n element.mozSrcObject = stream;\r\n } else {\r\n element.srcObject = stream;\r\n }\r\n }\r\n\r\n this.startDrawingFrames = function() {\r\n drawVideosToCanvas();\r\n };\r\n\r\n function drawVideosToCanvas() {\r\n if (isStopDrawingFrames) {\r\n return;\r\n }\r\n\r\n var videosLength = videos.length;\r\n\r\n var fullcanvas = false;\r\n var remaining = [];\r\n videos.forEach(function(video) {\r\n if (!video.stream) {\r\n video.stream = {};\r\n }\r\n\r\n if (video.stream.fullcanvas) {\r\n fullcanvas = video;\r\n } else {\r\n // todo: video.stream.active or video.stream.live to fix blank frames issues?\r\n remaining.push(video);\r\n }\r\n });\r\n\r\n if (fullcanvas) {\r\n canvas.width = fullcanvas.stream.width;\r\n canvas.height = fullcanvas.stream.height;\r\n } else if (remaining.length) {\r\n canvas.width = videosLength > 1 ? remaining[0].width * 2 : remaining[0].width;\r\n\r\n var height = 1;\r\n if (videosLength === 3 || videosLength === 4) {\r\n height = 2;\r\n }\r\n if (videosLength === 5 || videosLength === 6) {\r\n height = 3;\r\n }\r\n if (videosLength === 7 || videosLength === 8) {\r\n height = 4;\r\n }\r\n if (videosLength === 9 || videosLength === 10) {\r\n height = 5;\r\n }\r\n canvas.height = remaining[0].height * height;\r\n } else {\r\n canvas.width = self.width || 360;\r\n canvas.height = self.height || 240;\r\n }\r\n\r\n if (fullcanvas && fullcanvas instanceof HTMLVideoElement) {\r\n drawImage(fullcanvas);\r\n }\r\n\r\n remaining.forEach(function(video, idx) {\r\n drawImage(video, idx);\r\n });\r\n\r\n setTimeout(drawVideosToCanvas, self.frameInterval);\r\n }\r\n\r\n function drawImage(video, idx) {\r\n if (isStopDrawingFrames) {\r\n return;\r\n }\r\n\r\n var x = 0;\r\n var y = 0;\r\n var width = video.width;\r\n var height = video.height;\r\n\r\n if (idx === 1) {\r\n x = video.width;\r\n }\r\n\r\n if (idx === 2) {\r\n y = video.height;\r\n }\r\n\r\n if (idx === 3) {\r\n x = video.width;\r\n y = video.height;\r\n }\r\n\r\n if (idx === 4) {\r\n y = video.height * 2;\r\n }\r\n\r\n if (idx === 5) {\r\n x = video.width;\r\n y = video.height * 2;\r\n }\r\n\r\n if (idx === 6) {\r\n y = video.height * 3;\r\n }\r\n\r\n if (idx === 7) {\r\n x = video.width;\r\n y = video.height * 3;\r\n }\r\n\r\n if (typeof video.stream.left !== 'undefined') {\r\n x = video.stream.left;\r\n }\r\n\r\n if (typeof video.stream.top !== 'undefined') {\r\n y = video.stream.top;\r\n }\r\n\r\n if (typeof video.stream.width !== 'undefined') {\r\n width = video.stream.width;\r\n }\r\n\r\n if (typeof video.stream.height !== 'undefined') {\r\n height = video.stream.height;\r\n }\r\n\r\n context.drawImage(video, x, y, width, height);\r\n\r\n if (typeof video.stream.onRender === 'function') {\r\n video.stream.onRender(context, x, y, width, height, idx);\r\n }\r\n }\r\n\r\n function getMixedStream() {\r\n isStopDrawingFrames = false;\r\n var mixedVideoStream = getMixedVideoStream();\r\n\r\n var mixedAudioStream = getMixedAudioStream();\r\n if (mixedAudioStream) {\r\n mixedAudioStream.getTracks().filter(function(t) {\r\n return t.kind === 'audio';\r\n }).forEach(function(track) {\r\n mixedVideoStream.addTrack(track);\r\n });\r\n }\r\n\r\n var fullcanvas;\r\n arrayOfMediaStreams.forEach(function(stream) {\r\n if (stream.fullcanvas) {\r\n fullcanvas = true;\r\n }\r\n });\r\n\r\n // mixedVideoStream.prototype.appendStreams = appendStreams;\r\n // mixedVideoStream.prototype.resetVideoStreams = resetVideoStreams;\r\n // mixedVideoStream.prototype.clearRecordedData = clearRecordedData;\r\n\r\n return mixedVideoStream;\r\n }\r\n\r\n function getMixedVideoStream() {\r\n resetVideoStreams();\r\n\r\n var capturedStream;\r\n\r\n if ('captureStream' in canvas) {\r\n capturedStream = canvas.captureStream();\r\n } else if ('mozCaptureStream' in canvas) {\r\n capturedStream = canvas.mozCaptureStream();\r\n } else if (!self.disableLogs) {\r\n console.error('Upgrade to latest Chrome or otherwise enable this flag: chrome://flags/#enable-experimental-web-platform-features');\r\n }\r\n\r\n var videoStream = new MediaStream();\r\n\r\n capturedStream.getTracks().filter(function(t) {\r\n return t.kind === 'video';\r\n }).forEach(function(track) {\r\n videoStream.addTrack(track);\r\n });\r\n\r\n canvas.stream = videoStream;\r\n\r\n return videoStream;\r\n }\r\n\r\n function getMixedAudioStream() {\r\n // via: @pehrsons\r\n if (!Storage.AudioContextConstructor) {\r\n Storage.AudioContextConstructor = new Storage.AudioContext();\r\n }\r\n\r\n self.audioContext = Storage.AudioContextConstructor;\r\n\r\n self.audioSources = [];\r\n\r\n if (self.useGainNode === true) {\r\n self.gainNode = self.audioContext.createGain();\r\n self.gainNode.connect(self.audioContext.destination);\r\n self.gainNode.gain.value = 0; // don't hear self\r\n }\r\n\r\n var audioTracksLength = 0;\r\n arrayOfMediaStreams.forEach(function(stream) {\r\n if (!stream.getTracks().filter(function(t) {\r\n return t.kind === 'audio';\r\n }).length) {\r\n return;\r\n }\r\n\r\n audioTracksLength++;\r\n\r\n var audioSource = self.audioContext.createMediaStreamSource(stream);\r\n\r\n if (self.useGainNode === true) {\r\n audioSource.connect(self.gainNode);\r\n }\r\n\r\n self.audioSources.push(audioSource);\r\n });\r\n\r\n if (!audioTracksLength) {\r\n // because \"self.audioContext\" is not initialized\r\n // that's why we've to ignore rest of the code\r\n return;\r\n }\r\n\r\n self.audioDestination = self.audioContext.createMediaStreamDestination();\r\n self.audioSources.forEach(function(audioSource) {\r\n audioSource.connect(self.audioDestination);\r\n });\r\n return self.audioDestination.stream;\r\n }\r\n\r\n function getVideo(stream) {\r\n var video = document.createElement('video');\r\n\r\n setSrcObject(stream, video);\r\n\r\n video.className = elementClass;\r\n\r\n video.muted = true;\r\n video.volume = 0;\r\n\r\n video.width = stream.width || self.width || 360;\r\n video.height = stream.height || self.height || 240;\r\n\r\n video.play();\r\n\r\n return video;\r\n }\r\n\r\n this.appendStreams = function(streams) {\r\n if (!streams) {\r\n throw 'First parameter is required.';\r\n }\r\n\r\n if (!(streams instanceof Array)) {\r\n streams = [streams];\r\n }\r\n\r\n streams.forEach(function(stream) {\r\n var newStream = new MediaStream();\r\n\r\n if (stream.getTracks().filter(function(t) {\r\n return t.kind === 'video';\r\n }).length) {\r\n var video = getVideo(stream);\r\n video.stream = stream;\r\n videos.push(video);\r\n\r\n newStream.addTrack(stream.getTracks().filter(function(t) {\r\n return t.kind === 'video';\r\n })[0]);\r\n }\r\n\r\n if (stream.getTracks().filter(function(t) {\r\n return t.kind === 'audio';\r\n }).length) {\r\n var audioSource = self.audioContext.createMediaStreamSource(stream);\r\n self.audioDestination = self.audioContext.createMediaStreamDestination();\r\n audioSource.connect(self.audioDestination);\r\n\r\n newStream.addTrack(self.audioDestination.stream.getTracks().filter(function(t) {\r\n return t.kind === 'audio';\r\n })[0]);\r\n }\r\n\r\n arrayOfMediaStreams.push(newStream);\r\n });\r\n };\r\n\r\n this.releaseStreams = function() {\r\n videos = [];\r\n isStopDrawingFrames = true;\r\n\r\n if (self.gainNode) {\r\n self.gainNode.disconnect();\r\n self.gainNode = null;\r\n }\r\n\r\n if (self.audioSources.length) {\r\n self.audioSources.forEach(function(source) {\r\n source.disconnect();\r\n });\r\n self.audioSources = [];\r\n }\r\n\r\n if (self.audioDestination) {\r\n self.audioDestination.disconnect();\r\n self.audioDestination = null;\r\n }\r\n\r\n if (self.audioContext) {\r\n self.audioContext.close();\r\n }\r\n\r\n self.audioContext = null;\r\n\r\n context.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n if (canvas.stream) {\r\n canvas.stream.stop();\r\n canvas.stream = null;\r\n }\r\n };\r\n\r\n this.resetVideoStreams = function(streams) {\r\n if (streams && !(streams instanceof Array)) {\r\n streams = [streams];\r\n }\r\n\r\n resetVideoStreams(streams);\r\n };\r\n\r\n function resetVideoStreams(streams) {\r\n videos = [];\r\n streams = streams || arrayOfMediaStreams;\r\n\r\n // via: @adrian-ber\r\n streams.forEach(function(stream) {\r\n if (!stream.getTracks().filter(function(t) {\r\n return t.kind === 'video';\r\n }).length) {\r\n return;\r\n }\r\n\r\n var video = getVideo(stream);\r\n video.stream = stream;\r\n videos.push(video);\r\n });\r\n }\r\n\r\n // for debugging\r\n this.name = 'MultiStreamsMixer';\r\n this.toString = function() {\r\n return this.name;\r\n };\r\n\r\n this.getMixedStream = getMixedStream;\r\n\r\n}\r\n\r\nif (typeof RecordRTC === 'undefined') {\r\n if (typeof module !== 'undefined' /* && !!module.exports*/ ) {\r\n module.exports = MultiStreamsMixer;\r\n }\r\n\r\n if (typeof define === 'function' && define.amd) {\r\n define('MultiStreamsMixer', [], function() {\r\n return MultiStreamsMixer;\r\n });\r\n }\r\n}\n\r\n// ______________________\r\n// MultiStreamRecorder.js\r\n\r\n/*\r\n * Video conference recording, using captureStream API along with WebAudio and Canvas2D API.\r\n */\r\n\r\n/**\r\n * MultiStreamRecorder can record multiple videos in single container.\r\n * @summary Multi-videos recorder.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef MultiStreamRecorder\r\n * @class\r\n * @example\r\n * var options = {\r\n * mimeType: 'video/webm'\r\n * }\r\n * var recorder = new MultiStreamRecorder(ArrayOfMediaStreams, options);\r\n * recorder.record();\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n *\r\n * // or\r\n * var blob = recorder.blob;\r\n * });\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStreams} mediaStreams - Array of MediaStreams.\r\n * @param {object} config - {disableLogs:true, frameInterval: 1, mimeType: \"video/webm\"}\r\n */\r\n\r\nfunction MultiStreamRecorder(arrayOfMediaStreams, options) {\r\n arrayOfMediaStreams = arrayOfMediaStreams || [];\r\n var self = this;\r\n\r\n var mixer;\r\n var mediaRecorder;\r\n\r\n options = options || {\r\n elementClass: 'multi-streams-mixer',\r\n mimeType: 'video/webm',\r\n video: {\r\n width: 360,\r\n height: 240\r\n }\r\n };\r\n\r\n if (!options.frameInterval) {\r\n options.frameInterval = 10;\r\n }\r\n\r\n if (!options.video) {\r\n options.video = {};\r\n }\r\n\r\n if (!options.video.width) {\r\n options.video.width = 360;\r\n }\r\n\r\n if (!options.video.height) {\r\n options.video.height = 240;\r\n }\r\n\r\n /**\r\n * This method records all MediaStreams.\r\n * @method\r\n * @memberof MultiStreamRecorder\r\n * @example\r\n * recorder.record();\r\n */\r\n this.record = function() {\r\n // github/muaz-khan/MultiStreamsMixer\r\n mixer = new MultiStreamsMixer(arrayOfMediaStreams, options.elementClass || 'multi-streams-mixer');\r\n\r\n if (getAllVideoTracks().length) {\r\n mixer.frameInterval = options.frameInterval || 10;\r\n mixer.width = options.video.width || 360;\r\n mixer.height = options.video.height || 240;\r\n mixer.startDrawingFrames();\r\n }\r\n\r\n if (options.previewStream && typeof options.previewStream === 'function') {\r\n options.previewStream(mixer.getMixedStream());\r\n }\r\n\r\n // record using MediaRecorder API\r\n mediaRecorder = new MediaStreamRecorder(mixer.getMixedStream(), options);\r\n mediaRecorder.record();\r\n };\r\n\r\n function getAllVideoTracks() {\r\n var tracks = [];\r\n arrayOfMediaStreams.forEach(function(stream) {\r\n getTracks(stream, 'video').forEach(function(track) {\r\n tracks.push(track);\r\n });\r\n });\r\n return tracks;\r\n }\r\n\r\n /**\r\n * This method stops recording MediaStream.\r\n * @param {function} callback - Callback function, that is used to pass recorded blob back to the callee.\r\n * @method\r\n * @memberof MultiStreamRecorder\r\n * @example\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n */\r\n this.stop = function(callback) {\r\n if (!mediaRecorder) {\r\n return;\r\n }\r\n\r\n mediaRecorder.stop(function(blob) {\r\n self.blob = blob;\r\n\r\n callback(blob);\r\n\r\n self.clearRecordedData();\r\n });\r\n };\r\n\r\n /**\r\n * This method pauses the recording process.\r\n * @method\r\n * @memberof MultiStreamRecorder\r\n * @example\r\n * recorder.pause();\r\n */\r\n this.pause = function() {\r\n if (mediaRecorder) {\r\n mediaRecorder.pause();\r\n }\r\n };\r\n\r\n /**\r\n * This method resumes the recording process.\r\n * @method\r\n * @memberof MultiStreamRecorder\r\n * @example\r\n * recorder.resume();\r\n */\r\n this.resume = function() {\r\n if (mediaRecorder) {\r\n mediaRecorder.resume();\r\n }\r\n };\r\n\r\n /**\r\n * This method resets currently recorded data.\r\n * @method\r\n * @memberof MultiStreamRecorder\r\n * @example\r\n * recorder.clearRecordedData();\r\n */\r\n this.clearRecordedData = function() {\r\n if (mediaRecorder) {\r\n mediaRecorder.clearRecordedData();\r\n mediaRecorder = null;\r\n }\r\n\r\n if (mixer) {\r\n mixer.releaseStreams();\r\n mixer = null;\r\n }\r\n };\r\n\r\n /**\r\n * Add extra media-streams to existing recordings.\r\n * @method\r\n * @memberof MultiStreamRecorder\r\n * @param {MediaStreams} mediaStreams - Array of MediaStreams\r\n * @example\r\n * recorder.addStreams([newAudioStream, newVideoStream]);\r\n */\r\n this.addStreams = function(streams) {\r\n if (!streams) {\r\n throw 'First parameter is required.';\r\n }\r\n\r\n if (!(streams instanceof Array)) {\r\n streams = [streams];\r\n }\r\n\r\n arrayOfMediaStreams.concat(streams);\r\n\r\n if (!mediaRecorder || !mixer) {\r\n return;\r\n }\r\n\r\n mixer.appendStreams(streams);\r\n\r\n if (options.previewStream && typeof options.previewStream === 'function') {\r\n options.previewStream(mixer.getMixedStream());\r\n }\r\n };\r\n\r\n /**\r\n * Reset videos during live recording. Replace old videos e.g. replace cameras with full-screen.\r\n * @method\r\n * @memberof MultiStreamRecorder\r\n * @param {MediaStreams} mediaStreams - Array of MediaStreams\r\n * @example\r\n * recorder.resetVideoStreams([newVideo1, newVideo2]);\r\n */\r\n this.resetVideoStreams = function(streams) {\r\n if (!mixer) {\r\n return;\r\n }\r\n\r\n if (streams && !(streams instanceof Array)) {\r\n streams = [streams];\r\n }\r\n\r\n mixer.resetVideoStreams(streams);\r\n };\r\n\r\n /**\r\n * Returns MultiStreamsMixer\r\n * @method\r\n * @memberof MultiStreamRecorder\r\n * @example\r\n * let mixer = recorder.getMixer();\r\n * mixer.appendStreams([newStream]);\r\n */\r\n this.getMixer = function() {\r\n return mixer;\r\n };\r\n\r\n // for debugging\r\n this.name = 'MultiStreamRecorder';\r\n this.toString = function() {\r\n return this.name;\r\n };\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.MultiStreamRecorder = MultiStreamRecorder;\r\n}\n\r\n// _____________________\r\n// RecordRTC.promises.js\r\n\r\n/**\r\n * RecordRTCPromisesHandler adds promises support in {@link RecordRTC}. Try a {@link https://github.com/muaz-khan/RecordRTC/blob/master/simple-demos/RecordRTCPromisesHandler.html|demo here}\r\n * @summary Promises for {@link RecordRTC}\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef RecordRTCPromisesHandler\r\n * @class\r\n * @example\r\n * var recorder = new RecordRTCPromisesHandler(mediaStream, options);\r\n * recorder.startRecording()\r\n * .then(successCB)\r\n * .catch(errorCB);\r\n * // Note: You can access all RecordRTC API using \"recorder.recordRTC\" e.g. \r\n * recorder.recordRTC.onStateChanged = function(state) {};\r\n * recorder.recordRTC.setRecordingDuration(5000);\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - Single media-stream object, array of media-streams, html-canvas-element, etc.\r\n * @param {object} config - {type:\"video\", recorderType: MediaStreamRecorder, disableLogs: true, numberOfAudioChannels: 1, bufferSize: 0, sampleRate: 0, video: HTMLVideoElement, etc.}\r\n * @throws Will throw an error if \"new\" keyword is not used to initiate \"RecordRTCPromisesHandler\". Also throws error if first argument \"MediaStream\" is missing.\r\n * @requires {@link RecordRTC}\r\n */\r\n\r\nfunction RecordRTCPromisesHandler(mediaStream, options) {\r\n if (!this) {\r\n throw 'Use \"new RecordRTCPromisesHandler()\"';\r\n }\r\n\r\n if (typeof mediaStream === 'undefined') {\r\n throw 'First argument \"MediaStream\" is required.';\r\n }\r\n\r\n var self = this;\r\n\r\n /**\r\n * @property {Blob} blob - Access/reach the native {@link RecordRTC} object.\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * let internal = recorder.recordRTC.getInternalRecorder();\r\n * alert(internal instanceof MediaStreamRecorder);\r\n * recorder.recordRTC.onStateChanged = function(state) {};\r\n */\r\n self.recordRTC = new RecordRTC(mediaStream, options);\r\n\r\n /**\r\n * This method records MediaStream.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * recorder.startRecording()\r\n * .then(successCB)\r\n * .catch(errorCB);\r\n */\r\n this.startRecording = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n self.recordRTC.startRecording();\r\n resolve();\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * This method stops the recording.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * recorder.stopRecording().then(function() {\r\n * var blob = recorder.getBlob();\r\n * }).catch(errorCB);\r\n */\r\n this.stopRecording = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n self.recordRTC.stopRecording(function(url) {\r\n self.blob = self.recordRTC.getBlob();\r\n\r\n if (!self.blob || !self.blob.size) {\r\n reject('Empty blob.', self.blob);\r\n return;\r\n }\r\n\r\n resolve(url);\r\n });\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * This method pauses the recording. You can resume recording using \"resumeRecording\" method.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * recorder.pauseRecording()\r\n * .then(successCB)\r\n * .catch(errorCB);\r\n */\r\n this.pauseRecording = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n self.recordRTC.pauseRecording();\r\n resolve();\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * This method resumes the recording.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * recorder.resumeRecording()\r\n * .then(successCB)\r\n * .catch(errorCB);\r\n */\r\n this.resumeRecording = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n self.recordRTC.resumeRecording();\r\n resolve();\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * This method returns data-url for the recorded blob.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * recorder.stopRecording().then(function() {\r\n * recorder.getDataURL().then(function(dataURL) {\r\n * window.open(dataURL);\r\n * }).catch(errorCB);;\r\n * }).catch(errorCB);\r\n */\r\n this.getDataURL = function(callback) {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n self.recordRTC.getDataURL(function(dataURL) {\r\n resolve(dataURL);\r\n });\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * This method returns the recorded blob.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * recorder.stopRecording().then(function() {\r\n * recorder.getBlob().then(function(blob) {})\r\n * }).catch(errorCB);\r\n */\r\n this.getBlob = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n resolve(self.recordRTC.getBlob());\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * This method returns the internal recording object.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * let internalRecorder = await recorder.getInternalRecorder();\r\n * if(internalRecorder instanceof MultiStreamRecorder) {\r\n * internalRecorder.addStreams([newAudioStream]);\r\n * internalRecorder.resetVideoStreams([screenStream]);\r\n * }\r\n * @returns {Object} \r\n */\r\n this.getInternalRecorder = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n resolve(self.recordRTC.getInternalRecorder());\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * This method resets the recorder. So that you can reuse single recorder instance many times.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * await recorder.reset();\r\n * recorder.startRecording(); // record again\r\n */\r\n this.reset = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n resolve(self.recordRTC.reset());\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Destroy RecordRTC instance. Clear all recorders and objects.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * recorder.destroy().then(successCB).catch(errorCB);\r\n */\r\n this.destroy = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n resolve(self.recordRTC.destroy());\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Get recorder's readonly state.\r\n * @method\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * let state = await recorder.getState();\r\n * // or\r\n * recorder.getState().then(state => { console.log(state); })\r\n * @returns {String} Returns recording state.\r\n */\r\n this.getState = function() {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n resolve(self.recordRTC.getState());\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * @property {Blob} blob - Recorded data as \"Blob\" object.\r\n * @memberof RecordRTCPromisesHandler\r\n * @example\r\n * await recorder.stopRecording();\r\n * let blob = recorder.getBlob(); // or \"recorder.recordRTC.blob\"\r\n * invokeSaveAsDialog(blob);\r\n */\r\n this.blob = null;\r\n\r\n /**\r\n * RecordRTC version number\r\n * @property {String} version - Release version number.\r\n * @memberof RecordRTCPromisesHandler\r\n * @static\r\n * @readonly\r\n * @example\r\n * alert(recorder.version);\r\n */\r\n this.version = '5.6.2';\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.RecordRTCPromisesHandler = RecordRTCPromisesHandler;\r\n}\n\r\n// ______________________\r\n// WebAssemblyRecorder.js\r\n\r\n/**\r\n * WebAssemblyRecorder lets you create webm videos in JavaScript via WebAssembly. The library consumes raw RGBA32 buffers (4 bytes per pixel) and turns them into a webm video with the given framerate and quality. This makes it compatible out-of-the-box with ImageData from a CANVAS. With realtime mode you can also use webm-wasm for streaming webm videos.\r\n * @summary Video recording feature in Chrome, Firefox and maybe Edge.\r\n * @license {@link https://github.com/muaz-khan/RecordRTC/blob/master/LICENSE|MIT}\r\n * @author {@link https://MuazKhan.com|Muaz Khan}\r\n * @typedef WebAssemblyRecorder\r\n * @class\r\n * @example\r\n * var recorder = new WebAssemblyRecorder(mediaStream);\r\n * recorder.record();\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n * @see {@link https://github.com/muaz-khan/RecordRTC|RecordRTC Source Code}\r\n * @param {MediaStream} mediaStream - MediaStream object fetched using getUserMedia API or generated using captureStreamUntilEnded or WebAudio API.\r\n * @param {object} config - {webAssemblyPath:'webm-wasm.wasm',workerPath: 'webm-worker.js', frameRate: 30, width: 1920, height: 1080, bitrate: 1024, realtime: true}\r\n */\r\nfunction WebAssemblyRecorder(stream, config) {\r\n // based on: github.com/GoogleChromeLabs/webm-wasm\r\n\r\n if (typeof ReadableStream === 'undefined' || typeof WritableStream === 'undefined') {\r\n // because it fixes readable/writable streams issues\r\n console.error('Following polyfill is strongly recommended: https://unpkg.com/@mattiasbuelens/web-streams-polyfill/dist/polyfill.min.js');\r\n }\r\n\r\n config = config || {};\r\n\r\n config.width = config.width || 640;\r\n config.height = config.height || 480;\r\n config.frameRate = config.frameRate || 30;\r\n config.bitrate = config.bitrate || 1200;\r\n config.realtime = config.realtime || true;\r\n\r\n function createBufferURL(buffer, type) {\r\n return URL.createObjectURL(new Blob([buffer], {\r\n type: type || ''\r\n }));\r\n }\r\n\r\n var finished;\r\n\r\n function cameraStream() {\r\n return new ReadableStream({\r\n start: function(controller) {\r\n var cvs = document.createElement('canvas');\r\n var video = document.createElement('video');\r\n var first = true;\r\n video.srcObject = stream;\r\n video.muted = true;\r\n video.height = config.height;\r\n video.width = config.width;\r\n video.volume = 0;\r\n video.onplaying = function() {\r\n cvs.width = config.width;\r\n cvs.height = config.height;\r\n var ctx = cvs.getContext('2d');\r\n var frameTimeout = 1000 / config.frameRate;\r\n var cameraTimer = setInterval(function f() {\r\n if (finished) {\r\n clearInterval(cameraTimer);\r\n controller.close();\r\n }\r\n\r\n if (first) {\r\n first = false;\r\n if (config.onVideoProcessStarted) {\r\n config.onVideoProcessStarted();\r\n }\r\n }\r\n\r\n ctx.drawImage(video, 0, 0);\r\n if (controller._controlledReadableStream.state !== 'closed') {\r\n try {\r\n controller.enqueue(\r\n ctx.getImageData(0, 0, config.width, config.height)\r\n );\r\n } catch (e) {}\r\n }\r\n }, frameTimeout);\r\n };\r\n video.play();\r\n }\r\n });\r\n }\r\n\r\n var worker;\r\n\r\n function startRecording(stream, buffer) {\r\n if (!config.workerPath && !buffer) {\r\n finished = false;\r\n\r\n // is it safe to use @latest ?\r\n\r\n fetch(\r\n 'https://unpkg.com/webm-wasm@latest/dist/webm-worker.js'\r\n ).then(function(r) {\r\n r.arrayBuffer().then(function(buffer) {\r\n startRecording(stream, buffer);\r\n });\r\n });\r\n return;\r\n }\r\n\r\n if (!config.workerPath && buffer instanceof ArrayBuffer) {\r\n var blob = new Blob([buffer], {\r\n type: 'text/javascript'\r\n });\r\n config.workerPath = URL.createObjectURL(blob);\r\n }\r\n\r\n if (!config.workerPath) {\r\n console.error('workerPath parameter is missing.');\r\n }\r\n\r\n worker = new Worker(config.workerPath);\r\n\r\n worker.postMessage(config.webAssemblyPath || 'https://unpkg.com/webm-wasm@latest/dist/webm-wasm.wasm');\r\n worker.addEventListener('message', function(event) {\r\n if (event.data === 'READY') {\r\n worker.postMessage({\r\n width: config.width,\r\n height: config.height,\r\n bitrate: config.bitrate || 1200,\r\n timebaseDen: config.frameRate || 30,\r\n realtime: config.realtime\r\n });\r\n\r\n cameraStream().pipeTo(new WritableStream({\r\n write: function(image) {\r\n if (finished) {\r\n console.error('Got image, but recorder is finished!');\r\n return;\r\n }\r\n\r\n worker.postMessage(image.data.buffer, [image.data.buffer]);\r\n }\r\n }));\r\n } else if (!!event.data) {\r\n if (!isPaused) {\r\n arrayOfBuffers.push(event.data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * This method records video.\r\n * @method\r\n * @memberof WebAssemblyRecorder\r\n * @example\r\n * recorder.record();\r\n */\r\n this.record = function() {\r\n arrayOfBuffers = [];\r\n isPaused = false;\r\n this.blob = null;\r\n startRecording(stream);\r\n\r\n if (typeof config.initCallback === 'function') {\r\n config.initCallback();\r\n }\r\n };\r\n\r\n var isPaused;\r\n\r\n /**\r\n * This method pauses the recording process.\r\n * @method\r\n * @memberof WebAssemblyRecorder\r\n * @example\r\n * recorder.pause();\r\n */\r\n this.pause = function() {\r\n isPaused = true;\r\n };\r\n\r\n /**\r\n * This method resumes the recording process.\r\n * @method\r\n * @memberof WebAssemblyRecorder\r\n * @example\r\n * recorder.resume();\r\n */\r\n this.resume = function() {\r\n isPaused = false;\r\n };\r\n\r\n function terminate(callback) {\r\n if (!worker) {\r\n if (callback) {\r\n callback();\r\n }\r\n\r\n return;\r\n }\r\n\r\n // Wait for null event data to indicate that the encoding is complete\r\n worker.addEventListener('message', function(event) {\r\n if (event.data === null) {\r\n worker.terminate();\r\n worker = null;\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n });\r\n\r\n worker.postMessage(null);\r\n }\r\n\r\n var arrayOfBuffers = [];\r\n\r\n /**\r\n * This method stops recording video.\r\n * @param {function} callback - Callback function, that is used to pass recorded blob back to the callee.\r\n * @method\r\n * @memberof WebAssemblyRecorder\r\n * @example\r\n * recorder.stop(function(blob) {\r\n * video.src = URL.createObjectURL(blob);\r\n * });\r\n */\r\n this.stop = function(callback) {\r\n finished = true;\r\n\r\n var recorder = this;\r\n\r\n terminate(function() {\r\n recorder.blob = new Blob(arrayOfBuffers, {\r\n type: 'video/webm'\r\n });\r\n\r\n callback(recorder.blob);\r\n });\r\n };\r\n\r\n // for debugging\r\n this.name = 'WebAssemblyRecorder';\r\n this.toString = function() {\r\n return this.name;\r\n };\r\n\r\n /**\r\n * This method resets currently recorded data.\r\n * @method\r\n * @memberof WebAssemblyRecorder\r\n * @example\r\n * recorder.clearRecordedData();\r\n */\r\n this.clearRecordedData = function() {\r\n arrayOfBuffers = [];\r\n isPaused = false;\r\n this.blob = null;\r\n\r\n // todo: if recording-ON then STOP it first\r\n };\r\n\r\n /**\r\n * @property {Blob} blob - The recorded blob object.\r\n * @memberof WebAssemblyRecorder\r\n * @example\r\n * recorder.stop(function(){\r\n * var blob = recorder.blob;\r\n * });\r\n */\r\n this.blob = null;\r\n}\r\n\r\nif (typeof RecordRTC !== 'undefined') {\r\n RecordRTC.WebAssemblyRecorder = WebAssemblyRecorder;\r\n}\n","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nvar formatDistance = function (token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nvar formatRelative = function (token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options !== null && options !== void 0 && 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; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n return valuesArray[index];\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // 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\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\nvar ordinalNumber = function (dirtyNumber, _options) {\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 // `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 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;","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\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 key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\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 return undefined;\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\n return undefined;\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (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 (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","function _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) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } 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\nimport { shallowEqual } from '@react-dnd/shallowequal';\nimport { useState, useCallback } from 'react';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\n/**\n *\n * @param monitor The monitor to collect state from\n * @param collect The collecting function\n * @param onUpdate A method to invoke when updates occur\n */\n\nexport function useCollector(monitor, collect, onUpdate) {\n var _useState = useState(function () {\n return collect(monitor);\n }),\n _useState2 = _slicedToArray(_useState, 2),\n collected = _useState2[0],\n setCollected = _useState2[1];\n\n var updateCollected = useCallback(function () {\n var nextValue = collect(monitor);\n\n if (!shallowEqual(collected, nextValue)) {\n setCollected(nextValue);\n\n if (onUpdate) {\n onUpdate();\n }\n }\n }, [collected, monitor, onUpdate]); // update the collected properties after the first render\n // and the components are attached to dnd-core\n\n useIsomorphicLayoutEffect(updateCollected, []);\n return [collected, updateCollected];\n}","function _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) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } 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\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\nimport { useCollector } from './useCollector';\nexport function useMonitorOutput(monitor, collect, onCollect) {\n var _useCollector = useCollector(monitor, collect, onCollect),\n _useCollector2 = _slicedToArray(_useCollector, 2),\n collected = _useCollector2[0],\n updateCollected = _useCollector2[1];\n\n useIsomorphicLayoutEffect(function subscribeToMonitorStateChange() {\n var handlerId = monitor.getHandlerId();\n\n if (handlerId == null) {\n return undefined;\n }\n\n return monitor.subscribeToStateChange(updateCollected, {\n handlerIds: [handlerId]\n });\n }, [monitor, updateCollected]);\n return collected;\n}","import { cloneElement } from 'react';\nimport { invariant } from '@react-dnd/invariant';\n\nfunction setRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else {\n ref.current = node;\n }\n}\n\nexport function cloneWithRef(element, newRef) {\n var previousRef = element.ref;\n invariant(typeof previousRef !== 'string', 'Cannot connect React DnD to an element with an existing string ref. ' + 'Please convert it to use a callback ref instead, or wrap it into a or
. ' + 'Read more: https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute');\n\n if (!previousRef) {\n // When there is no ref on the element, use the new ref directly\n return cloneElement(element, {\n ref: newRef\n });\n } else {\n return cloneElement(element, {\n ref: function ref(node) {\n setRef(previousRef, node);\n setRef(newRef, node);\n }\n });\n }\n}","import { isValidElement } from 'react';\nimport { cloneWithRef } from '../utils/cloneWithRef';\n\nfunction throwIfCompositeComponentElement(element) {\n // Custom components can no longer be wrapped directly in React DnD 2.0\n // so that we don't need to depend on findDOMNode() from react-dom.\n if (typeof element.type === 'string') {\n return;\n }\n\n var displayName = element.type.displayName || element.type.name || 'the component';\n throw new Error('Only native element nodes can now be passed to React DnD connectors.' + \"You can either wrap \".concat(displayName, \" into a
, or turn it into a \") + 'drag source or a drop target itself.');\n}\n\nfunction wrapHookToRecognizeElement(hook) {\n return function () {\n var elementOrNode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n // When passed a node, call the hook straight away.\n if (!isValidElement(elementOrNode)) {\n var node = elementOrNode;\n hook(node, options); // return the node so it can be chained (e.g. when within callback refs\n //
connectDragSource(connectDropTarget(node))}/>\n\n return node;\n } // If passed a ReactElement, clone it and attach this function as a ref.\n // This helps us achieve a neat API where user doesn't even know that refs\n // are being used under the hood.\n\n\n var element = elementOrNode;\n throwIfCompositeComponentElement(element); // When no options are passed, use the hook directly\n\n var ref = options ? function (node) {\n return hook(node, options);\n } : hook;\n return cloneWithRef(element, ref);\n };\n}\n\nexport default function wrapConnectorHooks(hooks) {\n var wrappedHooks = {};\n Object.keys(hooks).forEach(function (key) {\n var hook = hooks[key]; // ref objects should be passed straight through without wrapping\n\n if (key.endsWith('Ref')) {\n wrappedHooks[key] = hooks[key];\n } else {\n var wrappedHook = wrapHookToRecognizeElement(hook);\n\n wrappedHooks[key] = function () {\n return wrappedHook;\n };\n }\n });\n return wrappedHooks;\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // 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\";\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;\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 = require(\"core-js/library/fn/object/keys\");","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canUseDOM = exports.SafeNodeList = exports.SafeHTMLCollection = undefined;\n\nvar _exenv = require(\"exenv\");\n\nvar _exenv2 = _interopRequireDefault(_exenv);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EE = _exenv2.default;\n\nvar SafeHTMLElement = EE.canUseDOM ? window.HTMLElement : {};\n\nvar SafeHTMLCollection = exports.SafeHTMLCollection = EE.canUseDOM ? window.HTMLCollection : {};\n\nvar SafeNodeList = exports.SafeNodeList = EE.canUseDOM ? window.NodeList : {};\n\nvar canUseDOM = exports.canUseDOM = EE.canUseDOM;\n\nexports.default = SafeHTMLElement;","// 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","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/* @flow */\n\nimport MenuEvent from './MenuEvent';\n\nexport default class ChosenEvent extends MenuEvent {\n byKeyboard: boolean;\n\n constructor(type: string, byKeyboard: boolean) {\n super(type);\n this.byKeyboard = byKeyboard;\n }\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","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","/**\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 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","/**\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 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 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/**\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 hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","exports.f = {}.propertyIsEnumerable;\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","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","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, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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 * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\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 isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n\n var date = toDate(dirtyDate);\n return !isNaN(Number(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 * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the minutes added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * const 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 * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the hours added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * const 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 * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * const 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 * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\n\nexport default function addYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, amount * 12);\n}","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","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 createContext from 'create-react-context';\nexport var ManagerContext = createContext({\n setReferenceNode: undefined,\n referenceNode: undefined\n});\n\nvar Manager =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Manager, _React$Component);\n\n function Manager() {\n var _this;\n\n _this = _React$Component.call(this) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"setReferenceNode\", function (referenceNode) {\n if (!referenceNode || _this.state.context.referenceNode === referenceNode) {\n return;\n }\n\n _this.setState(function (_ref) {\n var context = _ref.context;\n return {\n context: _extends({}, context, {\n referenceNode: referenceNode\n })\n };\n });\n });\n\n _this.state = {\n context: {\n setReferenceNode: _this.setReferenceNode,\n referenceNode: undefined\n }\n };\n return _this;\n }\n\n var _proto = Manager.prototype;\n\n _proto.render = function render() {\n return React.createElement(ManagerContext.Provider, {\n value: this.state.context\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};","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 * as React from 'react';\nimport PopperJS from 'popper.js';\nimport { ManagerContext } from './Manager';\nimport { safeInvoke, unwrapArray } 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 safeInvoke(_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) {\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 safeInvoke(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(ManagerContext.Consumer, null, function (_ref2) {\n var referenceNode = _ref2.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 { ManagerContext } from './Manager';\nimport { safeInvoke, unwrapArray } 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 safeInvoke(_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 safeInvoke(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(ManagerContext.Consumer, null, function (_ref) {\n var setReferenceNode = _ref.setReferenceNode;\n return React.createElement(InnerReference, _extends({\n setReferenceNode: setReferenceNode\n }, props));\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 * @param {Date|Number} date - the given date\n * @returns {Number} the number of days in a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\n\nexport default function getDaysInMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var monthIndex = date.getMonth();\n var lastDayOfMonth = new Date(0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport getDaysInMonth from \"../getDaysInMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} month - the month of the new date\n * @returns {Date} the new date with the month set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set February to 1 September 2014:\n * const result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\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}","(function(){\r\n var crypt = require('crypt'),\r\n utf8 = require('charenc').utf8,\r\n isBuffer = require('is-buffer'),\r\n bin = require('charenc').bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n","import { __assign } from './_virtual/_tslib.js';\nvar defaultOptions = {\n deferEvents: false\n};\n\nvar Scheduler =\n/*#__PURE__*/\n\n/** @class */\nfunction () {\n function Scheduler(options) {\n this.processingEvent = false;\n this.queue = [];\n this.initialized = false;\n this.options = __assign(__assign({}, defaultOptions), options);\n }\n\n Scheduler.prototype.initialize = function (callback) {\n this.initialized = true;\n\n if (callback) {\n if (!this.options.deferEvents) {\n this.schedule(callback);\n return;\n }\n\n this.process(callback);\n }\n\n this.flushEvents();\n };\n\n Scheduler.prototype.schedule = function (task) {\n if (!this.initialized || this.processingEvent) {\n this.queue.push(task);\n return;\n }\n\n if (this.queue.length !== 0) {\n throw new Error('Event queue should be empty when it is not processing events');\n }\n\n this.process(task);\n this.flushEvents();\n };\n\n Scheduler.prototype.clear = function () {\n this.queue = [];\n };\n\n Scheduler.prototype.flushEvents = function () {\n var nextCallback = this.queue.shift();\n\n while (nextCallback) {\n this.process(nextCallback);\n nextCallback = this.queue.shift();\n }\n };\n\n Scheduler.prototype.process = function (callback) {\n this.processingEvent = true;\n\n try {\n callback();\n } catch (e) {\n // there is no use to keep the future events\n // as the situation is not anymore the same\n this.clear();\n throw e;\n } finally {\n this.processingEvent = false;\n }\n };\n\n return Scheduler;\n}();\n\nexport { Scheduler };","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","/**\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","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","// 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","module.exports = require(\"core-js/library/fn/object/set-prototype-of\");","module.exports = require(\"core-js/library/fn/date/now\");","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","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = findTabbableDescendants;\n/*!\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\n\nvar tabbableNode = /input|select|textarea|button|object|iframe/;\n\nfunction hidesContents(element) {\n var zeroSize = element.offsetWidth <= 0 && element.offsetHeight <= 0;\n\n // If the node is empty, this is good enough\n if (zeroSize && !element.innerHTML) return true;\n\n try {\n // Otherwise we need to check some styles\n var style = window.getComputedStyle(element);\n return zeroSize ? style.getPropertyValue(\"overflow\") !== \"visible\" ||\n // if 'overflow: visible' set, check if there is actually any overflow\n element.scrollWidth <= 0 && element.scrollHeight <= 0 : style.getPropertyValue(\"display\") == \"none\";\n } catch (exception) {\n // eslint-disable-next-line no-console\n console.warn(\"Failed to inspect element style\");\n return false;\n }\n}\n\nfunction visible(element) {\n var parentElement = element;\n var rootNode = element.getRootNode && element.getRootNode();\n while (parentElement) {\n if (parentElement === document.body) break;\n\n // if we are not hidden yet, skip to checking outside the Web Component\n if (rootNode && parentElement === rootNode) parentElement = rootNode.host.parentNode;\n\n if (hidesContents(parentElement)) return false;\n parentElement = parentElement.parentNode;\n }\n return true;\n}\n\nfunction focusable(element, isTabIndexNotNaN) {\n var nodeName = element.nodeName.toLowerCase();\n var res = tabbableNode.test(nodeName) && !element.disabled || (nodeName === \"a\" ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && visible(element);\n}\n\nfunction tabbable(element) {\n var tabIndex = element.getAttribute(\"tabindex\");\n if (tabIndex === null) tabIndex = undefined;\n var isTabIndexNaN = isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);\n}\n\nfunction findTabbableDescendants(element) {\n var descendants = [].slice.call(element.querySelectorAll(\"*\"), 0).reduce(function (finished, el) {\n return finished.concat(!el.shadowRoot ? [el] : findTabbableDescendants(el.shadowRoot));\n }, []);\n return descendants.filter(tabbable);\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.assertNodeList = assertNodeList;\nexports.setElement = setElement;\nexports.validateElement = validateElement;\nexports.hide = hide;\nexports.show = show;\nexports.documentNotReadyOrSSRTesting = documentNotReadyOrSSRTesting;\n\nvar _warning = require(\"warning\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _safeHTMLElement = require(\"./safeHTMLElement\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar globalElement = null;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n if (globalElement) {\n if (globalElement.removeAttribute) {\n globalElement.removeAttribute(\"aria-hidden\");\n } else if (globalElement.length != null) {\n globalElement.forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n } else {\n document.querySelectorAll(globalElement).forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n }\n }\n globalElement = null;\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var check = globalElement || {};\n console.log(\"ariaAppHider ----------\");\n console.log(check.nodeName, check.className, check.id);\n console.log(\"end ariaAppHider ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction assertNodeList(nodeList, selector) {\n if (!nodeList || !nodeList.length) {\n throw new Error(\"react-modal: No elements were found for selector \" + selector + \".\");\n }\n}\n\nfunction setElement(element) {\n var useElement = element;\n if (typeof useElement === \"string\" && _safeHTMLElement.canUseDOM) {\n var el = document.querySelectorAll(useElement);\n assertNodeList(el, useElement);\n useElement = el;\n }\n globalElement = useElement || globalElement;\n return globalElement;\n}\n\nfunction validateElement(appElement) {\n var el = appElement || globalElement;\n if (el) {\n return Array.isArray(el) || el instanceof HTMLCollection || el instanceof NodeList ? el : [el];\n } else {\n (0, _warning2.default)(false, [\"react-modal: App element is not defined.\", \"Please use `Modal.setAppElement(el)` or set `appElement={el}`.\", \"This is needed so screen readers don't see main content\", \"when modal is opened. It is not recommended, but you can opt-out\", \"by setting `ariaHideApp={false}`.\"].join(\" \"));\n\n return [];\n }\n}\n\nfunction hide(appElement) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = validateElement(appElement)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var el = _step.value;\n\n el.setAttribute(\"aria-hidden\", \"true\");\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\n\nfunction show(appElement) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = validateElement(appElement)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var el = _step2.value;\n\n el.removeAttribute(\"aria-hidden\");\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n}\n\nfunction documentNotReadyOrSSRTesting() {\n globalElement = null;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.log = log;\nexports.resetState = resetState;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Tracks portals that are open and emits events to subscribers\n\nvar PortalOpenInstances = function PortalOpenInstances() {\n var _this = this;\n\n _classCallCheck(this, PortalOpenInstances);\n\n this.register = function (openInstance) {\n if (_this.openInstances.indexOf(openInstance) !== -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Cannot register modal instance that's already open\");\n }\n return;\n }\n _this.openInstances.push(openInstance);\n _this.emit(\"register\");\n };\n\n this.deregister = function (openInstance) {\n var index = _this.openInstances.indexOf(openInstance);\n if (index === -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Unable to deregister \" + openInstance + \" as \" + \"it was never registered\");\n }\n return;\n }\n _this.openInstances.splice(index, 1);\n _this.emit(\"deregister\");\n };\n\n this.subscribe = function (callback) {\n _this.subscribers.push(callback);\n };\n\n this.emit = function (eventType) {\n _this.subscribers.forEach(function (subscriber) {\n return subscriber(eventType,\n // shallow copy to avoid accidental mutation\n _this.openInstances.slice());\n });\n };\n\n this.openInstances = [];\n this.subscribers = [];\n};\n\nvar portalOpenInstances = new PortalOpenInstances();\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction log() {\n console.log(\"portalOpenInstances ----------\");\n console.log(portalOpenInstances.openInstances.length);\n portalOpenInstances.openInstances.forEach(function (p) {\n return console.log(p);\n });\n console.log(\"end portalOpenInstances ----------\");\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n portalOpenInstances = new PortalOpenInstances();\n}\n/* eslint-enable no-console */\n\nexports.default = portalOpenInstances;","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","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SpecialTargets = exports.ActionTypes = void 0;\nvar ActionTypes;\n(function (ActionTypes) {\n ActionTypes[\"Start\"] = \"xstate.start\";\n ActionTypes[\"Stop\"] = \"xstate.stop\";\n ActionTypes[\"Raise\"] = \"xstate.raise\";\n ActionTypes[\"Send\"] = \"xstate.send\";\n ActionTypes[\"Cancel\"] = \"xstate.cancel\";\n ActionTypes[\"NullEvent\"] = \"\";\n ActionTypes[\"Assign\"] = \"xstate.assign\";\n ActionTypes[\"After\"] = \"xstate.after\";\n ActionTypes[\"DoneState\"] = \"done.state\";\n ActionTypes[\"DoneInvoke\"] = \"done.invoke\";\n ActionTypes[\"Log\"] = \"xstate.log\";\n ActionTypes[\"Init\"] = \"xstate.init\";\n ActionTypes[\"Invoke\"] = \"xstate.invoke\";\n ActionTypes[\"ErrorExecution\"] = \"error.execution\";\n ActionTypes[\"ErrorCommunication\"] = \"error.communication\";\n ActionTypes[\"ErrorPlatform\"] = \"error.platform\";\n ActionTypes[\"ErrorCustom\"] = \"xstate.error\";\n ActionTypes[\"Update\"] = \"xstate.update\";\n ActionTypes[\"Pure\"] = \"xstate.pure\";\n ActionTypes[\"Choose\"] = \"xstate.choose\";\n})(ActionTypes = exports.ActionTypes || (exports.ActionTypes = {}));\nvar SpecialTargets;\n(function (SpecialTargets) {\n SpecialTargets[\"Parent\"] = \"#_parent\";\n SpecialTargets[\"Internal\"] = \"#_internal\";\n})(SpecialTargets = exports.SpecialTargets || (exports.SpecialTargets = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IS_PRODUCTION = void 0;\nexports.IS_PRODUCTION = process.env.NODE_ENV === 'production';\n","export default __webpack_public_path__ + \"static/media/dtmf-star.8ea37e33.mp3\";","export default __webpack_public_path__ + \"static/media/dtmf-hash.1508413b.mp3\";","export default __webpack_public_path__ + \"static/media/incoming-call.f7b70a29.wav\";","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/* @flow */\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport type {Node as ReactNode} from 'react';\nimport PropTypes from 'prop-types';\nimport Kefir from 'kefir';\nimport kefirStopper from 'kefir-stopper';\nimport findIndex from 'array-find-index';\nimport fromEventsCapture from './lib/fromEventsCapture';\n\nimport MenuEvent from './events/MenuEvent';\nimport ChosenEvent from './events/ChosenEvent';\nimport type {Props as MenuItemProps} from './MenuItem';\nimport {MenuListInspectorContext} from './MenuListInspector';\nimport type {MenuListInspectorContextValue} from './MenuListInspector';\nimport type {Direction, Rect} from './types';\n\n// This type of object is given to a MenuItem to talk to the MenuList.\nexport type MenuListHandle = {\n highlight(byKeyboard: boolean): void;\n unhighlight(): void;\n moveCursor(direction: Direction, prevCursorLocation: ?Rect): void;\n itemChosen(): void;\n takeKeyboard(): void;\n releaseKeyboard(): void;\n lockHighlight(): void;\n unlockHighlight(): void;\n updateProps(props: MenuItemProps): void;\n unregister(): void;\n};\n\n// This type of object is given to a MenuList to talk to a MenuItem.\nexport type MenuItemControl = {\n notifyHighlighted(\n highlighted: boolean,\n byKeyboard: ?boolean,\n direction: ?Direction,\n prevCursorLocation: ?Rect\n ): void;\n notifyEvent(event: MenuEvent): void;\n};\n\n// This is the type of the object that MenuList gives as context to its\n// descendants.\nexport type MenuListContextValue = {\n registerItem(\n props: MenuItemProps,\n control: MenuItemControl,\n el: HTMLElement\n ): MenuListHandle;\n};\n\nexport const MenuListContext = React.createContext(null);\n\nexport type Props = {\n onItemChosen?: (event: ChosenEvent) => void;\n onLeftPushed?: (event: MenuEvent) => void;\n onRightPushed?: (event: MenuEvent) => void;\n children?: ReactNode;\n};\n\nexport default class MenuList extends React.Component {\n static propTypes = {\n onItemChosen: PropTypes.func,\n onLeftPushed: PropTypes.func,\n onRightPushed: PropTypes.func,\n children: PropTypes.node\n };\n\n _stopper = kefirStopper();\n _listItems: Array<{\n props: MenuItemProps;\n control: MenuItemControl;\n }> = [];\n\n // The natural highlight is where the highlight would be if no lock is active.\n _naturalHighlightedIndex: ?number;\n _lockedHighlightedIndex: ?number;\n _keyboardTakenByIndex: ?number;\n\n _elRef = React.createRef();\n\n _getVisibleHighlightedIndex(): ?number {\n return this._lockedHighlightedIndex != null ?\n this._lockedHighlightedIndex : this._naturalHighlightedIndex;\n }\n\n static contextType = MenuListInspectorContext;\n\n _menuListContext: MenuListContextValue = {\n registerItem: (props, control, el) => {\n const item = {props, control, el};\n\n const register = () => {\n let i = -1;\n if (item.props.index == null) {\n i = findIndex(\n this._listItems,\n _item =>\n (item.el.compareDocumentPosition(_item.el)&Node.DOCUMENT_POSITION_PRECEDING) === 0\n );\n } else {\n i = findIndex(\n this._listItems,\n _item => _item.props.index != null && item.props.index < _item.props.index\n );\n }\n if (i < 0) {\n this._listItems.push(item);\n } else {\n this._listItems.splice(i, 0, item);\n if (this._naturalHighlightedIndex != null && i <= this._naturalHighlightedIndex) {\n this._naturalHighlightedIndex++;\n }\n if (this._lockedHighlightedIndex != null && i <= this._lockedHighlightedIndex) {\n this._lockedHighlightedIndex++;\n }\n if (this._keyboardTakenByIndex != null && i <= this._keyboardTakenByIndex) {\n this._keyboardTakenByIndex++;\n }\n }\n };\n\n register();\n\n const menuListHandle: MenuListHandle = {\n highlight: (byKeyboard: boolean) => {\n const i = this._listItems.indexOf(item);\n if (i < 0) throw new Error('Already unregistered MenuItem');\n this._naturalHighlight(i, byKeyboard);\n },\n unhighlight: () => {\n const i = this._listItems.indexOf(item);\n if (i < 0) throw new Error('Already unregistered MenuItem');\n if (this._naturalHighlightedIndex === i) {\n this._naturalHighlight(null, false);\n }\n },\n itemChosen: () => {\n this._dispatchEvent(control, new ChosenEvent('chosen', false));\n },\n takeKeyboard: () => {\n const i = this._listItems.indexOf(item);\n if (i < 0) throw new Error('Already unregistered MenuItem');\n this._keyboardTakenByIndex = i;\n },\n releaseKeyboard: () => {\n const i = this._listItems.indexOf(item);\n if (i < 0) throw new Error('Already unregistered MenuItem');\n if (this._keyboardTakenByIndex === i) {\n this._keyboardTakenByIndex = null;\n }\n },\n lockHighlight: () => {\n const i = this._listItems.indexOf(item);\n if (i < 0) throw new Error('Already unregistered MenuItem');\n this._lockHighlight(i);\n },\n unlockHighlight: () => {\n const i = this._listItems.indexOf(item);\n if (i < 0) throw new Error('Already unregistered MenuItem');\n if (this._lockedHighlightedIndex === i) {\n this._lockHighlight(null);\n }\n },\n moveCursor: (direction: Direction, prevCursorLocation: ?Rect) => {\n this.moveCursor(direction, prevCursorLocation);\n },\n updateProps: (newProps: MenuItemProps) => {\n if (item.props.index !== newProps.index) {\n const oldIndex = this._listItems.indexOf(item);\n const isNaturalHighlightIndex = this._naturalHighlightedIndex === oldIndex;\n const isLockedHighlightIndex = this._lockedHighlightedIndex === oldIndex;\n const isKeyboardTakenByIndex = this._keyboardTakenByIndex === oldIndex;\n\n menuListHandle.unregister();\n props = newProps;\n item.props = newProps;\n register();\n\n if (isNaturalHighlightIndex || isLockedHighlightIndex || isKeyboardTakenByIndex) {\n const newIndex = this._listItems.indexOf(item);\n if (isNaturalHighlightIndex) this._naturalHighlightedIndex = newIndex;\n if (isLockedHighlightIndex) this._lockedHighlightedIndex = newIndex;\n if (isKeyboardTakenByIndex) this._keyboardTakenByIndex = newIndex;\n }\n } else {\n props = newProps;\n item.props = newProps;\n }\n },\n unregister: () => {\n const i = this._listItems.indexOf(item);\n if (i < 0) throw new Error('Already unregistered MenuItem');\n if (i === this._naturalHighlightedIndex) {\n this._naturalHighlightedIndex = null;\n } else if (this._naturalHighlightedIndex != null && i < this._naturalHighlightedIndex) {\n this._naturalHighlightedIndex--;\n }\n if (i === this._lockedHighlightedIndex) {\n this._lockedHighlightedIndex = null;\n } else if (this._lockedHighlightedIndex != null && i < this._lockedHighlightedIndex) {\n this._lockedHighlightedIndex--;\n }\n if (i === this._keyboardTakenByIndex) {\n this._keyboardTakenByIndex = null;\n } else if (this._keyboardTakenByIndex != null && i < this._keyboardTakenByIndex) {\n this._keyboardTakenByIndex--;\n }\n this._listItems.splice(i, 1);\n }\n };\n return menuListHandle;\n }\n };\n\n _parentCtx(): ?MenuListInspectorContextValue {\n return this.context;\n }\n\n componentDidMount() {\n const isEnterOrArrowKey = e =>\n (e.which === 13) || (37 <= e.which && e.which <= 40);\n const el = this._elRef.current;\n /*:: if (!el) throw new Error(); */\n\n // The only things that should receive keydown/keypress events before us\n // are our children. This allows a MenuItem to contain a text input\n // which selectively stops propagation on key events for example.\n Kefir.merge([\n Kefir.fromEvents(window, 'keydown').filter(isEnterOrArrowKey)\n .filter(e => el.contains(e.target)),\n fromEventsCapture(window, 'keydown').filter(isEnterOrArrowKey)\n .filter(e => !el.contains(e.target))\n ])\n .takeUntilBy(this._stopper)\n .onValue(event => {\n ReactDOM.unstable_batchedUpdates(() => {\n this._key(event);\n });\n });\n\n const parentCtx = this._parentCtx();\n if (parentCtx) {\n parentCtx.registerMenuList(this);\n }\n }\n\n componentWillUnmount() {\n this._stopper.destroy();\n\n const parentCtx = this._parentCtx();\n if (parentCtx) {\n parentCtx.unregisterMenuList(this);\n }\n }\n\n _naturalHighlight(index: ?number, byKeyboard: boolean, direction: ?Direction, prevCursorLocation: ?Rect) {\n const visibleHighlightedIndex = this._getVisibleHighlightedIndex();\n\n if (this._lockedHighlightedIndex != null && byKeyboard) {\n this._lockedHighlightedIndex = null;\n }\n this._naturalHighlightedIndex = index;\n if (this._lockedHighlightedIndex == null) {\n if (index != null) {\n this._listItems[index].control.notifyHighlighted(true, byKeyboard, direction, prevCursorLocation);\n }\n if (visibleHighlightedIndex != null && visibleHighlightedIndex != index) {\n this._listItems[visibleHighlightedIndex].control.notifyHighlighted(false);\n }\n }\n }\n\n _lockHighlight(index: ?number) {\n if (index === this._lockedHighlightedIndex) return;\n const visibleHighlightedIndex = this._getVisibleHighlightedIndex();\n this._lockedHighlightedIndex = index;\n const newVisibleHighlightedIndex = this._getVisibleHighlightedIndex();\n if (visibleHighlightedIndex != null && newVisibleHighlightedIndex == null) {\n // When unlocking, prefer to keep the current selection over de-selecting\n // everything.\n this._naturalHighlightedIndex = visibleHighlightedIndex;\n } else if (visibleHighlightedIndex != newVisibleHighlightedIndex) {\n if (visibleHighlightedIndex != null) {\n this._listItems[visibleHighlightedIndex].control.notifyHighlighted(false);\n }\n if (newVisibleHighlightedIndex != null) {\n this._listItems[newVisibleHighlightedIndex].control.notifyHighlighted(true, false);\n } else if (this._naturalHighlightedIndex != null) {\n this._listItems[this._naturalHighlightedIndex].control.notifyHighlighted(true, false);\n }\n }\n }\n\n _dispatchEvent(control: ?MenuItemControl, event: MenuEvent) {\n if (control) {\n control.notifyEvent(event);\n if (event.cancelBubble) return;\n }\n switch (event.type) {\n case 'chosen':\n /*:: if (!(event instanceof ChosenEvent)) throw new Error(); */\n if (this.props.onItemChosen) this.props.onItemChosen(event);\n break;\n // case 'up':\n // break;\n // case 'down':\n // break;\n case 'left':\n if (this.props.onLeftPushed) this.props.onLeftPushed(event);\n break;\n case 'right':\n if (this.props.onRightPushed) this.props.onRightPushed(event);\n break;\n }\n if (event.cancelBubble) return;\n const parentCtx = this._parentCtx();\n if (parentCtx) {\n parentCtx.dispatchEvent(event);\n }\n }\n\n _key(event: KeyboardEvent) {\n if (this._keyboardTakenByIndex != null || this._listItems.length === 0) {\n return;\n }\n\n const visibleHighlightedIndex = this._getVisibleHighlightedIndex();\n\n // enter, left, right activate for the current visibly selected item.\n // up and down de-activate any locks in place, so that they act from the last\n // naturally-selected item.\n\n let mEvent = null;\n\n switch (event.which) {\n case 13: //enter\n if (visibleHighlightedIndex != null) {\n mEvent = new ChosenEvent('chosen', true);\n event.preventDefault();\n event.stopPropagation();\n }\n break;\n case 37: //left\n if (visibleHighlightedIndex != null) {\n mEvent = new MenuEvent('left');\n }\n break;\n case 39: //right\n if (visibleHighlightedIndex != null) {\n mEvent = new MenuEvent('right');\n }\n break;\n case 38: //up\n event.preventDefault();\n event.stopPropagation();\n this.moveCursor('up');\n break;\n case 40: //down\n event.preventDefault();\n event.stopPropagation();\n this.moveCursor('down');\n break;\n }\n\n if (mEvent) {\n const control = visibleHighlightedIndex == null ? null :\n this._listItems[visibleHighlightedIndex].control;\n this._dispatchEvent(control, mEvent);\n if (mEvent.defaultPrevented) event.preventDefault();\n if (mEvent.defaultPrevented || mEvent.cancelBubble) event.stopPropagation();\n }\n }\n\n moveCursor(direction: Direction, prevCursorLocation: ?Rect) {\n if (this._listItems.length == 0) return;\n\n switch (direction) {\n case 'up':\n if (this._naturalHighlightedIndex == null || this._naturalHighlightedIndex == 0) {\n this._naturalHighlight(this._listItems.length-1, true, direction, prevCursorLocation);\n } else {\n this._naturalHighlight(this._naturalHighlightedIndex-1, true, direction, prevCursorLocation);\n }\n break;\n case 'down':\n if (this._naturalHighlightedIndex == null || this._naturalHighlightedIndex == this._listItems.length-1) {\n this._naturalHighlight(0, true, direction, prevCursorLocation);\n } else {\n this._naturalHighlight(this._naturalHighlightedIndex+1, true, direction, prevCursorLocation);\n }\n break;\n }\n }\n\n hasHighlight(): boolean {\n return this._getVisibleHighlightedIndex() != null;\n }\n\n render() {\n return (\n
\n \n {this.props.children}\n \n
\n );\n }\n}\n","/* @flow */\n\nimport Kefir from 'kefir';\n\nexport default function fromEventsCapture(target: EventTarget, eventName: string): Kefir.Observable {\n return Kefir.stream(emitter => {\n target.addEventListener(eventName, emitter.emit, true);\n return () => {\n target.removeEventListener(eventName, emitter.emit, true);\n };\n });\n}\n","/* @flow */\n\nexport default class MenuEvent {\n type: string;\n cancelBubble: boolean = false;\n defaultPrevented: boolean = false;\n\n constructor(type: string) {\n this.type = type;\n }\n\n stopPropagation() {\n this.cancelBubble = true;\n }\n\n preventDefault() {\n this.defaultPrevented = true;\n }\n}\n","/* @flow */\n\nimport * as React from 'react';\nimport type {Ref as ReactRef, Node as ReactNode} from 'react';\nimport PropTypes from 'prop-types';\n\nimport type MenuEvent from './events/MenuEvent';\nimport ChosenEvent from './events/ChosenEvent';\nimport {MenuListContext} from './MenuList';\nimport type {MenuListContextValue, MenuListHandle} from './MenuList';\nimport setRef from './lib/setRef';\nimport type {Direction, Rect} from './types';\n\ntype State = {\n highlighted: boolean;\n};\n\nexport type Props = {\n onItemChosen?: (event: ChosenEvent) => void;\n onLeftPushed?: (event: MenuEvent) => void;\n onRightPushed?: (event: MenuEvent) => void;\n onHighlightChange?: (highlighted: boolean, details: {byKeyboard?: boolean, prevCursorLocation?: Rect, direction?: Direction}) => void;\n\n className?: string;\n style?: Object;\n highlightedClassName?: string;\n highlightedStyle?: Object;\n\n index?: number;\n onMouseLeave?: (event: MouseEvent) => void;\n\n children?: ReactNode;\n\n domRef?: ReactRef<'div'>;\n\n 'aria-haspopup'?: boolean;\n 'aria-expanded'?: boolean;\n};\n\nexport default class MenuItem extends React.Component {\n _menuListHandle: MenuListHandle;\n state = {\n highlighted: false\n };\n static propTypes = {\n onItemChosen: PropTypes.func,\n onHighlightChange: PropTypes.func,\n onLeftPushed: PropTypes.func,\n onRightPushed: PropTypes.func,\n\n className: PropTypes.string,\n style: PropTypes.object,\n highlightedClassName: PropTypes.string,\n highlightedStyle: PropTypes.object,\n\n index: PropTypes.number,\n onMouseLeave: PropTypes.func,\n\n children: PropTypes.node,\n\n domRef: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func\n ]),\n\n 'aria-haspopup': PropTypes.bool,\n 'aria-expanded': PropTypes.bool\n };\n\n static contextType = MenuListContext;\n\n _el: ?HTMLDivElement;\n _elSetter = (el: ?HTMLDivElement) => {\n this._el = el;\n\n if (this.props.domRef) {\n setRef(this.props.domRef, el);\n }\n };\n\n hasHighlight(): boolean {\n return this.state.highlighted;\n }\n\n takeKeyboard() {\n this._menuListHandle.takeKeyboard();\n }\n\n releaseKeyboard() {\n this._menuListHandle.releaseKeyboard();\n }\n\n lockHighlight() {\n this._menuListHandle.lockHighlight();\n }\n\n unlockHighlight() {\n this._menuListHandle.unlockHighlight();\n }\n\n // byKeyboard forces focus immediately and scrolls the item into view.\n // With it false, the highlight might be delayed depending on mouse movement\n // and won't cause anything to scroll.\n highlight(byKeyboard: boolean=true) {\n this._menuListHandle.highlight(byKeyboard);\n }\n\n unhighlight() {\n this._menuListHandle.unhighlight();\n }\n\n moveCursor(direction: Direction, prevCursorLocation: ?Rect) {\n this._menuListHandle.moveCursor(direction, prevCursorLocation);\n }\n\n componentDidMount() {\n const el = this._el;\n /*:: if (!el) throw new Error(); */\n\n this._menuListHandle = (this.context: MenuListContextValue).registerItem(this.props, {\n notifyHighlighted: (highlighted: boolean, byKeyboard: ?boolean, direction: ?Direction, prevCursorLocation: ?Rect) => {\n this.setState({highlighted}, () => {\n if (highlighted && byKeyboard) {\n const el = this._el;\n /*:: if (!el) throw new Error(); */\n if (typeof (el: any).scrollIntoViewIfNeeded === 'function') {\n (el: any).scrollIntoViewIfNeeded();\n } else if (el.scrollIntoView) {\n el.scrollIntoView();\n }\n }\n });\n if (this.props.onHighlightChange) {\n this.props.onHighlightChange(highlighted, {\n byKeyboard: byKeyboard == null ? undefined : byKeyboard,\n prevCursorLocation: prevCursorLocation == null ? undefined : prevCursorLocation,\n direction: direction == null ? undefined : direction\n });\n }\n },\n notifyEvent: (event: MenuEvent) => {\n switch (event.type) {\n case 'chosen':\n // TODO ReactDOM.unstable_batchedUpdates\n /*:: if (!(event instanceof ChosenEvent)) throw new Error(); */\n if (this.props.onItemChosen) this.props.onItemChosen(event);\n break;\n case 'left':\n if (this.props.onLeftPushed) this.props.onLeftPushed(event);\n break;\n case 'right':\n if (this.props.onRightPushed) this.props.onRightPushed(event);\n break;\n }\n }\n }, el);\n }\n\n componentWillUnmount() {\n this._menuListHandle.unregister();\n }\n\n componentDidUpdate() {\n this._menuListHandle.updateProps(this.props);\n }\n\n render() {\n const {children, onMouseLeave} = this.props;\n const {highlighted} = this.state;\n\n let style = this.props.style;\n let className = this.props.className;\n if (highlighted) {\n if (this.props.highlightedStyle) {\n style = {...style, ...this.props.highlightedStyle};\n }\n if (this.props.highlightedClassName) {\n className = `${className||''} ${this.props.highlightedClassName}`;\n }\n }\n\n return (\n this._menuListHandle.itemChosen()}\n onMouseEnter={() => this.highlight(false)}\n onMouseLeave={onMouseLeave || (() => this.unhighlight())}\n role=\"menuitem\"\n aria-haspopup={this.props['aria-haspopup']}\n aria-expanded={this.props['aria-expanded']}\n >\n {children}\n \n );\n }\n}\n","/* @flow */\n\nimport type {Ref} from 'react';\n\nexport default function setRef(ref: Ref, value: any) {\n // If a more proper way to compose refs ever happens, then do that here.\n // https://github.com/facebook/react/issues/13029\n if (typeof ref === 'function') {\n ref(value);\n } else {\n /*:: if (typeof ref === 'string' || typeof ref === 'number') throw new Error(); */\n ref.current = value;\n }\n}\n","var _typeof = require(\"./typeof.js\")[\"default\"];\n\nfunction _regeneratorRuntime() {\n \"use strict\";\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return generator._invoke = function (innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }(innerFn, self, context), generator;\n }\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n exports.wrap = wrap;\n var ContinueSentinel = {};\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {}\n\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n\n reject(record.arg);\n }\n\n var previousPromise;\n\n this._invoke = function (method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n };\n }\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"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 if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n\n return next.value = undefined, next.done = !0, next;\n };\n\n return next.next = next;\n }\n }\n\n return {\n next: doneResult\n };\n }\n\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, \"constructor\", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n }\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\n\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\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","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var 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","/**\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","/**\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 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 baseIsEqual = require('./_baseIsEqual');\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\nmodule.exports = isEqual;\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 SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var 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","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var 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","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\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","/* eslint-disable no-restricted-globals, @typescript-eslint/ban-ts-comment, @typescript-eslint/no-unused-vars, @typescript-eslint/no-non-null-assertion */\nimport type { Task } from './types.js'\nimport { makeRequestCall, makeRequestCallFromTimer } from './makeRequestCall.js'\n\nexport class AsapQueue {\n\tprivate queue: Task[] = []\n\t// We queue errors to ensure they are thrown in right order (FIFO).\n\t// Array-as-queue is good enough here, since we are just dealing with exceptions.\n\tprivate pendingErrors: any[] = []\n\t// Once a flush has been requested, no further calls to `requestFlush` are\n\t// necessary until the next `flush` completes.\n\t// @ts-ignore\n\tprivate flushing = false\n\t// `requestFlush` is an implementation-specific method that attempts to kick\n\t// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n\t// the event queue before yielding to the browser's own event loop.\n\tprivate requestFlush: () => void\n\n\tprivate requestErrorThrow: () => void\n\t// The position of the next task to execute in the task queue. This is\n\t// preserved between calls to `flush` so that it can be resumed if\n\t// a task throws an exception.\n\tprivate index = 0\n\t// If a task schedules additional tasks recursively, the task queue can grow\n\t// unbounded. To prevent memory exhaustion, the task queue will periodically\n\t// truncate already-completed tasks.\n\tprivate capacity = 1024\n\n\tpublic constructor() {\n\t\t// `requestFlush` requests that the high priority event queue be flushed as\n\t\t// soon as possible.\n\t\t// This is useful to prevent an error thrown in a task from stalling the event\n\t\t// queue if the exception handled by Node.js’s\n\t\t// `process.on(\"uncaughtException\")` or by a domain.\n\n\t\t// `requestFlush` is implemented using a strategy based on data collected from\n\t\t// every available SauceLabs Selenium web driver worker at time of writing.\n\t\t// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\t\tthis.requestFlush = makeRequestCall(this.flush)\n\t\tthis.requestErrorThrow = makeRequestCallFromTimer(() => {\n\t\t\t// Throw first error\n\t\t\tif (this.pendingErrors.length) {\n\t\t\t\tthrow this.pendingErrors.shift()\n\t\t\t}\n\t\t})\n\t}\n\n\t// Use the fastest means possible to execute a task in its own turn, with\n\t// priority over other events including IO, animation, reflow, and redraw\n\t// events in browsers.\n\t//\n\t// An exception thrown by a task will permanently interrupt the processing of\n\t// subsequent tasks. The higher level `asap` function ensures that if an\n\t// exception is thrown by a task, that the task queue will continue flushing as\n\t// soon as possible, but if you use `rawAsap` directly, you are responsible to\n\t// either ensure that no exceptions are thrown from your task, or to manually\n\t// call `rawAsap.requestFlush` if an exception is thrown.\n\tpublic enqueueTask(task: Task): void {\n\t\tconst { queue: q, requestFlush } = this\n\t\tif (!q.length) {\n\t\t\trequestFlush()\n\t\t\tthis.flushing = true\n\t\t}\n\t\t// Equivalent to push, but avoids a function call.\n\t\tq[q.length] = task\n\t}\n\n\t// The flush function processes all tasks that have been scheduled with\n\t// `rawAsap` unless and until one of those tasks throws an exception.\n\t// If a task throws an exception, `flush` ensures that its state will remain\n\t// consistent and will resume where it left off when called again.\n\t// However, `flush` does not make any arrangements to be called again if an\n\t// exception is thrown.\n\tprivate flush = () => {\n\t\tconst { queue: q } = this\n\t\twhile (this.index < q.length) {\n\t\t\tconst currentIndex = this.index\n\t\t\t// Advance the index before calling the task. This ensures that we will\n\t\t\t// begin flushing on the next task the task throws an error.\n\t\t\tthis.index++\n\t\t\tq[currentIndex]!.call()\n\t\t\t// Prevent leaking memory for long chains of recursive calls to `asap`.\n\t\t\t// If we call `asap` within tasks scheduled by `asap`, the queue will\n\t\t\t// grow, but to avoid an O(n) walk for every task we execute, we don't\n\t\t\t// shift tasks off the queue after they have been executed.\n\t\t\t// Instead, we periodically shift 1024 tasks off the queue.\n\t\t\tif (this.index > this.capacity) {\n\t\t\t\t// Manually shift all values starting at the index back to the\n\t\t\t\t// beginning of the queue.\n\t\t\t\tfor (\n\t\t\t\t\tlet scan = 0, newLength = q.length - this.index;\n\t\t\t\t\tscan < newLength;\n\t\t\t\t\tscan++\n\t\t\t\t) {\n\t\t\t\t\tq[scan] = q[scan + this.index]!\n\t\t\t\t}\n\t\t\t\tq.length -= this.index\n\t\t\t\tthis.index = 0\n\t\t\t}\n\t\t}\n\t\tq.length = 0\n\t\tthis.index = 0\n\t\tthis.flushing = false\n\t}\n\n\t// In a web browser, exceptions are not fatal. However, to avoid\n\t// slowing down the queue of pending tasks, we rethrow the error in a\n\t// lower priority turn.\n\tpublic registerPendingError = (err: any) => {\n\t\tthis.pendingErrors.push(err)\n\t\tthis.requestErrorThrow()\n\t}\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// // its existence.\n// rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n","import type { Task } from './types.js'\nimport { RawTask } from './RawTask.js'\n\nexport class TaskFactory {\n\tprivate freeTasks: RawTask[] = []\n\n\tpublic constructor(private onError: (err: any) => void) {}\n\n\tpublic create(task: () => void): Task {\n\t\tconst tasks = this.freeTasks\n\t\tconst t = tasks.length\n\t\t\t? (tasks.pop() as RawTask)\n\t\t\t: new RawTask(this.onError, (t) => (tasks[tasks.length] = t))\n\t\tt.task = task\n\t\treturn t\n\t}\n}\n","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { CALL_HISTORY_METHOD } from './actions';\n/**\n * This middleware captures CALL_HISTORY_METHOD actions to redirect to the\n * provided history object. This will prevent these actions from reaching your\n * reducer or any middleware that comes after this one.\n */\n\nvar routerMiddleware = function routerMiddleware(history) {\n return function (store) {\n return function (next) {\n return function (action) {\n // eslint-disable-line no-unused-vars\n if (action.type !== CALL_HISTORY_METHOD) {\n return next(action);\n }\n\n var _action$payload = action.payload,\n method = _action$payload.method,\n args = _action$payload.args;\n history[method].apply(history, _toConsumableArray(args));\n };\n };\n };\n};\n\nexport default routerMiddleware;","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^-_:/,()\\s\\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(e){var t=h(\"months\"),n=(h(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f-1)return new Date((\"X\"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date(\"\")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_localizedFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"};return function(t,o,n){var r=o.prototype,i=r.format;n.en.formats=e,r.format=function(t){void 0===t&&(t=\"YYYY-MM-DDTHH:mm:ssZ\");var o=this.$locale().formats,n=function(t,o){return t.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var i=r&&r.toUpperCase();return n||o[r]||e[r]||o[i].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,o){return t||o.slice(1)}))}))}(t,void 0===o?{}:o);return i.call(this,n)}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","'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","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t(e.reduxLogger=e.reduxLogger||{})}(this,function(e){\"use strict\";function t(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}function r(e,t){Object.defineProperty(this,\"kind\",{value:e,enumerable:!0}),t&&t.length&&Object.defineProperty(this,\"path\",{value:t,enumerable:!0})}function n(e,t,r){n.super_.call(this,\"E\",e),Object.defineProperty(this,\"lhs\",{value:t,enumerable:!0}),Object.defineProperty(this,\"rhs\",{value:r,enumerable:!0})}function o(e,t){o.super_.call(this,\"N\",e),Object.defineProperty(this,\"rhs\",{value:t,enumerable:!0})}function i(e,t){i.super_.call(this,\"D\",e),Object.defineProperty(this,\"lhs\",{value:t,enumerable:!0})}function a(e,t,r){a.super_.call(this,\"A\",e),Object.defineProperty(this,\"index\",{value:t,enumerable:!0}),Object.defineProperty(this,\"item\",{value:r,enumerable:!0})}function f(e,t,r){var n=e.slice((r||t)+1||e.length);return e.length=t<0?e.length+t:t,e.push.apply(e,n),e}function u(e){var t=\"undefined\"==typeof e?\"undefined\":N(e);return\"object\"!==t?t:e===Math?\"math\":null===e?\"null\":Array.isArray(e)?\"array\":\"[object Date]\"===Object.prototype.toString.call(e)?\"date\":\"function\"==typeof e.toString&&/^\\/.*\\//.test(e.toString())?\"regexp\":\"object\"}function l(e,t,r,c,s,d,p){s=s||[],p=p||[];var g=s.slice(0);if(\"undefined\"!=typeof d){if(c){if(\"function\"==typeof c&&c(g,d))return;if(\"object\"===(\"undefined\"==typeof c?\"undefined\":N(c))){if(c.prefilter&&c.prefilter(g,d))return;if(c.normalize){var h=c.normalize(g,d,e,t);h&&(e=h[0],t=h[1])}}}g.push(d)}\"regexp\"===u(e)&&\"regexp\"===u(t)&&(e=e.toString(),t=t.toString());var y=\"undefined\"==typeof e?\"undefined\":N(e),v=\"undefined\"==typeof t?\"undefined\":N(t),b=\"undefined\"!==y||p&&p[p.length-1].lhs&&p[p.length-1].lhs.hasOwnProperty(d),m=\"undefined\"!==v||p&&p[p.length-1].rhs&&p[p.length-1].rhs.hasOwnProperty(d);if(!b&&m)r(new o(g,t));else if(!m&&b)r(new i(g,e));else if(u(e)!==u(t))r(new n(g,e,t));else if(\"date\"===u(e)&&e-t!==0)r(new n(g,e,t));else if(\"object\"===y&&null!==e&&null!==t)if(p.filter(function(t){return t.lhs===e}).length)e!==t&&r(new n(g,e,t));else{if(p.push({lhs:e,rhs:t}),Array.isArray(e)){var w;e.length;for(w=0;w=t.length?r(new a(g,w,new i(void 0,e[w]))):l(e[w],t[w],r,c,g,w,p);for(;w=0?(l(e[n],t[n],r,c,g,n,p),S=f(S,i)):l(e[n],void 0,r,c,g,n,p)}),S.forEach(function(e){l(void 0,t[e],r,c,g,e,p)})}p.length=p.length-1}else e!==t&&(\"number\"===y&&isNaN(e)&&isNaN(t)||r(new n(g,e,t)))}function c(e,t,r,n){return n=n||[],l(e,t,function(e){e&&n.push(e)},r),n.length?n:void 0}function s(e,t,r){if(r.path&&r.path.length){var n,o=e[t],i=r.path.length-1;for(n=0;n0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign({},L,e),r=t.logger,n=t.stateTransformer,o=t.errorTransformer,i=t.predicate,a=t.logErrors,f=t.diffPredicate;if(\"undefined\"==typeof r)return function(){return function(e){return function(t){return e(t)}}};if(e.getState&&e.dispatch)return console.error(\"[redux-logger] redux-logger not installed. Make sure to pass logger instance as middleware:\\n// Logger with default options\\nimport { logger } from 'redux-logger'\\nconst store = createStore(\\n reducer,\\n applyMiddleware(logger)\\n)\\n// Or you can create your own logger with custom options http://bit.ly/redux-logger-options\\nimport createLogger from 'redux-logger'\\nconst logger = createLogger({\\n // ...options\\n});\\nconst store = createStore(\\n reducer,\\n applyMiddleware(logger)\\n)\\n\"),function(){return function(e){return function(t){return e(t)}}};var u=[];return function(e){var r=e.getState;return function(e){return function(l){if(\"function\"==typeof i&&!i(r,l))return e(l);var c={};u.push(c),c.started=O.now(),c.startedTime=new Date,c.prevState=n(r()),c.action=l;var s=void 0;if(a)try{s=e(l)}catch(e){c.error=o(e)}else s=e(l);c.took=O.now()-c.started,c.nextState=n(r());var d=t.diff&&\"function\"==typeof f?f(r,l):t.diff;if(x(u,Object.assign({},t,{diff:d})),u.length=0,c.error)throw c.error;return s}}}}var k,j,E=function(e,t){return new Array(t+1).join(e)},A=function(e,t){return E(\"0\",t-e.toString().length)+e},D=function(e){return A(e.getHours(),2)+\":\"+A(e.getMinutes(),2)+\":\"+A(e.getSeconds(),2)+\".\"+A(e.getMilliseconds(),3)},O=\"undefined\"!=typeof performance&&null!==performance&&\"function\"==typeof performance.now?performance:Date,N=\"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},P=function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t0&&void 0!==arguments[0]?arguments[0]:{},t=e.dispatch,r=e.getState;return\"function\"==typeof t||\"function\"==typeof r?S()({dispatch:t,getState:r}):void console.error(\"\\n[redux-logger v3] BREAKING CHANGE\\n[redux-logger v3] Since 3.0.0 redux-logger exports by default logger with default settings.\\n[redux-logger v3] Change\\n[redux-logger v3] import createLogger from 'redux-logger'\\n[redux-logger v3] to\\n[redux-logger v3] import { createLogger } from 'redux-logger'\\n\")};e.defaults=L,e.createLogger=S,e.logger=T,e.default=T,Object.defineProperty(e,\"__esModule\",{value:!0})});\n","/*\n * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\n\nvar SDPUtils = require('sdp');\n\nfunction fixStatsType(stat) {\n return {\n inboundrtp: 'inbound-rtp',\n outboundrtp: 'outbound-rtp',\n candidatepair: 'candidate-pair',\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n }[stat.type] || stat.type;\n}\n\nfunction writeMediaSection(transceiver, caps, type, stream, dtlsRole) {\n var sdp = SDPUtils.writeRtpDescription(transceiver.kind, caps);\n\n // Map ICE parameters (ufrag, pwd) to SDP.\n sdp += SDPUtils.writeIceParameters(\n transceiver.iceGatherer.getLocalParameters());\n\n // Map DTLS parameters to SDP.\n sdp += SDPUtils.writeDtlsParameters(\n transceiver.dtlsTransport.getLocalParameters(),\n type === 'offer' ? 'actpass' : dtlsRole || 'active');\n\n sdp += 'a=mid:' + transceiver.mid + '\\r\\n';\n\n if (transceiver.rtpSender && transceiver.rtpReceiver) {\n sdp += 'a=sendrecv\\r\\n';\n } else if (transceiver.rtpSender) {\n sdp += 'a=sendonly\\r\\n';\n } else if (transceiver.rtpReceiver) {\n sdp += 'a=recvonly\\r\\n';\n } else {\n sdp += 'a=inactive\\r\\n';\n }\n\n if (transceiver.rtpSender) {\n var trackId = transceiver.rtpSender._initialTrackId ||\n transceiver.rtpSender.track.id;\n transceiver.rtpSender._initialTrackId = trackId;\n // spec.\n var msid = 'msid:' + (stream ? stream.id : '-') + ' ' +\n trackId + '\\r\\n';\n sdp += 'a=' + msid;\n // for Chrome. Legacy should no longer be required.\n sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].ssrc +\n ' ' + msid;\n\n // RTX\n if (transceiver.sendEncodingParameters[0].rtx) {\n sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].rtx.ssrc +\n ' ' + msid;\n sdp += 'a=ssrc-group:FID ' +\n transceiver.sendEncodingParameters[0].ssrc + ' ' +\n transceiver.sendEncodingParameters[0].rtx.ssrc +\n '\\r\\n';\n }\n }\n // FIXME: this should be written by writeRtpDescription.\n sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].ssrc +\n ' cname:' + SDPUtils.localCName + '\\r\\n';\n if (transceiver.rtpSender && transceiver.sendEncodingParameters[0].rtx) {\n sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].rtx.ssrc +\n ' cname:' + SDPUtils.localCName + '\\r\\n';\n }\n return sdp;\n}\n\n// Edge does not like\n// 1) stun: filtered after 14393 unless ?transport=udp is present\n// 2) turn: that does not have all of turn:host:port?transport=udp\n// 3) turn: with ipv6 addresses\n// 4) turn: occurring muliple times\nfunction filterIceServers(iceServers, edgeVersion) {\n var hasTurn = false;\n iceServers = JSON.parse(JSON.stringify(iceServers));\n return iceServers.filter(function(server) {\n if (server && (server.urls || server.url)) {\n var urls = server.urls || server.url;\n if (server.url && !server.urls) {\n console.warn('RTCIceServer.url is deprecated! Use urls instead.');\n }\n var isString = typeof urls === 'string';\n if (isString) {\n urls = [urls];\n }\n urls = urls.filter(function(url) {\n var validTurn = url.indexOf('turn:') === 0 &&\n url.indexOf('transport=udp') !== -1 &&\n url.indexOf('turn:[') === -1 &&\n !hasTurn;\n\n if (validTurn) {\n hasTurn = true;\n return true;\n }\n return url.indexOf('stun:') === 0 && edgeVersion >= 14393 &&\n url.indexOf('?transport=udp') === -1;\n });\n\n delete server.url;\n server.urls = isString ? urls[0] : urls;\n return !!urls.length;\n }\n });\n}\n\n// Determines the intersection of local and remote capabilities.\nfunction getCommonCapabilities(localCapabilities, remoteCapabilities) {\n var commonCapabilities = {\n codecs: [],\n headerExtensions: [],\n fecMechanisms: []\n };\n\n var findCodecByPayloadType = function(pt, codecs) {\n pt = parseInt(pt, 10);\n for (var i = 0; i < codecs.length; i++) {\n if (codecs[i].payloadType === pt ||\n codecs[i].preferredPayloadType === pt) {\n return codecs[i];\n }\n }\n };\n\n var rtxCapabilityMatches = function(lRtx, rRtx, lCodecs, rCodecs) {\n var lCodec = findCodecByPayloadType(lRtx.parameters.apt, lCodecs);\n var rCodec = findCodecByPayloadType(rRtx.parameters.apt, rCodecs);\n return lCodec && rCodec &&\n lCodec.name.toLowerCase() === rCodec.name.toLowerCase();\n };\n\n localCapabilities.codecs.forEach(function(lCodec) {\n for (var i = 0; i < remoteCapabilities.codecs.length; i++) {\n var rCodec = remoteCapabilities.codecs[i];\n if (lCodec.name.toLowerCase() === rCodec.name.toLowerCase() &&\n lCodec.clockRate === rCodec.clockRate) {\n if (lCodec.name.toLowerCase() === 'rtx' &&\n lCodec.parameters && rCodec.parameters.apt) {\n // for RTX we need to find the local rtx that has a apt\n // which points to the same local codec as the remote one.\n if (!rtxCapabilityMatches(lCodec, rCodec,\n localCapabilities.codecs, remoteCapabilities.codecs)) {\n continue;\n }\n }\n rCodec = JSON.parse(JSON.stringify(rCodec)); // deepcopy\n // number of channels is the highest common number of channels\n rCodec.numChannels = Math.min(lCodec.numChannels,\n rCodec.numChannels);\n // push rCodec so we reply with offerer payload type\n commonCapabilities.codecs.push(rCodec);\n\n // determine common feedback mechanisms\n rCodec.rtcpFeedback = rCodec.rtcpFeedback.filter(function(fb) {\n for (var j = 0; j < lCodec.rtcpFeedback.length; j++) {\n if (lCodec.rtcpFeedback[j].type === fb.type &&\n lCodec.rtcpFeedback[j].parameter === fb.parameter) {\n return true;\n }\n }\n return false;\n });\n // FIXME: also need to determine .parameters\n // see https://github.com/openpeer/ortc/issues/569\n break;\n }\n }\n });\n\n localCapabilities.headerExtensions.forEach(function(lHeaderExtension) {\n for (var i = 0; i < remoteCapabilities.headerExtensions.length;\n i++) {\n var rHeaderExtension = remoteCapabilities.headerExtensions[i];\n if (lHeaderExtension.uri === rHeaderExtension.uri) {\n commonCapabilities.headerExtensions.push(rHeaderExtension);\n break;\n }\n }\n });\n\n // FIXME: fecMechanisms\n return commonCapabilities;\n}\n\n// is action=setLocalDescription with type allowed in signalingState\nfunction isActionAllowedInSignalingState(action, type, signalingState) {\n return {\n offer: {\n setLocalDescription: ['stable', 'have-local-offer'],\n setRemoteDescription: ['stable', 'have-remote-offer']\n },\n answer: {\n setLocalDescription: ['have-remote-offer', 'have-local-pranswer'],\n setRemoteDescription: ['have-local-offer', 'have-remote-pranswer']\n }\n }[type][action].indexOf(signalingState) !== -1;\n}\n\nfunction maybeAddCandidate(iceTransport, candidate) {\n // Edge's internal representation adds some fields therefore\n // not all fieldѕ are taken into account.\n var alreadyAdded = iceTransport.getRemoteCandidates()\n .find(function(remoteCandidate) {\n return candidate.foundation === remoteCandidate.foundation &&\n candidate.ip === remoteCandidate.ip &&\n candidate.port === remoteCandidate.port &&\n candidate.priority === remoteCandidate.priority &&\n candidate.protocol === remoteCandidate.protocol &&\n candidate.type === remoteCandidate.type;\n });\n if (!alreadyAdded) {\n iceTransport.addRemoteCandidate(candidate);\n }\n return !alreadyAdded;\n}\n\n\nfunction makeError(name, description) {\n var e = new Error(description);\n e.name = name;\n // legacy error codes from https://heycam.github.io/webidl/#idl-DOMException-error-names\n e.code = {\n NotSupportedError: 9,\n InvalidStateError: 11,\n InvalidAccessError: 15,\n TypeError: undefined,\n OperationError: undefined\n }[name];\n return e;\n}\n\nmodule.exports = function(window, edgeVersion) {\n // https://w3c.github.io/mediacapture-main/#mediastream\n // Helper function to add the track to the stream and\n // dispatch the event ourselves.\n function addTrackToStreamAndFireEvent(track, stream) {\n stream.addTrack(track);\n stream.dispatchEvent(new window.MediaStreamTrackEvent('addtrack',\n {track: track}));\n }\n\n function removeTrackFromStreamAndFireEvent(track, stream) {\n stream.removeTrack(track);\n stream.dispatchEvent(new window.MediaStreamTrackEvent('removetrack',\n {track: track}));\n }\n\n function fireAddTrack(pc, track, receiver, streams) {\n var trackEvent = new Event('track');\n trackEvent.track = track;\n trackEvent.receiver = receiver;\n trackEvent.transceiver = {receiver: receiver};\n trackEvent.streams = streams;\n window.setTimeout(function() {\n pc._dispatchEvent('track', trackEvent);\n });\n }\n\n var RTCPeerConnection = function(config) {\n var pc = this;\n\n var _eventTarget = document.createDocumentFragment();\n ['addEventListener', 'removeEventListener', 'dispatchEvent']\n .forEach(function(method) {\n pc[method] = _eventTarget[method].bind(_eventTarget);\n });\n\n this.canTrickleIceCandidates = null;\n\n this.needNegotiation = false;\n\n this.localStreams = [];\n this.remoteStreams = [];\n\n this._localDescription = null;\n this._remoteDescription = null;\n\n this.signalingState = 'stable';\n this.iceConnectionState = 'new';\n this.connectionState = 'new';\n this.iceGatheringState = 'new';\n\n config = JSON.parse(JSON.stringify(config || {}));\n\n this.usingBundle = config.bundlePolicy === 'max-bundle';\n if (config.rtcpMuxPolicy === 'negotiate') {\n throw(makeError('NotSupportedError',\n 'rtcpMuxPolicy \\'negotiate\\' is not supported'));\n } else if (!config.rtcpMuxPolicy) {\n config.rtcpMuxPolicy = 'require';\n }\n\n switch (config.iceTransportPolicy) {\n case 'all':\n case 'relay':\n break;\n default:\n config.iceTransportPolicy = 'all';\n break;\n }\n\n switch (config.bundlePolicy) {\n case 'balanced':\n case 'max-compat':\n case 'max-bundle':\n break;\n default:\n config.bundlePolicy = 'balanced';\n break;\n }\n\n config.iceServers = filterIceServers(config.iceServers || [], edgeVersion);\n\n this._iceGatherers = [];\n if (config.iceCandidatePoolSize) {\n for (var i = config.iceCandidatePoolSize; i > 0; i--) {\n this._iceGatherers.push(new window.RTCIceGatherer({\n iceServers: config.iceServers,\n gatherPolicy: config.iceTransportPolicy\n }));\n }\n } else {\n config.iceCandidatePoolSize = 0;\n }\n\n this._config = config;\n\n // per-track iceGathers, iceTransports, dtlsTransports, rtpSenders, ...\n // everything that is needed to describe a SDP m-line.\n this.transceivers = [];\n\n this._sdpSessionId = SDPUtils.generateSessionId();\n this._sdpSessionVersion = 0;\n\n this._dtlsRole = undefined; // role for a=setup to use in answers.\n\n this._isClosed = false;\n };\n\n Object.defineProperty(RTCPeerConnection.prototype, 'localDescription', {\n configurable: true,\n get: function() {\n return this._localDescription;\n }\n });\n Object.defineProperty(RTCPeerConnection.prototype, 'remoteDescription', {\n configurable: true,\n get: function() {\n return this._remoteDescription;\n }\n });\n\n // set up event handlers on prototype\n RTCPeerConnection.prototype.onicecandidate = null;\n RTCPeerConnection.prototype.onaddstream = null;\n RTCPeerConnection.prototype.ontrack = null;\n RTCPeerConnection.prototype.onremovestream = null;\n RTCPeerConnection.prototype.onsignalingstatechange = null;\n RTCPeerConnection.prototype.oniceconnectionstatechange = null;\n RTCPeerConnection.prototype.onconnectionstatechange = null;\n RTCPeerConnection.prototype.onicegatheringstatechange = null;\n RTCPeerConnection.prototype.onnegotiationneeded = null;\n RTCPeerConnection.prototype.ondatachannel = null;\n\n RTCPeerConnection.prototype._dispatchEvent = function(name, event) {\n if (this._isClosed) {\n return;\n }\n this.dispatchEvent(event);\n if (typeof this['on' + name] === 'function') {\n this['on' + name](event);\n }\n };\n\n RTCPeerConnection.prototype._emitGatheringStateChange = function() {\n var event = new Event('icegatheringstatechange');\n this._dispatchEvent('icegatheringstatechange', event);\n };\n\n RTCPeerConnection.prototype.getConfiguration = function() {\n return this._config;\n };\n\n RTCPeerConnection.prototype.getLocalStreams = function() {\n return this.localStreams;\n };\n\n RTCPeerConnection.prototype.getRemoteStreams = function() {\n return this.remoteStreams;\n };\n\n // internal helper to create a transceiver object.\n // (which is not yet the same as the WebRTC 1.0 transceiver)\n RTCPeerConnection.prototype._createTransceiver = function(kind, doNotAdd) {\n var hasBundleTransport = this.transceivers.length > 0;\n var transceiver = {\n track: null,\n iceGatherer: null,\n iceTransport: null,\n dtlsTransport: null,\n localCapabilities: null,\n remoteCapabilities: null,\n rtpSender: null,\n rtpReceiver: null,\n kind: kind,\n mid: null,\n sendEncodingParameters: null,\n recvEncodingParameters: null,\n stream: null,\n associatedRemoteMediaStreams: [],\n wantReceive: true\n };\n if (this.usingBundle && hasBundleTransport) {\n transceiver.iceTransport = this.transceivers[0].iceTransport;\n transceiver.dtlsTransport = this.transceivers[0].dtlsTransport;\n } else {\n var transports = this._createIceAndDtlsTransports();\n transceiver.iceTransport = transports.iceTransport;\n transceiver.dtlsTransport = transports.dtlsTransport;\n }\n if (!doNotAdd) {\n this.transceivers.push(transceiver);\n }\n return transceiver;\n };\n\n RTCPeerConnection.prototype.addTrack = function(track, stream) {\n if (this._isClosed) {\n throw makeError('InvalidStateError',\n 'Attempted to call addTrack on a closed peerconnection.');\n }\n\n var alreadyExists = this.transceivers.find(function(s) {\n return s.track === track;\n });\n\n if (alreadyExists) {\n throw makeError('InvalidAccessError', 'Track already exists.');\n }\n\n var transceiver;\n for (var i = 0; i < this.transceivers.length; i++) {\n if (!this.transceivers[i].track &&\n this.transceivers[i].kind === track.kind) {\n transceiver = this.transceivers[i];\n }\n }\n if (!transceiver) {\n transceiver = this._createTransceiver(track.kind);\n }\n\n this._maybeFireNegotiationNeeded();\n\n if (this.localStreams.indexOf(stream) === -1) {\n this.localStreams.push(stream);\n }\n\n transceiver.track = track;\n transceiver.stream = stream;\n transceiver.rtpSender = new window.RTCRtpSender(track,\n transceiver.dtlsTransport);\n return transceiver.rtpSender;\n };\n\n RTCPeerConnection.prototype.addStream = function(stream) {\n var pc = this;\n if (edgeVersion >= 15025) {\n stream.getTracks().forEach(function(track) {\n pc.addTrack(track, stream);\n });\n } else {\n // Clone is necessary for local demos mostly, attaching directly\n // to two different senders does not work (build 10547).\n // Fixed in 15025 (or earlier)\n var clonedStream = stream.clone();\n stream.getTracks().forEach(function(track, idx) {\n var clonedTrack = clonedStream.getTracks()[idx];\n track.addEventListener('enabled', function(event) {\n clonedTrack.enabled = event.enabled;\n });\n });\n clonedStream.getTracks().forEach(function(track) {\n pc.addTrack(track, clonedStream);\n });\n }\n };\n\n RTCPeerConnection.prototype.removeTrack = function(sender) {\n if (this._isClosed) {\n throw makeError('InvalidStateError',\n 'Attempted to call removeTrack on a closed peerconnection.');\n }\n\n if (!(sender instanceof window.RTCRtpSender)) {\n throw new TypeError('Argument 1 of RTCPeerConnection.removeTrack ' +\n 'does not implement interface RTCRtpSender.');\n }\n\n var transceiver = this.transceivers.find(function(t) {\n return t.rtpSender === sender;\n });\n\n if (!transceiver) {\n throw makeError('InvalidAccessError',\n 'Sender was not created by this connection.');\n }\n var stream = transceiver.stream;\n\n transceiver.rtpSender.stop();\n transceiver.rtpSender = null;\n transceiver.track = null;\n transceiver.stream = null;\n\n // remove the stream from the set of local streams\n var localStreams = this.transceivers.map(function(t) {\n return t.stream;\n });\n if (localStreams.indexOf(stream) === -1 &&\n this.localStreams.indexOf(stream) > -1) {\n this.localStreams.splice(this.localStreams.indexOf(stream), 1);\n }\n\n this._maybeFireNegotiationNeeded();\n };\n\n RTCPeerConnection.prototype.removeStream = function(stream) {\n var pc = this;\n stream.getTracks().forEach(function(track) {\n var sender = pc.getSenders().find(function(s) {\n return s.track === track;\n });\n if (sender) {\n pc.removeTrack(sender);\n }\n });\n };\n\n RTCPeerConnection.prototype.getSenders = function() {\n return this.transceivers.filter(function(transceiver) {\n return !!transceiver.rtpSender;\n })\n .map(function(transceiver) {\n return transceiver.rtpSender;\n });\n };\n\n RTCPeerConnection.prototype.getReceivers = function() {\n return this.transceivers.filter(function(transceiver) {\n return !!transceiver.rtpReceiver;\n })\n .map(function(transceiver) {\n return transceiver.rtpReceiver;\n });\n };\n\n\n RTCPeerConnection.prototype._createIceGatherer = function(sdpMLineIndex,\n usingBundle) {\n var pc = this;\n if (usingBundle && sdpMLineIndex > 0) {\n return this.transceivers[0].iceGatherer;\n } else if (this._iceGatherers.length) {\n return this._iceGatherers.shift();\n }\n var iceGatherer = new window.RTCIceGatherer({\n iceServers: this._config.iceServers,\n gatherPolicy: this._config.iceTransportPolicy\n });\n Object.defineProperty(iceGatherer, 'state',\n {value: 'new', writable: true}\n );\n\n this.transceivers[sdpMLineIndex].bufferedCandidateEvents = [];\n this.transceivers[sdpMLineIndex].bufferCandidates = function(event) {\n var end = !event.candidate || Object.keys(event.candidate).length === 0;\n // polyfill since RTCIceGatherer.state is not implemented in\n // Edge 10547 yet.\n iceGatherer.state = end ? 'completed' : 'gathering';\n if (pc.transceivers[sdpMLineIndex].bufferedCandidateEvents !== null) {\n pc.transceivers[sdpMLineIndex].bufferedCandidateEvents.push(event);\n }\n };\n iceGatherer.addEventListener('localcandidate',\n this.transceivers[sdpMLineIndex].bufferCandidates);\n return iceGatherer;\n };\n\n // start gathering from an RTCIceGatherer.\n RTCPeerConnection.prototype._gather = function(mid, sdpMLineIndex) {\n var pc = this;\n var iceGatherer = this.transceivers[sdpMLineIndex].iceGatherer;\n if (iceGatherer.onlocalcandidate) {\n return;\n }\n var bufferedCandidateEvents =\n this.transceivers[sdpMLineIndex].bufferedCandidateEvents;\n this.transceivers[sdpMLineIndex].bufferedCandidateEvents = null;\n iceGatherer.removeEventListener('localcandidate',\n this.transceivers[sdpMLineIndex].bufferCandidates);\n iceGatherer.onlocalcandidate = function(evt) {\n if (pc.usingBundle && sdpMLineIndex > 0) {\n // if we know that we use bundle we can drop candidates with\n // ѕdpMLineIndex > 0. If we don't do this then our state gets\n // confused since we dispose the extra ice gatherer.\n return;\n }\n var event = new Event('icecandidate');\n event.candidate = {sdpMid: mid, sdpMLineIndex: sdpMLineIndex};\n\n var cand = evt.candidate;\n // Edge emits an empty object for RTCIceCandidateComplete‥\n var end = !cand || Object.keys(cand).length === 0;\n if (end) {\n // polyfill since RTCIceGatherer.state is not implemented in\n // Edge 10547 yet.\n if (iceGatherer.state === 'new' || iceGatherer.state === 'gathering') {\n iceGatherer.state = 'completed';\n }\n } else {\n if (iceGatherer.state === 'new') {\n iceGatherer.state = 'gathering';\n }\n // RTCIceCandidate doesn't have a component, needs to be added\n cand.component = 1;\n // also the usernameFragment. TODO: update SDP to take both variants.\n cand.ufrag = iceGatherer.getLocalParameters().usernameFragment;\n\n var serializedCandidate = SDPUtils.writeCandidate(cand);\n event.candidate = Object.assign(event.candidate,\n SDPUtils.parseCandidate(serializedCandidate));\n\n event.candidate.candidate = serializedCandidate;\n event.candidate.toJSON = function() {\n return {\n candidate: event.candidate.candidate,\n sdpMid: event.candidate.sdpMid,\n sdpMLineIndex: event.candidate.sdpMLineIndex,\n usernameFragment: event.candidate.usernameFragment\n };\n };\n }\n\n // update local description.\n var sections = SDPUtils.getMediaSections(pc._localDescription.sdp);\n if (!end) {\n sections[event.candidate.sdpMLineIndex] +=\n 'a=' + event.candidate.candidate + '\\r\\n';\n } else {\n sections[event.candidate.sdpMLineIndex] +=\n 'a=end-of-candidates\\r\\n';\n }\n pc._localDescription.sdp =\n SDPUtils.getDescription(pc._localDescription.sdp) +\n sections.join('');\n var complete = pc.transceivers.every(function(transceiver) {\n return transceiver.iceGatherer &&\n transceiver.iceGatherer.state === 'completed';\n });\n\n if (pc.iceGatheringState !== 'gathering') {\n pc.iceGatheringState = 'gathering';\n pc._emitGatheringStateChange();\n }\n\n // Emit candidate. Also emit null candidate when all gatherers are\n // complete.\n if (!end) {\n pc._dispatchEvent('icecandidate', event);\n }\n if (complete) {\n pc._dispatchEvent('icecandidate', new Event('icecandidate'));\n pc.iceGatheringState = 'complete';\n pc._emitGatheringStateChange();\n }\n };\n\n // emit already gathered candidates.\n window.setTimeout(function() {\n bufferedCandidateEvents.forEach(function(e) {\n iceGatherer.onlocalcandidate(e);\n });\n }, 0);\n };\n\n // Create ICE transport and DTLS transport.\n RTCPeerConnection.prototype._createIceAndDtlsTransports = function() {\n var pc = this;\n var iceTransport = new window.RTCIceTransport(null);\n iceTransport.onicestatechange = function() {\n pc._updateIceConnectionState();\n pc._updateConnectionState();\n };\n\n var dtlsTransport = new window.RTCDtlsTransport(iceTransport);\n dtlsTransport.ondtlsstatechange = function() {\n pc._updateConnectionState();\n };\n dtlsTransport.onerror = function() {\n // onerror does not set state to failed by itself.\n Object.defineProperty(dtlsTransport, 'state',\n {value: 'failed', writable: true});\n pc._updateConnectionState();\n };\n\n return {\n iceTransport: iceTransport,\n dtlsTransport: dtlsTransport\n };\n };\n\n // Destroy ICE gatherer, ICE transport and DTLS transport.\n // Without triggering the callbacks.\n RTCPeerConnection.prototype._disposeIceAndDtlsTransports = function(\n sdpMLineIndex) {\n var iceGatherer = this.transceivers[sdpMLineIndex].iceGatherer;\n if (iceGatherer) {\n delete iceGatherer.onlocalcandidate;\n delete this.transceivers[sdpMLineIndex].iceGatherer;\n }\n var iceTransport = this.transceivers[sdpMLineIndex].iceTransport;\n if (iceTransport) {\n delete iceTransport.onicestatechange;\n delete this.transceivers[sdpMLineIndex].iceTransport;\n }\n var dtlsTransport = this.transceivers[sdpMLineIndex].dtlsTransport;\n if (dtlsTransport) {\n delete dtlsTransport.ondtlsstatechange;\n delete dtlsTransport.onerror;\n delete this.transceivers[sdpMLineIndex].dtlsTransport;\n }\n };\n\n // Start the RTP Sender and Receiver for a transceiver.\n RTCPeerConnection.prototype._transceive = function(transceiver,\n send, recv) {\n var params = getCommonCapabilities(transceiver.localCapabilities,\n transceiver.remoteCapabilities);\n if (send && transceiver.rtpSender) {\n params.encodings = transceiver.sendEncodingParameters;\n params.rtcp = {\n cname: SDPUtils.localCName,\n compound: transceiver.rtcpParameters.compound\n };\n if (transceiver.recvEncodingParameters.length) {\n params.rtcp.ssrc = transceiver.recvEncodingParameters[0].ssrc;\n }\n transceiver.rtpSender.send(params);\n }\n if (recv && transceiver.rtpReceiver && params.codecs.length > 0) {\n // remove RTX field in Edge 14942\n if (transceiver.kind === 'video'\n && transceiver.recvEncodingParameters\n && edgeVersion < 15019) {\n transceiver.recvEncodingParameters.forEach(function(p) {\n delete p.rtx;\n });\n }\n if (transceiver.recvEncodingParameters.length) {\n params.encodings = transceiver.recvEncodingParameters;\n } else {\n params.encodings = [{}];\n }\n params.rtcp = {\n compound: transceiver.rtcpParameters.compound\n };\n if (transceiver.rtcpParameters.cname) {\n params.rtcp.cname = transceiver.rtcpParameters.cname;\n }\n if (transceiver.sendEncodingParameters.length) {\n params.rtcp.ssrc = transceiver.sendEncodingParameters[0].ssrc;\n }\n transceiver.rtpReceiver.receive(params);\n }\n };\n\n RTCPeerConnection.prototype.setLocalDescription = function(description) {\n var pc = this;\n\n // Note: pranswer is not supported.\n if (['offer', 'answer'].indexOf(description.type) === -1) {\n return Promise.reject(makeError('TypeError',\n 'Unsupported type \"' + description.type + '\"'));\n }\n\n if (!isActionAllowedInSignalingState('setLocalDescription',\n description.type, pc.signalingState) || pc._isClosed) {\n return Promise.reject(makeError('InvalidStateError',\n 'Can not set local ' + description.type +\n ' in state ' + pc.signalingState));\n }\n\n var sections;\n var sessionpart;\n if (description.type === 'offer') {\n // VERY limited support for SDP munging. Limited to:\n // * changing the order of codecs\n sections = SDPUtils.splitSections(description.sdp);\n sessionpart = sections.shift();\n sections.forEach(function(mediaSection, sdpMLineIndex) {\n var caps = SDPUtils.parseRtpParameters(mediaSection);\n pc.transceivers[sdpMLineIndex].localCapabilities = caps;\n });\n\n pc.transceivers.forEach(function(transceiver, sdpMLineIndex) {\n pc._gather(transceiver.mid, sdpMLineIndex);\n });\n } else if (description.type === 'answer') {\n sections = SDPUtils.splitSections(pc._remoteDescription.sdp);\n sessionpart = sections.shift();\n var isIceLite = SDPUtils.matchPrefix(sessionpart,\n 'a=ice-lite').length > 0;\n sections.forEach(function(mediaSection, sdpMLineIndex) {\n var transceiver = pc.transceivers[sdpMLineIndex];\n var iceGatherer = transceiver.iceGatherer;\n var iceTransport = transceiver.iceTransport;\n var dtlsTransport = transceiver.dtlsTransport;\n var localCapabilities = transceiver.localCapabilities;\n var remoteCapabilities = transceiver.remoteCapabilities;\n\n // treat bundle-only as not-rejected.\n var rejected = SDPUtils.isRejected(mediaSection) &&\n SDPUtils.matchPrefix(mediaSection, 'a=bundle-only').length === 0;\n\n if (!rejected && !transceiver.rejected) {\n var remoteIceParameters = SDPUtils.getIceParameters(\n mediaSection, sessionpart);\n var remoteDtlsParameters = SDPUtils.getDtlsParameters(\n mediaSection, sessionpart);\n if (isIceLite) {\n remoteDtlsParameters.role = 'server';\n }\n\n if (!pc.usingBundle || sdpMLineIndex === 0) {\n pc._gather(transceiver.mid, sdpMLineIndex);\n if (iceTransport.state === 'new') {\n iceTransport.start(iceGatherer, remoteIceParameters,\n isIceLite ? 'controlling' : 'controlled');\n }\n if (dtlsTransport.state === 'new') {\n dtlsTransport.start(remoteDtlsParameters);\n }\n }\n\n // Calculate intersection of capabilities.\n var params = getCommonCapabilities(localCapabilities,\n remoteCapabilities);\n\n // Start the RTCRtpSender. The RTCRtpReceiver for this\n // transceiver has already been started in setRemoteDescription.\n pc._transceive(transceiver,\n params.codecs.length > 0,\n false);\n }\n });\n }\n\n pc._localDescription = {\n type: description.type,\n sdp: description.sdp\n };\n if (description.type === 'offer') {\n pc._updateSignalingState('have-local-offer');\n } else {\n pc._updateSignalingState('stable');\n }\n\n return Promise.resolve();\n };\n\n RTCPeerConnection.prototype.setRemoteDescription = function(description) {\n var pc = this;\n\n // Note: pranswer is not supported.\n if (['offer', 'answer'].indexOf(description.type) === -1) {\n return Promise.reject(makeError('TypeError',\n 'Unsupported type \"' + description.type + '\"'));\n }\n\n if (!isActionAllowedInSignalingState('setRemoteDescription',\n description.type, pc.signalingState) || pc._isClosed) {\n return Promise.reject(makeError('InvalidStateError',\n 'Can not set remote ' + description.type +\n ' in state ' + pc.signalingState));\n }\n\n var streams = {};\n pc.remoteStreams.forEach(function(stream) {\n streams[stream.id] = stream;\n });\n var receiverList = [];\n var sections = SDPUtils.splitSections(description.sdp);\n var sessionpart = sections.shift();\n var isIceLite = SDPUtils.matchPrefix(sessionpart,\n 'a=ice-lite').length > 0;\n var usingBundle = SDPUtils.matchPrefix(sessionpart,\n 'a=group:BUNDLE ').length > 0;\n pc.usingBundle = usingBundle;\n var iceOptions = SDPUtils.matchPrefix(sessionpart,\n 'a=ice-options:')[0];\n if (iceOptions) {\n pc.canTrickleIceCandidates = iceOptions.substr(14).split(' ')\n .indexOf('trickle') >= 0;\n } else {\n pc.canTrickleIceCandidates = false;\n }\n\n sections.forEach(function(mediaSection, sdpMLineIndex) {\n var lines = SDPUtils.splitLines(mediaSection);\n var kind = SDPUtils.getKind(mediaSection);\n // treat bundle-only as not-rejected.\n var rejected = SDPUtils.isRejected(mediaSection) &&\n SDPUtils.matchPrefix(mediaSection, 'a=bundle-only').length === 0;\n var protocol = lines[0].substr(2).split(' ')[2];\n\n var direction = SDPUtils.getDirection(mediaSection, sessionpart);\n var remoteMsid = SDPUtils.parseMsid(mediaSection);\n\n var mid = SDPUtils.getMid(mediaSection) || SDPUtils.generateIdentifier();\n\n // Reject datachannels which are not implemented yet.\n if (rejected || (kind === 'application' && (protocol === 'DTLS/SCTP' ||\n protocol === 'UDP/DTLS/SCTP'))) {\n // TODO: this is dangerous in the case where a non-rejected m-line\n // becomes rejected.\n pc.transceivers[sdpMLineIndex] = {\n mid: mid,\n kind: kind,\n protocol: protocol,\n rejected: true\n };\n return;\n }\n\n if (!rejected && pc.transceivers[sdpMLineIndex] &&\n pc.transceivers[sdpMLineIndex].rejected) {\n // recycle a rejected transceiver.\n pc.transceivers[sdpMLineIndex] = pc._createTransceiver(kind, true);\n }\n\n var transceiver;\n var iceGatherer;\n var iceTransport;\n var dtlsTransport;\n var rtpReceiver;\n var sendEncodingParameters;\n var recvEncodingParameters;\n var localCapabilities;\n\n var track;\n // FIXME: ensure the mediaSection has rtcp-mux set.\n var remoteCapabilities = SDPUtils.parseRtpParameters(mediaSection);\n var remoteIceParameters;\n var remoteDtlsParameters;\n if (!rejected) {\n remoteIceParameters = SDPUtils.getIceParameters(mediaSection,\n sessionpart);\n remoteDtlsParameters = SDPUtils.getDtlsParameters(mediaSection,\n sessionpart);\n remoteDtlsParameters.role = 'client';\n }\n recvEncodingParameters =\n SDPUtils.parseRtpEncodingParameters(mediaSection);\n\n var rtcpParameters = SDPUtils.parseRtcpParameters(mediaSection);\n\n var isComplete = SDPUtils.matchPrefix(mediaSection,\n 'a=end-of-candidates', sessionpart).length > 0;\n var cands = SDPUtils.matchPrefix(mediaSection, 'a=candidate:')\n .map(function(cand) {\n return SDPUtils.parseCandidate(cand);\n })\n .filter(function(cand) {\n return cand.component === 1;\n });\n\n // Check if we can use BUNDLE and dispose transports.\n if ((description.type === 'offer' || description.type === 'answer') &&\n !rejected && usingBundle && sdpMLineIndex > 0 &&\n pc.transceivers[sdpMLineIndex]) {\n pc._disposeIceAndDtlsTransports(sdpMLineIndex);\n pc.transceivers[sdpMLineIndex].iceGatherer =\n pc.transceivers[0].iceGatherer;\n pc.transceivers[sdpMLineIndex].iceTransport =\n pc.transceivers[0].iceTransport;\n pc.transceivers[sdpMLineIndex].dtlsTransport =\n pc.transceivers[0].dtlsTransport;\n if (pc.transceivers[sdpMLineIndex].rtpSender) {\n pc.transceivers[sdpMLineIndex].rtpSender.setTransport(\n pc.transceivers[0].dtlsTransport);\n }\n if (pc.transceivers[sdpMLineIndex].rtpReceiver) {\n pc.transceivers[sdpMLineIndex].rtpReceiver.setTransport(\n pc.transceivers[0].dtlsTransport);\n }\n }\n if (description.type === 'offer' && !rejected) {\n transceiver = pc.transceivers[sdpMLineIndex] ||\n pc._createTransceiver(kind);\n transceiver.mid = mid;\n\n if (!transceiver.iceGatherer) {\n transceiver.iceGatherer = pc._createIceGatherer(sdpMLineIndex,\n usingBundle);\n }\n\n if (cands.length && transceiver.iceTransport.state === 'new') {\n if (isComplete && (!usingBundle || sdpMLineIndex === 0)) {\n transceiver.iceTransport.setRemoteCandidates(cands);\n } else {\n cands.forEach(function(candidate) {\n maybeAddCandidate(transceiver.iceTransport, candidate);\n });\n }\n }\n\n localCapabilities = window.RTCRtpReceiver.getCapabilities(kind);\n\n // filter RTX until additional stuff needed for RTX is implemented\n // in adapter.js\n if (edgeVersion < 15019) {\n localCapabilities.codecs = localCapabilities.codecs.filter(\n function(codec) {\n return codec.name !== 'rtx';\n });\n }\n\n sendEncodingParameters = transceiver.sendEncodingParameters || [{\n ssrc: (2 * sdpMLineIndex + 2) * 1001\n }];\n\n // TODO: rewrite to use http://w3c.github.io/webrtc-pc/#set-associated-remote-streams\n var isNewTrack = false;\n if (direction === 'sendrecv' || direction === 'sendonly') {\n isNewTrack = !transceiver.rtpReceiver;\n rtpReceiver = transceiver.rtpReceiver ||\n new window.RTCRtpReceiver(transceiver.dtlsTransport, kind);\n\n if (isNewTrack) {\n var stream;\n track = rtpReceiver.track;\n // FIXME: does not work with Plan B.\n if (remoteMsid && remoteMsid.stream === '-') {\n // no-op. a stream id of '-' means: no associated stream.\n } else if (remoteMsid) {\n if (!streams[remoteMsid.stream]) {\n streams[remoteMsid.stream] = new window.MediaStream();\n Object.defineProperty(streams[remoteMsid.stream], 'id', {\n get: function() {\n return remoteMsid.stream;\n }\n });\n }\n Object.defineProperty(track, 'id', {\n get: function() {\n return remoteMsid.track;\n }\n });\n stream = streams[remoteMsid.stream];\n } else {\n if (!streams.default) {\n streams.default = new window.MediaStream();\n }\n stream = streams.default;\n }\n if (stream) {\n addTrackToStreamAndFireEvent(track, stream);\n transceiver.associatedRemoteMediaStreams.push(stream);\n }\n receiverList.push([track, rtpReceiver, stream]);\n }\n } else if (transceiver.rtpReceiver && transceiver.rtpReceiver.track) {\n transceiver.associatedRemoteMediaStreams.forEach(function(s) {\n var nativeTrack = s.getTracks().find(function(t) {\n return t.id === transceiver.rtpReceiver.track.id;\n });\n if (nativeTrack) {\n removeTrackFromStreamAndFireEvent(nativeTrack, s);\n }\n });\n transceiver.associatedRemoteMediaStreams = [];\n }\n\n transceiver.localCapabilities = localCapabilities;\n transceiver.remoteCapabilities = remoteCapabilities;\n transceiver.rtpReceiver = rtpReceiver;\n transceiver.rtcpParameters = rtcpParameters;\n transceiver.sendEncodingParameters = sendEncodingParameters;\n transceiver.recvEncodingParameters = recvEncodingParameters;\n\n // Start the RTCRtpReceiver now. The RTPSender is started in\n // setLocalDescription.\n pc._transceive(pc.transceivers[sdpMLineIndex],\n false,\n isNewTrack);\n } else if (description.type === 'answer' && !rejected) {\n transceiver = pc.transceivers[sdpMLineIndex];\n iceGatherer = transceiver.iceGatherer;\n iceTransport = transceiver.iceTransport;\n dtlsTransport = transceiver.dtlsTransport;\n rtpReceiver = transceiver.rtpReceiver;\n sendEncodingParameters = transceiver.sendEncodingParameters;\n localCapabilities = transceiver.localCapabilities;\n\n pc.transceivers[sdpMLineIndex].recvEncodingParameters =\n recvEncodingParameters;\n pc.transceivers[sdpMLineIndex].remoteCapabilities =\n remoteCapabilities;\n pc.transceivers[sdpMLineIndex].rtcpParameters = rtcpParameters;\n\n if (cands.length && iceTransport.state === 'new') {\n if ((isIceLite || isComplete) &&\n (!usingBundle || sdpMLineIndex === 0)) {\n iceTransport.setRemoteCandidates(cands);\n } else {\n cands.forEach(function(candidate) {\n maybeAddCandidate(transceiver.iceTransport, candidate);\n });\n }\n }\n\n if (!usingBundle || sdpMLineIndex === 0) {\n if (iceTransport.state === 'new') {\n iceTransport.start(iceGatherer, remoteIceParameters,\n 'controlling');\n }\n if (dtlsTransport.state === 'new') {\n dtlsTransport.start(remoteDtlsParameters);\n }\n }\n\n // If the offer contained RTX but the answer did not,\n // remove RTX from sendEncodingParameters.\n var commonCapabilities = getCommonCapabilities(\n transceiver.localCapabilities,\n transceiver.remoteCapabilities);\n\n var hasRtx = commonCapabilities.codecs.filter(function(c) {\n return c.name.toLowerCase() === 'rtx';\n }).length;\n if (!hasRtx && transceiver.sendEncodingParameters[0].rtx) {\n delete transceiver.sendEncodingParameters[0].rtx;\n }\n\n pc._transceive(transceiver,\n direction === 'sendrecv' || direction === 'recvonly',\n direction === 'sendrecv' || direction === 'sendonly');\n\n // TODO: rewrite to use http://w3c.github.io/webrtc-pc/#set-associated-remote-streams\n if (rtpReceiver &&\n (direction === 'sendrecv' || direction === 'sendonly')) {\n track = rtpReceiver.track;\n if (remoteMsid) {\n if (!streams[remoteMsid.stream]) {\n streams[remoteMsid.stream] = new window.MediaStream();\n }\n addTrackToStreamAndFireEvent(track, streams[remoteMsid.stream]);\n receiverList.push([track, rtpReceiver, streams[remoteMsid.stream]]);\n } else {\n if (!streams.default) {\n streams.default = new window.MediaStream();\n }\n addTrackToStreamAndFireEvent(track, streams.default);\n receiverList.push([track, rtpReceiver, streams.default]);\n }\n } else {\n // FIXME: actually the receiver should be created later.\n delete transceiver.rtpReceiver;\n }\n }\n });\n\n if (pc._dtlsRole === undefined) {\n pc._dtlsRole = description.type === 'offer' ? 'active' : 'passive';\n }\n\n pc._remoteDescription = {\n type: description.type,\n sdp: description.sdp\n };\n if (description.type === 'offer') {\n pc._updateSignalingState('have-remote-offer');\n } else {\n pc._updateSignalingState('stable');\n }\n Object.keys(streams).forEach(function(sid) {\n var stream = streams[sid];\n if (stream.getTracks().length) {\n if (pc.remoteStreams.indexOf(stream) === -1) {\n pc.remoteStreams.push(stream);\n var event = new Event('addstream');\n event.stream = stream;\n window.setTimeout(function() {\n pc._dispatchEvent('addstream', event);\n });\n }\n\n receiverList.forEach(function(item) {\n var track = item[0];\n var receiver = item[1];\n if (stream.id !== item[2].id) {\n return;\n }\n fireAddTrack(pc, track, receiver, [stream]);\n });\n }\n });\n receiverList.forEach(function(item) {\n if (item[2]) {\n return;\n }\n fireAddTrack(pc, item[0], item[1], []);\n });\n\n // check whether addIceCandidate({}) was called within four seconds after\n // setRemoteDescription.\n window.setTimeout(function() {\n if (!(pc && pc.transceivers)) {\n return;\n }\n pc.transceivers.forEach(function(transceiver) {\n if (transceiver.iceTransport &&\n transceiver.iceTransport.state === 'new' &&\n transceiver.iceTransport.getRemoteCandidates().length > 0) {\n console.warn('Timeout for addRemoteCandidate. Consider sending ' +\n 'an end-of-candidates notification');\n transceiver.iceTransport.addRemoteCandidate({});\n }\n });\n }, 4000);\n\n return Promise.resolve();\n };\n\n RTCPeerConnection.prototype.close = function() {\n this.transceivers.forEach(function(transceiver) {\n /* not yet\n if (transceiver.iceGatherer) {\n transceiver.iceGatherer.close();\n }\n */\n if (transceiver.iceTransport) {\n transceiver.iceTransport.stop();\n }\n if (transceiver.dtlsTransport) {\n transceiver.dtlsTransport.stop();\n }\n if (transceiver.rtpSender) {\n transceiver.rtpSender.stop();\n }\n if (transceiver.rtpReceiver) {\n transceiver.rtpReceiver.stop();\n }\n });\n // FIXME: clean up tracks, local streams, remote streams, etc\n this._isClosed = true;\n this._updateSignalingState('closed');\n };\n\n // Update the signaling state.\n RTCPeerConnection.prototype._updateSignalingState = function(newState) {\n this.signalingState = newState;\n var event = new Event('signalingstatechange');\n this._dispatchEvent('signalingstatechange', event);\n };\n\n // Determine whether to fire the negotiationneeded event.\n RTCPeerConnection.prototype._maybeFireNegotiationNeeded = function() {\n var pc = this;\n if (this.signalingState !== 'stable' || this.needNegotiation === true) {\n return;\n }\n this.needNegotiation = true;\n window.setTimeout(function() {\n if (pc.needNegotiation) {\n pc.needNegotiation = false;\n var event = new Event('negotiationneeded');\n pc._dispatchEvent('negotiationneeded', event);\n }\n }, 0);\n };\n\n // Update the ice connection state.\n RTCPeerConnection.prototype._updateIceConnectionState = function() {\n var newState;\n var states = {\n 'new': 0,\n closed: 0,\n checking: 0,\n connected: 0,\n completed: 0,\n disconnected: 0,\n failed: 0\n };\n this.transceivers.forEach(function(transceiver) {\n if (transceiver.iceTransport && !transceiver.rejected) {\n states[transceiver.iceTransport.state]++;\n }\n });\n\n newState = 'new';\n if (states.failed > 0) {\n newState = 'failed';\n } else if (states.checking > 0) {\n newState = 'checking';\n } else if (states.disconnected > 0) {\n newState = 'disconnected';\n } else if (states.new > 0) {\n newState = 'new';\n } else if (states.connected > 0) {\n newState = 'connected';\n } else if (states.completed > 0) {\n newState = 'completed';\n }\n\n if (newState !== this.iceConnectionState) {\n this.iceConnectionState = newState;\n var event = new Event('iceconnectionstatechange');\n this._dispatchEvent('iceconnectionstatechange', event);\n }\n };\n\n // Update the connection state.\n RTCPeerConnection.prototype._updateConnectionState = function() {\n var newState;\n var states = {\n 'new': 0,\n closed: 0,\n connecting: 0,\n connected: 0,\n completed: 0,\n disconnected: 0,\n failed: 0\n };\n this.transceivers.forEach(function(transceiver) {\n if (transceiver.iceTransport && transceiver.dtlsTransport &&\n !transceiver.rejected) {\n states[transceiver.iceTransport.state]++;\n states[transceiver.dtlsTransport.state]++;\n }\n });\n // ICETransport.completed and connected are the same for this purpose.\n states.connected += states.completed;\n\n newState = 'new';\n if (states.failed > 0) {\n newState = 'failed';\n } else if (states.connecting > 0) {\n newState = 'connecting';\n } else if (states.disconnected > 0) {\n newState = 'disconnected';\n } else if (states.new > 0) {\n newState = 'new';\n } else if (states.connected > 0) {\n newState = 'connected';\n }\n\n if (newState !== this.connectionState) {\n this.connectionState = newState;\n var event = new Event('connectionstatechange');\n this._dispatchEvent('connectionstatechange', event);\n }\n };\n\n RTCPeerConnection.prototype.createOffer = function() {\n var pc = this;\n\n if (pc._isClosed) {\n return Promise.reject(makeError('InvalidStateError',\n 'Can not call createOffer after close'));\n }\n\n var numAudioTracks = pc.transceivers.filter(function(t) {\n return t.kind === 'audio';\n }).length;\n var numVideoTracks = pc.transceivers.filter(function(t) {\n return t.kind === 'video';\n }).length;\n\n // Determine number of audio and video tracks we need to send/recv.\n var offerOptions = arguments[0];\n if (offerOptions) {\n // Reject Chrome legacy constraints.\n if (offerOptions.mandatory || offerOptions.optional) {\n throw new TypeError(\n 'Legacy mandatory/optional constraints not supported.');\n }\n if (offerOptions.offerToReceiveAudio !== undefined) {\n if (offerOptions.offerToReceiveAudio === true) {\n numAudioTracks = 1;\n } else if (offerOptions.offerToReceiveAudio === false) {\n numAudioTracks = 0;\n } else {\n numAudioTracks = offerOptions.offerToReceiveAudio;\n }\n }\n if (offerOptions.offerToReceiveVideo !== undefined) {\n if (offerOptions.offerToReceiveVideo === true) {\n numVideoTracks = 1;\n } else if (offerOptions.offerToReceiveVideo === false) {\n numVideoTracks = 0;\n } else {\n numVideoTracks = offerOptions.offerToReceiveVideo;\n }\n }\n }\n\n pc.transceivers.forEach(function(transceiver) {\n if (transceiver.kind === 'audio') {\n numAudioTracks--;\n if (numAudioTracks < 0) {\n transceiver.wantReceive = false;\n }\n } else if (transceiver.kind === 'video') {\n numVideoTracks--;\n if (numVideoTracks < 0) {\n transceiver.wantReceive = false;\n }\n }\n });\n\n // Create M-lines for recvonly streams.\n while (numAudioTracks > 0 || numVideoTracks > 0) {\n if (numAudioTracks > 0) {\n pc._createTransceiver('audio');\n numAudioTracks--;\n }\n if (numVideoTracks > 0) {\n pc._createTransceiver('video');\n numVideoTracks--;\n }\n }\n\n var sdp = SDPUtils.writeSessionBoilerplate(pc._sdpSessionId,\n pc._sdpSessionVersion++);\n pc.transceivers.forEach(function(transceiver, sdpMLineIndex) {\n // For each track, create an ice gatherer, ice transport,\n // dtls transport, potentially rtpsender and rtpreceiver.\n var track = transceiver.track;\n var kind = transceiver.kind;\n var mid = transceiver.mid || SDPUtils.generateIdentifier();\n transceiver.mid = mid;\n\n if (!transceiver.iceGatherer) {\n transceiver.iceGatherer = pc._createIceGatherer(sdpMLineIndex,\n pc.usingBundle);\n }\n\n var localCapabilities = window.RTCRtpSender.getCapabilities(kind);\n // filter RTX until additional stuff needed for RTX is implemented\n // in adapter.js\n if (edgeVersion < 15019) {\n localCapabilities.codecs = localCapabilities.codecs.filter(\n function(codec) {\n return codec.name !== 'rtx';\n });\n }\n localCapabilities.codecs.forEach(function(codec) {\n // work around https://bugs.chromium.org/p/webrtc/issues/detail?id=6552\n // by adding level-asymmetry-allowed=1\n if (codec.name === 'H264' &&\n codec.parameters['level-asymmetry-allowed'] === undefined) {\n codec.parameters['level-asymmetry-allowed'] = '1';\n }\n\n // for subsequent offers, we might have to re-use the payload\n // type of the last offer.\n if (transceiver.remoteCapabilities &&\n transceiver.remoteCapabilities.codecs) {\n transceiver.remoteCapabilities.codecs.forEach(function(remoteCodec) {\n if (codec.name.toLowerCase() === remoteCodec.name.toLowerCase() &&\n codec.clockRate === remoteCodec.clockRate) {\n codec.preferredPayloadType = remoteCodec.payloadType;\n }\n });\n }\n });\n localCapabilities.headerExtensions.forEach(function(hdrExt) {\n var remoteExtensions = transceiver.remoteCapabilities &&\n transceiver.remoteCapabilities.headerExtensions || [];\n remoteExtensions.forEach(function(rHdrExt) {\n if (hdrExt.uri === rHdrExt.uri) {\n hdrExt.id = rHdrExt.id;\n }\n });\n });\n\n // generate an ssrc now, to be used later in rtpSender.send\n var sendEncodingParameters = transceiver.sendEncodingParameters || [{\n ssrc: (2 * sdpMLineIndex + 1) * 1001\n }];\n if (track) {\n // add RTX\n if (edgeVersion >= 15019 && kind === 'video' &&\n !sendEncodingParameters[0].rtx) {\n sendEncodingParameters[0].rtx = {\n ssrc: sendEncodingParameters[0].ssrc + 1\n };\n }\n }\n\n if (transceiver.wantReceive) {\n transceiver.rtpReceiver = new window.RTCRtpReceiver(\n transceiver.dtlsTransport, kind);\n }\n\n transceiver.localCapabilities = localCapabilities;\n transceiver.sendEncodingParameters = sendEncodingParameters;\n });\n\n // always offer BUNDLE and dispose on return if not supported.\n if (pc._config.bundlePolicy !== 'max-compat') {\n sdp += 'a=group:BUNDLE ' + pc.transceivers.map(function(t) {\n return t.mid;\n }).join(' ') + '\\r\\n';\n }\n sdp += 'a=ice-options:trickle\\r\\n';\n\n pc.transceivers.forEach(function(transceiver, sdpMLineIndex) {\n sdp += writeMediaSection(transceiver, transceiver.localCapabilities,\n 'offer', transceiver.stream, pc._dtlsRole);\n sdp += 'a=rtcp-rsize\\r\\n';\n\n if (transceiver.iceGatherer && pc.iceGatheringState !== 'new' &&\n (sdpMLineIndex === 0 || !pc.usingBundle)) {\n transceiver.iceGatherer.getLocalCandidates().forEach(function(cand) {\n cand.component = 1;\n sdp += 'a=' + SDPUtils.writeCandidate(cand) + '\\r\\n';\n });\n\n if (transceiver.iceGatherer.state === 'completed') {\n sdp += 'a=end-of-candidates\\r\\n';\n }\n }\n });\n\n var desc = new window.RTCSessionDescription({\n type: 'offer',\n sdp: sdp\n });\n return Promise.resolve(desc);\n };\n\n RTCPeerConnection.prototype.createAnswer = function() {\n var pc = this;\n\n if (pc._isClosed) {\n return Promise.reject(makeError('InvalidStateError',\n 'Can not call createAnswer after close'));\n }\n\n if (!(pc.signalingState === 'have-remote-offer' ||\n pc.signalingState === 'have-local-pranswer')) {\n return Promise.reject(makeError('InvalidStateError',\n 'Can not call createAnswer in signalingState ' + pc.signalingState));\n }\n\n var sdp = SDPUtils.writeSessionBoilerplate(pc._sdpSessionId,\n pc._sdpSessionVersion++);\n if (pc.usingBundle) {\n sdp += 'a=group:BUNDLE ' + pc.transceivers.map(function(t) {\n return t.mid;\n }).join(' ') + '\\r\\n';\n }\n sdp += 'a=ice-options:trickle\\r\\n';\n\n var mediaSectionsInOffer = SDPUtils.getMediaSections(\n pc._remoteDescription.sdp).length;\n pc.transceivers.forEach(function(transceiver, sdpMLineIndex) {\n if (sdpMLineIndex + 1 > mediaSectionsInOffer) {\n return;\n }\n if (transceiver.rejected) {\n if (transceiver.kind === 'application') {\n if (transceiver.protocol === 'DTLS/SCTP') { // legacy fmt\n sdp += 'm=application 0 DTLS/SCTP 5000\\r\\n';\n } else {\n sdp += 'm=application 0 ' + transceiver.protocol +\n ' webrtc-datachannel\\r\\n';\n }\n } else if (transceiver.kind === 'audio') {\n sdp += 'm=audio 0 UDP/TLS/RTP/SAVPF 0\\r\\n' +\n 'a=rtpmap:0 PCMU/8000\\r\\n';\n } else if (transceiver.kind === 'video') {\n sdp += 'm=video 0 UDP/TLS/RTP/SAVPF 120\\r\\n' +\n 'a=rtpmap:120 VP8/90000\\r\\n';\n }\n sdp += 'c=IN IP4 0.0.0.0\\r\\n' +\n 'a=inactive\\r\\n' +\n 'a=mid:' + transceiver.mid + '\\r\\n';\n return;\n }\n\n // FIXME: look at direction.\n if (transceiver.stream) {\n var localTrack;\n if (transceiver.kind === 'audio') {\n localTrack = transceiver.stream.getAudioTracks()[0];\n } else if (transceiver.kind === 'video') {\n localTrack = transceiver.stream.getVideoTracks()[0];\n }\n if (localTrack) {\n // add RTX\n if (edgeVersion >= 15019 && transceiver.kind === 'video' &&\n !transceiver.sendEncodingParameters[0].rtx) {\n transceiver.sendEncodingParameters[0].rtx = {\n ssrc: transceiver.sendEncodingParameters[0].ssrc + 1\n };\n }\n }\n }\n\n // Calculate intersection of capabilities.\n var commonCapabilities = getCommonCapabilities(\n transceiver.localCapabilities,\n transceiver.remoteCapabilities);\n\n var hasRtx = commonCapabilities.codecs.filter(function(c) {\n return c.name.toLowerCase() === 'rtx';\n }).length;\n if (!hasRtx && transceiver.sendEncodingParameters[0].rtx) {\n delete transceiver.sendEncodingParameters[0].rtx;\n }\n\n sdp += writeMediaSection(transceiver, commonCapabilities,\n 'answer', transceiver.stream, pc._dtlsRole);\n if (transceiver.rtcpParameters &&\n transceiver.rtcpParameters.reducedSize) {\n sdp += 'a=rtcp-rsize\\r\\n';\n }\n });\n\n var desc = new window.RTCSessionDescription({\n type: 'answer',\n sdp: sdp\n });\n return Promise.resolve(desc);\n };\n\n RTCPeerConnection.prototype.addIceCandidate = function(candidate) {\n var pc = this;\n var sections;\n if (candidate && !(candidate.sdpMLineIndex !== undefined ||\n candidate.sdpMid)) {\n return Promise.reject(new TypeError('sdpMLineIndex or sdpMid required'));\n }\n\n // TODO: needs to go into ops queue.\n return new Promise(function(resolve, reject) {\n if (!pc._remoteDescription) {\n return reject(makeError('InvalidStateError',\n 'Can not add ICE candidate without a remote description'));\n } else if (!candidate || candidate.candidate === '') {\n for (var j = 0; j < pc.transceivers.length; j++) {\n if (pc.transceivers[j].rejected) {\n continue;\n }\n pc.transceivers[j].iceTransport.addRemoteCandidate({});\n sections = SDPUtils.getMediaSections(pc._remoteDescription.sdp);\n sections[j] += 'a=end-of-candidates\\r\\n';\n pc._remoteDescription.sdp =\n SDPUtils.getDescription(pc._remoteDescription.sdp) +\n sections.join('');\n if (pc.usingBundle) {\n break;\n }\n }\n } else {\n var sdpMLineIndex = candidate.sdpMLineIndex;\n if (candidate.sdpMid) {\n for (var i = 0; i < pc.transceivers.length; i++) {\n if (pc.transceivers[i].mid === candidate.sdpMid) {\n sdpMLineIndex = i;\n break;\n }\n }\n }\n var transceiver = pc.transceivers[sdpMLineIndex];\n if (transceiver) {\n if (transceiver.rejected) {\n return resolve();\n }\n var cand = Object.keys(candidate.candidate).length > 0 ?\n SDPUtils.parseCandidate(candidate.candidate) : {};\n // Ignore Chrome's invalid candidates since Edge does not like them.\n if (cand.protocol === 'tcp' && (cand.port === 0 || cand.port === 9)) {\n return resolve();\n }\n // Ignore RTCP candidates, we assume RTCP-MUX.\n if (cand.component && cand.component !== 1) {\n return resolve();\n }\n // when using bundle, avoid adding candidates to the wrong\n // ice transport. And avoid adding candidates added in the SDP.\n if (sdpMLineIndex === 0 || (sdpMLineIndex > 0 &&\n transceiver.iceTransport !== pc.transceivers[0].iceTransport)) {\n if (!maybeAddCandidate(transceiver.iceTransport, cand)) {\n return reject(makeError('OperationError',\n 'Can not add ICE candidate'));\n }\n }\n\n // update the remoteDescription.\n var candidateString = candidate.candidate.trim();\n if (candidateString.indexOf('a=') === 0) {\n candidateString = candidateString.substr(2);\n }\n sections = SDPUtils.getMediaSections(pc._remoteDescription.sdp);\n sections[sdpMLineIndex] += 'a=' +\n (cand.type ? candidateString : 'end-of-candidates')\n + '\\r\\n';\n pc._remoteDescription.sdp =\n SDPUtils.getDescription(pc._remoteDescription.sdp) +\n sections.join('');\n } else {\n return reject(makeError('OperationError',\n 'Can not add ICE candidate'));\n }\n }\n resolve();\n });\n };\n\n RTCPeerConnection.prototype.getStats = function(selector) {\n if (selector && selector instanceof window.MediaStreamTrack) {\n var senderOrReceiver = null;\n this.transceivers.forEach(function(transceiver) {\n if (transceiver.rtpSender &&\n transceiver.rtpSender.track === selector) {\n senderOrReceiver = transceiver.rtpSender;\n } else if (transceiver.rtpReceiver &&\n transceiver.rtpReceiver.track === selector) {\n senderOrReceiver = transceiver.rtpReceiver;\n }\n });\n if (!senderOrReceiver) {\n throw makeError('InvalidAccessError', 'Invalid selector.');\n }\n return senderOrReceiver.getStats();\n }\n\n var promises = [];\n this.transceivers.forEach(function(transceiver) {\n ['rtpSender', 'rtpReceiver', 'iceGatherer', 'iceTransport',\n 'dtlsTransport'].forEach(function(method) {\n if (transceiver[method]) {\n promises.push(transceiver[method].getStats());\n }\n });\n });\n return Promise.all(promises).then(function(allStats) {\n var results = new Map();\n allStats.forEach(function(stats) {\n stats.forEach(function(stat) {\n results.set(stat.id, stat);\n });\n });\n return results;\n });\n };\n\n // fix low-level stat names and return Map instead of object.\n var ortcObjects = ['RTCRtpSender', 'RTCRtpReceiver', 'RTCIceGatherer',\n 'RTCIceTransport', 'RTCDtlsTransport'];\n ortcObjects.forEach(function(ortcObjectName) {\n var obj = window[ortcObjectName];\n if (obj && obj.prototype && obj.prototype.getStats) {\n var nativeGetstats = obj.prototype.getStats;\n obj.prototype.getStats = function() {\n return nativeGetstats.apply(this)\n .then(function(nativeStats) {\n var mapStats = new Map();\n Object.keys(nativeStats).forEach(function(id) {\n nativeStats[id].type = fixStatsType(nativeStats[id]);\n mapStats.set(id, nativeStats[id]);\n });\n return mapStats;\n });\n };\n }\n });\n\n // legacy callback shims. Should be moved to adapter.js some days.\n var methods = ['createOffer', 'createAnswer'];\n methods.forEach(function(method) {\n var nativeMethod = RTCPeerConnection.prototype[method];\n RTCPeerConnection.prototype[method] = function() {\n var args = arguments;\n if (typeof args[0] === 'function' ||\n typeof args[1] === 'function') { // legacy\n return nativeMethod.apply(this, [arguments[2]])\n .then(function(description) {\n if (typeof args[0] === 'function') {\n args[0].apply(null, [description]);\n }\n }, function(error) {\n if (typeof args[1] === 'function') {\n args[1].apply(null, [error]);\n }\n });\n }\n return nativeMethod.apply(this, arguments);\n };\n });\n\n methods = ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate'];\n methods.forEach(function(method) {\n var nativeMethod = RTCPeerConnection.prototype[method];\n RTCPeerConnection.prototype[method] = function() {\n var args = arguments;\n if (typeof args[1] === 'function' ||\n typeof args[2] === 'function') { // legacy\n return nativeMethod.apply(this, arguments)\n .then(function() {\n if (typeof args[1] === 'function') {\n args[1].apply(null);\n }\n }, function(error) {\n if (typeof args[2] === 'function') {\n args[2].apply(null, [error]);\n }\n });\n }\n return nativeMethod.apply(this, arguments);\n };\n });\n\n // getStats is special. It doesn't have a spec legacy method yet we support\n // getStats(something, cb) without error callbacks.\n ['getStats'].forEach(function(method) {\n var nativeMethod = RTCPeerConnection.prototype[method];\n RTCPeerConnection.prototype[method] = function() {\n var args = arguments;\n if (typeof args[1] === 'function') {\n return nativeMethod.apply(this, arguments)\n .then(function() {\n if (typeof args[1] === 'function') {\n args[1].apply(null);\n }\n });\n }\n return nativeMethod.apply(this, arguments);\n };\n });\n\n return RTCPeerConnection;\n};\n","import { IS_PRODUCTION } from './environment.js';\n\nfunction getDevTools() {\n var w = window;\n\n if (!!w.__xstate__) {\n return w.__xstate__;\n }\n\n return undefined;\n}\n\nfunction registerService(service) {\n if (IS_PRODUCTION || typeof window === 'undefined') {\n return;\n }\n\n var devTools = getDevTools();\n\n if (devTools) {\n devTools.register(service);\n }\n}\n\nexport { registerService };","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveActions = exports.choose = exports.escalate = exports.forwardTo = exports.pure = exports.error = exports.doneInvoke = exports.done = exports.after = exports.isActionObject = exports.assign = exports.stop = exports.start = exports.cancel = exports.resolveLog = exports.log = exports.respond = exports.sendUpdate = exports.sendParent = exports.resolveSend = exports.send = exports.resolveRaise = exports.raise = exports.toActivityDefinition = exports.toActionObjects = exports.toActionObject = exports.getActionFunction = exports.initEvent = exports.actionTypes = void 0;\nvar types_1 = require(\"./types\");\nvar actionTypes = require(\"./actionTypes\");\nexports.actionTypes = actionTypes;\nvar utils_1 = require(\"./utils\");\nvar environment_1 = require(\"./environment\");\nexports.initEvent = utils_1.toSCXMLEvent({ type: actionTypes.init });\nfunction getActionFunction(actionType, actionFunctionMap) {\n return actionFunctionMap\n ? actionFunctionMap[actionType] || undefined\n : undefined;\n}\nexports.getActionFunction = getActionFunction;\nfunction toActionObject(action, actionFunctionMap) {\n var actionObject;\n if (utils_1.isString(action) || typeof action === 'number') {\n var exec = getActionFunction(action, actionFunctionMap);\n if (utils_1.isFunction(exec)) {\n actionObject = {\n type: action,\n exec: exec\n };\n }\n else if (exec) {\n actionObject = exec;\n }\n else {\n actionObject = { type: action, exec: undefined };\n }\n }\n else if (utils_1.isFunction(action)) {\n actionObject = {\n // Convert action to string if unnamed\n type: action.name || action.toString(),\n exec: action\n };\n }\n else {\n var exec = getActionFunction(action.type, actionFunctionMap);\n if (utils_1.isFunction(exec)) {\n actionObject = __assign(__assign({}, action), { exec: exec });\n }\n else if (exec) {\n var actionType = exec.type || action.type;\n actionObject = __assign(__assign(__assign({}, exec), action), { type: actionType });\n }\n else {\n actionObject = action;\n }\n }\n Object.defineProperty(actionObject, 'toString', {\n value: function () { return actionObject.type; },\n enumerable: false,\n configurable: true\n });\n return actionObject;\n}\nexports.toActionObject = toActionObject;\nexports.toActionObjects = function (action, actionFunctionMap) {\n if (!action) {\n return [];\n }\n var actions = utils_1.isArray(action) ? action : [action];\n return actions.map(function (subAction) {\n return toActionObject(subAction, actionFunctionMap);\n });\n};\nfunction toActivityDefinition(action) {\n var actionObject = toActionObject(action);\n return __assign(__assign({ id: utils_1.isString(action) ? action : actionObject.id }, actionObject), { type: actionObject.type });\n}\nexports.toActivityDefinition = toActivityDefinition;\n/**\n * Raises an event. This places the event in the internal event queue, so that\n * the event is immediately consumed by the machine in the current step.\n *\n * @param eventType The event to raise.\n */\nfunction raise(event) {\n if (!utils_1.isString(event)) {\n return send(event, { to: types_1.SpecialTargets.Internal });\n }\n return {\n type: actionTypes.raise,\n event: event\n };\n}\nexports.raise = raise;\nfunction resolveRaise(action) {\n return {\n type: actionTypes.raise,\n _event: utils_1.toSCXMLEvent(action.event)\n };\n}\nexports.resolveRaise = resolveRaise;\n/**\n * Sends an event. This returns an action that will be read by an interpreter to\n * send the event in the next step, after the current step is finished executing.\n *\n * @param event The event to send.\n * @param options Options to pass into the send event:\n * - `id` - The unique send event identifier (used with `cancel()`).\n * - `delay` - The number of milliseconds to delay the sending of the event.\n * - `to` - The target of this event (by default, the machine the event was sent from).\n */\nfunction send(event, options) {\n return {\n to: options ? options.to : undefined,\n type: actionTypes.send,\n event: utils_1.isFunction(event) ? event : utils_1.toEventObject(event),\n delay: options ? options.delay : undefined,\n id: options && options.id !== undefined\n ? options.id\n : utils_1.isFunction(event)\n ? event.name\n : utils_1.getEventType(event)\n };\n}\nexports.send = send;\nfunction resolveSend(action, ctx, _event, delaysMap) {\n var meta = {\n _event: _event\n };\n // TODO: helper function for resolving Expr\n var resolvedEvent = utils_1.toSCXMLEvent(utils_1.isFunction(action.event)\n ? action.event(ctx, _event.data, meta)\n : action.event);\n var resolvedDelay;\n if (utils_1.isString(action.delay)) {\n var configDelay = delaysMap && delaysMap[action.delay];\n resolvedDelay = utils_1.isFunction(configDelay)\n ? configDelay(ctx, _event.data, meta)\n : configDelay;\n }\n else {\n resolvedDelay = utils_1.isFunction(action.delay)\n ? action.delay(ctx, _event.data, meta)\n : action.delay;\n }\n var resolvedTarget = utils_1.isFunction(action.to)\n ? action.to(ctx, _event.data, meta)\n : action.to;\n return __assign(__assign({}, action), { to: resolvedTarget, _event: resolvedEvent, event: resolvedEvent.data, delay: resolvedDelay });\n}\nexports.resolveSend = resolveSend;\n/**\n * Sends an event to this machine's parent.\n *\n * @param event The event to send to the parent machine.\n * @param options Options to pass into the send event.\n */\nfunction sendParent(event, options) {\n return send(event, __assign(__assign({}, options), { to: types_1.SpecialTargets.Parent }));\n}\nexports.sendParent = sendParent;\n/**\n * Sends an update event to this machine's parent.\n */\nfunction sendUpdate() {\n return sendParent(actionTypes.update);\n}\nexports.sendUpdate = sendUpdate;\n/**\n * Sends an event back to the sender of the original event.\n *\n * @param event The event to send back to the sender\n * @param options Options to pass into the send event\n */\nfunction respond(event, options) {\n return send(event, __assign(__assign({}, options), { to: function (_, __, _a) {\n var _event = _a._event;\n return _event.origin; // TODO: handle when _event.origin is undefined\n } }));\n}\nexports.respond = respond;\nvar defaultLogExpr = function (context, event) { return ({\n context: context,\n event: event\n}); };\n/**\n *\n * @param expr The expression function to evaluate which will be logged.\n * Takes in 2 arguments:\n * - `ctx` - the current state context\n * - `event` - the event that caused this action to be executed.\n * @param label The label to give to the logged expression.\n */\nfunction log(expr, label) {\n if (expr === void 0) { expr = defaultLogExpr; }\n return {\n type: actionTypes.log,\n label: label,\n expr: expr\n };\n}\nexports.log = log;\nexports.resolveLog = function (action, ctx, _event) { return (__assign(__assign({}, action), { value: utils_1.isString(action.expr)\n ? action.expr\n : action.expr(ctx, _event.data, {\n _event: _event\n }) })); };\n/**\n * Cancels an in-flight `send(...)` action. A canceled sent action will not\n * be executed, nor will its event be sent, unless it has already been sent\n * (e.g., if `cancel(...)` is called after the `send(...)` action's `delay`).\n *\n * @param sendId The `id` of the `send(...)` action to cancel.\n */\nexports.cancel = function (sendId) {\n return {\n type: actionTypes.cancel,\n sendId: sendId\n };\n};\n/**\n * Starts an activity.\n *\n * @param activity The activity to start.\n */\nfunction start(activity) {\n var activityDef = toActivityDefinition(activity);\n return {\n type: types_1.ActionTypes.Start,\n activity: activityDef,\n exec: undefined\n };\n}\nexports.start = start;\n/**\n * Stops an activity.\n *\n * @param activity The activity to stop.\n */\nfunction stop(activity) {\n var activityDef = toActivityDefinition(activity);\n return {\n type: types_1.ActionTypes.Stop,\n activity: activityDef,\n exec: undefined\n };\n}\nexports.stop = stop;\n/**\n * Updates the current context of the machine.\n *\n * @param assignment An object that represents the partial context to update.\n */\nexports.assign = function (assignment) {\n return {\n type: actionTypes.assign,\n assignment: assignment\n };\n};\nfunction isActionObject(action) {\n return typeof action === 'object' && 'type' in action;\n}\nexports.isActionObject = isActionObject;\n/**\n * Returns an event type that represents an implicit event that\n * is sent after the specified `delay`.\n *\n * @param delayRef The delay in milliseconds\n * @param id The state node ID where this event is handled\n */\nfunction after(delayRef, id) {\n var idSuffix = id ? \"#\" + id : '';\n return types_1.ActionTypes.After + \"(\" + delayRef + \")\" + idSuffix;\n}\nexports.after = after;\n/**\n * Returns an event that represents that a final state node\n * has been reached in the parent state node.\n *\n * @param id The final state node's parent state node `id`\n * @param data The data to pass into the event\n */\nfunction done(id, data) {\n var type = types_1.ActionTypes.DoneState + \".\" + id;\n var eventObject = {\n type: type,\n data: data\n };\n eventObject.toString = function () { return type; };\n return eventObject;\n}\nexports.done = done;\n/**\n * Returns an event that represents that an invoked service has terminated.\n *\n * An invoked service is terminated when it has reached a top-level final state node,\n * but not when it is canceled.\n *\n * @param id The final state node ID\n * @param data The data to pass into the event\n */\nfunction doneInvoke(id, data) {\n var type = types_1.ActionTypes.DoneInvoke + \".\" + id;\n var eventObject = {\n type: type,\n data: data\n };\n eventObject.toString = function () { return type; };\n return eventObject;\n}\nexports.doneInvoke = doneInvoke;\nfunction error(id, data) {\n var type = types_1.ActionTypes.ErrorPlatform + \".\" + id;\n var eventObject = { type: type, data: data };\n eventObject.toString = function () { return type; };\n return eventObject;\n}\nexports.error = error;\nfunction pure(getActions) {\n return {\n type: types_1.ActionTypes.Pure,\n get: getActions\n };\n}\nexports.pure = pure;\n/**\n * Forwards (sends) an event to a specified service.\n *\n * @param target The target service to forward the event to.\n * @param options Options to pass into the send action creator.\n */\nfunction forwardTo(target, options) {\n return send(function (_, event) { return event; }, __assign(__assign({}, options), { to: target }));\n}\nexports.forwardTo = forwardTo;\n/**\n * Escalates an error by sending it as an event to this machine's parent.\n *\n * @param errorData The error data to send, or the expression function that\n * takes in the `context`, `event`, and `meta`, and returns the error data to send.\n * @param options Options to pass into the send action creator.\n */\nfunction escalate(errorData, options) {\n return sendParent(function (context, event, meta) {\n return {\n type: actionTypes.error,\n data: utils_1.isFunction(errorData)\n ? errorData(context, event, meta)\n : errorData\n };\n }, __assign(__assign({}, options), { to: types_1.SpecialTargets.Parent }));\n}\nexports.escalate = escalate;\nfunction choose(conds) {\n return {\n type: types_1.ActionTypes.Choose,\n conds: conds\n };\n}\nexports.choose = choose;\nfunction resolveActions(machine, currentState, currentContext, _event, actions) {\n var _a = __read(utils_1.partition(actions, function (action) {\n return action.type === actionTypes.assign;\n }), 2), assignActions = _a[0], otherActions = _a[1];\n var updatedContext = assignActions.length\n ? utils_1.updateContext(currentContext, _event, assignActions, currentState)\n : currentContext;\n var resolvedActions = utils_1.flatten(otherActions.map(function (actionObject) {\n var _a;\n switch (actionObject.type) {\n case actionTypes.raise:\n return resolveRaise(actionObject);\n case actionTypes.send:\n var sendAction = resolveSend(actionObject, updatedContext, _event, machine.options.delays); // TODO: fix ActionTypes.Init\n if (!environment_1.IS_PRODUCTION) {\n // warn after resolving as we can create better contextual message here\n utils_1.warn(!utils_1.isString(actionObject.delay) ||\n typeof sendAction.delay === 'number', \n // tslint:disable-next-line:max-line-length\n \"No delay reference for delay expression '\" + actionObject.delay + \"' was found on machine '\" + machine.id + \"'\");\n }\n return sendAction;\n case actionTypes.log:\n return exports.resolveLog(actionObject, updatedContext, _event);\n case actionTypes.choose: {\n var chooseAction = actionObject;\n var matchedActions = (_a = chooseAction.conds.find(function (condition) {\n var guard = utils_1.toGuard(condition.cond, machine.options.guards);\n return (!guard ||\n utils_1.evaluateGuard(machine, guard, updatedContext, _event, currentState));\n })) === null || _a === void 0 ? void 0 : _a.actions;\n if (!matchedActions) {\n return [];\n }\n var resolved = resolveActions(machine, currentState, updatedContext, _event, exports.toActionObjects(utils_1.toArray(matchedActions), machine.options.actions));\n updatedContext = resolved[1];\n return resolved[0];\n }\n case actionTypes.pure: {\n var matchedActions = actionObject.get(updatedContext, _event.data);\n if (!matchedActions) {\n return [];\n }\n var resolved = resolveActions(machine, currentState, updatedContext, _event, exports.toActionObjects(utils_1.toArray(matchedActions), machine.options.actions));\n updatedContext = resolved[1];\n return resolved[0];\n }\n default:\n return toActionObject(actionObject, machine.options.actions);\n }\n }));\n return [resolvedActions, updatedContext];\n}\nexports.resolveActions = resolveActions;\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'];","module.exports = require(\"core-js/library/fn/object/create\");","module.exports = require(\"core-js/library/fn/object/values\");","module.exports = require(\"core-js/library/fn/number/is-integer\");","'use strict';\nmodule.exports = typeof navigator !== 'undefined' && /^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent);\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/getWeek\"),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/getWeek\",\"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.dfgetWeek,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,l,d,u,h,f,m,y,v,w,D,k,g,b,C,_,O,S,P,M,E,N,Y,x,T,I,L,j,F,q,W,R,A,B,H,K,Q,V,U,$,z,G,J,X,Z,ee,te,re,ne,ae,oe,se,pe){\"use strict\";function ie(e){return(ie=\"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 ce(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function le(e,t){for(var r=0;r0&&(a=ae(e,t.slice(0,e.length),new Date)),Me(a)||(a=new Date(e))),Me(a)&&p?a:null)}function Me(e){return o(e)&&ee(e,new Date(\"1/1/1000\"))}function Ee(e,t,r){if(\"en\"===r)return s(e,t,{awareOfUnicodeTokens:!0});var n=Ke(r);return r&&!n&&console.warn('A locale object was not found for the provided string [\"'.concat(r,'\"].')),!n&&He()&&Ke(He())&&(n=Ke(He())),s(e,t,{locale:n||null,awareOfUnicodeTokens:!0})}function Ne(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 Y(N(E(e,void 0===s?0:s),o),n)}function Ye(e,t){var r=t&&Ke(t)||He()&&Ke(He());return _(e,r?{locale:r}:null)}function xe(e,t){return Ee(e,\"ddd\",t)}function Te(e){return A(e)}function Ie(e,t){var r=Ke(t||He());return B(e,{locale:r})}function Le(e){return H(e)}function je(e){return K(e)}function Fe(e,t){return e&&t?X(e,t):!e&&!t}function qe(e,t){return e&&t?J(e,t):!e&&!t}function We(e,t){return e&&t?Z(e,t):!e&&!t}function Re(e,t){return e&&t?G(e,t):!e&&!t}function Ae(e,t){return e&&t?z(e,t):!e&&!t}function Be(e,t,r){var n,a=A(t),o=V(r);try{n=re(e,{start:a,end:o})}catch(e){n=!1}return n}function He(){return(\"undefined\"!=typeof window?window:global).__localeId__}function Ke(e){if(\"string\"==typeof e){var t=\"undefined\"!=typeof window?window:global;return t.__localeData__?t.__localeData__[e]:null}return e}function Qe(e,t){return Ee(x(Se(),e),\"LLLL\",t)}function Ve(e,t){return Ee(x(Se(),e),\"LLL\",t)}function Ue(e,t){return Ee(T(Se(),e),\"QQQ\",t)}function $e(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 et(e,{minDate:r,maxDate:n})||a&&a.some((function(t){return Re(e,t)}))||o&&!o.some((function(t){return Re(e,t)}))||s&&!s(Se(e))||!1}function ze(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.excludeDates;return r&&r.some((function(t){return Re(e,t)}))||!1}function Ge(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 et(e,{minDate:r,maxDate:n})||a&&a.some((function(t){return qe(e,t)}))||o&&!o.some((function(t){return qe(e,t)}))||s&&!s(Se(e))||!1}function Je(e,t,r,n){var a=P(e),o=O(e),s=P(t),p=O(t),i=P(n);return a===s&&a===i?o<=r&&r<=p:a=r||ia:void 0}function Xe(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 et(e,{minDate:r,maxDate:n})||a&&a.some((function(t){return We(e,t)}))||o&&!o.some((function(t){return We(e,t)}))||s&&!s(Se(e))||!1}function Ze(e,t,r,n){var a=P(e),o=S(e),s=P(t),p=S(t),i=P(n);return a===s&&a===i?o<=r&&r<=p:a=r||ia:void 0}function et(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.maxDate;return r&&F(e,r)<0||n&&F(e,n)>0}function tt(e,t){for(var r=t.length,n=0;n1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.includeDates,a=v(e,1);return r&&q(r,a)>0||n&&n.every((function(e){return q(e,a)>0}))||!1}function at(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,n=t.includeDates,a=d(e,1);return r&&q(a,r)>0||n&&n.every((function(e){return q(a,e)>0}))||!1}function ot(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.includeDates,a=w(e,1);return r&&R(r,a)>0||n&&n.every((function(e){return R(e,a)>0}))||!1}function st(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,n=t.includeDates,a=u(e,1);return r&&R(a,r)>0||n&&n.every((function(e){return R(a,e)>0}))||!1}function pt(e){var t=e.minDate,r=e.includeDates;if(r&&t){var n=r.filter((function(e){return F(e,t)>=0}));return L(n)}return r?L(r):t}function it(e){var t=e.maxDate,r=e.includeDates;if(r&&t){var n=r.filter((function(e){return F(e,t)<=0}));return j(n)}return r?j(r):t}function ct(){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 ht=se(function(e){ye(a,e);var r=ge(a);function a(e){var n;ce(this,a),ue(De(n=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,onClick:n.onChange.bind(De(n),r)},e===r?t.createElement(\"span\",{className:\"react-datepicker__year-option--selected\"},\"✓\"):\"\",r)})),a=n.props.minDate?P(n.props.minDate):null,o=n.props.maxDate?P(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\",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\",key:\"previous\",onClick:n.decrementYears},t.createElement(\"a\",{className:\"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-previous\"}))),r})),ue(De(n),\"onChange\",(function(e){n.props.onChange(e)})),ue(De(n),\"handleClickOutside\",(function(){n.props.onCancel()})),ue(De(n),\"shiftYears\",(function(e){var t=n.state.yearsList.map((function(t){return t+e}));n.setState({yearsList:t})})),ue(De(n),\"incrementYears\",(function(){return n.shiftYears(1)})),ue(De(n),\"decrementYears\",(function(){return n.shiftYears(-1)}));var o=e.yearDropdownItemNumber,s=e.scrollableYearDropdown,p=o||(s?10:5);return n.state={yearsList:ut(n.props.year,p,n.props.minDate,n.props.maxDate)},n}return de(a,[{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())}}]),a}(t.Component)),ft=function(e){ye(n,e);var r=ge(n);function n(){var e;ce(this,n);for(var a=arguments.length,o=new Array(a),s=0;s0&&void 0!==arguments[0]?arguments[0]:{},r=!1;0===e.getTabIndex()&&!t.isInputFocused&&e.isSameDay(e.props.preSelection)&&(document.activeElement&&document.activeElement!==document.body||(r=!0),e.props.containerRef&&e.props.containerRef.current&&e.props.containerRef.current.contains(document.activeElement)&&document.activeElement.classList.contains(\"react-datepicker__day\")&&(r=!0)),r&&e.dayEl.current.focus()})),ue(De(e),\"render\",(function(){return t.createElement(\"div\",{ref:e.dayEl,className:e.getClassNames(e.props.day),onKeyDown:e.handleOnKeyDown,onClick:e.handleClick,onMouseEnter:e.handleMouseEnter,tabIndex:e.getTabIndex(),\"aria-label\":e.getAriaLabel(),role:\"button\",\"aria-disabled\":e.isDisabled()},e.props.renderDayContents?e.props.renderDayContents(C(e.props.day),e.props.day):C(e.props.day))})),e}return de(a,[{key:\"componentDidMount\",value:function(){this.handleFocusDay()}},{key:\"componentDidUpdate\",value:function(e){this.handleFocusDay(e)}}]),a}(t.Component),gt=function(e){ye(a,e);var r=ge(a);function a(){var e;ce(this,a);for(var t=arguments.length,n=new Array(t),o=0;o=6,i=!n&&!e.isWeekInMonth(a);if(p||i){if(!e.props.peekNextMonth)break;s=!0}}return r})),ue(De(e),\"onMonthClick\",(function(t,r){e.handleDayClick(Le(x(e.props.day,r)),t)})),ue(De(e),\"onQuarterClick\",(function(t,r){e.handleDayClick(je(T(e.props.day,r)),t)})),ue(De(e),\"getMonthClassNames\",(function(t){var r=e.props,a=r.day,o=r.startDate,s=r.endDate,p=r.selected,i=r.minDate,c=r.maxDate;return n(\"react-datepicker__month-text\",\"react-datepicker__month-\".concat(t),{\"react-datepicker__month--disabled\":(i||c)&&Ge(x(a,t),e.props),\"react-datepicker__month--selected\":O(a)===t&&P(a)===P(p),\"react-datepicker__month--in-range\":Je(o,s,t,a),\"react-datepicker__month--range-start\":e.isRangeStartMonth(t),\"react-datepicker__month--range-end\":e.isRangeEndMonth(t)})})),ue(De(e),\"getQuarterClassNames\",(function(t){var r=e.props,a=r.day,o=r.startDate,s=r.endDate,p=r.selected,i=r.minDate,c=r.maxDate;return n(\"react-datepicker__quarter-text\",\"react-datepicker__quarter-\".concat(t),{\"react-datepicker__quarter--disabled\":(i||c)&&Xe(T(a,t),e.props),\"react-datepicker__quarter--selected\":S(a)===t&&P(a)===P(p),\"react-datepicker__quarter--in-range\":Ze(o,s,t,a),\"react-datepicker__quarter--range-start\":e.isRangeStartQuarter(t),\"react-datepicker__quarter--range-end\":e.isRangeEndQuarter(t)})})),ue(De(e),\"renderMonths\",(function(){var r=e.props,n=r.showFullMonthYearPicker,a=r.locale;return[[0,1,2],[3,4,5],[6,7,8],[9,10,11]].map((function(r,o){return t.createElement(\"div\",{className:\"react-datepicker__month-wrapper\",key:o},r.map((function(r,o){return t.createElement(\"div\",{key:o,onClick:function(t){e.onMonthClick(t,r)},className:e.getMonthClassNames(r)},n?Qe(r,a):Ve(r,a))})))}))})),ue(De(e),\"renderQuarters\",(function(){return t.createElement(\"div\",{className:\"react-datepicker__quarter-wrapper\"},[1,2,3,4].map((function(r,n){return t.createElement(\"div\",{key:n,onClick:function(t){e.onQuarterClick(t,r)},className:e.getQuarterClassNames(r)},Ue(r,e.props.locale))})))})),ue(De(e),\"getClassNames\",(function(){var t=e.props,r=t.selectingDate,a=t.selectsStart,o=t.selectsEnd,s=t.showMonthYearPicker,p=t.showQuarterYearPicker;return n(\"react-datepicker__month\",{\"react-datepicker__month--selecting-range\":r&&(a||o)},{\"react-datepicker__monthPicker\":s},{\"react-datepicker__quarterPicker\":p})})),e}return de(a,[{key:\"render\",value:function(){var e=this.props,r=e.showMonthYearPicker,n=e.showQuarterYearPicker,a=e.day,o=e.ariaLabelPrefix,s=void 0===o?\"month \":o;return t.createElement(\"div\",{className:this.getClassNames(),onMouseLeave:this.handleMouseLeave,\"aria-label\":\"\".concat(s,\" \").concat(Ee(a,\"yyyy-MM\"))},r?this.renderMonths():n?this.renderQuarters():this.renderWeeks())}}]),a}(t.Component),_t=function(e){ye(n,e);var r=ge(n);function n(){var e;ce(this,n);for(var a=arguments.length,o=new Array(a),s=0;s=k(r)&&(e.centerLi=t)}},Ee(r,n,e.props.locale))}))})),e}return de(n,[{key:\"componentDidMount\",value:function(){this.list.scrollTop=n.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\"}}}]),n}(t.Component);ue(_t,\"calcCenterPosition\",(function(e,t){return t.offsetTop-(e/2-t.clientHeight/2)}));var Ot=function(e){ye(n,e);var r=ge(n);function n(e){var t;return ce(this,n),ue(De(t=r.call(this,e)),\"handleYearClick\",(function(e,r){t.props.onDayClick&&t.props.onDayClick(e,r)})),ue(De(t),\"onYearClick\",(function(e,r){var n;t.handleYearClick((n=I(t.props.date,r),Q(n)),e)})),t}return de(n,[{key:\"render\",value:function(){for(var e=this,r=[],n=this.props.date,a=function(n,a){r.push(t.createElement(\"div\",{onClick:function(t){e.onYearClick(t,n)},className:\"react-datepicker__year-container-text\",key:n},n))},o=P(n)-11,s=0;o<=P(n);o++,s++)a(o);return t.createElement(\"div\",{className:\"react-datepicker__year-container\"},r)}}]),n}(t.Component),St=function(e){ye(n,e);var r=ge(n);function n(e){var a;return ce(this,n),ue(De(a=r.call(this,e)),\"onTimeChange\",(function(e){a.setState({time:e});var t=new Date;t.setHours(e.split(\":\")[0]),t.setMinutes(e.split(\":\")[1]),a.props.onChange(t)})),ue(De(a),\"renderTimeInput\",(function(){var e=a.state.time,r=a.props,n=r.timeString,o=r.customTimeInput;return o?t.cloneElement(o,{value:e,onChange:a.onTimeChange}):t.createElement(\"input\",{type:\"time\",className:\"react-datepicker-time__input\",placeholder:\"Time\",name:\"time-input\",required:!0,value:e,onChange:function(e){a.onTimeChange(e.target.value||n)}})})),a.state={time:a.props.timeString},a}return de(n,[{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())))}}]),n}(t.Component);function Pt(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\",he({className:\"react-datepicker__triangle\"},s)),n)}var Mt=[\"react-datepicker__year-select\",\"react-datepicker__month-select\",\"react-datepicker__month-year-select\"],Et=function(e){ye(a,e);var r=ge(a);function a(e){var o;return ce(this,a),ue(De(o=r.call(this,e)),\"handleClickOutside\",(function(e){o.props.onClickOutside(e)})),ue(De(o),\"setClickOutsideRef\",(function(){return o.containerRef.current})),ue(De(o),\"handleDropdownFocus\",(function(e){(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(e.className||\"\").split(/\\s+/);return Mt.some((function(e){return t.indexOf(e)>=0}))})(e.target)&&o.props.onDropdownFocus()})),ue(De(o),\"getDateInView\",(function(){var e=o.props,t=e.preSelection,r=e.selected,n=e.openToDate,a=pt(o.props),s=it(o.props),p=Se(),i=n||r||t;return i||(a&&te(p,a)?a:s&&ee(p,s)?s:p)})),ue(De(o),\"increaseMonth\",(function(){o.setState((function(e){var t=e.date;return{date:d(t,1)}}),(function(){return o.handleMonthChange(o.state.date)}))})),ue(De(o),\"decreaseMonth\",(function(){o.setState((function(e){var t=e.date;return{date:v(t,1)}}),(function(){return o.handleMonthChange(o.state.date)}))})),ue(De(o),\"handleDayClick\",(function(e,t,r){return o.props.onSelect(e,t,r)})),ue(De(o),\"handleDayMouseEnter\",(function(e){o.setState({selectingDate:e}),o.props.onDayMouseEnter&&o.props.onDayMouseEnter(e)})),ue(De(o),\"handleMonthMouseLeave\",(function(){o.setState({selectingDate:null}),o.props.onMonthMouseLeave&&o.props.onMonthMouseLeave()})),ue(De(o),\"handleYearChange\",(function(e){o.props.onYearChange&&o.props.onYearChange(e)})),ue(De(o),\"handleMonthChange\",(function(e){o.props.onMonthChange&&o.props.onMonthChange(e),o.props.adjustDateOnChange&&(o.props.onSelect&&o.props.onSelect(e),o.props.setOpen&&o.props.setOpen(!0)),o.props.setPreSelection&&o.props.setPreSelection(e)})),ue(De(o),\"handleMonthYearChange\",(function(e){o.handleYearChange(e),o.handleMonthChange(e)})),ue(De(o),\"changeYear\",(function(e){o.setState((function(t){var r=t.date;return{date:I(r,e)}}),(function(){return o.handleYearChange(o.state.date)}))})),ue(De(o),\"changeMonth\",(function(e){o.setState((function(t){var r=t.date;return{date:x(r,e)}}),(function(){return o.handleMonthChange(o.state.date)}))})),ue(De(o),\"changeMonthYear\",(function(e){o.setState((function(t){var r=t.date;return{date:I(x(r,O(e)),P(e))}}),(function(){return o.handleMonthYearChange(o.state.date)}))})),ue(De(o),\"header\",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o.state.date,r=Ie(e,o.props.locale),a=[];return o.props.showWeekNumbers&&a.push(t.createElement(\"div\",{key:\"W\",className:\"react-datepicker__day-name\"},o.props.weekLabel||\"#\")),a.concat([0,1,2,3,4,5,6].map((function(e){var a=c(r,e),s=o.formatWeekday(a,o.props.locale),p=o.props.weekDayClassName?o.props.weekDayClassName(a):void 0;return t.createElement(\"div\",{key:e,className:n(\"react-datepicker__day-name\",p)},s)})))})),ue(De(o),\"formatWeekday\",(function(e,t){return o.props.formatWeekDay?function(e,t,r){return t(Ee(e,\"EEEE\",r))}(e,o.props.formatWeekDay,t):o.props.useWeekdaysShort?function(e,t){return Ee(e,\"EEE\",t)}(e,t):function(e,t){return Ee(e,\"EEEEEE\",t)}(e,t)})),ue(De(o),\"decreaseYear\",(function(){o.setState((function(e){var t=e.date;return{date:w(t,o.props.showYearPicker?11:1)}}),(function(){return o.handleYearChange(o.state.date)}))})),ue(De(o),\"renderPreviousButton\",(function(){if(!o.props.renderCustomHeader){var e=o.props.showMonthYearPicker?ot(o.state.date,o.props):nt(o.state.date,o.props);if((o.props.forceShowMonthNavigation||o.props.showDisabledMonthNavigation||!e)&&!o.props.showTimeSelectOnly){var r=[\"react-datepicker__navigation\",\"react-datepicker__navigation--previous\"],n=o.decreaseMonth;(o.props.showMonthYearPicker||o.props.showQuarterYearPicker||o.props.showYearPicker)&&(n=o.decreaseYear),e&&o.props.showDisabledMonthNavigation&&(r.push(\"react-datepicker__navigation--previous--disabled\"),n=null);var a=o.props.showMonthYearPicker||o.props.showQuarterYearPicker,s=o.props,p=s.previousMonthAriaLabel,i=void 0===p?\"Previous Month\":p,c=s.previousYearAriaLabel,l=void 0===c?\"Previous Year\":c;return t.createElement(\"button\",{type:\"button\",className:r.join(\" \"),onClick:n,\"aria-label\":a?l:i},a?o.props.previousYearButtonLabel:o.props.previousMonthButtonLabel)}}})),ue(De(o),\"increaseYear\",(function(){o.setState((function(e){var t=e.date;return{date:u(t,o.props.showYearPicker?11:1)}}),(function(){return o.handleYearChange(o.state.date)}))})),ue(De(o),\"renderNextButton\",(function(){if(!o.props.renderCustomHeader){var e=o.props.showMonthYearPicker?st(o.state.date,o.props):at(o.state.date,o.props);if((o.props.forceShowMonthNavigation||o.props.showDisabledMonthNavigation||!e)&&!o.props.showTimeSelectOnly){var r=[\"react-datepicker__navigation\",\"react-datepicker__navigation--next\"];o.props.showTimeSelect&&r.push(\"react-datepicker__navigation--next--with-time\"),o.props.todayButton&&r.push(\"react-datepicker__navigation--next--with-today-button\");var n=o.increaseMonth;(o.props.showMonthYearPicker||o.props.showQuarterYearPicker||o.props.showYearPicker)&&(n=o.increaseYear),e&&o.props.showDisabledMonthNavigation&&(r.push(\"react-datepicker__navigation--next--disabled\"),n=null);var a=o.props.showMonthYearPicker||o.props.showQuarterYearPicker,s=o.props,p=s.nextMonthAriaLabel,i=void 0===p?\"Next Month\":p,c=s.nextYearAriaLabel,l=void 0===c?\"Next Year\":c;return t.createElement(\"button\",{type:\"button\",className:r.join(\" \"),onClick:n,\"aria-label\":a?l:i},a?o.props.nextYearButtonLabel:o.props.nextMonthButtonLabel)}}})),ue(De(o),\"renderCurrentMonth\",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o.state.date,r=[\"react-datepicker__current-month\"];return o.props.showYearDropdown&&r.push(\"react-datepicker__current-month--hasYearDropdown\"),o.props.showMonthDropdown&&r.push(\"react-datepicker__current-month--hasMonthDropdown\"),o.props.showMonthYearDropdown&&r.push(\"react-datepicker__current-month--hasMonthYearDropdown\"),t.createElement(\"div\",{className:r.join(\" \")},Ee(e,o.props.dateFormat,o.props.locale))})),ue(De(o),\"renderYearDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(o.props.showYearDropdown&&!e)return t.createElement(ft,{adjustDateOnChange:o.props.adjustDateOnChange,date:o.state.date,onSelect:o.props.onSelect,setOpen:o.props.setOpen,dropdownMode:o.props.dropdownMode,onChange:o.changeYear,minDate:o.props.minDate,maxDate:o.props.maxDate,year:P(o.state.date),scrollableYearDropdown:o.props.scrollableYearDropdown,yearDropdownItemNumber:o.props.yearDropdownItemNumber})})),ue(De(o),\"renderMonthDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(o.props.showMonthDropdown&&!e)return t.createElement(yt,{dropdownMode:o.props.dropdownMode,locale:o.props.locale,onChange:o.changeMonth,month:O(o.state.date),useShortMonthInDropdown:o.props.useShortMonthInDropdown})})),ue(De(o),\"renderMonthYearDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(o.props.showMonthYearDropdown&&!e)return t.createElement(Dt,{dropdownMode:o.props.dropdownMode,locale:o.props.locale,dateFormat:o.props.dateFormat,onChange:o.changeMonthYear,minDate:o.props.minDate,maxDate:o.props.maxDate,date:o.state.date,scrollableMonthYearDropdown:o.props.scrollableMonthYearDropdown})})),ue(De(o),\"renderTodayButton\",(function(){if(o.props.todayButton&&!o.props.showTimeSelectOnly)return t.createElement(\"div\",{className:\"react-datepicker__today-button\",onClick:function(e){return o.props.onSelect(A(Se()),e)}},o.props.todayButton)})),ue(De(o),\"renderDefaultHeader\",(function(e){var r=e.monthDate,n=e.i;return t.createElement(\"div\",{className:\"react-datepicker__header\"},o.renderCurrentMonth(r),t.createElement(\"div\",{className:\"react-datepicker__header__dropdown react-datepicker__header__dropdown--\".concat(o.props.dropdownMode),onFocus:o.handleDropdownFocus},o.renderMonthDropdown(0!==n),o.renderMonthYearDropdown(0!==n),o.renderYearDropdown(0!==n)),t.createElement(\"div\",{className:\"react-datepicker__day-names\"},o.header(r)))})),ue(De(o),\"renderCustomHeader\",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.monthDate,n=e.i;if(0!==n&&void 0!==n)return null;var a=nt(o.state.date,o.props),s=at(o.state.date,o.props),p=ot(o.state.date,o.props),i=st(o.state.date,o.props),c=!o.props.showMonthYearPicker&&!o.props.showQuarterYearPicker&&!o.props.showYearPicker;return t.createElement(\"div\",{className:\"react-datepicker__header react-datepicker__header--custom\",onFocus:o.props.onDropdownFocus},o.props.renderCustomHeader(me(me({},o.state),{},{changeMonth:o.changeMonth,changeYear:o.changeYear,decreaseMonth:o.decreaseMonth,increaseMonth:o.increaseMonth,decreaseYear:o.decreaseYear,increaseYear:o.increaseYear,prevMonthButtonDisabled:a,nextMonthButtonDisabled:s,prevYearButtonDisabled:p,nextYearButtonDisabled:i})),c&&t.createElement(\"div\",{className:\"react-datepicker__day-names\"},o.header(r)))})),ue(De(o),\"renderYearHeader\",(function(){return t.createElement(\"div\",{className:\"react-datepicker__header react-datepicker-year-header\"},o.props.showYearPicker?\"\".concat(P(o.state.date)-11,\" - \").concat(P(o.state.date)):P(o.state.date))})),ue(De(o),\"renderHeader\",(function(e){switch(!0){case void 0!==o.props.renderCustomHeader:return o.renderCustomHeader(e);case o.props.showMonthYearPicker||o.props.showQuarterYearPicker||o.props.showYearPicker:return o.renderYearHeader(e);default:return o.renderDefaultHeader(e)}})),ue(De(o),\"renderMonths\",(function(){if(!o.props.showTimeSelectOnly&&!o.props.showYearPicker){for(var e=[],r=o.props.showPreviousMonths?o.props.monthsShown-1:0,n=v(o.state.date,r),a=0;a1&&t[t.length-1].focus()})),ue(De(a),\"handleFocusEnd\",(function(e){var t=a.getTabChildren();t&&t.length>1&&t[0].focus()})),a.tabLoopRef=t.createRef(),a}return de(n,null,[{key:\"defaultProps\",get:function(){return{enableTabLoop:!0}}}]),de(n,[{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}}]),n}(t.Component),xt=function(e){ye(a,e);var r=ge(a);function a(){return ce(this,a),r.apply(this,arguments)}return de(a,[{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,l=r.popperProps,d=r.targetComponent,u=r.enableTabLoop,h=r.popperOnKeyDown;if(!s){var f=n(\"react-datepicker-popper\",a);e=t.createElement(pe.Popper,he({modifiers:i,placement:c},l),(function(e){var r=e.ref,n=e.style,a=e.placement,o=e.arrowProps;return t.createElement(Yt,{enableTabLoop:u},t.createElement(\"div\",he({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(pe.Manager,{className:\"react-datepicker-manager\"},t.createElement(pe.Reference,null,(function(e){var r=e.ref;return t.createElement(\"div\",{ref:r,className:m},d)})),e)}}],[{key:\"defaultProps\",get:function(){return{hidePopper:!0,popperModifiers:{preventOverflow:{enabled:!0,escapeWithReference:!0,boundariesElement:\"viewport\"}},popperProps:{},popperPlacement:\"bottom-start\"}}}]),a}(t.Component),Tt=se(Et);var It=function(e){ye(o,e);var r=ge(o);function o(e){var s;return ce(this,o),ue(De(s=r.call(this,e)),\"getPreSelection\",(function(){return s.props.openToDate?s.props.openToDate:s.props.selectsEnd&&s.props.startDate?s.props.startDate:s.props.selectsStart&&s.props.endDate?s.props.endDate:Se()})),ue(De(s),\"calcInitialState\",(function(){var e=s.getPreSelection(),t=pt(s.props),r=it(s.props),n=t&&te(e,t)?t:r&&ee(e,r)?r:e;return{open:s.props.startOpen||!1,preventFocus:!1,preSelection:s.props.selected?s.props.selected:n,highlightDates:ct(s.props.highlightDates),focused:!1}})),ue(De(s),\"clearPreventFocusTimeout\",(function(){s.preventFocusTimeout&&clearTimeout(s.preventFocusTimeout)})),ue(De(s),\"setFocus\",(function(){s.input&&s.input.focus&&s.input.focus()})),ue(De(s),\"setBlur\",(function(){s.input&&s.input.blur&&s.input.blur(),s.cancelFocusInput()})),ue(De(s),\"setOpen\",(function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];s.setState({open:e,preSelection:e&&s.state.open?s.state.preSelection:s.calcInitialState().preSelection,lastPreSelectChange:jt},(function(){e||s.setState((function(e){return{focused:!!t&&e.focused}}),(function(){!t&&s.setBlur(),s.setState({inputValue:null})}))}))})),ue(De(s),\"inputOk\",(function(){return a(s.state.preSelection)})),ue(De(s),\"isCalendarOpen\",(function(){return void 0===s.props.open?s.state.open&&!s.props.disabled&&!s.props.readOnly:s.props.open})),ue(De(s),\"handleFocus\",(function(e){s.state.preventFocus||(s.props.onFocus(e),s.props.preventOpenOnFocus||s.props.readOnly||s.setOpen(!0)),s.setState({focused:!0})})),ue(De(s),\"cancelFocusInput\",(function(){clearTimeout(s.inputFocusTimeout),s.inputFocusTimeout=null})),ue(De(s),\"deferFocusInput\",(function(){s.cancelFocusInput(),s.inputFocusTimeout=setTimeout((function(){return s.setFocus()}),1)})),ue(De(s),\"handleDropdownFocus\",(function(){s.cancelFocusInput()})),ue(De(s),\"handleBlur\",(function(e){(!s.state.open||s.props.withPortal||s.props.showTimeInput)&&s.props.onBlur(e),s.setState({focused:!1})})),ue(De(s),\"handleCalendarClickOutside\",(function(e){s.props.inline||s.setOpen(!1),s.props.onClickOutside(e),s.props.withPortal&&e.preventDefault()})),ue(De(s),\"handleChange\",(function(){for(var e=arguments.length,t=new Array(e),r=0;r1&&!s.props.inlineFocusSelectedMonth&&s.setState({monthSelectedIn:n})),s.props.onChange(a,t)),s.props.onSelect(a,t),r||s.setState({inputValue:null}))})),ue(De(s),\"setPreSelection\",(function(e){var t=void 0!==s.props.minDate,r=void 0!==s.props.maxDate,n=!0;e&&(t&&r?n=Be(e,s.props.minDate,s.props.maxDate):t?n=ee(e,s.props.minDate):r&&(n=te(e,s.props.maxDate))),n&&s.setState({preSelection:e})})),ue(De(s),\"handleTimeChange\",(function(e){var t=Ne(s.props.selected?s.props.selected:s.getPreSelection(),{hour:g(e),minute:k(e)});s.setState({preSelection:t}),s.props.onChange(t),s.props.shouldCloseOnSelect&&s.setOpen(!1),s.props.showTimeInput&&s.setOpen(!0),s.setState({inputValue:null})})),ue(De(s),\"onInputClick\",(function(){s.props.disabled||s.props.readOnly||s.setOpen(!0),s.props.onInputClick()})),ue(De(s),\"onInputKeyDown\",(function(e){s.props.onKeyDown(e);var t=e.key;if(s.state.open||s.props.inline||s.props.preventOpenOnFocus){if(s.state.open){if(\"ArrowDown\"===t||\"ArrowUp\"===t){e.preventDefault();var r=s.calendar.componentNode&&s.calendar.componentNode.querySelector('.react-datepicker__day[tabindex=\"0\"]');return void(r&&r.focus())}var n=Se(s.state.preSelection);\"Enter\"===t?(e.preventDefault(),s.inputOk()&&s.state.lastPreSelectChange===jt?(s.handleSelect(n,e),!s.props.shouldCloseOnSelect&&s.setPreSelection(n)):s.setOpen(!1)):\"Escape\"===t&&(e.preventDefault(),s.setOpen(!1)),s.inputOk()||s.props.onInputError({code:1,msg:\"Date input not valid.\"})}}else\"ArrowDown\"!==t&&\"ArrowUp\"!==t&&\"Enter\"!==t||s.onInputClick()})),ue(De(s),\"onDayKeyDown\",(function(e){s.props.onKeyDown(e);var t=e.key,r=Se(s.state.preSelection);if(\"Enter\"===t)e.preventDefault(),s.handleSelect(r,e),!s.props.shouldCloseOnSelect&&s.setPreSelection(r);else if(\"Escape\"===t)e.preventDefault(),s.setOpen(!1),s.inputOk()||s.props.onInputError({code:1,msg:\"Date input not valid.\"});else if(!s.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=l(r,1);break;case\"PageUp\":n=v(r,1);break;case\"PageDown\":n=d(r,1);break;case\"Home\":n=w(r,1);break;case\"End\":n=u(r,1)}if(!n)return void(s.props.onInputError&&s.props.onInputError({code:1,msg:\"Date input not valid.\"}));e.preventDefault(),s.setState({lastPreSelectChange:jt}),s.props.adjustDateOnChange&&s.setSelected(n),s.setPreSelection(n)}})),ue(De(s),\"onPopperKeyDown\",(function(e){\"Escape\"===e.key&&(e.preventDefault(),s.setState({preventFocus:!0},(function(){s.setOpen(!1),setTimeout((function(){s.setFocus(),s.setState({preventFocus:!1})}))})))})),ue(De(s),\"onClearClick\",(function(e){e&&e.preventDefault&&e.preventDefault(),s.props.onChange(null,e),s.setState({inputValue:null})})),ue(De(s),\"clear\",(function(){s.onClearClick()})),ue(De(s),\"renderCalendar\",(function(){return s.props.inline||s.isCalendarOpen()?t.createElement(Tt,{ref:function(e){s.calendar=e},locale:s.props.locale,chooseDayAriaLabelPrefix:s.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:s.props.disabledDayAriaLabelPrefix,weekAriaLabelPrefix:s.props.weekAriaLabelPrefix,adjustDateOnChange:s.props.adjustDateOnChange,setOpen:s.setOpen,shouldCloseOnSelect:s.props.shouldCloseOnSelect,dateFormat:s.props.dateFormatCalendar,useWeekdaysShort:s.props.useWeekdaysShort,formatWeekDay:s.props.formatWeekDay,dropdownMode:s.props.dropdownMode,selected:s.props.selected,preSelection:s.state.preSelection,onSelect:s.handleSelect,onWeekSelect:s.props.onWeekSelect,openToDate:s.props.openToDate,minDate:s.props.minDate,maxDate:s.props.maxDate,selectsStart:s.props.selectsStart,selectsEnd:s.props.selectsEnd,startDate:s.props.startDate,endDate:s.props.endDate,excludeDates:s.props.excludeDates,filterDate:s.props.filterDate,onClickOutside:s.handleCalendarClickOutside,formatWeekNumber:s.props.formatWeekNumber,highlightDates:s.state.highlightDates,includeDates:s.props.includeDates,includeTimes:s.props.includeTimes,injectTimes:s.props.injectTimes,inline:s.props.inline,peekNextMonth:s.props.peekNextMonth,showMonthDropdown:s.props.showMonthDropdown,showPreviousMonths:s.props.showPreviousMonths,useShortMonthInDropdown:s.props.useShortMonthInDropdown,showMonthYearDropdown:s.props.showMonthYearDropdown,showWeekNumbers:s.props.showWeekNumbers,showYearDropdown:s.props.showYearDropdown,withPortal:s.props.withPortal,forceShowMonthNavigation:s.props.forceShowMonthNavigation,showDisabledMonthNavigation:s.props.showDisabledMonthNavigation,scrollableYearDropdown:s.props.scrollableYearDropdown,scrollableMonthYearDropdown:s.props.scrollableMonthYearDropdown,todayButton:s.props.todayButton,weekLabel:s.props.weekLabel,outsideClickIgnoreClass:\"react-datepicker-ignore-onclickoutside\",fixedHeight:s.props.fixedHeight,monthsShown:s.props.monthsShown,monthSelectedIn:s.state.monthSelectedIn,onDropdownFocus:s.handleDropdownFocus,onMonthChange:s.props.onMonthChange,onYearChange:s.props.onYearChange,dayClassName:s.props.dayClassName,weekDayClassName:s.props.weekDayClassName,monthClassName:s.props.monthClassName,timeClassName:s.props.timeClassName,showTimeSelect:s.props.showTimeSelect,showTimeSelectOnly:s.props.showTimeSelectOnly,onTimeChange:s.handleTimeChange,timeFormat:s.props.timeFormat,timeIntervals:s.props.timeIntervals,minTime:s.props.minTime,maxTime:s.props.maxTime,excludeTimes:s.props.excludeTimes,timeCaption:s.props.timeCaption,className:s.props.calendarClassName,container:s.props.calendarContainer,yearDropdownItemNumber:s.props.yearDropdownItemNumber,previousMonthButtonLabel:s.props.previousMonthButtonLabel,nextMonthButtonLabel:s.props.nextMonthButtonLabel,previousYearButtonLabel:s.props.previousYearButtonLabel,nextYearButtonLabel:s.props.nextYearButtonLabel,timeInputLabel:s.props.timeInputLabel,disabledKeyboardNavigation:s.props.disabledKeyboardNavigation,renderCustomHeader:s.props.renderCustomHeader,popperProps:s.props.popperProps,renderDayContents:s.props.renderDayContents,onDayMouseEnter:s.props.onDayMouseEnter,onMonthMouseLeave:s.props.onMonthMouseLeave,showTimeInput:s.props.showTimeInput,showMonthYearPicker:s.props.showMonthYearPicker,showFullMonthYearPicker:s.props.showFullMonthYearPicker,showYearPicker:s.props.showYearPicker,showQuarterYearPicker:s.props.showQuarterYearPicker,showPopperArrow:s.props.showPopperArrow,excludeScrollbar:s.props.excludeScrollbar,handleOnKeyDown:s.onDayKeyDown,isInputFocused:s.state.focused,customTimeInput:s.props.customTimeInput,setPreSelection:s.setPreSelection},s.props.children):null})),ue(De(s),\"renderDateInput\",(function(){var e,r,a,o,p,i=n(s.props.className,ue({},\"react-datepicker-ignore-onclickoutside\",s.state.open)),c=s.props.customInput||t.createElement(\"input\",{type:\"text\"}),l=s.props.customInputRef||\"ref\",d=\"string\"==typeof s.props.value?s.props.value:\"string\"==typeof s.state.inputValue?s.state.inputValue:(r=s.props.selected,a=s.props,o=a.dateFormat,p=a.locale,r&&Ee(r,Array.isArray(o)?o[0]:o,p)||\"\");return t.cloneElement(c,(ue(e={},l,(function(e){s.input=e})),ue(e,\"value\",d),ue(e,\"onBlur\",s.handleBlur),ue(e,\"onChange\",s.handleChange),ue(e,\"onClick\",s.onInputClick),ue(e,\"onFocus\",s.handleFocus),ue(e,\"onKeyDown\",s.onInputKeyDown),ue(e,\"id\",s.props.id),ue(e,\"name\",s.props.name),ue(e,\"autoFocus\",s.props.autoFocus),ue(e,\"placeholder\",s.props.placeholderText),ue(e,\"disabled\",s.props.disabled),ue(e,\"autoComplete\",s.props.autoComplete),ue(e,\"className\",n(c.props.className,i)),ue(e,\"title\",s.props.title),ue(e,\"readOnly\",s.props.readOnly),ue(e,\"required\",s.props.required),ue(e,\"tabIndex\",s.props.tabIndex),ue(e,\"aria-labelledby\",s.props.ariaLabelledBy),e))})),ue(De(s),\"renderClearButton\",(function(){var e=s.props,r=e.isClearable,n=e.selected,a=e.clearButtonTitle,o=e.ariaLabelClose,p=void 0===o?\"Close\":o;return r&&null!=n?t.createElement(\"button\",{type:\"button\",className:\"react-datepicker__close-icon\",\"aria-label\":p,onClick:s.onClearClick,title:a,tabIndex:-1}):null})),s.state=s.calcInitialState(),s}return de(o,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,showFullMonthYearPicker:!1,showYearPicker:!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(o,[{key:\"componentDidUpdate\",value:function(e,t){var r,n;e.inline&&(r=e.selected,n=this.props.selected,r&&n?O(r)!==O(n)||P(r)!==P(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:ct(this.props.highlightDates)}),t.focused||Ae(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(xt,{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})}}]),o}(t.Component),Lt=\"input\",jt=\"navigate\";e.CalendarContainer=Pt,e.default=It,e.getDefaultLocale=He,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","export * from './asap.js'\nexport * from './types.js'\nexport * from './AsapQueue.js'\nexport * from './TaskFactory.js'\n","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\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-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/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 = /*#__PURE__*/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","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the 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 comparison styles. */\nvar UNORDERED_COMPARE_FLAG = 1,\n PARTIAL_COMPARE_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 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 objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\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('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\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 ? array.length : 0;\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 * 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 * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\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 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/** 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/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** 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 Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar 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 ? entries.length : 0;\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}\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 return this.has(key) && delete this.__data__[key];\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 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 ? entries.length : 0;\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}\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 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 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 ? entries.length : 0;\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.__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 return getMapData(this, key)['delete'](key);\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 getMapData(this, key).set(key, value);\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 ? values.length : 0;\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 this.__data__ = new ListCache(entries);\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}\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 return this.__data__['delete'](key);\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 cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\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 // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\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 `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\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 {Function} [customizer] The function to customize comparisons.\n * @param {boolean} [bitmask] The bitmask of comparison flags.\n * The bitmask may be composed of the following flags:\n * 1 - Unordered comparison\n * 2 - Partial comparison\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, customizer, bitmask, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, 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 {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\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, equalFunc, customizer, bitmask, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = arrayTag,\n othTag = arrayTag;\n\n if (!objIsArr) {\n objTag = getTag(object);\n objTag = objTag == argsTag ? objectTag : objTag;\n }\n if (!othIsArr) {\n othTag = getTag(other);\n othTag = othTag == argsTag ? objectTag : othTag;\n }\n var objIsObj = objTag == objectTag && !isHostObject(object),\n othIsObj = othTag == objectTag && !isHostObject(other),\n isSameTag = objTag == othTag;\n\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, equalFunc, customizer, bitmask, stack)\n : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack);\n }\n if (!(bitmask & PARTIAL_COMPARE_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, customizer, bitmask, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, equalFunc, customizer, bitmask, 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) || isHostObject(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[objectToString.call(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 {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\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, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_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 & UNORDERED_COMPARE_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 (!seen.has(othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) {\n return seen.add(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, customizer, bitmask, 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 {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\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, equalFunc, customizer, bitmask, 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 & PARTIAL_COMPARE_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 |= UNORDERED_COMPARE_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, 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 {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\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, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n objProps = keys(object),\n objLength = objProps.length,\n othProps = keys(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, customizer, bitmask, 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 * 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 * 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,\n// for data views in Edge < 14, and promises in Node.js.\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 = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\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 `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\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 */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\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 * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an 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 an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\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 * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\nfunction isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, customizer) : !!result;\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 // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\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 && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a 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\nmodule.exports = isEqualWith;\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\n\nlet logDisabled_ = true;\nlet deprecationWarnings_ = true;\n\n/**\n * Extract browser version out of the provided user agent string.\n *\n * @param {!string} uastring userAgent string.\n * @param {!string} expr Regular expression used as match criteria.\n * @param {!number} pos position in the version string to be returned.\n * @return {!number} browser version.\n */\nexport function extractVersion(uastring, expr, pos) {\n const match = uastring.match(expr);\n return match && match.length >= pos && parseInt(match[pos], 10);\n}\n\n// Wraps the peerconnection event eventNameToWrap in a function\n// which returns the modified event object (or false to prevent\n// the event).\nexport function wrapPeerConnectionEvent(window, eventNameToWrap, wrapper) {\n if (!window.RTCPeerConnection) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n const nativeAddEventListener = proto.addEventListener;\n proto.addEventListener = function(nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap) {\n return nativeAddEventListener.apply(this, arguments);\n }\n const wrappedCallback = (e) => {\n const modifiedEvent = wrapper(e);\n if (modifiedEvent) {\n if (cb.handleEvent) {\n cb.handleEvent(modifiedEvent);\n } else {\n cb(modifiedEvent);\n }\n }\n };\n this._eventMap = this._eventMap || {};\n if (!this._eventMap[eventNameToWrap]) {\n this._eventMap[eventNameToWrap] = new Map();\n }\n this._eventMap[eventNameToWrap].set(cb, wrappedCallback);\n return nativeAddEventListener.apply(this, [nativeEventName,\n wrappedCallback]);\n };\n\n const nativeRemoveEventListener = proto.removeEventListener;\n proto.removeEventListener = function(nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap || !this._eventMap\n || !this._eventMap[eventNameToWrap]) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (!this._eventMap[eventNameToWrap].has(cb)) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n const unwrappedCb = this._eventMap[eventNameToWrap].get(cb);\n this._eventMap[eventNameToWrap].delete(cb);\n if (this._eventMap[eventNameToWrap].size === 0) {\n delete this._eventMap[eventNameToWrap];\n }\n if (Object.keys(this._eventMap).length === 0) {\n delete this._eventMap;\n }\n return nativeRemoveEventListener.apply(this, [nativeEventName,\n unwrappedCb]);\n };\n\n Object.defineProperty(proto, 'on' + eventNameToWrap, {\n get() {\n return this['_on' + eventNameToWrap];\n },\n set(cb) {\n if (this['_on' + eventNameToWrap]) {\n this.removeEventListener(eventNameToWrap,\n this['_on' + eventNameToWrap]);\n delete this['_on' + eventNameToWrap];\n }\n if (cb) {\n this.addEventListener(eventNameToWrap,\n this['_on' + eventNameToWrap] = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n}\n\nexport function disableLog(bool) {\n if (typeof bool !== 'boolean') {\n return new Error('Argument type: ' + typeof bool +\n '. Please use a boolean.');\n }\n logDisabled_ = bool;\n return (bool) ? 'adapter.js logging disabled' :\n 'adapter.js logging enabled';\n}\n\n/**\n * Disable or enable deprecation warnings\n * @param {!boolean} bool set to true to disable warnings.\n */\nexport function disableWarnings(bool) {\n if (typeof bool !== 'boolean') {\n return new Error('Argument type: ' + typeof bool +\n '. Please use a boolean.');\n }\n deprecationWarnings_ = !bool;\n return 'adapter.js deprecation warnings ' + (bool ? 'disabled' : 'enabled');\n}\n\nexport function log() {\n if (typeof window === 'object') {\n if (logDisabled_) {\n return;\n }\n if (typeof console !== 'undefined' && typeof console.log === 'function') {\n console.log.apply(console, arguments);\n }\n }\n}\n\n/**\n * Shows a deprecation warning suggesting the modern and spec-compatible API.\n */\nexport function deprecated(oldMethod, newMethod) {\n if (!deprecationWarnings_) {\n return;\n }\n console.warn(oldMethod + ' is deprecated, please use ' + newMethod +\n ' instead.');\n}\n\n/**\n * Browser detector.\n *\n * @return {object} result containing browser and version\n * properties.\n */\nexport function detectBrowser(window) {\n // Returned result object.\n const result = {browser: null, version: null};\n\n // Fail early if it's not a browser\n if (typeof window === 'undefined' || !window.navigator) {\n result.browser = 'Not a browser.';\n return result;\n }\n\n const {navigator} = window;\n\n if (navigator.mozGetUserMedia) { // Firefox.\n result.browser = 'firefox';\n result.version = extractVersion(navigator.userAgent,\n /Firefox\\/(\\d+)\\./, 1);\n } else if (navigator.webkitGetUserMedia ||\n (window.isSecureContext === false && window.webkitRTCPeerConnection &&\n !window.RTCIceGatherer)) {\n // Chrome, Chromium, Webview, Opera.\n // Version matches Chrome/WebRTC version.\n // Chrome 74 removed webkitGetUserMedia on http as well so we need the\n // more complicated fallback to webkitRTCPeerConnection.\n result.browser = 'chrome';\n result.version = extractVersion(navigator.userAgent,\n /Chrom(e|ium)\\/(\\d+)\\./, 2);\n } else if (navigator.mediaDevices &&\n navigator.userAgent.match(/Edge\\/(\\d+).(\\d+)$/)) { // Edge.\n result.browser = 'edge';\n result.version = extractVersion(navigator.userAgent,\n /Edge\\/(\\d+).(\\d+)$/, 2);\n } else if (window.RTCPeerConnection &&\n navigator.userAgent.match(/AppleWebKit\\/(\\d+)\\./)) { // Safari.\n result.browser = 'safari';\n result.version = extractVersion(navigator.userAgent,\n /AppleWebKit\\/(\\d+)\\./, 1);\n result.supportsUnifiedPlan = window.RTCRtpTransceiver &&\n 'currentDirection' in window.RTCRtpTransceiver.prototype;\n } else { // Default fallthrough: not supported.\n result.browser = 'Not a supported browser.';\n return result;\n }\n\n return result;\n}\n\n/**\n * Checks if something is an object.\n *\n * @param {*} val The something you want to check.\n * @return true if val is an object, false otherwise.\n */\nfunction isObject(val) {\n return Object.prototype.toString.call(val) === '[object Object]';\n}\n\n/**\n * Remove all empty objects and undefined values\n * from a nested object -- an enhanced and vanilla version\n * of Lodash's `compact`.\n */\nexport function compactObject(data) {\n if (!isObject(data)) {\n return data;\n }\n\n return Object.keys(data).reduce(function(accumulator, key) {\n const isObj = isObject(data[key]);\n const value = isObj ? compactObject(data[key]) : data[key];\n const isEmptyObject = isObj && !Object.keys(value).length;\n if (value === undefined || isEmptyObject) {\n return accumulator;\n }\n return Object.assign(accumulator, {[key]: value});\n }, {});\n}\n\n/* iterates the stats graph recursively. */\nexport function walkStats(stats, base, resultSet) {\n if (!base || resultSet.has(base.id)) {\n return;\n }\n resultSet.set(base.id, base);\n Object.keys(base).forEach(name => {\n if (name.endsWith('Id')) {\n walkStats(stats, stats.get(base[name]), resultSet);\n } else if (name.endsWith('Ids')) {\n base[name].forEach(id => {\n walkStats(stats, stats.get(id), resultSet);\n });\n }\n });\n}\n\n/* filter getStats for a sender/receiver track. */\nexport function filterStats(result, track, outbound) {\n const streamStatsType = outbound ? 'outbound-rtp' : 'inbound-rtp';\n const filteredResult = new Map();\n if (track === null) {\n return filteredResult;\n }\n const trackStats = [];\n result.forEach(value => {\n if (value.type === 'track' &&\n value.trackIdentifier === track.id) {\n trackStats.push(value);\n }\n });\n trackStats.forEach(trackStat => {\n result.forEach(stats => {\n if (stats.type === streamStatsType && stats.trackId === trackStat.id) {\n walkStats(result, stats, filteredResult);\n }\n });\n });\n return filteredResult;\n}\n\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\nconst logging = utils.log;\n\nexport function shimGetUserMedia(window, browserDetails) {\n const navigator = window && window.navigator;\n\n if (!navigator.mediaDevices) {\n return;\n }\n\n const constraintsToChrome_ = function(c) {\n if (typeof c !== 'object' || c.mandatory || c.optional) {\n return c;\n }\n const cc = {};\n Object.keys(c).forEach(key => {\n if (key === 'require' || key === 'advanced' || key === 'mediaSource') {\n return;\n }\n const r = (typeof c[key] === 'object') ? c[key] : {ideal: c[key]};\n if (r.exact !== undefined && typeof r.exact === 'number') {\n r.min = r.max = r.exact;\n }\n const oldname_ = function(prefix, name) {\n if (prefix) {\n return prefix + name.charAt(0).toUpperCase() + name.slice(1);\n }\n return (name === 'deviceId') ? 'sourceId' : name;\n };\n if (r.ideal !== undefined) {\n cc.optional = cc.optional || [];\n let oc = {};\n if (typeof r.ideal === 'number') {\n oc[oldname_('min', key)] = r.ideal;\n cc.optional.push(oc);\n oc = {};\n oc[oldname_('max', key)] = r.ideal;\n cc.optional.push(oc);\n } else {\n oc[oldname_('', key)] = r.ideal;\n cc.optional.push(oc);\n }\n }\n if (r.exact !== undefined && typeof r.exact !== 'number') {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_('', key)] = r.exact;\n } else {\n ['min', 'max'].forEach(mix => {\n if (r[mix] !== undefined) {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_(mix, key)] = r[mix];\n }\n });\n }\n });\n if (c.advanced) {\n cc.optional = (cc.optional || []).concat(c.advanced);\n }\n return cc;\n };\n\n const shimConstraints_ = function(constraints, func) {\n if (browserDetails.version >= 61) {\n return func(constraints);\n }\n constraints = JSON.parse(JSON.stringify(constraints));\n if (constraints && typeof constraints.audio === 'object') {\n const remap = function(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n constraints = JSON.parse(JSON.stringify(constraints));\n remap(constraints.audio, 'autoGainControl', 'googAutoGainControl');\n remap(constraints.audio, 'noiseSuppression', 'googNoiseSuppression');\n constraints.audio = constraintsToChrome_(constraints.audio);\n }\n if (constraints && typeof constraints.video === 'object') {\n // Shim facingMode for mobile & surface pro.\n let face = constraints.video.facingMode;\n face = face && ((typeof face === 'object') ? face : {ideal: face});\n const getSupportedFacingModeLies = browserDetails.version < 66;\n\n if ((face && (face.exact === 'user' || face.exact === 'environment' ||\n face.ideal === 'user' || face.ideal === 'environment')) &&\n !(navigator.mediaDevices.getSupportedConstraints &&\n navigator.mediaDevices.getSupportedConstraints().facingMode &&\n !getSupportedFacingModeLies)) {\n delete constraints.video.facingMode;\n let matches;\n if (face.exact === 'environment' || face.ideal === 'environment') {\n matches = ['back', 'rear'];\n } else if (face.exact === 'user' || face.ideal === 'user') {\n matches = ['front'];\n }\n if (matches) {\n // Look for matches in label, or use last cam for back (typical).\n return navigator.mediaDevices.enumerateDevices()\n .then(devices => {\n devices = devices.filter(d => d.kind === 'videoinput');\n let dev = devices.find(d => matches.some(match =>\n d.label.toLowerCase().includes(match)));\n if (!dev && devices.length && matches.includes('back')) {\n dev = devices[devices.length - 1]; // more likely the back cam\n }\n if (dev) {\n constraints.video.deviceId = face.exact ? {exact: dev.deviceId} :\n {ideal: dev.deviceId};\n }\n constraints.video = constraintsToChrome_(constraints.video);\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n });\n }\n }\n constraints.video = constraintsToChrome_(constraints.video);\n }\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n };\n\n const shimError_ = function(e) {\n if (browserDetails.version >= 64) {\n return e;\n }\n return {\n name: {\n PermissionDeniedError: 'NotAllowedError',\n PermissionDismissedError: 'NotAllowedError',\n InvalidStateError: 'NotAllowedError',\n DevicesNotFoundError: 'NotFoundError',\n ConstraintNotSatisfiedError: 'OverconstrainedError',\n TrackStartError: 'NotReadableError',\n MediaDeviceFailedDueToShutdown: 'NotAllowedError',\n MediaDeviceKillSwitchOn: 'NotAllowedError',\n TabCaptureError: 'AbortError',\n ScreenCaptureError: 'AbortError',\n DeviceCaptureError: 'AbortError'\n }[e.name] || e.name,\n message: e.message,\n constraint: e.constraint || e.constraintName,\n toString() {\n return this.name + (this.message && ': ') + this.message;\n }\n };\n };\n\n const getUserMedia_ = function(constraints, onSuccess, onError) {\n shimConstraints_(constraints, c => {\n navigator.webkitGetUserMedia(c, onSuccess, e => {\n if (onError) {\n onError(shimError_(e));\n }\n });\n });\n };\n navigator.getUserMedia = getUserMedia_.bind(navigator);\n\n // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia\n // function which returns a Promise, it does not accept spec-style\n // constraints.\n if (navigator.mediaDevices.getUserMedia) {\n const origGetUserMedia = navigator.mediaDevices.getUserMedia.\n bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function(cs) {\n return shimConstraints_(cs, c => origGetUserMedia(c).then(stream => {\n if (c.audio && !stream.getAudioTracks().length ||\n c.video && !stream.getVideoTracks().length) {\n stream.getTracks().forEach(track => {\n track.stop();\n });\n throw new DOMException('', 'NotFoundError');\n }\n return stream;\n }, e => Promise.reject(shimError_(e))));\n };\n }\n}\n","/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nexport function shimGetDisplayMedia(window, getSourceId) {\n if (window.navigator.mediaDevices &&\n 'getDisplayMedia' in window.navigator.mediaDevices) {\n return;\n }\n if (!(window.navigator.mediaDevices)) {\n return;\n }\n // getSourceId is a function that returns a promise resolving with\n // the sourceId of the screen/window/tab to be shared.\n if (typeof getSourceId !== 'function') {\n console.error('shimGetDisplayMedia: getSourceId argument is not ' +\n 'a function');\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia =\n function getDisplayMedia(constraints) {\n return getSourceId(constraints)\n .then(sourceId => {\n const widthSpecified = constraints.video && constraints.video.width;\n const heightSpecified = constraints.video &&\n constraints.video.height;\n const frameRateSpecified = constraints.video &&\n constraints.video.frameRate;\n constraints.video = {\n mandatory: {\n chromeMediaSource: 'desktop',\n chromeMediaSourceId: sourceId,\n maxFrameRate: frameRateSpecified || 3\n }\n };\n if (widthSpecified) {\n constraints.video.mandatory.maxWidth = widthSpecified;\n }\n if (heightSpecified) {\n constraints.video.mandatory.maxHeight = heightSpecified;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n });\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\n\nexport {shimGetUserMedia} from './getusermedia';\nexport {shimGetDisplayMedia} from './getdisplaymedia';\n\nexport function shimMediaStream(window) {\n window.MediaStream = window.MediaStream || window.webkitMediaStream;\n}\n\nexport function shimOnTrack(window) {\n if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in\n window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {\n get() {\n return this._ontrack;\n },\n set(f) {\n if (this._ontrack) {\n this.removeEventListener('track', this._ontrack);\n }\n this.addEventListener('track', this._ontrack = f);\n },\n enumerable: true,\n configurable: true\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n if (!this._ontrackpoly) {\n this._ontrackpoly = (e) => {\n // onaddstream does not fire when a track is added to an existing\n // stream. But stream.onaddtrack is implemented so we use that.\n e.stream.addEventListener('addtrack', te => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === te.track.id);\n } else {\n receiver = {track: te.track};\n }\n\n const event = new Event('track');\n event.track = te.track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n e.stream.getTracks().forEach(track => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === track.id);\n } else {\n receiver = {track};\n }\n const event = new Event('track');\n event.track = track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n };\n this.addEventListener('addstream', this._ontrackpoly);\n }\n return origSetRemoteDescription.apply(this, arguments);\n };\n } else {\n // even if RTCRtpTransceiver is in window, it is only used and\n // emitted in unified-plan. Unfortunately this means we need\n // to unconditionally wrap the event.\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n if (!e.transceiver) {\n Object.defineProperty(e, 'transceiver',\n {value: {receiver: e.receiver}});\n }\n return e;\n });\n }\n}\n\nexport function shimGetSendersWithDtmf(window) {\n // Overrides addTrack/removeTrack, depends on shimAddTrackRemoveTrack.\n if (typeof window === 'object' && window.RTCPeerConnection &&\n !('getSenders' in window.RTCPeerConnection.prototype) &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype) {\n const shimSenderWithDtmf = function(pc, track) {\n return {\n track,\n get dtmf() {\n if (this._dtmf === undefined) {\n if (track.kind === 'audio') {\n this._dtmf = pc.createDTMFSender(track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n },\n _pc: pc\n };\n };\n\n // augment addTrack when getSenders is not available.\n if (!window.RTCPeerConnection.prototype.getSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n this._senders = this._senders || [];\n return this._senders.slice(); // return a copy of the internal state.\n };\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n let sender = origAddTrack.apply(this, arguments);\n if (!sender) {\n sender = shimSenderWithDtmf(this, track);\n this._senders.push(sender);\n }\n return sender;\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n origRemoveTrack.apply(this, arguments);\n const idx = this._senders.indexOf(sender);\n if (idx !== -1) {\n this._senders.splice(idx, 1);\n }\n };\n }\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._senders = this._senders || [];\n origAddStream.apply(this, [stream]);\n stream.getTracks().forEach(track => {\n this._senders.push(shimSenderWithDtmf(this, track));\n });\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._senders = this._senders || [];\n origRemoveStream.apply(this, [stream]);\n\n stream.getTracks().forEach(track => {\n const sender = this._senders.find(s => s.track === track);\n if (sender) { // remove sender\n this._senders.splice(this._senders.indexOf(sender), 1);\n }\n });\n };\n } else if (typeof window === 'object' && window.RTCPeerConnection &&\n 'getSenders' in window.RTCPeerConnection.prototype &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype &&\n window.RTCRtpSender &&\n !('dtmf' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n\n Object.defineProperty(window.RTCRtpSender.prototype, 'dtmf', {\n get() {\n if (this._dtmf === undefined) {\n if (this.track.kind === 'audio') {\n this._dtmf = this._pc.createDTMFSender(this.track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n }\n });\n }\n}\n\nexport function shimGetStats(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n\n // If selector is a function then we are in the old style stats so just\n // pass back the original getStats format to avoid breaking old users.\n if (arguments.length > 0 && typeof selector === 'function') {\n return origGetStats.apply(this, arguments);\n }\n\n // When spec-style getStats is supported, return those when called with\n // either no arguments or the selector argument is null.\n if (origGetStats.length === 0 && (arguments.length === 0 ||\n typeof selector !== 'function')) {\n return origGetStats.apply(this, []);\n }\n\n const fixChromeStats_ = function(response) {\n const standardReport = {};\n const reports = response.result();\n reports.forEach(report => {\n const standardStats = {\n id: report.id,\n timestamp: report.timestamp,\n type: {\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n }[report.type] || report.type\n };\n report.names().forEach(name => {\n standardStats[name] = report.stat(name);\n });\n standardReport[standardStats.id] = standardStats;\n });\n\n return standardReport;\n };\n\n // shim getStats with maplike support\n const makeMapStats = function(stats) {\n return new Map(Object.keys(stats).map(key => [key, stats[key]]));\n };\n\n if (arguments.length >= 2) {\n const successCallbackWrapper_ = function(response) {\n onSucc(makeMapStats(fixChromeStats_(response)));\n };\n\n return origGetStats.apply(this, [successCallbackWrapper_,\n selector]);\n }\n\n // promise-support\n return new Promise((resolve, reject) => {\n origGetStats.apply(this, [\n function(response) {\n resolve(makeMapStats(fixChromeStats_(response)));\n }, reject]);\n }).then(onSucc, onErr);\n };\n}\n\nexport function shimSenderReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender && window.RTCRtpReceiver)) {\n return;\n }\n\n // shim sender stats.\n if (!('getStats' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n const sender = this;\n return this._pc.getStats().then(result =>\n /* Note: this will include stats of all senders that\n * send a track with the same id as sender.track as\n * it is not possible to identify the RTCRtpSender.\n */\n utils.filterStats(result, sender.track, true));\n };\n }\n\n // shim receiver stats.\n if (!('getStats' in window.RTCRtpReceiver.prototype)) {\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers =\n function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n const receiver = this;\n return this._pc.getStats().then(result =>\n utils.filterStats(result, receiver.track, false));\n };\n }\n\n if (!('getStats' in window.RTCRtpSender.prototype &&\n 'getStats' in window.RTCRtpReceiver.prototype)) {\n return;\n }\n\n // shim RTCPeerConnection.getStats(track).\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n if (arguments.length > 0 &&\n arguments[0] instanceof window.MediaStreamTrack) {\n const track = arguments[0];\n let sender;\n let receiver;\n let err;\n this.getSenders().forEach(s => {\n if (s.track === track) {\n if (sender) {\n err = true;\n } else {\n sender = s;\n }\n }\n });\n this.getReceivers().forEach(r => {\n if (r.track === track) {\n if (receiver) {\n err = true;\n } else {\n receiver = r;\n }\n }\n return r.track === track;\n });\n if (err || (sender && receiver)) {\n return Promise.reject(new DOMException(\n 'There are more than one sender or receiver for the track.',\n 'InvalidAccessError'));\n } else if (sender) {\n return sender.getStats();\n } else if (receiver) {\n return receiver.getStats();\n }\n return Promise.reject(new DOMException(\n 'There is no sender or receiver for the track.',\n 'InvalidAccessError'));\n }\n return origGetStats.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrackWithNative(window) {\n // shim addTrack/removeTrack with native variants in order to make\n // the interactions with legacy getLocalStreams behave as in other browsers.\n // Keeps a mapping stream.id => [stream, rtpsenders...]\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n return Object.keys(this._shimmedLocalStreams)\n .map(streamId => this._shimmedLocalStreams[streamId][0]);\n };\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (!stream) {\n return origAddTrack.apply(this, arguments);\n }\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n const sender = origAddTrack.apply(this, arguments);\n if (!this._shimmedLocalStreams[stream.id]) {\n this._shimmedLocalStreams[stream.id] = [stream, sender];\n } else if (this._shimmedLocalStreams[stream.id].indexOf(sender) === -1) {\n this._shimmedLocalStreams[stream.id].push(sender);\n }\n return sender;\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n const existingSenders = this.getSenders();\n origAddStream.apply(this, arguments);\n const newSenders = this.getSenders()\n .filter(newSender => existingSenders.indexOf(newSender) === -1);\n this._shimmedLocalStreams[stream.id] = [stream].concat(newSenders);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n delete this._shimmedLocalStreams[stream.id];\n return origRemoveStream.apply(this, arguments);\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n if (sender) {\n Object.keys(this._shimmedLocalStreams).forEach(streamId => {\n const idx = this._shimmedLocalStreams[streamId].indexOf(sender);\n if (idx !== -1) {\n this._shimmedLocalStreams[streamId].splice(idx, 1);\n }\n if (this._shimmedLocalStreams[streamId].length === 1) {\n delete this._shimmedLocalStreams[streamId];\n }\n });\n }\n return origRemoveTrack.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrack(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // shim addTrack and removeTrack.\n if (window.RTCPeerConnection.prototype.addTrack &&\n browserDetails.version >= 65) {\n return shimAddTrackRemoveTrackWithNative(window);\n }\n\n // also shim pc.getLocalStreams when addTrack is shimmed\n // to return the original streams.\n const origGetLocalStreams = window.RTCPeerConnection.prototype\n .getLocalStreams;\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n const nativeStreams = origGetLocalStreams.apply(this);\n this._reverseStreams = this._reverseStreams || {};\n return nativeStreams.map(stream => this._reverseStreams[stream.id]);\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n // Add identity mapping for consistency with addTrack.\n // Unless this is being used with a stream from addTrack.\n if (!this._reverseStreams[stream.id]) {\n const newStream = new window.MediaStream(stream.getTracks());\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n stream = newStream;\n }\n origAddStream.apply(this, [stream]);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n origRemoveStream.apply(this, [(this._streams[stream.id] || stream)]);\n delete this._reverseStreams[(this._streams[stream.id] ?\n this._streams[stream.id].id : stream.id)];\n delete this._streams[stream.id];\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n const streams = [].slice.call(arguments, 1);\n if (streams.length !== 1 ||\n !streams[0].getTracks().find(t => t === track)) {\n // this is not fully correct but all we can manage without\n // [[associated MediaStreams]] internal slot.\n throw new DOMException(\n 'The adapter.js addTrack polyfill only supports a single ' +\n ' stream which is associated with the specified track.',\n 'NotSupportedError');\n }\n\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n const oldStream = this._streams[stream.id];\n if (oldStream) {\n // this is using odd Chrome behaviour, use with caution:\n // https://bugs.chromium.org/p/webrtc/issues/detail?id=7815\n // Note: we rely on the high-level addTrack/dtmf shim to\n // create the sender with a dtmf sender.\n oldStream.addTrack(track);\n\n // Trigger ONN async.\n Promise.resolve().then(() => {\n this.dispatchEvent(new Event('negotiationneeded'));\n });\n } else {\n const newStream = new window.MediaStream([track]);\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n this.addStream(newStream);\n }\n return this.getSenders().find(s => s.track === track);\n };\n\n // replace the internal stream id with the external one and\n // vice versa.\n function replaceInternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(internalStream.id, 'g'),\n externalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n function replaceExternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(externalStream.id, 'g'),\n internalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n ['createOffer', 'createAnswer'].forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n const args = arguments;\n const isLegacyCall = arguments.length &&\n typeof arguments[0] === 'function';\n if (isLegacyCall) {\n return nativeMethod.apply(this, [\n (description) => {\n const desc = replaceInternalStreamId(this, description);\n args[0].apply(null, [desc]);\n },\n (err) => {\n if (args[1]) {\n args[1].apply(null, err);\n }\n }, arguments[2]\n ]);\n }\n return nativeMethod.apply(this, arguments)\n .then(description => replaceInternalStreamId(this, description));\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n\n const origSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n if (!arguments.length || !arguments[0].type) {\n return origSetLocalDescription.apply(this, arguments);\n }\n arguments[0] = replaceExternalStreamId(this, arguments[0]);\n return origSetLocalDescription.apply(this, arguments);\n };\n\n // TODO: mangle getStats: https://w3c.github.io/webrtc-stats/#dom-rtcmediastreamstats-streamidentifier\n\n const origLocalDescription = Object.getOwnPropertyDescriptor(\n window.RTCPeerConnection.prototype, 'localDescription');\n Object.defineProperty(window.RTCPeerConnection.prototype,\n 'localDescription', {\n get() {\n const description = origLocalDescription.get.apply(this);\n if (description.type === '') {\n return description;\n }\n return replaceInternalStreamId(this, description);\n }\n });\n\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n // We can not yet check for sender instanceof RTCRtpSender\n // since we shim RTPSender. So we check if sender._pc is set.\n if (!sender._pc) {\n throw new DOMException('Argument 1 of RTCPeerConnection.removeTrack ' +\n 'does not implement interface RTCRtpSender.', 'TypeError');\n }\n const isLocal = sender._pc === this;\n if (!isLocal) {\n throw new DOMException('Sender was not created by this connection.',\n 'InvalidAccessError');\n }\n\n // Search for the native stream the senders track belongs to.\n this._streams = this._streams || {};\n let stream;\n Object.keys(this._streams).forEach(streamid => {\n const hasTrack = this._streams[streamid].getTracks()\n .find(track => sender.track === track);\n if (hasTrack) {\n stream = this._streams[streamid];\n }\n });\n\n if (stream) {\n if (stream.getTracks().length === 1) {\n // if this is the last track of the stream, remove the stream. This\n // takes care of any shimmed _senders.\n this.removeStream(this._reverseStreams[stream.id]);\n } else {\n // relying on the same odd chrome behaviour as above.\n stream.removeTrack(sender.track);\n }\n this.dispatchEvent(new Event('negotiationneeded'));\n }\n };\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (!window.RTCPeerConnection && window.webkitRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.webkitRTCPeerConnection;\n }\n if (!window.RTCPeerConnection) {\n return;\n }\n\n // shim implicit creation of RTCSessionDescription/RTCIceCandidate\n if (browserDetails.version < 53) {\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n}\n\n// Attempt to fix ONN in plan-b mode.\nexport function fixNegotiationNeeded(window, browserDetails) {\n utils.wrapPeerConnectionEvent(window, 'negotiationneeded', e => {\n const pc = e.target;\n if (browserDetails.version < 72 || (pc.getConfiguration &&\n pc.getConfiguration().sdpSemantics === 'plan-b')) {\n if (pc.signalingState !== 'stable') {\n return;\n }\n }\n return e;\n });\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\n\nexport function shimGetUserMedia(window) {\n const navigator = window && window.navigator;\n\n const shimError_ = function(e) {\n return {\n name: {PermissionDeniedError: 'NotAllowedError'}[e.name] || e.name,\n message: e.message,\n constraint: e.constraint,\n toString() {\n return this.name;\n }\n };\n };\n\n // getUserMedia error shim.\n const origGetUserMedia = navigator.mediaDevices.getUserMedia.\n bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function(c) {\n return origGetUserMedia(c).catch(e => Promise.reject(shimError_(e)));\n };\n}\n","/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\n\nexport function shimGetDisplayMedia(window) {\n if (!('getDisplayMedia' in window.navigator)) {\n return;\n }\n if (!(window.navigator.mediaDevices)) {\n return;\n }\n if (window.navigator.mediaDevices &&\n 'getDisplayMedia' in window.navigator.mediaDevices) {\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia =\n window.navigator.getDisplayMedia.bind(window.navigator);\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\nimport {filterIceServers} from './filtericeservers';\nimport shimRTCPeerConnection from 'rtcpeerconnection-shim';\n\nexport {shimGetUserMedia} from './getusermedia';\nexport {shimGetDisplayMedia} from './getdisplaymedia';\n\nexport function shimPeerConnection(window, browserDetails) {\n if (window.RTCIceGatherer) {\n if (!window.RTCIceCandidate) {\n window.RTCIceCandidate = function RTCIceCandidate(args) {\n return args;\n };\n }\n if (!window.RTCSessionDescription) {\n window.RTCSessionDescription = function RTCSessionDescription(args) {\n return args;\n };\n }\n // this adds an additional event listener to MediaStrackTrack that signals\n // when a tracks enabled property was changed. Workaround for a bug in\n // addStream, see below. No longer required in 15025+\n if (browserDetails.version < 15025) {\n const origMSTEnabled = Object.getOwnPropertyDescriptor(\n window.MediaStreamTrack.prototype, 'enabled');\n Object.defineProperty(window.MediaStreamTrack.prototype, 'enabled', {\n set(value) {\n origMSTEnabled.set.call(this, value);\n const ev = new Event('enabled');\n ev.enabled = value;\n this.dispatchEvent(ev);\n }\n });\n }\n }\n\n // ORTC defines the DTMF sender a bit different.\n // https://github.com/w3c/ortc/issues/714\n if (window.RTCRtpSender && !('dtmf' in window.RTCRtpSender.prototype)) {\n Object.defineProperty(window.RTCRtpSender.prototype, 'dtmf', {\n get() {\n if (this._dtmf === undefined) {\n if (this.track.kind === 'audio') {\n this._dtmf = new window.RTCDtmfSender(this);\n } else if (this.track.kind === 'video') {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n }\n });\n }\n // Edge currently only implements the RTCDtmfSender, not the\n // RTCDTMFSender alias. See http://draft.ortc.org/#rtcdtmfsender2*\n if (window.RTCDtmfSender && !window.RTCDTMFSender) {\n window.RTCDTMFSender = window.RTCDtmfSender;\n }\n\n const RTCPeerConnectionShim = shimRTCPeerConnection(window,\n browserDetails.version);\n window.RTCPeerConnection = function RTCPeerConnection(config) {\n if (config && config.iceServers) {\n config.iceServers = filterIceServers(config.iceServers,\n browserDetails.version);\n utils.log('ICE servers after filtering:', config.iceServers);\n }\n return new RTCPeerConnectionShim(config);\n };\n window.RTCPeerConnection.prototype = RTCPeerConnectionShim.prototype;\n}\n\nexport function shimReplaceTrack(window) {\n // ORTC has replaceTrack -- https://github.com/w3c/ortc/issues/614\n if (window.RTCRtpSender &&\n !('replaceTrack' in window.RTCRtpSender.prototype)) {\n window.RTCRtpSender.prototype.replaceTrack =\n window.RTCRtpSender.prototype.setTrack;\n }\n}\n","/*\n * Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\n// Edge does not like\n// 1) stun: filtered after 14393 unless ?transport=udp is present\n// 2) turn: that does not have all of turn:host:port?transport=udp\n// 3) turn: with ipv6 addresses\n// 4) turn: occurring muliple times\nexport function filterIceServers(iceServers, edgeVersion) {\n let hasTurn = false;\n iceServers = JSON.parse(JSON.stringify(iceServers));\n return iceServers.filter(server => {\n if (server && (server.urls || server.url)) {\n let urls = server.urls || server.url;\n if (server.url && !server.urls) {\n utils.deprecated('RTCIceServer.url', 'RTCIceServer.urls');\n }\n const isString = typeof urls === 'string';\n if (isString) {\n urls = [urls];\n }\n urls = urls.filter(url => {\n // filter STUN unconditionally.\n if (url.indexOf('stun:') === 0) {\n return false;\n }\n\n const validTurn = url.startsWith('turn') &&\n !url.startsWith('turn:[') &&\n url.includes('transport=udp');\n if (validTurn && !hasTurn) {\n hasTurn = true;\n return true;\n }\n return validTurn && !hasTurn;\n });\n\n delete server.url;\n server.urls = isString ? urls[0] : urls;\n return !!urls.length;\n }\n });\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\n\nexport function shimGetUserMedia(window, browserDetails) {\n const navigator = window && window.navigator;\n const MediaStreamTrack = window && window.MediaStreamTrack;\n\n navigator.getUserMedia = function(constraints, onSuccess, onError) {\n // Replace Firefox 44+'s deprecation warning with unprefixed version.\n utils.deprecated('navigator.getUserMedia',\n 'navigator.mediaDevices.getUserMedia');\n navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);\n };\n\n if (!(browserDetails.version > 55 &&\n 'autoGainControl' in navigator.mediaDevices.getSupportedConstraints())) {\n const remap = function(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n\n const nativeGetUserMedia = navigator.mediaDevices.getUserMedia.\n bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function(c) {\n if (typeof c === 'object' && typeof c.audio === 'object') {\n c = JSON.parse(JSON.stringify(c));\n remap(c.audio, 'autoGainControl', 'mozAutoGainControl');\n remap(c.audio, 'noiseSuppression', 'mozNoiseSuppression');\n }\n return nativeGetUserMedia(c);\n };\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.getSettings) {\n const nativeGetSettings = MediaStreamTrack.prototype.getSettings;\n MediaStreamTrack.prototype.getSettings = function() {\n const obj = nativeGetSettings.apply(this, arguments);\n remap(obj, 'mozAutoGainControl', 'autoGainControl');\n remap(obj, 'mozNoiseSuppression', 'noiseSuppression');\n return obj;\n };\n }\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.applyConstraints) {\n const nativeApplyConstraints =\n MediaStreamTrack.prototype.applyConstraints;\n MediaStreamTrack.prototype.applyConstraints = function(c) {\n if (this.kind === 'audio' && typeof c === 'object') {\n c = JSON.parse(JSON.stringify(c));\n remap(c, 'autoGainControl', 'mozAutoGainControl');\n remap(c, 'noiseSuppression', 'mozNoiseSuppression');\n }\n return nativeApplyConstraints.apply(this, [c]);\n };\n }\n }\n}\n","/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nexport function shimGetDisplayMedia(window, preferredMediaSource) {\n if (window.navigator.mediaDevices &&\n 'getDisplayMedia' in window.navigator.mediaDevices) {\n return;\n }\n if (!(window.navigator.mediaDevices)) {\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia =\n function getDisplayMedia(constraints) {\n if (!(constraints && constraints.video)) {\n const err = new DOMException('getDisplayMedia without video ' +\n 'constraints is undefined');\n err.name = 'NotFoundError';\n // from https://heycam.github.io/webidl/#idl-DOMException-error-names\n err.code = 8;\n return Promise.reject(err);\n }\n if (constraints.video === true) {\n constraints.video = {mediaSource: preferredMediaSource};\n } else {\n constraints.video.mediaSource = preferredMediaSource;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\nexport {shimGetUserMedia} from './getusermedia';\nexport {shimGetDisplayMedia} from './getdisplaymedia';\n\nexport function shimOnTrack(window) {\n if (typeof window === 'object' && window.RTCTrackEvent &&\n ('receiver' in window.RTCTrackEvent.prototype) &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (typeof window !== 'object' ||\n !(window.RTCPeerConnection || window.mozRTCPeerConnection)) {\n return; // probably media.peerconnection.enabled=false in about:config\n }\n if (!window.RTCPeerConnection && window.mozRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.mozRTCPeerConnection;\n }\n\n if (browserDetails.version < 53) {\n // shim away need for obsolete RTCIceCandidate/RTCSessionDescription.\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n\n const modernStatsTypes = {\n inboundrtp: 'inbound-rtp',\n outboundrtp: 'outbound-rtp',\n candidatepair: 'candidate-pair',\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n };\n\n const nativeGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n return nativeGetStats.apply(this, [selector || null])\n .then(stats => {\n if (browserDetails.version < 53 && !onSucc) {\n // Shim only promise getStats with spec-hyphens in type names\n // Leave callback version alone; misc old uses of forEach before Map\n try {\n stats.forEach(stat => {\n stat.type = modernStatsTypes[stat.type] || stat.type;\n });\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n // Avoid TypeError: \"type\" is read-only, in old versions. 34-43ish\n stats.forEach((stat, i) => {\n stats.set(i, Object.assign({}, stat, {\n type: modernStatsTypes[stat.type] || stat.type\n }));\n });\n }\n }\n return stats;\n })\n .then(onSucc, onErr);\n };\n}\n\nexport function shimSenderGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpSender.prototype) {\n return;\n }\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n return this.track ? this._pc.getStats(this.track) :\n Promise.resolve(new Map());\n };\n}\n\nexport function shimReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpReceiver.prototype) {\n return;\n }\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers = function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n return this._pc.getStats(this.track);\n };\n}\n\nexport function shimRemoveStream(window) {\n if (!window.RTCPeerConnection ||\n 'removeStream' in window.RTCPeerConnection.prototype) {\n return;\n }\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n utils.deprecated('removeStream', 'removeTrack');\n this.getSenders().forEach(sender => {\n if (sender.track && stream.getTracks().includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n}\n\nexport function shimRTCDataChannel(window) {\n // rename DataChannel to RTCDataChannel (native fix in FF60):\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1173851\n if (window.DataChannel && !window.RTCDataChannel) {\n window.RTCDataChannel = window.DataChannel;\n }\n}\n\nexport function shimAddTransceiver(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origAddTransceiver = window.RTCPeerConnection.prototype.addTransceiver;\n if (origAddTransceiver) {\n window.RTCPeerConnection.prototype.addTransceiver =\n function addTransceiver() {\n this.setParametersPromises = [];\n const initParameters = arguments[1];\n const shouldPerformCheck = initParameters &&\n 'sendEncodings' in initParameters;\n if (shouldPerformCheck) {\n // If sendEncodings params are provided, validate grammar\n initParameters.sendEncodings.forEach((encodingParam) => {\n if ('rid' in encodingParam) {\n const ridRegex = /^[a-z0-9]{0,16}$/i;\n if (!ridRegex.test(encodingParam.rid)) {\n throw new TypeError('Invalid RID value provided.');\n }\n }\n if ('scaleResolutionDownBy' in encodingParam) {\n if (!(parseFloat(encodingParam.scaleResolutionDownBy) >= 1.0)) {\n throw new RangeError('scale_resolution_down_by must be >= 1.0');\n }\n }\n if ('maxFramerate' in encodingParam) {\n if (!(parseFloat(encodingParam.maxFramerate) >= 0)) {\n throw new RangeError('max_framerate must be >= 0.0');\n }\n }\n });\n }\n const transceiver = origAddTransceiver.apply(this, arguments);\n if (shouldPerformCheck) {\n // Check if the init options were applied. If not we do this in an\n // asynchronous way and save the promise reference in a global object.\n // This is an ugly hack, but at the same time is way more robust than\n // checking the sender parameters before and after the createOffer\n // Also note that after the createoffer we are not 100% sure that\n // the params were asynchronously applied so we might miss the\n // opportunity to recreate offer.\n const {sender} = transceiver;\n const params = sender.getParameters();\n if (!('encodings' in params) ||\n // Avoid being fooled by patched getParameters() below.\n (params.encodings.length === 1 &&\n Object.keys(params.encodings[0]).length === 0)) {\n params.encodings = initParameters.sendEncodings;\n sender.sendEncodings = initParameters.sendEncodings;\n this.setParametersPromises.push(sender.setParameters(params)\n .then(() => {\n delete sender.sendEncodings;\n }).catch(() => {\n delete sender.sendEncodings;\n })\n );\n }\n }\n return transceiver;\n };\n }\n}\n\nexport function shimGetParameters(window) {\n if (!(typeof window === 'object' && window.RTCRtpSender)) {\n return;\n }\n const origGetParameters = window.RTCRtpSender.prototype.getParameters;\n if (origGetParameters) {\n window.RTCRtpSender.prototype.getParameters =\n function getParameters() {\n const params = origGetParameters.apply(this, arguments);\n if (!('encodings' in params)) {\n params.encodings = [].concat(this.sendEncodings || [{}]);\n }\n return params;\n };\n }\n}\n\nexport function shimCreateOffer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer = function createOffer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateOffer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimCreateAnswer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origCreateAnswer = window.RTCPeerConnection.prototype.createAnswer;\n window.RTCPeerConnection.prototype.createAnswer = function createAnswer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateAnswer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateAnswer.apply(this, arguments);\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n'use strict';\nimport * as utils from '../utils';\n\nexport function shimLocalStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getLocalStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n return this._localStreams;\n };\n }\n if (!('addStream' in window.RTCPeerConnection.prototype)) {\n const _addTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n // Try to emulate Chrome's behaviour of adding in audio-video order.\n // Safari orders by track id.\n stream.getAudioTracks().forEach(track => _addTrack.call(this, track,\n stream));\n stream.getVideoTracks().forEach(track => _addTrack.call(this, track,\n stream));\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, ...streams) {\n if (streams) {\n streams.forEach((stream) => {\n if (!this._localStreams) {\n this._localStreams = [stream];\n } else if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n });\n }\n return _addTrack.apply(this, arguments);\n };\n }\n if (!('removeStream' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n const index = this._localStreams.indexOf(stream);\n if (index === -1) {\n return;\n }\n this._localStreams.splice(index, 1);\n const tracks = stream.getTracks();\n this.getSenders().forEach(sender => {\n if (tracks.includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n }\n}\n\nexport function shimRemoteStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getRemoteStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getRemoteStreams =\n function getRemoteStreams() {\n return this._remoteStreams ? this._remoteStreams : [];\n };\n }\n if (!('onaddstream' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'onaddstream', {\n get() {\n return this._onaddstream;\n },\n set(f) {\n if (this._onaddstream) {\n this.removeEventListener('addstream', this._onaddstream);\n this.removeEventListener('track', this._onaddstreampoly);\n }\n this.addEventListener('addstream', this._onaddstream = f);\n this.addEventListener('track', this._onaddstreampoly = (e) => {\n e.streams.forEach(stream => {\n if (!this._remoteStreams) {\n this._remoteStreams = [];\n }\n if (this._remoteStreams.includes(stream)) {\n return;\n }\n this._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n this.dispatchEvent(event);\n });\n });\n }\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n const pc = this;\n if (!this._onaddstreampoly) {\n this.addEventListener('track', this._onaddstreampoly = function(e) {\n e.streams.forEach(stream => {\n if (!pc._remoteStreams) {\n pc._remoteStreams = [];\n }\n if (pc._remoteStreams.indexOf(stream) >= 0) {\n return;\n }\n pc._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n pc.dispatchEvent(event);\n });\n });\n }\n return origSetRemoteDescription.apply(pc, arguments);\n };\n }\n}\n\nexport function shimCallbacksAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n const prototype = window.RTCPeerConnection.prototype;\n const origCreateOffer = prototype.createOffer;\n const origCreateAnswer = prototype.createAnswer;\n const setLocalDescription = prototype.setLocalDescription;\n const setRemoteDescription = prototype.setRemoteDescription;\n const addIceCandidate = prototype.addIceCandidate;\n\n prototype.createOffer =\n function createOffer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateOffer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n prototype.createAnswer =\n function createAnswer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateAnswer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n let withCallback = function(description, successCallback, failureCallback) {\n const promise = setLocalDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setLocalDescription = withCallback;\n\n withCallback = function(description, successCallback, failureCallback) {\n const promise = setRemoteDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setRemoteDescription = withCallback;\n\n withCallback = function(candidate, successCallback, failureCallback) {\n const promise = addIceCandidate.apply(this, [candidate]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.addIceCandidate = withCallback;\n}\n\nexport function shimGetUserMedia(window) {\n const navigator = window && window.navigator;\n\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n // shim not needed in Safari 12.1\n const mediaDevices = navigator.mediaDevices;\n const _getUserMedia = mediaDevices.getUserMedia.bind(mediaDevices);\n navigator.mediaDevices.getUserMedia = (constraints) => {\n return _getUserMedia(shimConstraints(constraints));\n };\n }\n\n if (!navigator.getUserMedia && navigator.mediaDevices &&\n navigator.mediaDevices.getUserMedia) {\n navigator.getUserMedia = function getUserMedia(constraints, cb, errcb) {\n navigator.mediaDevices.getUserMedia(constraints)\n .then(cb, errcb);\n }.bind(navigator);\n }\n}\n\nexport function shimConstraints(constraints) {\n if (constraints && constraints.video !== undefined) {\n return Object.assign({},\n constraints,\n {video: utils.compactObject(constraints.video)}\n );\n }\n\n return constraints;\n}\n\nexport function shimRTCIceServerUrls(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // migrate from non-spec RTCIceServer.url to RTCIceServer.urls\n const OrigPeerConnection = window.RTCPeerConnection;\n window.RTCPeerConnection =\n function RTCPeerConnection(pcConfig, pcConstraints) {\n if (pcConfig && pcConfig.iceServers) {\n const newIceServers = [];\n for (let i = 0; i < pcConfig.iceServers.length; i++) {\n let server = pcConfig.iceServers[i];\n if (!server.hasOwnProperty('urls') &&\n server.hasOwnProperty('url')) {\n utils.deprecated('RTCIceServer.url', 'RTCIceServer.urls');\n server = JSON.parse(JSON.stringify(server));\n server.urls = server.url;\n delete server.url;\n newIceServers.push(server);\n } else {\n newIceServers.push(pcConfig.iceServers[i]);\n }\n }\n pcConfig.iceServers = newIceServers;\n }\n return new OrigPeerConnection(pcConfig, pcConstraints);\n };\n window.RTCPeerConnection.prototype = OrigPeerConnection.prototype;\n // wrap static methods. Currently just generateCertificate.\n if ('generateCertificate' in OrigPeerConnection) {\n Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {\n get() {\n return OrigPeerConnection.generateCertificate;\n }\n });\n }\n}\n\nexport function shimTrackEventTransceiver(window) {\n // Add event.transceiver member over deprecated event.receiver\n if (typeof window === 'object' && window.RTCTrackEvent &&\n 'receiver' in window.RTCTrackEvent.prototype &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimCreateOfferLegacy(window) {\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer =\n function createOffer(offerOptions) {\n if (offerOptions) {\n if (typeof offerOptions.offerToReceiveAudio !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveAudio =\n !!offerOptions.offerToReceiveAudio;\n }\n const audioTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'audio');\n if (offerOptions.offerToReceiveAudio === false && audioTransceiver) {\n if (audioTransceiver.direction === 'sendrecv') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('sendonly');\n } else {\n audioTransceiver.direction = 'sendonly';\n }\n } else if (audioTransceiver.direction === 'recvonly') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('inactive');\n } else {\n audioTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveAudio === true &&\n !audioTransceiver) {\n this.addTransceiver('audio');\n }\n\n if (typeof offerOptions.offerToReceiveVideo !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveVideo =\n !!offerOptions.offerToReceiveVideo;\n }\n const videoTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'video');\n if (offerOptions.offerToReceiveVideo === false && videoTransceiver) {\n if (videoTransceiver.direction === 'sendrecv') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('sendonly');\n } else {\n videoTransceiver.direction = 'sendonly';\n }\n } else if (videoTransceiver.direction === 'recvonly') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('inactive');\n } else {\n videoTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveVideo === true &&\n !videoTransceiver) {\n this.addTransceiver('video');\n }\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimAudioContext(window) {\n if (typeof window !== 'object' || window.AudioContext) {\n return;\n }\n window.AudioContext = window.webkitAudioContext;\n}\n","/*\n * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport SDPUtils from 'sdp';\nimport * as utils from './utils';\n\nexport function shimRTCIceCandidate(window) {\n // foundation is arbitrarily chosen as an indicator for full support for\n // https://w3c.github.io/webrtc-pc/#rtcicecandidate-interface\n if (!window.RTCIceCandidate || (window.RTCIceCandidate && 'foundation' in\n window.RTCIceCandidate.prototype)) {\n return;\n }\n\n const NativeRTCIceCandidate = window.RTCIceCandidate;\n window.RTCIceCandidate = function RTCIceCandidate(args) {\n // Remove the a= which shouldn't be part of the candidate string.\n if (typeof args === 'object' && args.candidate &&\n args.candidate.indexOf('a=') === 0) {\n args = JSON.parse(JSON.stringify(args));\n args.candidate = args.candidate.substr(2);\n }\n\n if (args.candidate && args.candidate.length) {\n // Augment the native candidate with the parsed fields.\n const nativeCandidate = new NativeRTCIceCandidate(args);\n const parsedCandidate = SDPUtils.parseCandidate(args.candidate);\n const augmentedCandidate = Object.assign(nativeCandidate,\n parsedCandidate);\n\n // Add a serializer that does not serialize the extra attributes.\n augmentedCandidate.toJSON = function toJSON() {\n return {\n candidate: augmentedCandidate.candidate,\n sdpMid: augmentedCandidate.sdpMid,\n sdpMLineIndex: augmentedCandidate.sdpMLineIndex,\n usernameFragment: augmentedCandidate.usernameFragment,\n };\n };\n return augmentedCandidate;\n }\n return new NativeRTCIceCandidate(args);\n };\n window.RTCIceCandidate.prototype = NativeRTCIceCandidate.prototype;\n\n // Hook up the augmented candidate in onicecandidate and\n // addEventListener('icecandidate', ...)\n utils.wrapPeerConnectionEvent(window, 'icecandidate', e => {\n if (e.candidate) {\n Object.defineProperty(e, 'candidate', {\n value: new window.RTCIceCandidate(e.candidate),\n writable: 'false'\n });\n }\n return e;\n });\n}\n\nexport function shimMaxMessageSize(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n if (!('sctp' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n }\n });\n }\n\n const sctpInDescription = function(description) {\n if (!description || !description.sdp) {\n return false;\n }\n const sections = SDPUtils.splitSections(description.sdp);\n sections.shift();\n return sections.some(mediaSection => {\n const mLine = SDPUtils.parseMLine(mediaSection);\n return mLine && mLine.kind === 'application'\n && mLine.protocol.indexOf('SCTP') !== -1;\n });\n };\n\n const getRemoteFirefoxVersion = function(description) {\n // TODO: Is there a better solution for detecting Firefox?\n const match = description.sdp.match(/mozilla...THIS_IS_SDPARTA-(\\d+)/);\n if (match === null || match.length < 2) {\n return -1;\n }\n const version = parseInt(match[1], 10);\n // Test for NaN (yes, this is ugly)\n return version !== version ? -1 : version;\n };\n\n const getCanSendMaxMessageSize = function(remoteIsFirefox) {\n // Every implementation we know can send at least 64 KiB.\n // Note: Although Chrome is technically able to send up to 256 KiB, the\n // data does not reach the other peer reliably.\n // See: https://bugs.chromium.org/p/webrtc/issues/detail?id=8419\n let canSendMaxMessageSize = 65536;\n if (browserDetails.browser === 'firefox') {\n if (browserDetails.version < 57) {\n if (remoteIsFirefox === -1) {\n // FF < 57 will send in 16 KiB chunks using the deprecated PPID\n // fragmentation.\n canSendMaxMessageSize = 16384;\n } else {\n // However, other FF (and RAWRTC) can reassemble PPID-fragmented\n // messages. Thus, supporting ~2 GiB when sending.\n canSendMaxMessageSize = 2147483637;\n }\n } else if (browserDetails.version < 60) {\n // Currently, all FF >= 57 will reset the remote maximum message size\n // to the default value when a data channel is created at a later\n // stage. :(\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n canSendMaxMessageSize =\n browserDetails.version === 57 ? 65535 : 65536;\n } else {\n // FF >= 60 supports sending ~2 GiB\n canSendMaxMessageSize = 2147483637;\n }\n }\n return canSendMaxMessageSize;\n };\n\n const getMaxMessageSize = function(description, remoteIsFirefox) {\n // Note: 65536 bytes is the default value from the SDP spec. Also,\n // every implementation we know supports receiving 65536 bytes.\n let maxMessageSize = 65536;\n\n // FF 57 has a slightly incorrect default remote max message size, so\n // we need to adjust it here to avoid a failure when sending.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1425697\n if (browserDetails.browser === 'firefox'\n && browserDetails.version === 57) {\n maxMessageSize = 65535;\n }\n\n const match = SDPUtils.matchPrefix(description.sdp,\n 'a=max-message-size:');\n if (match.length > 0) {\n maxMessageSize = parseInt(match[0].substr(19), 10);\n } else if (browserDetails.browser === 'firefox' &&\n remoteIsFirefox !== -1) {\n // If the maximum message size is not present in the remote SDP and\n // both local and remote are Firefox, the remote peer can receive\n // ~2 GiB.\n maxMessageSize = 2147483637;\n }\n return maxMessageSize;\n };\n\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n this._sctp = null;\n // Chrome decided to not expose .sctp in plan-b mode.\n // As usual, adapter.js has to do an 'ugly worakaround'\n // to cover up the mess.\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 76) {\n const {sdpSemantics} = this.getConfiguration();\n if (sdpSemantics === 'plan-b') {\n Object.defineProperty(this, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n },\n enumerable: true,\n configurable: true,\n });\n }\n }\n\n if (sctpInDescription(arguments[0])) {\n // Check if the remote is FF.\n const isFirefox = getRemoteFirefoxVersion(arguments[0]);\n\n // Get the maximum message size the local peer is capable of sending\n const canSendMMS = getCanSendMaxMessageSize(isFirefox);\n\n // Get the maximum message size of the remote peer.\n const remoteMMS = getMaxMessageSize(arguments[0], isFirefox);\n\n // Determine final maximum message size\n let maxMessageSize;\n if (canSendMMS === 0 && remoteMMS === 0) {\n maxMessageSize = Number.POSITIVE_INFINITY;\n } else if (canSendMMS === 0 || remoteMMS === 0) {\n maxMessageSize = Math.max(canSendMMS, remoteMMS);\n } else {\n maxMessageSize = Math.min(canSendMMS, remoteMMS);\n }\n\n // Create a dummy RTCSctpTransport object and the 'maxMessageSize'\n // attribute.\n const sctp = {};\n Object.defineProperty(sctp, 'maxMessageSize', {\n get() {\n return maxMessageSize;\n }\n });\n this._sctp = sctp;\n }\n\n return origSetRemoteDescription.apply(this, arguments);\n };\n}\n\nexport function shimSendThrowTypeError(window) {\n if (!(window.RTCPeerConnection &&\n 'createDataChannel' in window.RTCPeerConnection.prototype)) {\n return;\n }\n\n // Note: Although Firefox >= 57 has a native implementation, the maximum\n // message size can be reset for all data channels at a later stage.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n\n function wrapDcSend(dc, pc) {\n const origDataChannelSend = dc.send;\n dc.send = function send() {\n const data = arguments[0];\n const length = data.length || data.size || data.byteLength;\n if (dc.readyState === 'open' &&\n pc.sctp && length > pc.sctp.maxMessageSize) {\n throw new TypeError('Message too large (can send a maximum of ' +\n pc.sctp.maxMessageSize + ' bytes)');\n }\n return origDataChannelSend.apply(dc, arguments);\n };\n }\n const origCreateDataChannel =\n window.RTCPeerConnection.prototype.createDataChannel;\n window.RTCPeerConnection.prototype.createDataChannel =\n function createDataChannel() {\n const dataChannel = origCreateDataChannel.apply(this, arguments);\n wrapDcSend(dataChannel, this);\n return dataChannel;\n };\n utils.wrapPeerConnectionEvent(window, 'datachannel', e => {\n wrapDcSend(e.channel, e.target);\n return e;\n });\n}\n\n\n/* shims RTCConnectionState by pretending it is the same as iceConnectionState.\n * See https://bugs.chromium.org/p/webrtc/issues/detail?id=6145#c12\n * for why this is a valid hack in Chrome. In Firefox it is slightly incorrect\n * since DTLS failures would be hidden. See\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1265827\n * for the Firefox tracking bug.\n */\nexport function shimConnectionState(window) {\n if (!window.RTCPeerConnection ||\n 'connectionState' in window.RTCPeerConnection.prototype) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n Object.defineProperty(proto, 'connectionState', {\n get() {\n return {\n completed: 'connected',\n checking: 'connecting'\n }[this.iceConnectionState] || this.iceConnectionState;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(proto, 'onconnectionstatechange', {\n get() {\n return this._onconnectionstatechange || null;\n },\n set(cb) {\n if (this._onconnectionstatechange) {\n this.removeEventListener('connectionstatechange',\n this._onconnectionstatechange);\n delete this._onconnectionstatechange;\n }\n if (cb) {\n this.addEventListener('connectionstatechange',\n this._onconnectionstatechange = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n\n ['setLocalDescription', 'setRemoteDescription'].forEach((method) => {\n const origMethod = proto[method];\n proto[method] = function() {\n if (!this._connectionstatechangepoly) {\n this._connectionstatechangepoly = e => {\n const pc = e.target;\n if (pc._lastConnectionState !== pc.connectionState) {\n pc._lastConnectionState = pc.connectionState;\n const newEvent = new Event('connectionstatechange', e);\n pc.dispatchEvent(newEvent);\n }\n return e;\n };\n this.addEventListener('iceconnectionstatechange',\n this._connectionstatechangepoly);\n }\n return origMethod.apply(this, arguments);\n };\n });\n}\n\nexport function removeExtmapAllowMixed(window, browserDetails) {\n /* remove a=extmap-allow-mixed for webrtc.org < M71 */\n if (!window.RTCPeerConnection) {\n return;\n }\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 71) {\n return;\n }\n if (browserDetails.browser === 'safari' && browserDetails.version >= 605) {\n return;\n }\n const nativeSRD = window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription(desc) {\n if (desc && desc.sdp && desc.sdp.indexOf('\\na=extmap-allow-mixed') !== -1) {\n const sdp = desc.sdp.split('\\n').filter((line) => {\n return line.trim() !== 'a=extmap-allow-mixed';\n }).join('\\n');\n // Safari enforces read-only-ness of RTCSessionDescription fields.\n if (window.RTCSessionDescription &&\n desc instanceof window.RTCSessionDescription) {\n arguments[0] = new window.RTCSessionDescription({\n type: desc.type,\n sdp,\n });\n } else {\n desc.sdp = sdp;\n }\n }\n return nativeSRD.apply(this, arguments);\n };\n}\n\nexport function shimAddIceCandidateNullOrEmpty(window, browserDetails) {\n // Support for addIceCandidate(null or undefined)\n // as well as addIceCandidate({candidate: \"\", ...})\n // https://bugs.chromium.org/p/chromium/issues/detail?id=978582\n // Note: must be called before other polyfills which change the signature.\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeAddIceCandidate =\n window.RTCPeerConnection.prototype.addIceCandidate;\n if (!nativeAddIceCandidate || nativeAddIceCandidate.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.addIceCandidate =\n function addIceCandidate() {\n if (!arguments[0]) {\n if (arguments[1]) {\n arguments[1].apply(null);\n }\n return Promise.resolve();\n }\n // Firefox 68+ emits and processes {candidate: \"\", ...}, ignore\n // in older versions.\n // Native support for ignoring exists for Chrome M77+.\n // Safari ignores as well, exact version unknown but works in the same\n // version that also ignores addIceCandidate(null).\n if (((browserDetails.browser === 'chrome' && browserDetails.version < 78)\n || (browserDetails.browser === 'firefox'\n && browserDetails.version < 68)\n || (browserDetails.browser === 'safari'))\n && arguments[0] && arguments[0].candidate === '') {\n return Promise.resolve();\n }\n return nativeAddIceCandidate.apply(this, arguments);\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n\n'use strict';\n\nimport {adapterFactory} from './adapter_factory.js';\n\nconst adapter =\n adapterFactory({window: typeof window === 'undefined' ? undefined : window});\nexport default adapter;\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\nimport * as utils from './utils';\n\n // Browser shims.\nimport * as chromeShim from './chrome/chrome_shim';\nimport * as edgeShim from './edge/edge_shim';\nimport * as firefoxShim from './firefox/firefox_shim';\nimport * as safariShim from './safari/safari_shim';\nimport * as commonShim from './common_shim';\n\n// Shimming starts here.\nexport function adapterFactory({window} = {}, options = {\n shimChrome: true,\n shimFirefox: true,\n shimEdge: true,\n shimSafari: true,\n}) {\n // Utils.\n const logging = utils.log;\n const browserDetails = utils.detectBrowser(window);\n\n const adapter = {\n browserDetails,\n commonShim,\n extractVersion: utils.extractVersion,\n disableLog: utils.disableLog,\n disableWarnings: utils.disableWarnings\n };\n\n // Shim browser if found.\n switch (browserDetails.browser) {\n case 'chrome':\n if (!chromeShim || !chromeShim.shimPeerConnection ||\n !options.shimChrome) {\n logging('Chrome shim is not included in this adapter release.');\n return adapter;\n }\n if (browserDetails.version === null) {\n logging('Chrome shim can not determine version, not shimming.');\n return adapter;\n }\n logging('adapter.js shimming chrome.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = chromeShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n\n chromeShim.shimGetUserMedia(window, browserDetails);\n chromeShim.shimMediaStream(window, browserDetails);\n chromeShim.shimPeerConnection(window, browserDetails);\n chromeShim.shimOnTrack(window, browserDetails);\n chromeShim.shimAddTrackRemoveTrack(window, browserDetails);\n chromeShim.shimGetSendersWithDtmf(window, browserDetails);\n chromeShim.shimGetStats(window, browserDetails);\n chromeShim.shimSenderReceiverGetStats(window, browserDetails);\n chromeShim.fixNegotiationNeeded(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n case 'firefox':\n if (!firefoxShim || !firefoxShim.shimPeerConnection ||\n !options.shimFirefox) {\n logging('Firefox shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming firefox.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = firefoxShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n\n firefoxShim.shimGetUserMedia(window, browserDetails);\n firefoxShim.shimPeerConnection(window, browserDetails);\n firefoxShim.shimOnTrack(window, browserDetails);\n firefoxShim.shimRemoveStream(window, browserDetails);\n firefoxShim.shimSenderGetStats(window, browserDetails);\n firefoxShim.shimReceiverGetStats(window, browserDetails);\n firefoxShim.shimRTCDataChannel(window, browserDetails);\n firefoxShim.shimAddTransceiver(window, browserDetails);\n firefoxShim.shimGetParameters(window, browserDetails);\n firefoxShim.shimCreateOffer(window, browserDetails);\n firefoxShim.shimCreateAnswer(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n break;\n case 'edge':\n if (!edgeShim || !edgeShim.shimPeerConnection || !options.shimEdge) {\n logging('MS edge shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming edge.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = edgeShim;\n\n edgeShim.shimGetUserMedia(window, browserDetails);\n edgeShim.shimGetDisplayMedia(window, browserDetails);\n edgeShim.shimPeerConnection(window, browserDetails);\n edgeShim.shimReplaceTrack(window, browserDetails);\n\n // the edge shim implements the full RTCIceCandidate object.\n\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n break;\n case 'safari':\n if (!safariShim || !options.shimSafari) {\n logging('Safari shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming safari.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = safariShim;\n\n // Must be called before shimCallbackAPI.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n\n safariShim.shimRTCIceServerUrls(window, browserDetails);\n safariShim.shimCreateOfferLegacy(window, browserDetails);\n safariShim.shimCallbacksAPI(window, browserDetails);\n safariShim.shimLocalStreamsAPI(window, browserDetails);\n safariShim.shimRemoteStreamsAPI(window, browserDetails);\n safariShim.shimTrackEventTransceiver(window, browserDetails);\n safariShim.shimGetUserMedia(window, browserDetails);\n safariShim.shimAudioContext(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n default:\n logging('Unsupported browser!');\n break;\n }\n\n return adapter;\n}\n","// cheap lodash replacements\nexport function memoize(fn) {\n var result = null;\n\n var memoized = function memoized() {\n if (result == null) {\n result = fn();\n }\n\n return result;\n };\n\n return memoized;\n}\n/**\n * drop-in replacement for _.without\n */\n\nexport function without(items, item) {\n return items.filter(function (i) {\n return i !== item;\n });\n}\nexport function union(itemsA, itemsB) {\n var set = new Set();\n\n var insertItem = function insertItem(item) {\n return set.add(item);\n };\n\n itemsA.forEach(insertItem);\n itemsB.forEach(insertItem);\n var result = [];\n set.forEach(function (key) {\n return result.push(key);\n });\n return result;\n}","function _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\nimport { union, without } from './utils/js_utils';\n\nvar EnterLeaveCounter =\n/*#__PURE__*/\nfunction () {\n function EnterLeaveCounter(isNodeInDocument) {\n _classCallCheck(this, EnterLeaveCounter);\n\n this.entered = [];\n this.isNodeInDocument = isNodeInDocument;\n }\n\n _createClass(EnterLeaveCounter, [{\n key: \"enter\",\n value: function enter(enteringNode) {\n var _this = this;\n\n var previousLength = this.entered.length;\n\n var isNodeEntered = function isNodeEntered(node) {\n return _this.isNodeInDocument(node) && (!node.contains || node.contains(enteringNode));\n };\n\n this.entered = union(this.entered.filter(isNodeEntered), [enteringNode]);\n return previousLength === 0 && this.entered.length > 0;\n }\n }, {\n key: \"leave\",\n value: function leave(leavingNode) {\n var previousLength = this.entered.length;\n this.entered = without(this.entered.filter(this.isNodeInDocument), leavingNode);\n return previousLength > 0 && this.entered.length === 0;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.entered = [];\n }\n }]);\n\n return EnterLeaveCounter;\n}();\n\nexport { EnterLeaveCounter as default };","import { memoize } from './utils/js_utils';\nexport var isFirefox = memoize(function () {\n return /firefox/i.test(navigator.userAgent);\n});\nexport var isSafari = memoize(function () {\n return Boolean(window.safari);\n});","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar MonotonicInterpolant =\n/*#__PURE__*/\nfunction () {\n function MonotonicInterpolant(xs, ys) {\n _classCallCheck(this, MonotonicInterpolant);\n\n var length = xs.length; // Rearrange xs and ys so that xs is sorted\n\n var indexes = [];\n\n for (var i = 0; i < length; i++) {\n indexes.push(i);\n }\n\n indexes.sort(function (a, b) {\n return xs[a] < xs[b] ? -1 : 1;\n }); // Get consecutive differences and slopes\n\n var dys = [];\n var dxs = [];\n var ms = [];\n var dx;\n var dy;\n\n for (var _i = 0; _i < length - 1; _i++) {\n dx = xs[_i + 1] - xs[_i];\n dy = ys[_i + 1] - ys[_i];\n dxs.push(dx);\n dys.push(dy);\n ms.push(dy / dx);\n } // Get degree-1 coefficients\n\n\n var c1s = [ms[0]];\n\n for (var _i2 = 0; _i2 < dxs.length - 1; _i2++) {\n var m2 = ms[_i2];\n var mNext = ms[_i2 + 1];\n\n if (m2 * mNext <= 0) {\n c1s.push(0);\n } else {\n dx = dxs[_i2];\n var dxNext = dxs[_i2 + 1];\n var common = dx + dxNext;\n c1s.push(3 * common / ((common + dxNext) / m2 + (common + dx) / mNext));\n }\n }\n\n c1s.push(ms[ms.length - 1]); // Get degree-2 and degree-3 coefficients\n\n var c2s = [];\n var c3s = [];\n var m;\n\n for (var _i3 = 0; _i3 < c1s.length - 1; _i3++) {\n m = ms[_i3];\n var c1 = c1s[_i3];\n var invDx = 1 / dxs[_i3];\n\n var _common = c1 + c1s[_i3 + 1] - m - m;\n\n c2s.push((m - c1 - _common) * invDx);\n c3s.push(_common * invDx * invDx);\n }\n\n this.xs = xs;\n this.ys = ys;\n this.c1s = c1s;\n this.c2s = c2s;\n this.c3s = c3s;\n }\n\n _createClass(MonotonicInterpolant, [{\n key: \"interpolate\",\n value: function interpolate(x) {\n var xs = this.xs,\n ys = this.ys,\n c1s = this.c1s,\n c2s = this.c2s,\n c3s = this.c3s; // The rightmost point in the dataset should give an exact result\n\n var i = xs.length - 1;\n\n if (x === xs[i]) {\n return ys[i];\n } // Search for the interval x is in, returning the corresponding y if x is one of the original xs\n\n\n var low = 0;\n var high = c3s.length - 1;\n var mid;\n\n while (low <= high) {\n mid = Math.floor(0.5 * (low + high));\n var xHere = xs[mid];\n\n if (xHere < x) {\n low = mid + 1;\n } else if (xHere > x) {\n high = mid - 1;\n } else {\n return ys[mid];\n }\n }\n\n i = Math.max(0, high); // Interpolate\n\n var diff = x - xs[i];\n var diffSq = diff * diff;\n return ys[i] + c1s[i] * diff + c2s[i] * diffSq + c3s[i] * diff * diffSq;\n }\n }]);\n\n return MonotonicInterpolant;\n}();\n\nexport { MonotonicInterpolant as default };","import { isSafari, isFirefox } from './BrowserDetector';\nimport MonotonicInterpolant from './MonotonicInterpolant';\nvar ELEMENT_NODE = 1;\nexport function getNodeClientOffset(node) {\n var el = node.nodeType === ELEMENT_NODE ? node : node.parentElement;\n\n if (!el) {\n return null;\n }\n\n var _el$getBoundingClient = el.getBoundingClientRect(),\n top = _el$getBoundingClient.top,\n left = _el$getBoundingClient.left;\n\n return {\n x: left,\n y: top\n };\n}\nexport function getEventClientOffset(e) {\n return {\n x: e.clientX,\n y: e.clientY\n };\n}\n\nfunction isImageNode(node) {\n return node.nodeName === 'IMG' && (isFirefox() || !document.documentElement.contains(node));\n}\n\nfunction getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight) {\n var dragPreviewWidth = isImage ? dragPreview.width : sourceWidth;\n var dragPreviewHeight = isImage ? dragPreview.height : sourceHeight; // Work around @2x coordinate discrepancies in browsers\n\n if (isSafari() && isImage) {\n dragPreviewHeight /= window.devicePixelRatio;\n dragPreviewWidth /= window.devicePixelRatio;\n }\n\n return {\n dragPreviewWidth: dragPreviewWidth,\n dragPreviewHeight: dragPreviewHeight\n };\n}\n\nexport function getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint) {\n // The browsers will use the image intrinsic size under different conditions.\n // Firefox only cares if it's an image, but WebKit also wants it to be detached.\n var isImage = isImageNode(dragPreview);\n var dragPreviewNode = isImage ? sourceNode : dragPreview;\n var dragPreviewNodeOffsetFromClient = getNodeClientOffset(dragPreviewNode);\n var offsetFromDragPreview = {\n x: clientOffset.x - dragPreviewNodeOffsetFromClient.x,\n y: clientOffset.y - dragPreviewNodeOffsetFromClient.y\n };\n var sourceWidth = sourceNode.offsetWidth,\n sourceHeight = sourceNode.offsetHeight;\n var anchorX = anchorPoint.anchorX,\n anchorY = anchorPoint.anchorY;\n\n var _getDragPreviewSize = getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight),\n dragPreviewWidth = _getDragPreviewSize.dragPreviewWidth,\n dragPreviewHeight = _getDragPreviewSize.dragPreviewHeight;\n\n var calculateYOffset = function calculateYOffset() {\n var interpolantY = new MonotonicInterpolant([0, 0.5, 1], [// Dock to the top\n offsetFromDragPreview.y, // Align at the center\n offsetFromDragPreview.y / sourceHeight * dragPreviewHeight, // Dock to the bottom\n offsetFromDragPreview.y + dragPreviewHeight - sourceHeight]);\n var y = interpolantY.interpolate(anchorY); // Work around Safari 8 positioning bug\n\n if (isSafari() && isImage) {\n // We'll have to wait for @3x to see if this is entirely correct\n y += (window.devicePixelRatio - 1) * dragPreviewHeight;\n }\n\n return y;\n };\n\n var calculateXOffset = function calculateXOffset() {\n // Interpolate coordinates depending on anchor point\n // If you know a simpler way to do this, let me know\n var interpolantX = new MonotonicInterpolant([0, 0.5, 1], [// Dock to the left\n offsetFromDragPreview.x, // Align at the center\n offsetFromDragPreview.x / sourceWidth * dragPreviewWidth, // Dock to the right\n offsetFromDragPreview.x + dragPreviewWidth - sourceWidth]);\n return interpolantX.interpolate(anchorX);\n }; // Force offsets if specified in the options.\n\n\n var offsetX = offsetPoint.offsetX,\n offsetY = offsetPoint.offsetY;\n var isManualOffsetX = offsetX === 0 || offsetX;\n var isManualOffsetY = offsetY === 0 || offsetY;\n return {\n x: isManualOffsetX ? offsetX : calculateXOffset(),\n y: isManualOffsetY ? offsetY : calculateYOffset()\n };\n}","export var FILE = '__NATIVE_FILE__';\nexport var URL = '__NATIVE_URL__';\nexport var TEXT = '__NATIVE_TEXT__';","var _nativeTypesConfig;\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\nimport * as NativeTypes from '../NativeTypes';\nimport { getDataFromDataTransfer } from './getDataFromDataTransfer';\nexport var nativeTypesConfig = (_nativeTypesConfig = {}, _defineProperty(_nativeTypesConfig, NativeTypes.FILE, {\n exposeProperties: {\n files: function files(dataTransfer) {\n return Array.prototype.slice.call(dataTransfer.files);\n },\n items: function items(dataTransfer) {\n return dataTransfer.items;\n }\n },\n matchesTypes: ['Files']\n}), _defineProperty(_nativeTypesConfig, NativeTypes.URL, {\n exposeProperties: {\n urls: function urls(dataTransfer, matchesTypes) {\n return getDataFromDataTransfer(dataTransfer, matchesTypes, '').split('\\n');\n }\n },\n matchesTypes: ['Url', 'text/uri-list']\n}), _defineProperty(_nativeTypesConfig, NativeTypes.TEXT, {\n exposeProperties: {\n text: function text(dataTransfer, matchesTypes) {\n return getDataFromDataTransfer(dataTransfer, matchesTypes, '');\n }\n },\n matchesTypes: ['Text', 'text/plain']\n}), _nativeTypesConfig);","export function getDataFromDataTransfer(dataTransfer, typesToTry, defaultValue) {\n var result = typesToTry.reduce(function (resultSoFar, typeToTry) {\n return resultSoFar || dataTransfer.getData(typeToTry);\n }, '');\n return result != null ? result : defaultValue;\n}","function _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\nexport var NativeDragSource =\n/*#__PURE__*/\nfunction () {\n function NativeDragSource(config) {\n _classCallCheck(this, NativeDragSource);\n\n this.config = config;\n this.item = {};\n this.initializeExposedProperties();\n }\n\n _createClass(NativeDragSource, [{\n key: \"initializeExposedProperties\",\n value: function initializeExposedProperties() {\n var _this = this;\n\n Object.keys(this.config.exposeProperties).forEach(function (property) {\n Object.defineProperty(_this.item, property, {\n configurable: true,\n enumerable: true,\n get: function get() {\n // eslint-disable-next-line no-console\n console.warn(\"Browser doesn't allow reading \\\"\".concat(property, \"\\\" until the drop event.\"));\n return null;\n }\n });\n });\n }\n }, {\n key: \"loadDataTransfer\",\n value: function loadDataTransfer(dataTransfer) {\n var _this2 = this;\n\n if (dataTransfer) {\n var newProperties = {};\n Object.keys(this.config.exposeProperties).forEach(function (property) {\n newProperties[property] = {\n value: _this2.config.exposeProperties[property](dataTransfer, _this2.config.matchesTypes),\n configurable: true,\n enumerable: true\n };\n });\n Object.defineProperties(this.item, newProperties);\n }\n }\n }, {\n key: \"canDrag\",\n value: function canDrag() {\n return true;\n }\n }, {\n key: \"beginDrag\",\n value: function beginDrag() {\n return this.item;\n }\n }, {\n key: \"isDragging\",\n value: function isDragging(monitor, handle) {\n return handle === monitor.getSourceId();\n }\n }, {\n key: \"endDrag\",\n value: function endDrag() {// empty\n }\n }]);\n\n return NativeDragSource;\n}();","import { nativeTypesConfig } from './nativeTypesConfig';\nimport { NativeDragSource } from './NativeDragSource';\nexport function createNativeDragSource(type, dataTransfer) {\n var result = new NativeDragSource(nativeTypesConfig[type]);\n result.loadDataTransfer(dataTransfer);\n return result;\n}\nexport function matchNativeItemType(dataTransfer) {\n if (!dataTransfer) {\n return null;\n }\n\n var dataTransferTypes = Array.prototype.slice.call(dataTransfer.types || []);\n return Object.keys(nativeTypesConfig).filter(function (nativeItemType) {\n var matchesTypes = nativeTypesConfig[nativeItemType].matchesTypes;\n return matchesTypes.some(function (t) {\n return dataTransferTypes.indexOf(t) > -1;\n });\n })[0] || null;\n}","function _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\nexport var OptionsReader =\n/*#__PURE__*/\nfunction () {\n function OptionsReader(globalContext) {\n _classCallCheck(this, OptionsReader);\n\n this.globalContext = globalContext;\n }\n\n _createClass(OptionsReader, [{\n key: \"window\",\n get: function get() {\n if (this.globalContext) {\n return this.globalContext;\n } else if (typeof window !== 'undefined') {\n return window;\n }\n\n return undefined;\n }\n }, {\n key: \"document\",\n get: function get() {\n if (this.window) {\n return this.window.document;\n }\n\n return undefined;\n }\n }]);\n\n return OptionsReader;\n}();","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport EnterLeaveCounter from './EnterLeaveCounter';\nimport { isFirefox } from './BrowserDetector';\nimport { getNodeClientOffset, getEventClientOffset, getDragPreviewOffset } from './OffsetUtils';\nimport { createNativeDragSource, matchNativeItemType } from './NativeDragSources';\nimport * as NativeTypes from './NativeTypes';\nimport { OptionsReader } from './OptionsReader';\n\nvar HTML5Backend =\n/*#__PURE__*/\nfunction () {\n function HTML5Backend(manager, globalContext) {\n var _this = this;\n\n _classCallCheck(this, HTML5Backend);\n\n this.sourcePreviewNodes = new Map();\n this.sourcePreviewNodeOptions = new Map();\n this.sourceNodes = new Map();\n this.sourceNodeOptions = new Map();\n this.dragStartSourceIds = null;\n this.dropTargetIds = [];\n this.dragEnterTargetIds = [];\n this.currentNativeSource = null;\n this.currentNativeHandle = null;\n this.currentDragSourceNode = null;\n this.altKeyPressed = false;\n this.mouseMoveTimeoutTimer = null;\n this.asyncEndDragFrameId = null;\n this.dragOverTargetIds = null;\n\n this.getSourceClientOffset = function (sourceId) {\n return getNodeClientOffset(_this.sourceNodes.get(sourceId));\n };\n\n this.endDragNativeItem = function () {\n if (!_this.isDraggingNativeItem()) {\n return;\n }\n\n _this.actions.endDrag();\n\n _this.registry.removeSource(_this.currentNativeHandle);\n\n _this.currentNativeHandle = null;\n _this.currentNativeSource = null;\n };\n\n this.isNodeInDocument = function (node) {\n // Check the node either in the main document or in the current context\n return _this.document && _this.document.body && document.body.contains(node);\n };\n\n this.endDragIfSourceWasRemovedFromDOM = function () {\n var node = _this.currentDragSourceNode;\n\n if (_this.isNodeInDocument(node)) {\n return;\n }\n\n if (_this.clearCurrentDragSourceNode()) {\n _this.actions.endDrag();\n }\n };\n\n this.handleTopDragStartCapture = function () {\n _this.clearCurrentDragSourceNode();\n\n _this.dragStartSourceIds = [];\n };\n\n this.handleTopDragStart = function (e) {\n if (e.defaultPrevented) {\n return;\n }\n\n var dragStartSourceIds = _this.dragStartSourceIds;\n _this.dragStartSourceIds = null;\n var clientOffset = getEventClientOffset(e); // Avoid crashing if we missed a drop event or our previous drag died\n\n if (_this.monitor.isDragging()) {\n _this.actions.endDrag();\n } // Don't publish the source just yet (see why below)\n\n\n _this.actions.beginDrag(dragStartSourceIds || [], {\n publishSource: false,\n getSourceClientOffset: _this.getSourceClientOffset,\n clientOffset: clientOffset\n });\n\n var dataTransfer = e.dataTransfer;\n var nativeType = matchNativeItemType(dataTransfer);\n\n if (_this.monitor.isDragging()) {\n if (dataTransfer && typeof dataTransfer.setDragImage === 'function') {\n // Use custom drag image if user specifies it.\n // If child drag source refuses drag but parent agrees,\n // use parent's node as drag image. Neither works in IE though.\n var sourceId = _this.monitor.getSourceId();\n\n var sourceNode = _this.sourceNodes.get(sourceId);\n\n var dragPreview = _this.sourcePreviewNodes.get(sourceId) || sourceNode;\n\n if (dragPreview) {\n var _this$getCurrentSourc = _this.getCurrentSourcePreviewNodeOptions(),\n anchorX = _this$getCurrentSourc.anchorX,\n anchorY = _this$getCurrentSourc.anchorY,\n offsetX = _this$getCurrentSourc.offsetX,\n offsetY = _this$getCurrentSourc.offsetY;\n\n var anchorPoint = {\n anchorX: anchorX,\n anchorY: anchorY\n };\n var offsetPoint = {\n offsetX: offsetX,\n offsetY: offsetY\n };\n var dragPreviewOffset = getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint);\n dataTransfer.setDragImage(dragPreview, dragPreviewOffset.x, dragPreviewOffset.y);\n }\n }\n\n try {\n // Firefox won't drag without setting data\n dataTransfer.setData('application/json', {});\n } catch (err) {} // IE doesn't support MIME types in setData\n // Store drag source node so we can check whether\n // it is removed from DOM and trigger endDrag manually.\n\n\n _this.setCurrentDragSourceNode(e.target); // Now we are ready to publish the drag source.. or are we not?\n\n\n var _this$getCurrentSourc2 = _this.getCurrentSourcePreviewNodeOptions(),\n captureDraggingState = _this$getCurrentSourc2.captureDraggingState;\n\n if (!captureDraggingState) {\n // Usually we want to publish it in the next tick so that browser\n // is able to screenshot the current (not yet dragging) state.\n //\n // It also neatly avoids a situation where render() returns null\n // in the same tick for the source element, and browser freaks out.\n setTimeout(function () {\n return _this.actions.publishDragSource();\n }, 0);\n } else {\n // In some cases the user may want to override this behavior, e.g.\n // to work around IE not supporting custom drag previews.\n //\n // When using a custom drag layer, the only way to prevent\n // the default drag preview from drawing in IE is to screenshot\n // the dragging state in which the node itself has zero opacity\n // and height. In this case, though, returning null from render()\n // will abruptly end the dragging, which is not obvious.\n //\n // This is the reason such behavior is strictly opt-in.\n _this.actions.publishDragSource();\n }\n } else if (nativeType) {\n // A native item (such as URL) dragged from inside the document\n _this.beginDragNativeItem(nativeType);\n } else if (dataTransfer && !dataTransfer.types && (e.target && !e.target.hasAttribute || !e.target.hasAttribute('draggable'))) {\n // Looks like a Safari bug: dataTransfer.types is null, but there was no draggable.\n // Just let it drag. It's a native type (URL or text) and will be picked up in\n // dragenter handler.\n return;\n } else {\n // If by this time no drag source reacted, tell browser not to drag.\n e.preventDefault();\n }\n };\n\n this.handleTopDragEndCapture = function () {\n if (_this.clearCurrentDragSourceNode()) {\n // Firefox can dispatch this event in an infinite loop\n // if dragend handler does something like showing an alert.\n // Only proceed if we have not handled it already.\n _this.actions.endDrag();\n }\n };\n\n this.handleTopDragEnterCapture = function (e) {\n _this.dragEnterTargetIds = [];\n\n var isFirstEnter = _this.enterLeaveCounter.enter(e.target);\n\n if (!isFirstEnter || _this.monitor.isDragging()) {\n return;\n }\n\n var dataTransfer = e.dataTransfer;\n var nativeType = matchNativeItemType(dataTransfer);\n\n if (nativeType) {\n // A native item (such as file or URL) dragged from outside the document\n _this.beginDragNativeItem(nativeType, dataTransfer);\n }\n };\n\n this.handleTopDragEnter = function (e) {\n var dragEnterTargetIds = _this.dragEnterTargetIds;\n _this.dragEnterTargetIds = [];\n\n if (!_this.monitor.isDragging()) {\n // This is probably a native item type we don't understand.\n return;\n }\n\n _this.altKeyPressed = e.altKey;\n\n if (!isFirefox()) {\n // Don't emit hover in `dragenter` on Firefox due to an edge case.\n // If the target changes position as the result of `dragenter`, Firefox\n // will still happily dispatch `dragover` despite target being no longer\n // there. The easy solution is to only fire `hover` in `dragover` on FF.\n _this.actions.hover(dragEnterTargetIds, {\n clientOffset: getEventClientOffset(e)\n });\n }\n\n var canDrop = dragEnterTargetIds.some(function (targetId) {\n return _this.monitor.canDropOnTarget(targetId);\n });\n\n if (canDrop) {\n // IE requires this to fire dragover events\n e.preventDefault();\n\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = _this.getCurrentDropEffect();\n }\n }\n };\n\n this.handleTopDragOverCapture = function () {\n _this.dragOverTargetIds = [];\n };\n\n this.handleTopDragOver = function (e) {\n var dragOverTargetIds = _this.dragOverTargetIds;\n _this.dragOverTargetIds = [];\n\n if (!_this.monitor.isDragging()) {\n // This is probably a native item type we don't understand.\n // Prevent default \"drop and blow away the whole document\" action.\n e.preventDefault();\n\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = 'none';\n }\n\n return;\n }\n\n _this.altKeyPressed = e.altKey;\n\n _this.actions.hover(dragOverTargetIds || [], {\n clientOffset: getEventClientOffset(e)\n });\n\n var canDrop = (dragOverTargetIds || []).some(function (targetId) {\n return _this.monitor.canDropOnTarget(targetId);\n });\n\n if (canDrop) {\n // Show user-specified drop effect.\n e.preventDefault();\n\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = _this.getCurrentDropEffect();\n }\n } else if (_this.isDraggingNativeItem()) {\n // Don't show a nice cursor but still prevent default\n // \"drop and blow away the whole document\" action.\n e.preventDefault();\n } else {\n e.preventDefault();\n\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = 'none';\n }\n }\n };\n\n this.handleTopDragLeaveCapture = function (e) {\n if (_this.isDraggingNativeItem()) {\n e.preventDefault();\n }\n\n var isLastLeave = _this.enterLeaveCounter.leave(e.target);\n\n if (!isLastLeave) {\n return;\n }\n\n if (_this.isDraggingNativeItem()) {\n _this.endDragNativeItem();\n }\n };\n\n this.handleTopDropCapture = function (e) {\n _this.dropTargetIds = [];\n e.preventDefault();\n\n if (_this.isDraggingNativeItem()) {\n _this.currentNativeSource.loadDataTransfer(e.dataTransfer);\n }\n\n _this.enterLeaveCounter.reset();\n };\n\n this.handleTopDrop = function (e) {\n var dropTargetIds = _this.dropTargetIds;\n _this.dropTargetIds = [];\n\n _this.actions.hover(dropTargetIds, {\n clientOffset: getEventClientOffset(e)\n });\n\n _this.actions.drop({\n dropEffect: _this.getCurrentDropEffect()\n });\n\n if (_this.isDraggingNativeItem()) {\n _this.endDragNativeItem();\n } else {\n _this.endDragIfSourceWasRemovedFromDOM();\n }\n };\n\n this.handleSelectStart = function (e) {\n var target = e.target; // Only IE requires us to explicitly say\n // we want drag drop operation to start\n\n if (typeof target.dragDrop !== 'function') {\n return;\n } // Inputs and textareas should be selectable\n\n\n if (target.tagName === 'INPUT' || target.tagName === 'SELECT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return;\n } // For other targets, ask IE\n // to enable drag and drop\n\n\n e.preventDefault();\n target.dragDrop();\n };\n\n this.options = new OptionsReader(globalContext);\n this.actions = manager.getActions();\n this.monitor = manager.getMonitor();\n this.registry = manager.getRegistry();\n this.enterLeaveCounter = new EnterLeaveCounter(this.isNodeInDocument);\n } // public for test\n\n\n _createClass(HTML5Backend, [{\n key: \"setup\",\n value: function setup() {\n if (this.window === undefined) {\n return;\n }\n\n if (this.window.__isReactDndBackendSetUp) {\n throw new Error('Cannot have two HTML5 backends at the same time.');\n }\n\n this.window.__isReactDndBackendSetUp = true;\n this.addEventListeners(this.window);\n }\n }, {\n key: \"teardown\",\n value: function teardown() {\n if (this.window === undefined) {\n return;\n }\n\n this.window.__isReactDndBackendSetUp = false;\n this.removeEventListeners(this.window);\n this.clearCurrentDragSourceNode();\n\n if (this.asyncEndDragFrameId) {\n this.window.cancelAnimationFrame(this.asyncEndDragFrameId);\n }\n }\n }, {\n key: \"connectDragPreview\",\n value: function connectDragPreview(sourceId, node, options) {\n var _this2 = this;\n\n this.sourcePreviewNodeOptions.set(sourceId, options);\n this.sourcePreviewNodes.set(sourceId, node);\n return function () {\n _this2.sourcePreviewNodes.delete(sourceId);\n\n _this2.sourcePreviewNodeOptions.delete(sourceId);\n };\n }\n }, {\n key: \"connectDragSource\",\n value: function connectDragSource(sourceId, node, options) {\n var _this3 = this;\n\n this.sourceNodes.set(sourceId, node);\n this.sourceNodeOptions.set(sourceId, options);\n\n var handleDragStart = function handleDragStart(e) {\n return _this3.handleDragStart(e, sourceId);\n };\n\n var handleSelectStart = function handleSelectStart(e) {\n return _this3.handleSelectStart(e);\n };\n\n node.setAttribute('draggable', 'true');\n node.addEventListener('dragstart', handleDragStart);\n node.addEventListener('selectstart', handleSelectStart);\n return function () {\n _this3.sourceNodes.delete(sourceId);\n\n _this3.sourceNodeOptions.delete(sourceId);\n\n node.removeEventListener('dragstart', handleDragStart);\n node.removeEventListener('selectstart', handleSelectStart);\n node.setAttribute('draggable', 'false');\n };\n }\n }, {\n key: \"connectDropTarget\",\n value: function connectDropTarget(targetId, node) {\n var _this4 = this;\n\n var handleDragEnter = function handleDragEnter(e) {\n return _this4.handleDragEnter(e, targetId);\n };\n\n var handleDragOver = function handleDragOver(e) {\n return _this4.handleDragOver(e, targetId);\n };\n\n var handleDrop = function handleDrop(e) {\n return _this4.handleDrop(e, targetId);\n };\n\n node.addEventListener('dragenter', handleDragEnter);\n node.addEventListener('dragover', handleDragOver);\n node.addEventListener('drop', handleDrop);\n return function () {\n node.removeEventListener('dragenter', handleDragEnter);\n node.removeEventListener('dragover', handleDragOver);\n node.removeEventListener('drop', handleDrop);\n };\n }\n }, {\n key: \"addEventListeners\",\n value: function addEventListeners(target) {\n // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813\n if (!target.addEventListener) {\n return;\n }\n\n target.addEventListener('dragstart', this.handleTopDragStart);\n target.addEventListener('dragstart', this.handleTopDragStartCapture, true);\n target.addEventListener('dragend', this.handleTopDragEndCapture, true);\n target.addEventListener('dragenter', this.handleTopDragEnter);\n target.addEventListener('dragenter', this.handleTopDragEnterCapture, true);\n target.addEventListener('dragleave', this.handleTopDragLeaveCapture, true);\n target.addEventListener('dragover', this.handleTopDragOver);\n target.addEventListener('dragover', this.handleTopDragOverCapture, true);\n target.addEventListener('drop', this.handleTopDrop);\n target.addEventListener('drop', this.handleTopDropCapture, true);\n }\n }, {\n key: \"removeEventListeners\",\n value: function removeEventListeners(target) {\n // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813\n if (!target.removeEventListener) {\n return;\n }\n\n target.removeEventListener('dragstart', this.handleTopDragStart);\n target.removeEventListener('dragstart', this.handleTopDragStartCapture, true);\n target.removeEventListener('dragend', this.handleTopDragEndCapture, true);\n target.removeEventListener('dragenter', this.handleTopDragEnter);\n target.removeEventListener('dragenter', this.handleTopDragEnterCapture, true);\n target.removeEventListener('dragleave', this.handleTopDragLeaveCapture, true);\n target.removeEventListener('dragover', this.handleTopDragOver);\n target.removeEventListener('dragover', this.handleTopDragOverCapture, true);\n target.removeEventListener('drop', this.handleTopDrop);\n target.removeEventListener('drop', this.handleTopDropCapture, true);\n }\n }, {\n key: \"getCurrentSourceNodeOptions\",\n value: function getCurrentSourceNodeOptions() {\n var sourceId = this.monitor.getSourceId();\n var sourceNodeOptions = this.sourceNodeOptions.get(sourceId);\n return _objectSpread({\n dropEffect: this.altKeyPressed ? 'copy' : 'move'\n }, sourceNodeOptions || {});\n }\n }, {\n key: \"getCurrentDropEffect\",\n value: function getCurrentDropEffect() {\n if (this.isDraggingNativeItem()) {\n // It makes more sense to default to 'copy' for native resources\n return 'copy';\n }\n\n return this.getCurrentSourceNodeOptions().dropEffect;\n }\n }, {\n key: \"getCurrentSourcePreviewNodeOptions\",\n value: function getCurrentSourcePreviewNodeOptions() {\n var sourceId = this.monitor.getSourceId();\n var sourcePreviewNodeOptions = this.sourcePreviewNodeOptions.get(sourceId);\n return _objectSpread({\n anchorX: 0.5,\n anchorY: 0.5,\n captureDraggingState: false\n }, sourcePreviewNodeOptions || {});\n }\n }, {\n key: \"isDraggingNativeItem\",\n value: function isDraggingNativeItem() {\n var itemType = this.monitor.getItemType();\n return Object.keys(NativeTypes).some(function (key) {\n return NativeTypes[key] === itemType;\n });\n }\n }, {\n key: \"beginDragNativeItem\",\n value: function beginDragNativeItem(type, dataTransfer) {\n this.clearCurrentDragSourceNode();\n this.currentNativeSource = createNativeDragSource(type, dataTransfer);\n this.currentNativeHandle = this.registry.addSource(type, this.currentNativeSource);\n this.actions.beginDrag([this.currentNativeHandle]);\n }\n }, {\n key: \"setCurrentDragSourceNode\",\n value: function setCurrentDragSourceNode(node) {\n var _this5 = this;\n\n this.clearCurrentDragSourceNode();\n this.currentDragSourceNode = node; // A timeout of > 0 is necessary to resolve Firefox issue referenced\n // See:\n // * https://github.com/react-dnd/react-dnd/pull/928\n // * https://github.com/react-dnd/react-dnd/issues/869\n\n var MOUSE_MOVE_TIMEOUT = 1000; // Receiving a mouse event in the middle of a dragging operation\n // means it has ended and the drag source node disappeared from DOM,\n // so the browser didn't dispatch the dragend event.\n //\n // We need to wait before we start listening for mousemove events.\n // This is needed because the drag preview needs to be drawn or else it fires an 'mousemove' event\n // immediately in some browsers.\n //\n // See:\n // * https://github.com/react-dnd/react-dnd/pull/928\n // * https://github.com/react-dnd/react-dnd/issues/869\n //\n\n this.mouseMoveTimeoutTimer = setTimeout(function () {\n return _this5.window && _this5.window.addEventListener('mousemove', _this5.endDragIfSourceWasRemovedFromDOM, true);\n }, MOUSE_MOVE_TIMEOUT);\n }\n }, {\n key: \"clearCurrentDragSourceNode\",\n value: function clearCurrentDragSourceNode() {\n if (this.currentDragSourceNode) {\n this.currentDragSourceNode = null;\n\n if (this.window) {\n this.window.clearTimeout(this.mouseMoveTimeoutTimer || undefined);\n this.window.removeEventListener('mousemove', this.endDragIfSourceWasRemovedFromDOM, true);\n }\n\n this.mouseMoveTimeoutTimer = null;\n return true;\n }\n\n return false;\n }\n }, {\n key: \"handleDragStart\",\n value: function handleDragStart(e, sourceId) {\n if (e.defaultPrevented) {\n return;\n }\n\n if (!this.dragStartSourceIds) {\n this.dragStartSourceIds = [];\n }\n\n this.dragStartSourceIds.unshift(sourceId);\n }\n }, {\n key: \"handleDragEnter\",\n value: function handleDragEnter(e, targetId) {\n this.dragEnterTargetIds.unshift(targetId);\n }\n }, {\n key: \"handleDragOver\",\n value: function handleDragOver(e, targetId) {\n if (this.dragOverTargetIds === null) {\n this.dragOverTargetIds = [];\n }\n\n this.dragOverTargetIds.unshift(targetId);\n }\n }, {\n key: \"handleDrop\",\n value: function handleDrop(e, targetId) {\n this.dropTargetIds.unshift(targetId);\n }\n }, {\n key: \"window\",\n get: function get() {\n return this.options.window;\n }\n }, {\n key: \"document\",\n get: function get() {\n return this.options.document;\n }\n }]);\n\n return HTML5Backend;\n}();\n\nexport { HTML5Backend as default };","import HTML5Backend from './HTML5Backend';\nimport * as NativeTypes from './NativeTypes';\nexport { getEmptyImage } from './getEmptyImage';\nexport { NativeTypes };\n\nvar createBackend = function createBackend(manager, context) {\n return new HTML5Backend(manager, context);\n};\n\nexport default createBackend;","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","!function(e,a){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=a(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],a):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_en_nz=a(e.dayjs)}(this,(function(e){\"use strict\";function a(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var t=a(e),n={name:\"en-nz\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),weekStart:1,weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),ordinal:function(e){var a=[\"th\",\"st\",\"nd\",\"rd\"],t=e%100;return\"[\"+e+(a[(t-20)%10]||a[t]||a[0])+\"]\"},formats:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY h:mm A\",LLLL:\"dddd, D MMMM YYYY h:mm A\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"}};return t.default.locale(n,null,!0),n}));","/** @license React v16.14.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 l=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,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cQ.length&&Q.push(a)}\nfunction T(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?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;kb}return!1}function v(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 C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(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){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(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(Ua,\nVa);C[b]=new v(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(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(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 Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(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 Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=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!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(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 ec(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 fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(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 fc(e),a;if(f===d)return fc(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 hc(a){a=gc(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}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;dpc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c=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=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();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=td(a.document)}return b}\nfunction yd(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 zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(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 Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8=ke),ne=String.fromCharCode(32),oe={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(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!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,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(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 gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;gzf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;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 Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(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,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(gl&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;by?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;yy?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a: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||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(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 Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(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===Bd||c.data===Cd))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 ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;cf))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(lN.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(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 Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;hd.tailExpiration&&1b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTimea?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();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!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),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*bj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=$f()-(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.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){awi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)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=Ij(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===T&&(X=T=null,U=0);1h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!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=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(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:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,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;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime=b&&a<=b}function xi(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 yi(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 Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(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=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(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 dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0K(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_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.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}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;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_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};\nexports.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 0) {\n ariaHiddenInstances -= 1;\n\n if (ariaHiddenInstances === 0) {\n ariaAppHider.show(appElement);\n }\n }\n\n if (_this.props.shouldFocusAfterRender) {\n if (_this.props.shouldReturnFocusAfterClose) {\n focusManager.returnFocus(_this.props.preventScroll);\n focusManager.teardownScopedFocus();\n } else {\n focusManager.popWithoutFocus();\n }\n }\n\n if (_this.props.onAfterClose) {\n _this.props.onAfterClose();\n }\n\n _portalOpenInstances2.default.deregister(_this);\n };\n\n _this.open = function () {\n _this.beforeOpen();\n if (_this.state.afterOpen && _this.state.beforeClose) {\n clearTimeout(_this.closeTimer);\n _this.setState({ beforeClose: false });\n } else {\n if (_this.props.shouldFocusAfterRender) {\n focusManager.setupScopedFocus(_this.node);\n focusManager.markForFocusLater();\n }\n\n _this.setState({ isOpen: true }, function () {\n _this.openAnimationFrame = requestAnimationFrame(function () {\n _this.setState({ afterOpen: true });\n\n if (_this.props.isOpen && _this.props.onAfterOpen) {\n _this.props.onAfterOpen({\n overlayEl: _this.overlay,\n contentEl: _this.content\n });\n }\n });\n });\n }\n };\n\n _this.close = function () {\n if (_this.props.closeTimeoutMS > 0) {\n _this.closeWithTimeout();\n } else {\n _this.closeWithoutTimeout();\n }\n };\n\n _this.focusContent = function () {\n return _this.content && !_this.contentHasFocus() && _this.content.focus({ preventScroll: true });\n };\n\n _this.closeWithTimeout = function () {\n var closesAt = Date.now() + _this.props.closeTimeoutMS;\n _this.setState({ beforeClose: true, closesAt: closesAt }, function () {\n _this.closeTimer = setTimeout(_this.closeWithoutTimeout, _this.state.closesAt - Date.now());\n });\n };\n\n _this.closeWithoutTimeout = function () {\n _this.setState({\n beforeClose: false,\n isOpen: false,\n afterOpen: false,\n closesAt: null\n }, _this.afterClose);\n };\n\n _this.handleKeyDown = function (event) {\n if (event.keyCode === TAB_KEY) {\n (0, _scopeTab2.default)(_this.content, event);\n }\n\n if (_this.props.shouldCloseOnEsc && event.keyCode === ESC_KEY) {\n event.stopPropagation();\n _this.requestClose(event);\n }\n };\n\n _this.handleOverlayOnClick = function (event) {\n if (_this.shouldClose === null) {\n _this.shouldClose = true;\n }\n\n if (_this.shouldClose && _this.props.shouldCloseOnOverlayClick) {\n if (_this.ownerHandlesClose()) {\n _this.requestClose(event);\n } else {\n _this.focusContent();\n }\n }\n _this.shouldClose = null;\n };\n\n _this.handleContentOnMouseUp = function () {\n _this.shouldClose = false;\n };\n\n _this.handleOverlayOnMouseDown = function (event) {\n if (!_this.props.shouldCloseOnOverlayClick && event.target == _this.overlay) {\n event.preventDefault();\n }\n };\n\n _this.handleContentOnClick = function () {\n _this.shouldClose = false;\n };\n\n _this.handleContentOnMouseDown = function () {\n _this.shouldClose = false;\n };\n\n _this.requestClose = function (event) {\n return _this.ownerHandlesClose() && _this.props.onRequestClose(event);\n };\n\n _this.ownerHandlesClose = function () {\n return _this.props.onRequestClose;\n };\n\n _this.shouldBeClosed = function () {\n return !_this.state.isOpen && !_this.state.beforeClose;\n };\n\n _this.contentHasFocus = function () {\n return document.activeElement === _this.content || _this.content.contains(document.activeElement);\n };\n\n _this.buildClassName = function (which, additional) {\n var classNames = (typeof additional === \"undefined\" ? \"undefined\" : _typeof(additional)) === \"object\" ? additional : {\n base: CLASS_NAMES[which],\n afterOpen: CLASS_NAMES[which] + \"--after-open\",\n beforeClose: CLASS_NAMES[which] + \"--before-close\"\n };\n var className = classNames.base;\n if (_this.state.afterOpen) {\n className = className + \" \" + classNames.afterOpen;\n }\n if (_this.state.beforeClose) {\n className = className + \" \" + classNames.beforeClose;\n }\n return typeof additional === \"string\" && additional ? className + \" \" + additional : className;\n };\n\n _this.attributesFromObject = function (prefix, items) {\n return Object.keys(items).reduce(function (acc, name) {\n acc[prefix + \"-\" + name] = items[name];\n return acc;\n }, {});\n };\n\n _this.state = {\n afterOpen: false,\n beforeClose: false\n };\n\n _this.shouldClose = null;\n _this.moveFromContentToOverlay = null;\n return _this;\n }\n\n _createClass(ModalPortal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.isOpen) {\n this.open();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== \"production\") {\n if (prevProps.bodyOpenClassName !== this.props.bodyOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"bodyOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n if (prevProps.htmlOpenClassName !== this.props.htmlOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"htmlOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n }\n\n if (this.props.isOpen && !prevProps.isOpen) {\n this.open();\n } else if (!this.props.isOpen && prevProps.isOpen) {\n this.close();\n }\n\n // Focus only needs to be set once when the modal is being opened\n if (this.props.shouldFocusAfterRender && this.state.isOpen && !prevState.isOpen) {\n this.focusContent();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.state.isOpen) {\n this.afterClose();\n }\n clearTimeout(this.closeTimer);\n cancelAnimationFrame(this.openAnimationFrame);\n }\n }, {\n key: \"beforeOpen\",\n value: function beforeOpen() {\n var _props = this.props,\n appElement = _props.appElement,\n ariaHideApp = _props.ariaHideApp,\n htmlOpenClassName = _props.htmlOpenClassName,\n bodyOpenClassName = _props.bodyOpenClassName;\n\n // Add classes.\n\n bodyOpenClassName && classList.add(document.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.add(document.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n if (ariaHideApp) {\n ariaHiddenInstances += 1;\n ariaAppHider.hide(appElement);\n }\n\n _portalOpenInstances2.default.register(this);\n }\n\n // Don't steal focus from inner elements\n\n }, {\n key: \"render\",\n value: function render() {\n var _props2 = this.props,\n id = _props2.id,\n className = _props2.className,\n overlayClassName = _props2.overlayClassName,\n defaultStyles = _props2.defaultStyles,\n children = _props2.children;\n\n var contentStyles = className ? {} : defaultStyles.content;\n var overlayStyles = overlayClassName ? {} : defaultStyles.overlay;\n\n if (this.shouldBeClosed()) {\n return null;\n }\n\n var overlayProps = {\n ref: this.setOverlayRef,\n className: this.buildClassName(\"overlay\", overlayClassName),\n style: _extends({}, overlayStyles, this.props.style.overlay),\n onClick: this.handleOverlayOnClick,\n onMouseDown: this.handleOverlayOnMouseDown\n };\n\n var contentProps = _extends({\n id: id,\n ref: this.setContentRef,\n style: _extends({}, contentStyles, this.props.style.content),\n className: this.buildClassName(\"content\", className),\n tabIndex: \"-1\",\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleContentOnMouseDown,\n onMouseUp: this.handleContentOnMouseUp,\n onClick: this.handleContentOnClick,\n role: this.props.role,\n \"aria-label\": this.props.contentLabel\n }, this.attributesFromObject(\"aria\", _extends({ modal: true }, this.props.aria)), this.attributesFromObject(\"data\", this.props.data || {}), {\n \"data-testid\": this.props.testId\n });\n\n var contentElement = this.props.contentElement(contentProps, children);\n return this.props.overlayElement(overlayProps, contentElement);\n }\n }]);\n\n return ModalPortal;\n}(_react.Component);\n\nModalPortal.defaultProps = {\n style: {\n overlay: {},\n content: {}\n },\n defaultStyles: {}\n};\nModalPortal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n defaultStyles: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n ariaHideApp: _propTypes2.default.bool,\n appElement: _propTypes2.default.oneOfType([_propTypes2.default.instanceOf(_safeHTMLElement2.default), _propTypes2.default.instanceOf(_safeHTMLElement.SafeHTMLCollection), _propTypes2.default.instanceOf(_safeHTMLElement.SafeNodeList), _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(_safeHTMLElement2.default))]),\n onAfterOpen: _propTypes2.default.func,\n onAfterClose: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n children: _propTypes2.default.node,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func,\n testId: _propTypes2.default.string\n};\nexports.default = ModalPortal;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.handleBlur = handleBlur;\nexports.handleFocus = handleFocus;\nexports.markForFocusLater = markForFocusLater;\nexports.returnFocus = returnFocus;\nexports.popWithoutFocus = popWithoutFocus;\nexports.setupScopedFocus = setupScopedFocus;\nexports.teardownScopedFocus = teardownScopedFocus;\n\nvar _tabbable = require(\"../helpers/tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar focusLaterElements = [];\nvar modalElement = null;\nvar needToFocus = false;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n focusLaterElements = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n console.log(\"focusManager ----------\");\n focusLaterElements.forEach(function (f) {\n var check = f || {};\n console.log(check.nodeName, check.className, check.id);\n });\n console.log(\"end focusManager ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction handleBlur() {\n needToFocus = true;\n}\n\nfunction handleFocus() {\n if (needToFocus) {\n needToFocus = false;\n if (!modalElement) {\n return;\n }\n // need to see how jQuery shims document.on('focusin') so we don't need the\n // setTimeout, firefox doesn't support focusin, if it did, we could focus\n // the element outside of a setTimeout. Side-effect of this implementation\n // is that the document.body gets focus, and then we focus our element right\n // after, seems fine.\n setTimeout(function () {\n if (modalElement.contains(document.activeElement)) {\n return;\n }\n var el = (0, _tabbable2.default)(modalElement)[0] || modalElement;\n el.focus();\n }, 0);\n }\n}\n\nfunction markForFocusLater() {\n focusLaterElements.push(document.activeElement);\n}\n\n/* eslint-disable no-console */\nfunction returnFocus() {\n var preventScroll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var toFocus = null;\n try {\n if (focusLaterElements.length !== 0) {\n toFocus = focusLaterElements.pop();\n toFocus.focus({ preventScroll: preventScroll });\n }\n return;\n } catch (e) {\n console.warn([\"You tried to return focus to\", toFocus, \"but it is not in the DOM anymore\"].join(\" \"));\n }\n}\n/* eslint-enable no-console */\n\nfunction popWithoutFocus() {\n focusLaterElements.length > 0 && focusLaterElements.pop();\n}\n\nfunction setupScopedFocus(element) {\n modalElement = element;\n\n if (window.addEventListener) {\n window.addEventListener(\"blur\", handleBlur, false);\n document.addEventListener(\"focus\", handleFocus, true);\n } else {\n window.attachEvent(\"onBlur\", handleBlur);\n document.attachEvent(\"onFocus\", handleFocus);\n }\n}\n\nfunction teardownScopedFocus() {\n modalElement = null;\n\n if (window.addEventListener) {\n window.removeEventListener(\"blur\", handleBlur);\n document.removeEventListener(\"focus\", handleFocus);\n } else {\n window.detachEvent(\"onBlur\", handleBlur);\n document.detachEvent(\"onFocus\", handleFocus);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = scopeTab;\n\nvar _tabbable = require(\"./tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getActiveElement() {\n var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n\n return el.activeElement.shadowRoot ? getActiveElement(el.activeElement.shadowRoot) : el.activeElement;\n}\n\nfunction scopeTab(node, event) {\n var tabbable = (0, _tabbable2.default)(node);\n\n if (!tabbable.length) {\n // Do nothing, since there are no elements that can receive focus.\n event.preventDefault();\n return;\n }\n\n var target = void 0;\n\n var shiftKey = event.shiftKey;\n var head = tabbable[0];\n var tail = tabbable[tabbable.length - 1];\n var activeElement = getActiveElement();\n\n // proceed with default browser behavior on tab.\n // Focus on last element on shift + tab.\n if (node === activeElement) {\n if (!shiftKey) return;\n target = tail;\n }\n\n if (tail === activeElement && !shiftKey) {\n target = head;\n }\n\n if (head === activeElement && shiftKey) {\n target = tail;\n }\n\n if (target) {\n event.preventDefault();\n target.focus();\n return;\n }\n\n // Safari radio issue.\n //\n // Safari does not move the focus to the radio button,\n // so we need to force it to really walk through all elements.\n //\n // This is very error prone, since we are trying to guess\n // if it is a safari browser from the first occurence between\n // chrome or safari.\n //\n // The chrome user agent contains the first ocurrence\n // as the 'chrome/version' and later the 'safari/version'.\n var checkSafari = /(\\bChrome\\b|\\bSafari\\b)\\//.exec(navigator.userAgent);\n var isSafariDesktop = checkSafari != null && checkSafari[1] != \"Chrome\" && /\\biPod\\b|\\biPad\\b/g.exec(navigator.userAgent) == null;\n\n // If we are not in safari desktop, let the browser control\n // the focus\n if (!isSafariDesktop) return;\n\n var x = tabbable.indexOf(activeElement);\n\n if (x > -1) {\n x += shiftKey ? -1 : 1;\n }\n\n target = tabbable[x];\n\n // If the tabbable element does not exist,\n // focus head/tail based on shiftKey\n if (typeof target === \"undefined\") {\n event.preventDefault();\n target = shiftKey ? tail : head;\n target.focus();\n return;\n }\n\n event.preventDefault();\n\n target.focus();\n}\nmodule.exports = exports[\"default\"];","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nvar htmlClassList = {};\nvar docBodyClassList = {};\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction removeClass(at, cls) {\n at.classList.remove(cls);\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n var htmlElement = document.getElementsByTagName(\"html\")[0];\n for (var cls in htmlClassList) {\n removeClass(htmlElement, htmlClassList[cls]);\n }\n\n var body = document.body;\n for (var _cls in docBodyClassList) {\n removeClass(body, docBodyClassList[_cls]);\n }\n\n htmlClassList = {};\n docBodyClassList = {};\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var classes = document.getElementsByTagName(\"html\")[0].className;\n var buffer = \"Show tracked classes:\\n\\n\";\n\n buffer += \" (\" + classes + \"):\\n \";\n for (var x in htmlClassList) {\n buffer += \" \" + x + \" \" + htmlClassList[x] + \"\\n \";\n }\n\n classes = document.body.className;\n\n buffer += \"\\n\\ndoc.body (\" + classes + \"):\\n \";\n for (var _x in docBodyClassList) {\n buffer += \" \" + _x + \" \" + docBodyClassList[_x] + \"\\n \";\n }\n\n buffer += \"\\n\";\n\n console.log(buffer);\n }\n}\n/* eslint-enable no-console */\n\n/**\n * Track the number of reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar incrementReference = function incrementReference(poll, className) {\n if (!poll[className]) {\n poll[className] = 0;\n }\n poll[className] += 1;\n return className;\n};\n\n/**\n * Drop the reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar decrementReference = function decrementReference(poll, className) {\n if (poll[className]) {\n poll[className] -= 1;\n }\n return className;\n};\n\n/**\n * Track a class and add to the given class list.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be tracked.\n */\nvar trackClass = function trackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n incrementReference(poll, className);\n classListRef.add(className);\n });\n};\n\n/**\n * Untrack a class and remove from the given class list if the reference\n * reaches 0.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be untracked.\n */\nvar untrackClass = function untrackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n decrementReference(poll, className);\n poll[className] === 0 && classListRef.remove(className);\n });\n};\n\n/**\n * Public inferface to add classes to the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar add = exports.add = function add(element, classString) {\n return trackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};\n\n/**\n * Public inferface to remove classes from the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar remove = exports.remove = function remove(element, classString) {\n return untrackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\n\nvar _portalOpenInstances = require(\"./portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Body focus trap see Issue #742\n\nvar before = void 0,\n after = void 0,\n instances = [];\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n var _arr = [before, after];\n\n for (var _i = 0; _i < _arr.length; _i++) {\n var item = _arr[_i];\n if (!item) continue;\n item.parentNode && item.parentNode.removeChild(item);\n }\n before = after = null;\n instances = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n console.log(\"bodyTrap ----------\");\n console.log(instances.length);\n var _arr2 = [before, after];\n for (var _i2 = 0; _i2 < _arr2.length; _i2++) {\n var item = _arr2[_i2];\n var check = item || {};\n console.log(check.nodeName, check.className, check.id);\n }\n console.log(\"edn bodyTrap ----------\");\n}\n/* eslint-enable no-console */\n\nfunction focusContent() {\n if (instances.length === 0) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Open instances > 0 expected\");\n }\n return;\n }\n instances[instances.length - 1].focusContent();\n}\n\nfunction bodyTrap(eventType, openInstances) {\n if (!before && !after) {\n before = document.createElement(\"div\");\n before.setAttribute(\"data-react-modal-body-trap\", \"\");\n before.style.position = \"absolute\";\n before.style.opacity = \"0\";\n before.setAttribute(\"tabindex\", \"0\");\n before.addEventListener(\"focus\", focusContent);\n after = before.cloneNode();\n after.addEventListener(\"focus\", focusContent);\n }\n\n instances = openInstances;\n\n if (instances.length > 0) {\n // Add focus trap\n if (document.body.firstChild !== before) {\n document.body.insertBefore(before, document.body.firstChild);\n }\n if (document.body.lastChild !== after) {\n document.body.appendChild(after);\n }\n } else {\n // Remove focus trap\n if (before.parentElement) {\n before.parentElement.removeChild(before);\n }\n if (after.parentElement) {\n after.parentElement.removeChild(after);\n }\n }\n}\n\n_portalOpenInstances2.default.subscribe(bodyTrap);","/**\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","'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","/** @license React v16.13.1\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';var 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?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(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 A(a){return z(a)===m}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;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===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===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pure = exports.choose = exports.update = exports.error = exports.errorPlatform = exports.errorExecution = exports.invoke = exports.init = exports.log = exports.doneState = exports.after = exports.assign = exports.nullEvent = exports.cancel = exports.send = exports.raise = exports.stop = exports.start = void 0;\nvar types_1 = require(\"./types\");\n// xstate-specific action types\nexports.start = types_1.ActionTypes.Start;\nexports.stop = types_1.ActionTypes.Stop;\nexports.raise = types_1.ActionTypes.Raise;\nexports.send = types_1.ActionTypes.Send;\nexports.cancel = types_1.ActionTypes.Cancel;\nexports.nullEvent = types_1.ActionTypes.NullEvent;\nexports.assign = types_1.ActionTypes.Assign;\nexports.after = types_1.ActionTypes.After;\nexports.doneState = types_1.ActionTypes.DoneState;\nexports.log = types_1.ActionTypes.Log;\nexports.init = types_1.ActionTypes.Init;\nexports.invoke = types_1.ActionTypes.Invoke;\nexports.errorExecution = types_1.ActionTypes.ErrorExecution;\nexports.errorPlatform = types_1.ActionTypes.ErrorPlatform;\nexports.error = types_1.ActionTypes.ErrorCustom;\nexports.update = types_1.ActionTypes.Update;\nexports.choose = types_1.ActionTypes.Choose;\nexports.pure = types_1.ActionTypes.Pure;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toInvokeSource = exports.evaluateGuard = exports.reportUnhandledExceptionOnInvocation = exports.normalizeTarget = exports.toTransitionConfigArray = exports.toSCXMLEvent = exports.toEventObject = exports.uniqueId = exports.isActor = exports.isMachine = exports.symbolObservable = exports.isObservable = exports.toGuard = exports.isString = exports.isFunction = exports.isArray = exports.warn = exports.updateContext = exports.updateHistoryValue = exports.updateHistoryStates = exports.partition = exports.isPromiseLike = exports.isBuiltInEvent = exports.mapContext = exports.toArray = exports.toArrayStrict = exports.flatten = exports.pathsToStateValue = exports.toStatePaths = exports.nestedPath = exports.path = exports.mapFilterValues = exports.mapValues = exports.pathToStateValue = exports.toStateValue = exports.isStateLike = exports.toStatePath = exports.getActionType = exports.getEventType = exports.matchesState = exports.keys = void 0;\nvar constants_1 = require(\"./constants\");\nvar environment_1 = require(\"./environment\");\nfunction keys(value) {\n return Object.keys(value);\n}\nexports.keys = keys;\nfunction matchesState(parentStateId, childStateId, delimiter) {\n if (delimiter === void 0) { delimiter = constants_1.STATE_DELIMITER; }\n var parentStateValue = toStateValue(parentStateId, delimiter);\n var childStateValue = toStateValue(childStateId, delimiter);\n if (isString(childStateValue)) {\n if (isString(parentStateValue)) {\n return childStateValue === parentStateValue;\n }\n // Parent more specific than child\n return false;\n }\n if (isString(parentStateValue)) {\n return parentStateValue in childStateValue;\n }\n return keys(parentStateValue).every(function (key) {\n if (!(key in childStateValue)) {\n return false;\n }\n return matchesState(parentStateValue[key], childStateValue[key]);\n });\n}\nexports.matchesState = matchesState;\nfunction getEventType(event) {\n try {\n return isString(event) || typeof event === 'number'\n ? \"\" + event\n : event.type;\n }\n catch (e) {\n throw new Error('Events must be strings or objects with a string event.type property.');\n }\n}\nexports.getEventType = getEventType;\nfunction getActionType(action) {\n try {\n return isString(action) || typeof action === 'number'\n ? \"\" + action\n : isFunction(action)\n ? action.name\n : action.type;\n }\n catch (e) {\n throw new Error('Actions must be strings or objects with a string action.type property.');\n }\n}\nexports.getActionType = getActionType;\nfunction toStatePath(stateId, delimiter) {\n try {\n if (isArray(stateId)) {\n return stateId;\n }\n return stateId.toString().split(delimiter);\n }\n catch (e) {\n throw new Error(\"'\" + stateId + \"' is not a valid state path.\");\n }\n}\nexports.toStatePath = toStatePath;\nfunction isStateLike(state) {\n return (typeof state === 'object' &&\n 'value' in state &&\n 'context' in state &&\n 'event' in state &&\n '_event' in state);\n}\nexports.isStateLike = isStateLike;\nfunction toStateValue(stateValue, delimiter) {\n if (isStateLike(stateValue)) {\n return stateValue.value;\n }\n if (isArray(stateValue)) {\n return pathToStateValue(stateValue);\n }\n if (typeof stateValue !== 'string') {\n return stateValue;\n }\n var statePath = toStatePath(stateValue, delimiter);\n return pathToStateValue(statePath);\n}\nexports.toStateValue = toStateValue;\nfunction pathToStateValue(statePath) {\n if (statePath.length === 1) {\n return statePath[0];\n }\n var value = {};\n var marker = value;\n for (var i = 0; i < statePath.length - 1; i++) {\n if (i === statePath.length - 2) {\n marker[statePath[i]] = statePath[i + 1];\n }\n else {\n marker[statePath[i]] = {};\n marker = marker[statePath[i]];\n }\n }\n return value;\n}\nexports.pathToStateValue = pathToStateValue;\nfunction mapValues(collection, iteratee) {\n var result = {};\n var collectionKeys = keys(collection);\n for (var i = 0; i < collectionKeys.length; i++) {\n var key = collectionKeys[i];\n result[key] = iteratee(collection[key], key, collection, i);\n }\n return result;\n}\nexports.mapValues = mapValues;\nfunction mapFilterValues(collection, iteratee, predicate) {\n var e_1, _a;\n var result = {};\n try {\n for (var _b = __values(keys(collection)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var item = collection[key];\n if (!predicate(item)) {\n continue;\n }\n result[key] = iteratee(item, key, collection);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return result;\n}\nexports.mapFilterValues = mapFilterValues;\n/**\n * Retrieves a value at the given path.\n * @param props The deep path to the prop of the desired value\n */\nexports.path = function (props) { return function (object) {\n var e_2, _a;\n var result = object;\n try {\n for (var props_1 = __values(props), props_1_1 = props_1.next(); !props_1_1.done; props_1_1 = props_1.next()) {\n var prop = props_1_1.value;\n result = result[prop];\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (props_1_1 && !props_1_1.done && (_a = props_1.return)) _a.call(props_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return result;\n}; };\n/**\n * Retrieves a value at the given path via the nested accessor prop.\n * @param props The deep path to the prop of the desired value\n */\nfunction nestedPath(props, accessorProp) {\n return function (object) {\n var e_3, _a;\n var result = object;\n try {\n for (var props_2 = __values(props), props_2_1 = props_2.next(); !props_2_1.done; props_2_1 = props_2.next()) {\n var prop = props_2_1.value;\n result = result[accessorProp][prop];\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (props_2_1 && !props_2_1.done && (_a = props_2.return)) _a.call(props_2);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return result;\n };\n}\nexports.nestedPath = nestedPath;\nfunction toStatePaths(stateValue) {\n if (!stateValue) {\n return [[]];\n }\n if (isString(stateValue)) {\n return [[stateValue]];\n }\n var result = flatten(keys(stateValue).map(function (key) {\n var subStateValue = stateValue[key];\n if (typeof subStateValue !== 'string' &&\n (!subStateValue || !Object.keys(subStateValue).length)) {\n return [[key]];\n }\n return toStatePaths(stateValue[key]).map(function (subPath) {\n return [key].concat(subPath);\n });\n }));\n return result;\n}\nexports.toStatePaths = toStatePaths;\nfunction pathsToStateValue(paths) {\n var e_4, _a;\n var result = {};\n if (paths && paths.length === 1 && paths[0].length === 1) {\n return paths[0][0];\n }\n try {\n for (var paths_1 = __values(paths), paths_1_1 = paths_1.next(); !paths_1_1.done; paths_1_1 = paths_1.next()) {\n var currentPath = paths_1_1.value;\n var marker = result;\n // tslint:disable-next-line:prefer-for-of\n for (var i = 0; i < currentPath.length; i++) {\n var subPath = currentPath[i];\n if (i === currentPath.length - 2) {\n marker[subPath] = currentPath[i + 1];\n break;\n }\n marker[subPath] = marker[subPath] || {};\n marker = marker[subPath];\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (paths_1_1 && !paths_1_1.done && (_a = paths_1.return)) _a.call(paths_1);\n }\n finally { if (e_4) throw e_4.error; }\n }\n return result;\n}\nexports.pathsToStateValue = pathsToStateValue;\nfunction flatten(array) {\n var _a;\n return (_a = []).concat.apply(_a, __spread(array));\n}\nexports.flatten = flatten;\nfunction toArrayStrict(value) {\n if (isArray(value)) {\n return value;\n }\n return [value];\n}\nexports.toArrayStrict = toArrayStrict;\nfunction toArray(value) {\n if (value === undefined) {\n return [];\n }\n return toArrayStrict(value);\n}\nexports.toArray = toArray;\nfunction mapContext(mapper, context, _event) {\n var e_5, _a;\n if (isFunction(mapper)) {\n return mapper(context, _event.data);\n }\n var result = {};\n try {\n for (var _b = __values(Object.keys(mapper)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var subMapper = mapper[key];\n if (isFunction(subMapper)) {\n result[key] = subMapper(context, _event.data);\n }\n else {\n result[key] = subMapper;\n }\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_5) throw e_5.error; }\n }\n return result;\n}\nexports.mapContext = mapContext;\nfunction isBuiltInEvent(eventType) {\n return /^(done|error)\\./.test(eventType);\n}\nexports.isBuiltInEvent = isBuiltInEvent;\nfunction isPromiseLike(value) {\n if (value instanceof Promise) {\n return true;\n }\n // Check if shape matches the Promise/A+ specification for a \"thenable\".\n if (value !== null &&\n (isFunction(value) || typeof value === 'object') &&\n isFunction(value.then)) {\n return true;\n }\n return false;\n}\nexports.isPromiseLike = isPromiseLike;\nfunction partition(items, predicate) {\n var e_6, _a;\n var _b = __read([[], []], 2), truthy = _b[0], falsy = _b[1];\n try {\n for (var items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {\n var item = items_1_1.value;\n if (predicate(item)) {\n truthy.push(item);\n }\n else {\n falsy.push(item);\n }\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);\n }\n finally { if (e_6) throw e_6.error; }\n }\n return [truthy, falsy];\n}\nexports.partition = partition;\nfunction updateHistoryStates(hist, stateValue) {\n return mapValues(hist.states, function (subHist, key) {\n if (!subHist) {\n return undefined;\n }\n var subStateValue = (isString(stateValue) ? undefined : stateValue[key]) ||\n (subHist ? subHist.current : undefined);\n if (!subStateValue) {\n return undefined;\n }\n return {\n current: subStateValue,\n states: updateHistoryStates(subHist, subStateValue)\n };\n });\n}\nexports.updateHistoryStates = updateHistoryStates;\nfunction updateHistoryValue(hist, stateValue) {\n return {\n current: stateValue,\n states: updateHistoryStates(hist, stateValue)\n };\n}\nexports.updateHistoryValue = updateHistoryValue;\nfunction updateContext(context, _event, assignActions, state) {\n if (!environment_1.IS_PRODUCTION) {\n warn(!!context, 'Attempting to update undefined context');\n }\n var updatedContext = context\n ? assignActions.reduce(function (acc, assignAction) {\n var e_7, _a;\n var assignment = assignAction.assignment;\n var meta = {\n state: state,\n action: assignAction,\n _event: _event\n };\n var partialUpdate = {};\n if (isFunction(assignment)) {\n partialUpdate = assignment(acc, _event.data, meta);\n }\n else {\n try {\n for (var _b = __values(keys(assignment)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var propAssignment = assignment[key];\n partialUpdate[key] = isFunction(propAssignment)\n ? propAssignment(acc, _event.data, meta)\n : propAssignment;\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_7) throw e_7.error; }\n }\n }\n return Object.assign({}, acc, partialUpdate);\n }, context)\n : context;\n return updatedContext;\n}\nexports.updateContext = updateContext;\n// tslint:disable-next-line:no-empty\nvar warn = function () { };\nexports.warn = warn;\nif (!environment_1.IS_PRODUCTION) {\n exports.warn = warn = function (condition, message) {\n var error = condition instanceof Error ? condition : undefined;\n if (!error && condition) {\n return;\n }\n if (console !== undefined) {\n var args = [\"Warning: \" + message];\n if (error) {\n args.push(error);\n }\n // tslint:disable-next-line:no-console\n console.warn.apply(console, args);\n }\n };\n}\nfunction isArray(value) {\n return Array.isArray(value);\n}\nexports.isArray = isArray;\n// tslint:disable-next-line:ban-types\nfunction isFunction(value) {\n return typeof value === 'function';\n}\nexports.isFunction = isFunction;\nfunction isString(value) {\n return typeof value === 'string';\n}\nexports.isString = isString;\n// export function memoizedGetter(\n// o: TP,\n// property: string,\n// getter: () => T\n// ): void {\n// Object.defineProperty(o.prototype, property, {\n// get: getter,\n// enumerable: false,\n// configurable: false\n// });\n// }\nfunction toGuard(condition, guardMap) {\n if (!condition) {\n return undefined;\n }\n if (isString(condition)) {\n return {\n type: constants_1.DEFAULT_GUARD_TYPE,\n name: condition,\n predicate: guardMap ? guardMap[condition] : undefined\n };\n }\n if (isFunction(condition)) {\n return {\n type: constants_1.DEFAULT_GUARD_TYPE,\n name: condition.name,\n predicate: condition\n };\n }\n return condition;\n}\nexports.toGuard = toGuard;\nfunction isObservable(value) {\n try {\n return 'subscribe' in value && isFunction(value.subscribe);\n }\n catch (e) {\n return false;\n }\n}\nexports.isObservable = isObservable;\nexports.symbolObservable = (function () {\n return (typeof Symbol === 'function' && Symbol.observable) || '@@observable';\n})();\nfunction isMachine(value) {\n try {\n return '__xstatenode' in value;\n }\n catch (e) {\n return false;\n }\n}\nexports.isMachine = isMachine;\nfunction isActor(value) {\n return !!value && typeof value.send === 'function';\n}\nexports.isActor = isActor;\nexports.uniqueId = (function () {\n var currentId = 0;\n return function () {\n currentId++;\n return currentId.toString(16);\n };\n})();\nfunction toEventObject(event, payload\n// id?: TEvent['type']\n) {\n if (isString(event) || typeof event === 'number') {\n return __assign({ type: event }, payload);\n }\n return event;\n}\nexports.toEventObject = toEventObject;\nfunction toSCXMLEvent(event, scxmlEvent) {\n if (!isString(event) && '$$type' in event && event.$$type === 'scxml') {\n return event;\n }\n var eventObject = toEventObject(event);\n return __assign({ name: eventObject.type, data: eventObject, $$type: 'scxml', type: 'external' }, scxmlEvent);\n}\nexports.toSCXMLEvent = toSCXMLEvent;\nfunction toTransitionConfigArray(event, configLike) {\n var transitions = toArrayStrict(configLike).map(function (transitionLike) {\n if (typeof transitionLike === 'undefined' ||\n typeof transitionLike === 'string' ||\n isMachine(transitionLike)) {\n return { target: transitionLike, event: event };\n }\n return __assign(__assign({}, transitionLike), { event: event });\n });\n return transitions;\n}\nexports.toTransitionConfigArray = toTransitionConfigArray;\nfunction normalizeTarget(target) {\n if (target === undefined || target === constants_1.TARGETLESS_KEY) {\n return undefined;\n }\n return toArray(target);\n}\nexports.normalizeTarget = normalizeTarget;\nfunction reportUnhandledExceptionOnInvocation(originalError, currentError, id) {\n if (!environment_1.IS_PRODUCTION) {\n var originalStackTrace = originalError.stack\n ? \" Stacktrace was '\" + originalError.stack + \"'\"\n : '';\n if (originalError === currentError) {\n // tslint:disable-next-line:no-console\n console.error(\"Missing onError handler for invocation '\" + id + \"', error was '\" + originalError + \"'.\" + originalStackTrace);\n }\n else {\n var stackTrace = currentError.stack\n ? \" Stacktrace was '\" + currentError.stack + \"'\"\n : '';\n // tslint:disable-next-line:no-console\n console.error(\"Missing onError handler and/or unhandled exception/promise rejection for invocation '\" + id + \"'. \" +\n (\"Original error: '\" + originalError + \"'. \" + originalStackTrace + \" Current error is '\" + currentError + \"'.\" + stackTrace));\n }\n }\n}\nexports.reportUnhandledExceptionOnInvocation = reportUnhandledExceptionOnInvocation;\nfunction evaluateGuard(machine, guard, context, _event, state) {\n var guards = machine.options.guards;\n var guardMeta = {\n state: state,\n cond: guard,\n _event: _event\n };\n // TODO: do not hardcode!\n if (guard.type === constants_1.DEFAULT_GUARD_TYPE) {\n return guard.predicate(context, _event.data, guardMeta);\n }\n var condFn = guards[guard.type];\n if (!condFn) {\n throw new Error(\"Guard '\" + guard.type + \"' is not implemented on machine '\" + machine.id + \"'.\");\n }\n return condFn(context, _event.data, guardMeta);\n}\nexports.evaluateGuard = evaluateGuard;\nfunction toInvokeSource(src) {\n if (typeof src === 'string') {\n return { type: src };\n }\n return src;\n}\nexports.toInvokeSource = toInvokeSource;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TARGETLESS_KEY = exports.DEFAULT_GUARD_TYPE = exports.EMPTY_ACTIVITY_MAP = exports.STATE_DELIMITER = void 0;\nexports.STATE_DELIMITER = '.';\nexports.EMPTY_ACTIVITY_MAP = {};\nexports.DEFAULT_GUARD_TYPE = 'xstate.guard';\nexports.TARGETLESS_KEY = '';\n","export default __webpack_public_path__ + \"static/media/dtmf-0.870e10bc.mp3\";","export default __webpack_public_path__ + \"static/media/dtmf-1.a1f3b63c.mp3\";","export default __webpack_public_path__ + \"static/media/dtmf-2.5ba66a2f.mp3\";","export default __webpack_public_path__ + \"static/media/dtmf-3.73bd0228.mp3\";","export default __webpack_public_path__ + \"static/media/dtmf-4.6ed44a5b.mp3\";","export default __webpack_public_path__ + \"static/media/dtmf-5.72b478ac.mp3\";","export default __webpack_public_path__ + \"static/media/dtmf-6.217c0ce9.mp3\";","export default __webpack_public_path__ + \"static/media/dtmf-7.e362a35f.mp3\";","export default __webpack_public_path__ + \"static/media/dtmf-8.dadcf8c4.mp3\";","export default __webpack_public_path__ + \"static/media/dtmf-9.b6832eb4.mp3\";","export default __webpack_public_path__ + \"static/media/ringback-tone-nz.e31bfaf5.mp3\";","export default __webpack_public_path__ + \"static/media/reorder-tone-nz.2de06c88.mp3\";","export default __webpack_public_path__ + \"static/media/busy-tone-nz.dbf4b647.mp3\";","export default __webpack_public_path__ + \"static/media/nu-tone-nz.4ef63726.mp3\";","/** @license React v16.14.0\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","/* UAParser.js v0.7.31\n Copyright © 2012-2021 Faisal Salman \n MIT License */\n(function(window,undefined){\"use strict\";var LIBVERSION=\"0.7.31\",EMPTY=\"\",UNKNOWN=\"?\",FUNC_TYPE=\"function\",UNDEF_TYPE=\"undefined\",OBJ_TYPE=\"object\",STR_TYPE=\"string\",MAJOR=\"major\",MODEL=\"model\",NAME=\"name\",TYPE=\"type\",VENDOR=\"vendor\",VERSION=\"version\",ARCHITECTURE=\"architecture\",CONSOLE=\"console\",MOBILE=\"mobile\",TABLET=\"tablet\",SMARTTV=\"smarttv\",WEARABLE=\"wearable\",EMBEDDED=\"embedded\",UA_MAX_LENGTH=255;var AMAZON=\"Amazon\",APPLE=\"Apple\",ASUS=\"ASUS\",BLACKBERRY=\"BlackBerry\",BROWSER=\"Browser\",CHROME=\"Chrome\",EDGE=\"Edge\",FIREFOX=\"Firefox\",GOOGLE=\"Google\",HUAWEI=\"Huawei\",LG=\"LG\",MICROSOFT=\"Microsoft\",MOTOROLA=\"Motorola\",OPERA=\"Opera\",SAMSUNG=\"Samsung\",SONY=\"Sony\",XIAOMI=\"Xiaomi\",ZEBRA=\"Zebra\",FACEBOOK=\"Facebook\";var extend=function(regexes,extensions){var mergedRegexes={};for(var i in regexes){if(extensions[i]&&extensions[i].length%2===0){mergedRegexes[i]=extensions[i].concat(regexes[i])}else{mergedRegexes[i]=regexes[i]}}return mergedRegexes},enumerize=function(arr){var enums={};for(var i=0;i0){if(q.length===2){if(typeof q[1]==FUNC_TYPE){this[q[0]]=q[1].call(this,match)}else{this[q[0]]=q[1]}}else if(q.length===3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){this[q[0]]=match?q[1].call(this,match,q[2]):undefined}else{this[q[0]]=match?match.replace(q[1],q[2]):undefined}}else if(q.length===4){this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined}}else{this[q]=match?match:undefined}}}}i+=2}},strMapper=function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;jUA_MAX_LENGTH?trim(ua,UA_MAX_LENGTH):ua;return this};this.setUA(_ua);return this};UAParser.VERSION=LIBVERSION;UAParser.BROWSER=enumerize([NAME,VERSION,MAJOR]);UAParser.CPU=enumerize([ARCHITECTURE]);UAParser.DEVICE=enumerize([MODEL,VENDOR,TYPE,CONSOLE,MOBILE,SMARTTV,TABLET,WEARABLE,EMBEDDED]);UAParser.ENGINE=UAParser.OS=enumerize([NAME,VERSION]);if(typeof exports!==UNDEF_TYPE){if(typeof module!==UNDEF_TYPE&&module.exports){exports=module.exports=UAParser}exports.UAParser=UAParser}else{if(typeof define===FUNC_TYPE&&define.amd){define(function(){return UAParser})}else if(typeof window!==UNDEF_TYPE){window.UAParser=UAParser}}var $=typeof window!==UNDEF_TYPE&&(window.jQuery||window.Zepto);if($&&!$.ua){var parser=new UAParser;$.ua=parser.getResult();$.ua.get=function(){return parser.getUA()};$.ua.set=function(ua){parser.setUA(ua);var result=parser.getResult();for(var prop in result){$.ua[prop]=result[prop]}}}})(typeof window===\"object\"?window:this);","'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'];","// @flow\n'use strict';\n\nvar key = '__global_unique_id__';\n\nmodule.exports = function() {\n return global[key] = (global[key] || 0) + 1;\n};\n","'use strict';\nmodule.exports = function (arr, predicate, ctx) {\n\tif (typeof Array.prototype.findIndex === 'function') {\n\t\treturn arr.findIndex(predicate, ctx);\n\t}\n\n\tif (typeof predicate !== 'function') {\n\t\tthrow new TypeError('predicate must be a function');\n\t}\n\n\tvar list = Object(arr);\n\tvar len = list.length;\n\n\tif (len === 0) {\n\t\treturn -1;\n\t}\n\n\tfor (var i = 0; i < len; i++) {\n\t\tif (predicate.call(ctx, list[i], i, list)) {\n\t\t\treturn i;\n\t\t}\n\t}\n\n\treturn -1;\n};\n","/* @flow */\n\nimport * as React from 'react';\nimport type {Node as ReactNode} from 'react';\nimport PropTypes from 'prop-types';\n\ntype Props = {\n children?: ReactNode;\n};\n\nexport default class Dropdown extends React.Component {\n static propTypes = {\n children: PropTypes.node\n };\n\n render() {\n return (\n
\n {this.props.children}\n
\n );\n }\n}\n","/* @flow */\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport type {Ref as ReactRef, Node as ReactNode, ComponentType as ReactComponentType} from 'react';\nimport PropTypes from 'prop-types';\nimport FloatAnchor from 'react-float-anchor';\nimport type {Options as FloatAnchorOptions} from 'react-float-anchor';\nimport Kefir from 'kefir';\nimport kefirBus from 'kefir-bus';\nimport type {Bus} from 'kefir-bus';\nimport fromEventsCapture from './lib/fromEventsCapture';\nimport setRef from './lib/setRef';\nimport MenuListInspector from './MenuListInspector';\n\ntype State = {\n opened: boolean;\n};\nexport type Props = {\n className?: string;\n style?: Object;\n disabled?: boolean;\n title?: string;\n openedClassName?: string;\n openedStyle?: Object;\n\n positionOptions: FloatAnchorOptions;\n menuZIndex?: string|number;\n menuParentElement?: HTMLElement;\n ButtonComponent: ReactComponentType<{domRef: ReactRef}>;\n buttonProps?: Object;\n\n children?: ReactNode;\n menu: ReactNode;\n onWillOpen?: () => void;\n onDidOpen?: () => void;\n onWillClose?: () => void;\n};\n\nexport default class MenuButton extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n style: PropTypes.object,\n disabled: PropTypes.bool,\n title: PropTypes.string,\n openedClassName: PropTypes.string,\n openedStyle: PropTypes.object,\n\n positionOptions: PropTypes.object,\n menuZIndex: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n ButtonComponent: PropTypes.func,\n buttonProps: PropTypes.object,\n\n children: PropTypes.node,\n menu: PropTypes.element,\n onWillOpen: PropTypes.func,\n onDidOpen: PropTypes.func,\n onWillClose: PropTypes.func\n };\n\n static defaultProps = {\n positionOptions: {position:'bottom', hAlign:'left'},\n ButtonComponent: ({domRef, ...props}: Object) =>